추천 시스템(Recommendation System)은 사용자의 과거 행동과 아이템 특성을 분석하여 개인화된 콘텐츠를 제안하는 시스템이다. YouTube, Netflix, Spotify, 쿠팡 등에서 핵심 기능이다.
주요 알고리즘
| 알고리즘 | 원리 | 장점 | 단점 |
|---|
| Collaborative Filtering | 유사 사용자의 선호 활용 | 콘텐츠 이해 불필요 | 콜드 스타트 |
| Content-Based | 아이템 특성 기반 | 콜드 스타트 없음 | 다양성 부족 |
| Matrix Factorization | 잠재 요소 분해 (SVD) | 높은 정확도 | 해석 어려움 |
| Deep Learning (Two-Tower) | 임베딩 기반 | 다양한 특성 활용 | 복잡도 높음 |
| Hybrid | 여러 방식 조합 | 단점 보완 | 시스템 복잡 |
두 탑 모델 (Two-Tower Architecture)
User Tower Item Tower
↓ 사용자 특성 (ID, 이력, 인구통계) ↓ 아이템 특성 (ID, 카테고리, 태그)
↓ Dense Layers ↓ Dense Layers
User Embedding (128d) Item Embedding (128d)
↘ ↙
유사도 점수 (내적)
↓
Top-K 추천
오프라인 훈련 후 임베딩 사전 계산:
모든 아이템 임베딩 → FAISS/HNSW 인덱스
추론: 사용자 임베딩 → ANN 검색 → ms 단위
추천 파이프라인 (Netflix/YouTube 방식)
1. Candidate Generation (수억 → 수백)
- ANN(Approximate Nearest Neighbor)으로 빠른 후보 추출
- 여러 소스 조합 (협업필터, 신규, 트렌딩)
2. Scoring / Ranking (수백 → 수십)
- 더 정교한 모델 (더 많은 특성)
- CTR, 시청 완료율, 명시적 평가 예측
3. Re-Ranking (다양성, 비즈니스 규칙)
- 동일 채널 중복 제거
- 광고 삽입
- 최근 시청 제외
4. 응답 (수십 → 10개)
피드백 루프 & 탐색-활용 (Explore-Exploit)
사용자가 추천만 소비 → 필터 버블
해결: ε-Greedy / UCB / Thompson Sampling
- 10%는 신규 콘텐츠 탐색
- 90%는 기존 선호 활용
다양성 지표:
Intra-List Diversity (ILD): 추천 목록 내 다양성
Serendipity: 예상치 못한 유용한 추천
관련 문서
- •[[design-youtube|비디오 플랫폼 설계]]
- •[[design-instagram|사진 공유 플랫폼 설계]]
- •[[ml-feature-store|특성 저장소]]