이미 소장하고 있다면 판매해 보세요.
|
옮긴이 머리말 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 |
Bryan Bischof
Hector Yee
동동구의 다른 상품
|
추천 시스템을 실무적인 수준으로 이해한다면 사용자에게 콘텐츠를 제공할 때 유용할 뿐만 아니라, RecSys의 기반 원리를 통해 다양한 머신러닝 유형을 습득할 수 있습니다. 예를 들어 기사 추천 시스템에서 자연어 처리(national language processing, NLP)를 활용하여 기사 내 특정 표현을 찾을 수 있고, 순차적 모델링(sequential model)을 통해 사용자 참여를 더 길게 유도하며, 콘텍스트 기반 특징을 활용하여 사용자의 질의에 적절한 검색 결과를 도출할 수 있습니다. 또한 순수한 학문적 관심으로 이 분야를 탐구한다면, RecSys 분야 안에서 수학의 모든 분야에 관련된 연결점이나 활용 사례를 발견할 수 있을 것입니다.
--- p.xxi 웨이터는 이 짧은 대화 중에 디저트 메뉴를 확인하고, 현재 재고 상황을 파악하며, 메모를 확인하여 디저트의 특징에 대해 이야기할 준비를 하는 등 수집기의 역할을 수행하고 있습니다. / 다음으로 웨이터는 인기 많은 메뉴(바나나 크림 파이, 도넛 아라모드)와 고객의 특징(석류를 좋아할 경우)에 따라 맥락에 맞춰 어울리는 메뉴를 언급하여 랭커 역할을 합니다. / 마지막으로 웨이터는 알고리즘에 대한 설명과 여러 선택지 등의 추천을 말로 제공합니다. / 다소 뻔해보일 수 있지만, 추천 시스템에 대한 논의는 실제 사업에 바탕을 두어야 한다는 점을 잊어서는 안 됩니다. 그래서 RecSys 분야에서 일할 때 얻을 수 있는 장점 중 하나가 영감은 항상 가까운 곳에 있다는 것입니다. --- p.5 〈오징어 게임〉과 같이 흥미진진한 데뷔작의 경우, 모든 지표가 상승하는 것을 보고 흥분에 휩쓸리기 쉽지만, 이로 인해 부정적인 영향을 받는 지표는 없을까요? 〈오징어 게임〉과 같은 주 또는 1∼2주 내로 프로그램을 배포해야 한다면, 이 모든 성공에 대해 흥분을 할 수는 없을 것입니다. 전반적으로 이러한 성공은 점진적인 성장(incremental growth)으로 이어져 비즈니스 자체에 큰 도움이 되며, 지표가 전체적으로 상승할 것입니다. 그러나 다른 프로그램들은 핵심 사용자층에 대한 제로섬 게임으로 인해 출시 성공률이 떨어질 수 있습니다. 이는 장기적인 지표에 부정적인 영향을 미칠 수 있으며, 이후 추천의 효과도 떨어뜨릴 수 있습니다. --- p.30 MF를 사용하여 사용자-아이템 상호작용 행렬을 모델링하는 추천 시스템을 생각해봅시다. 시스템이 많은 사용자와 아이템으로 구성된 경우, 결과 요인 행렬은 고차원이 되어 계산 비용이 많이 들수 있습니다. 하지만 SVD나 PCA와 같은 차원 축소 기법을 사용하면 알고리즘은 사용자-아이템 상호작용에 대한 가장 중요한 정보를 보존하면서 요인 행렬의 차원을 줄일 수 있습니다. 이를 통해 알고리즘은 새로운 사용자나 상호작용 데이터가 제한적인 아이템에 대해서도 보다 효율적이고 정확한 추천을 생성할 수 있습니다. --- p.223 순차적 추천의 초기 연구는 연속적인 아이템 간의 전환을 모델링하는 데 초점을 두었습니다. 여기에는 마르코프 체인과 번역 기반 방법(translation-based method)이 사용되었습니다. 딥러닝 방법이 NLP에서 가장 큰 성공을 거두면서 순차적 데이터를 모델링하는 데 점점 더 많은 가능성을 보였고, 신경망 아키텍처를 사용하여 사용자 상호작용 기록의 순차적 역학을 모델링하려는 시도가 많이 이루어졌습니다. 이러한 방향의 초기 성공 사례로는 RNN을 사용하여 사용자의 순차적 상호작용을 모델링하는 GRU4Rec이 있습니다. 최근에는 트랜스포머 아키텍처가 순차적 데이터 모델링에서 우수한 성능을 입증했습니다. 트랜스포머 아키텍처는 효율적인 병렬화에 적합하며 장거리 시퀀스를 모델링하는 데 효과적입니다. --- p.324 |
|
추천 시스템의 비밀을 파헤치는 책
현대 비즈니스 환경에서는 고객의 취향에 맞춘 개인화 추천 시스템(RecSys)이 필수다. 그러나 추천 시스템은 다양한 알고리즘, 데이터 처리 기법, 모델 평가 방식 등 여러 요소가 복합적으로 작용하여 접근하기 어렵고, 기존의 ML 커리큘럼에서는 다루지 않는 경우가 많아 실무자들이 막막함을 느끼기 쉽다. 이 책은 추천 시스템을 구축하는 데 필요한 모든 핵심 요소(데이터 수집, 문제 정의, 모델 선택, 평가, 배포)를 명확하고 체계적으로 설명한다. 파이썬과 JAX를 포함한 실습 예제와 함께, 추천 시스템 분야에서 빠르게 변화하는 기술 동향과 MLOps 도구를 활용하는 방법을 제공함으로써 접근하기 어려웠던 상황을 해소할 수 있도록 돕는다. 이 책은 수십 년간의 추천 시스템 발전을 한 권에 집약한 실용적 지침서다. 추상적인 추천 시스템 개념을 실제 적용 가능한 코드와 사례로 풀어낸 이 책을 통해 추천 시스템을 성공적으로 구축해보자. 대상 독자 ● 추천 시스템의 핵심 개념과 알고리즘을 배우고 직접 구현해보고자 하는 머신러닝 엔지니어 ● 대규모 데이터 처리 및 MLOps 도구를 활용하여 추천 시스템 인프라를 구축하고자 하는 개발자 또는 데이터 과학자 ● 고객 맞춤형 추천 기능을 통해 비즈니스 성과를 높이고자 하는 제품 관리자 ● 추천 시스템의 이론적 배경과 실제 구현 사례를 학습과 연구에 활용하려는 연구원 주요 내용 ● 데이터 및 비즈니스 문제를 RecSys 문제로 전환하기 ● RecSys 구축을 시작하기 위한 필수 데이터 파악하기 ● RecSys 문제에 적합한 모델을 정하고, 이를 어떻게 평가해야 하는지 결정하기 ● 모델을 구현하고, 훈련하고, 테스트하고, 배포하기 ● 지표를 추적하여 시스템이 계획대로 작동하는지 확인하기 ● 사용자, 제품, 비즈니스 사례를 파악하면서 시스템을 점진적으로 개선하기 |
|
《파이썬과 JAX로 추천 시스템 구축하기》는 추천 시스템 설계의 깊이 있는 통찰력을 제공하는 탁월한 가이드입니다. 이 책은 추천 시스템의 기본 개념부터 실제 시스템 구축에 필요한 심층적인 설계 방식까지 폭넓게 다루고 있어, 독자들이 탄탄한 기반을 다질 수 있도록 돕습니다.
특히 이 책의 강점은 추천 시스템을 시스템 관점에서 접근한다는 점입니다. 풍부한 용어 설명은 물론, 모델 중심적인 기존 서적들과 달리 시스템 전체를 조망하며 추천 시스템 구축의 핵심을 보여줍니다. 이러한 서술 방식을 통해 독자는 추천 시스템을 단순한 알고리즘의 집합이 아닌, 유기적으로 작동하는 하나의 시스템으로 이해할 수 있습니다. 이 책이 추천 시스템 구현을 고민하는 모든 개발자에게 필수적인 참고서가 될 것이라 확신합니다. 이론과 실무를 겸비한 이 책을 통해 독자 여러분이 추천 시스템 전문가로 발돋움하시기를 기대합니다. - 이영빈 (모두의연구소, AI GDE, 《JAX/Flax로 딥러닝 레벨업》 저자) |
|
저자들은 대부분의 사람이 오랜 시간에 걸쳐 익히는 RecSys 개념을 명확한 코드 예제와 함께 알기 쉽게 소개하여 특별한 가치를 만들어냈습니다. 내가 추천 시스템을 처음 시작할 때 이 책이 있었다면 좋았을 것입니다. - 이븐 올드리지 (Even Oldridge) (엔비디아 추천 시스템 엔지니어링 디렉터)
|
|
이 책은 JAX로 추천 시스템을 이해하기 쉽게 설명하는, 제가 기다려온 책입니다. 여러분에게 필요한 것은 컴퓨터 한 대뿐입니다. - 샤케드 자이클린스키(Shaked Zychlinski) (전 라이트릭스 추천 시스템 총괄)
|
|
브라이언과 헥터는 수십 년에 걸친 추천 시스템의 발전을 간결하면서도 실용적인 가이드로 정리했습니다. 이 책은 이론과 실제 응용 사이의 간극을 메우며, 파이썬과 JAX를 활용한 이해하기 쉬운 예제들로 가득 차 있습니다. 초보자부터 전문가까지 모든 수준의 RecSys 실무자에게 꼭 필요한 가이드입니다. - 유진 얀(Eugene Yan) (아마존 응용 과학자)
|
|
이 책은 수학, 코드, 시스템 설계, 비즈니스 응용을 종합적으로 고려하여 추천 시스템 구축에 대한 포괄적인 접근 방식을 제공합니다. 실제 현장에 적용 가능한 설루션을 구현하기 위해 실무자가 고려해야 할 모든 세부 사항을 다루며, 공개 데이터셋을 활용하는 직관적인 예제를 통해 추상적인 개념을 구체적인 학습으로 전환시킬 수 있도록 돕습니다. - 에릭 콜슨(Eric Colson) (AI 자문가, 전 넷플릭스 데이터 과학 및 엔지니어링 부사장)
|
|
추천 시스템은 배포된 머신러닝 시스템 중 가장 영향력이 큰 시스템입니다. 이 책은 원칙에 기반한 모델링, 명확한 코드 예제, 아키텍처 모범 사례를 균형 있게 다루며, 단순히 모델을 학습하는 것을 넘어 실제 시스템을 구축하고자 하는 실무자들에게 꼭 필요한 필독서입니다. - 야코포 탈리아부에 (Jacopo Tagliabue) (바우플란 공동 창립자, NYU 머신러닝 시스템 겸임 교수, RecList 및 evalRS 공동 제작자)
|
|
수년 동안 이론적인 추천 시스템과 실제 현장에서 사용되는 추천 시스템 간에 큰 간극을 느껴왔습니다. 브라이언과 헥터의 이 뛰어난 저서는 이 간극을 없애며, 이 책의 독자는 데이터 과학 분야의 진정한 입문자가 되었음을 느낄 수 있을 것입니다. - 윌 커트(Will Kurt) (AI 엔지니어, 《흥미로운 베이지안 통계》 저자)
|
|
이 책은 정보검색 분야에 관심 있는 모든 사람에게 필수적인 자료입니다. 저자들은 독자가 이 분야의 문제를 해결할 수 있도록 세부적인 내용에 각별히 신경을 썼습니다. 이 책을 참고하여 정보검색 문제를 설정하는 방법과 실질적인 단계들을 계획하는 방법을 이해하고, 실제로 구축을 시작할 수 있습니다. - 에릭 슐레스(Eric Schles) (존스 홉킨스 대학교 연구 과학자)
|