최신 추천 시스템을 설계하는 방법은 그 활용 분야만큼이나 다양하다. 이 책은 실무자가 알아야 할 핵심 개념과 예제를 설명하며, 추천 시스템을 처음 구축하는 사람부터 경험이 많은 개발자까지 모두 활용할 수 있도록 구성됐다. 추천 시스템을 설계하는 데 필요한 수학적 개념, 아이디어, 구현 방법을 체계적으로 알려주며, 파이썬, JAX, PySpark, SparkSQL, FastAPI를 사용하여 실제로 추천 시스템을 구축하는 직관적인 코드 예제를 제공한다. 이 책을 통해 추상적인 추천 시스템 개념을 구체적으로 학습해보자.
Contents
옮긴이 머리말 xii
추천의 글 xiv
베타리더 후기 xv
추천사 xviii
시작하며 xx
감사의 글 xxiii
표지에 대하여 xxv
PART I 워밍업
CHAPTER 1 소개 3
1.1 추천 시스템의 주요 구성 요소 4
__1.1.1 수집기 4
__1.1.2 랭커 4
__1.1.3 서버 4
1.2 가장 간단한 추천 시스템 5
__1.2.1 간단한 추천 시스템 5
__1.2.2 가장 인기 있는 아이템 추천 시스템 6
1.3 JAX에 대한 친절한 소개 8
__1.3.1 기본형, 초기화, 불변성 8
__1.3.2 인덱싱과 슬라이싱 10
__1.3.3 브로드캐스팅 11
__1.3.4 난수 11
__1.3.5 JIT 컴파일 12
1.4 요약 13
CHAPTER 2 사용자-아이템 평점 및 문제 정의하기 15
2.1 사용자-아이템 행렬 15
2.2 사용자-사용자 대 아이템-아이템 협업 필터링 19
2.3 넷플릭스 챌린지 20
2.4 암묵적 평점 21
2.5 데이터 수집 및 사용자 로깅 22
__2.5.1 기록 대상 22
__2.5.2 수집 및 계측 26
__2.5.3 퍼널 27
2.6 비즈니스 인사이트와 사람들이 좋아하는 것 29
2.7 요약 30
CHAPTER 3 수학적 고려 사항 33
3.1 RecSys에서 지프의 법칙과 마태 효과 33
3.2 희소성 37
3.3 협업 필터링을 위한 사용자 유사도 38
__3.3.1 피어슨 상관관계 40
__3.3.2 유사도를 통한 평가 40
3.4 추천 시스템으로서의 탐색-활용 41
__3.4.1 ∈-그리디 전략 42
__3.4.2 ∈은 무엇이어야 하나요? 44
3.5 NLP와 RecSys의 관계 45
__3.5.1 벡터 검색 45
__3.5.2 최근접 이웃 검색 47
3.6 요약 47
CHAPTER 4 추천 시스템 설계 49
4.1 온라인 대 오프라인 50
4.2 수집기 51
__4.2.1 오프라인 수집기 51
__4.2.2 온라인 수집기 51
4.3 랭커 52
__4.3.1 오프라인 랭커 52
__4.3.2 온라인 랭커 53
4.4 서버 53
__4.4.1 오프라인 서버 53
__4.4.2 온라인 서버 54
4.5 요약 54
CHAPTER 5 모두 하나로 합치기: 콘텐츠 기반 추천 시스템 55
5.1 버전 관리 소프트웨어 56
5.2 파이썬 빌드 시스템 57
5.3 무작위 아이템 추천 시스템 59
5.4 STL 데이터셋에서 이미지 가져오기 61
5.5 합성곱 신경망의 정의 62
5.6 JAX, Flax, Optax를 사용하여 모델 훈련하기 63
5.7 입력 파이프라인 65
5.8 요약 79
PART II 검색
CHAPTER 6 데이터 처리 83
6.1 시스템에 수분 공급하기 83
__6.1.1 파이스파크 83
__6.1.2 예시: 파이스파크에서의 사용자 유사도 88
__6.1.3 DataLoader 93
__6.1.4 데이터베이스 스냅숏 95
6.2 학습 및 추론을 위한 데이터 구조 97
__6.2.1 벡터 검색 97
__6.2.2 최근접 이웃 근사하기 99
__6.2.3 블룸 필터 100
__6.2.4 흥미로운 점: 추천 시스템으로서의 블룸 필터 101
__6.2.5 피처 스토어 102
6.3 요약 106
CHAPTER 7 모델 및 아키텍처 제공 107
7.1 추천 구조에 따른 아키텍처 107
__7.1.1 아이템별 사용자 추천 108
__7.1.2 쿼리 기반 추천 108
__7.1.3 콘텍스트 기반 추천 110
__7.1.4 시퀀스 기반 추천 111
__7.1.5 왜 추가적인 특징이 필요할까요? 111
7.2 인코더 아키텍처와 콜드 스타트 문제 112
7.3 배포 115
__7.3.1 API로서의 모델 115
__7.3.2 모델 서비스 시작하기 116
__7.3.3 워크플로 오케스트레이션 118
7.4 알림 및 모니터링 120
__7.4.1 스키마 및 선행 조건 121
__7.4.2 통합 테스트 122
__7.4.3 관측 가능성 123
7.5 상용 환경에서의 평가 124
__7.5.1 느린 피드백 125
__7.5.2 모델 지표 125
7.6 지속적인 훈련 및 배포 126
__7.6.1 모델 드리프트 126
__7.6.2 배포 토폴로지 127
7.7 평가 플라이휠 130
__7.7.1 일일 웜 스타트 131
__7.7.2 람다 아키텍처 및 오케스트레이션 132
__7.7.3 로깅 133
__7.7.4 능동 학습 136
7.8 요약 140
CHAPTER 8 모두 하나로 합치기: 데이터 처리 및 집계 추천기 141
8.1 기술 스택 142
8.2 데이터 표현 143
8.3 빅 데이터 프레임워크 145
__8.3.1 클러스터 프레임워크 146
__8.3.2 파이스파크 예제 147
8.4 GloVe 모델 정의 157
__8.4.1 JAX와 Flax 내의 GloVe 모델의 사양 158
__8.4.2 Optax로 GloVe 모델 훈련하기 160
8.5 요약 162
PART III 순위
CHAPTER 9 특징 기반 및 카운팅 기반 추천 165
9.1 이중선형 요인 모델(지표 학습) 166
9.2 특징 기반 웜 스타트 169
9.3 세분화 모델과 하이브리드 171
__9.3.1 태그 기반 추천기 172
__9.3.2 하이브리드화 174
9.4 이중선형 모델의 한계 175
9.5 카운팅 기반 추천기 176
__9.5.1 MPIR로 돌아가기 176
__9.5.2 상관관계 마이닝 178
__9.5.3 동시 출현을 통한 포인트별 상호 정보 180
__9.5.4 동시 출현에서의 유사도 181
__9.5.5 유사도 기반 추천 182
9.6 요약 183
CHAPTER 10 낮은 계수 방법 185
10.1 잠재 공간 185
10.2 도트 곱 유사도 187
10.3 동시 출현 모델 189
10.4 추천기 문제의 계수 줄이기 191
__10.4.1 ALS를 이용한 MF 최적화 193
__10.4.2 MF를 위한 정규화 194
__10.4.3 정규화된 MF 구현 195
__10.4.4 WSABIE 219
10.5 차원 축소 219
__10.5.1 아이소메트릭 임베딩 223
__10.5.2 비선형 국소 측정 가능 임베딩 225
__10.5.3 중심 커널 정렬 226
10.6 선호도 및 판매 확률 227
10.7 추천 시스템 평가를 위한 성향 가중치 적용 228
__10.7.1 성향 229
__10.7.2 심슨의 역설과 교란 완화 231
10.8 요약 233
CHAPTER 11 개인화된 추천 지표 235
11.1 환경 236
__11.1.1 온라인 및 오프라인 236
__11.1.2 사용자 대 아이템 지표 237
__11.1.3 A/B 테스트 238
11.2 재현율과 정밀도 239
__11.2.1 @k 241
__11.2.2 k에서의 정밀도 241
__11.2.3 k에서 재현율 241
__11.2.4 R-정밀도 242
11.3 mAP, MRR, NDCG 242
__11.3.1 mAP 243
__11.3.2 MRR 243
__11.3.3 NDCG 244
__11.3.4 mAP 대 NDCG? 245
__11.3.5 상관계수 246
11.4 친화도에서의 RMSE 247
11.5 적분 형태: AUC 및 cAUC 247
__11.5.1 추천 확률에서 AUC-ROC로 247
__11.5.2 다른 지표와의 비교 248
11.6 BPR 249
11.7 요약 249
CHAPTER 12 순위를 매기기 위한 훈련 251
12.1 추천 시스템에서 순위 결정의 역할 251
12.2 순위 결정 학습 252
12.3 LTR 모델 훈련하기 253
__12.3.1 분류를 통한 순위 결정 253
__12.3.2 회귀를 통한 순위 결정 254
__12.3.3 분류 및 회귀를 통한 순위 결정 255
12.4 WARP 255
12.5 k-차 통계 257
12.6 BM25 258
12.7 멀티모달 검색 261
12.8 요약 261
CHAPTER 13 모두 하나로 합치기: 실험과 순위 결정 263
13.1 실험 팁 263
__13.1.1 단순하게 유지하세요 264
__13.1.2 디버그 출력문 264
__13.1.3 최적화 지연 265
__13.1.4 변경 사항 추적 266
__13.1.5 피처 엔지니어링 사용 266
__13.1.6 이해 지표 대 비즈니스 지표 267
__13.1.7 빠른 반복 수행 267
13.2 스포티파이의 수백만 재생목록 데이터셋 268
__13.2.1 URI 딕셔너리 구축하기 270
__13.2.2 훈련 데이터 구성하기 272
__13.2.3 입력 읽기 275
__13.2.4 문제 모델링하기 277
__13.2.5 손실 함수 구성하기 281
13.3 연습 285
13.4 요약 286
PART IV 서비스 제공
CHAPTER 14 비즈니스 로직 289
14.1 하드 순위 결정 290
14.2 학습된 회피 291
14.3 수동 조정 가중치 292
14.4 재고 건전성 293
14.5 회피 구현하기 294
14.6 모델 기반 회피 296
14.7 요약 297
CHAPTER 15 추천 시스템의 편향성 299
15.1 추천의 다양화 300
__15.1.1 다양성 개선하기 300
__15.1.2 포트폴리오 최적화 적용하기 302
15.2 다중 목적 함수 303
15.3 프레디케이트 푸시다운 304
15.4 공정성 306
15.5 요약 307
CHAPTER 16 가속 구조 309
16.1 샤딩 310
16.2 지역 민감 해싱 310
16.3 k-d 트리 313
16.4 계층적 k-평균 316
16.5 더 저렴한 검색 방법 318
16.6 요약 319
PART V 추천 시스템의 미래
CHAPTER 17 순차적 추천기 323
17.1 마르코프 체인 324
__17.1.1 2차 마르코프 체인 325
__17.1.2 기타 마르코프 모델 326
17.2 RNN 및 CNN 아키텍처 327
17.3 어텐션 아키텍처 329
__17.3.1 셀프 어텐션에 의한 순차적 추천 331
__17.3.2 BERT4Rec 331
__17.3.3 최신성 샘플링 332
__17.3.4 정적 및 순차적 병합 332
17.4 요약 334
CHAPTER 18 추천 시스템의 미래 335
18.1 멀티모달 추천 336
18.2 그래프 기반 추천기 338
__18.2.1 신경망 메시지 전달 339
__18.2.2 애플리케이션 340
__18.2.3 랜덤워크 342
__18.2.4 메타패스와 이질성 343
18.3 LLM 애플리케이션 344
__18.3.1 LLM 추천기 344
__18.3.2 LLM 훈련 345
__18.3.3 추천을 위한 인스트럭트 튜닝 348
__18.3.4 LLM 랭커 348
__18.3.5 AI를 위한 추천 349
18.4 요약 350
찾아보기 352
Author
헥터 이,브라이언 비쇼프,동동구
Hex의 AI 리드. 순수수학 박사 학위를 취득했고, 럿거스 대학교의 겸임 교수로 데이터 과학을 가르치고 있다. 이전에는 웨이트앤바이어스에서 데이터 과학 책임자로 근무하며 DS, ML, 데이터 엔지니어링 팀을 구축했다. 스티치 픽스에서 의류 추천 시스템, 웨이트앤바이어스에서 기술 블로그 게시물 추천 시스템, 블루보틀 커피에서 세계 최초의 커피 추천 시스템을 구축했고, 지금은 AI 에이전트를 위한 추천 시스템을 구축하고 있다.
Hex의 AI 리드. 순수수학 박사 학위를 취득했고, 럿거스 대학교의 겸임 교수로 데이터 과학을 가르치고 있다. 이전에는 웨이트앤바이어스에서 데이터 과학 책임자로 근무하며 DS, ML, 데이터 엔지니어링 팀을 구축했다. 스티치 픽스에서 의류 추천 시스템, 웨이트앤바이어스에서 기술 블로그 게시물 추천 시스템, 블루보틀 커피에서 세계 최초의 커피 추천 시스템을 구축했고, 지금은 AI 에이전트를 위한 추천 시스템을 구축하고 있다.