대학원 추천시스템 특론 | 60분 강의
Collaborative Filtering (CF)
Content-Based Filtering (CBF)
Collaborative Filtering의 문제점
1. Cold-Start Problem
Data Sparsity
Scalability Issues
Content-Based Filtering의 문제점
1. Limited Content Analysis
Over-Specialization
Feature 추출의 한계
핵심 아이디어: CF의 패턴 학습 능력 + CBF의 콘텐츠 이해 능력
CARS는 다음을 통합:
텍스트 콘텐츠
전통적 방법:
- TF-IDF: 단어 빈도 기반 벡터화
- Word2Vec/GloVe: 단어 임베딩
- LDA: 토픽 모델링
딥러닝 방법:
- BERT/RoBERTa: 문맥 기반 언어 모델
- Sentence-BERT: 문장 수준 임베딩
- GPT 기반 feature extraction
이미지 콘텐츠
전통적 방법:
- SIFT, HOG: 수작업 feature
- Color histogram: 색상 분포
딥러닝 방법:
- CNN (ResNet, EfficientNet): 이미지 분류
- Vision Transformer (ViT): attention 기반
- CLIP: 이미지-텍스트 공동 임베딩
멀티모달 콘텐츠
- 텍스트 + 이미지 결합
- 비디오에서 프레임 + 오디오 + 자막 추출
- Cross-modal attention mechanisms
Early Fusion (조기 결합)
[User Features] ⊕ [Item Content Features] → [ML Model] → Prediction
Late Fusion (후기 결합)
[CF Model] → Score_1
[Content Model] → Score_2
[Ensemble] → Final Score
Deep Fusion (심층 결합)
Neural Network 내부에서 다층 레벨로 결합
- Attention mechanisms으로 중요 feature 자동 선택
- Cross-feature interaction 학습
1. Factorization Machines (FM) 계열
y = w_0 + Σw_i·x_i + ΣΣ<v_i, v_j>·x_i·x_j
여기서:
- x_i: user ID, item ID, content features 모두 포함
- v_i, v_j: feature embedding vectors
- <·,·>: 내적 (feature interaction 모델링)
장점:
2. Neural Collaborative Filtering + Content
Architecture:
User ID → User Embedding ┐
Item ID → Item Embedding ┼→ [Concatenate] → [MLP Layers] → Score
Item Content → Content Embedding ┘
3. Two-Tower Model
User Tower: Item Tower:
User ID Item ID
User History → Embedding Item Content → Embedding
User Features Item Features
Final Score = cosine_similarity(User_Vector, Item_Vector)
장점:
신규 아이템 (Item Cold-Start)
상호작용 데이터 없음
↓
Content Features 활용
↓
유사 아이템의 패턴 차용 (Content-Based KNN)
↓
점진적 학습 (상호작용 데이터 축적 시)
신규 사용자 (User Cold-Start)
방법 1: Content-based onboarding
- 선호 장르/카테고리 직접 선택
- 샘플 아이템 평가
방법 2: Demographic/Context 활용
- 나이, 성별, 지역 등 메타데이터
- 디바이스, 시간대 등 컨텍스트
방법 3: Zero-shot/Few-shot Learning
- 소수 상호작용만으로 빠른 적응
콘텐츠 특징 활용
Two-Tower 아키텍처 변형
User Tower:
- 시청 이력 임베딩 평균
- 명시적 선호 (좋아요, 평점)
- 시청 패턴 (시간대, 완료율)
Item Tower:
- 영상 콘텐츠 임베딩 (CNN)
- 메타데이터 임베딩
- Collaborative signal (인기도, 평균 평점)
효과:
제품 콘텐츠 활용
Graph-based CARS
User-Item Interaction Graph + Content Similarity Graph
Node: Users, Items
Edges:
- Purchase/View 관계
- Content similarity (이미지, 텍스트 기반)
Graph Neural Network로 임베딩 학습
특징:
오디오 콘텐츠 특징
Content2Vec 접근법
1. Audio CNN으로 곡 임베딩 생성
2. Collaborative Filtering으로 사용자-곡 임베딩 학습
3. Joint Training:
- Audio 유사도 손실
- CF 손실
- 통합 임베딩 공간 구축
Contextual CARS:
Visual Search + Recommendation
User uploads image
↓
CNN (ResNet) extracts visual features
↓
ANN search in image embedding space
↓
Ranking with collaborative signals
Multi-task Learning
Shared CNN Backbone
├→ Classification (카테고리)
├→ Object Detection (주요 객체)
├→ Style Recognition (예술 스타일)
└→ Embedding for Recommendation
Loss = α·L_cls + β·L_det + γ·L_style + δ·L_rec
Self-Attention for Recommendation
User History: [item_1, item_2, ..., item_n]
↓
Item Embeddings (Content + ID)
↓
Transformer Encoder (BERT4Rec)
↓
Contextualized Item Representations
↓
Next Item Prediction
장점:
대표 모델:
핵심 아이디어: 같은 아이템의 다른 view는 유사하게, 다른 아이템은 멀게
Positive Pairs:
- 같은 아이템의 (이미지, 텍스트)
- 같은 사용자가 선호한 (아이템_i, 아이템_j)
Negative Pairs:
- 랜덤 샘플링된 다른 아이템들
Loss = -log(exp(sim(z_i, z_j)/τ) / Σexp(sim(z_i, z_k)/τ))
효과:
MMSS (Multi-Modal Self-Supervised) Framework
Text Encoder (BERT) ──┐
├→ Cross-Attention → Fused Representation
Image Encoder (ViT) ──┘
Cross-Attention:
Q from Text, K,V from Image (and vice versa)
→ 모달 간 상호보완적 정보 학습
실무 적용:
Knowledge Graph 구축
Entities: Users, Items, Attributes, Concepts
Relations:
- User -[likes]-> Item
- Item -[has_feature]-> Attribute
- Item -[belongs_to]-> Category
- Category -[similar_to]-> Category
Graph Neural Network 활용
1. Node Embedding 초기화 (Content features)
2. Message Passing:
h_v^(l+1) = σ(Σ W·h_u^(l) / sqrt(|N(v)|))
3. Multi-hop Aggregation
4. User-Item score = f(h_user, h_item)
대표 모델:
LLM as Feature Extractor
Item Description → GPT-4/Claude → Rich Semantic Embedding
User Queries → LLM → Intent Understanding
LLM as Recommender (Few-shot)
Prompt Engineering:
"Based on these items the user liked:
- Item A (description)
- Item B (description)
Recommend similar items and explain why."
→ Zero-shot 추천 가능
Challenges:
실용적 접근:
오프라인 파이프라인
Raw Content → Feature Extraction → Embedding DB
↓
Interaction Logs → Model Training → Model Registry
온라인 서빙
User Request → Candidate Generation (ANN) → Ranking → Re-ranking
↓ ↓ ↓
User Embedding Content Score Business Rules
Latency 요구사항:
콘텐츠 전처리
1. 정규화: 이미지 크기, 텍스트 길이 통일
2. Augmentation: 데이터 증강으로 robustness 향상
3. Versioning: Feature 변경 이력 관리
Feature Selection
# 예시: Feature 중요도 분석
from sklearn.inspection import permutation_importance
result = permutation_importance(model, X_val, y_val)
important_features = [f for f, imp in zip(features, result.importances_mean)
if imp > threshold]
Embedding Dimension 결정
Tiered Recommendation Approach
Level 1: Pure Content-Based (0 interactions)
↓
Level 2: Hybrid (1-10 interactions)
↓
Level 3: CF-dominant (10+ interactions)
Active Learning
Transfer Learning
오프라인 평가
온라인 A/B 테스팅
콘텐츠 품질 평가
Metric: Serendipity (우연한 발견)
= (Relevant ∩ Unexpected) / Total Recommendations
Unexpected: 사용자 이력과 콘텐츠 유사도 낮음
Relevant: 실제 긍정적 상호작용 발생
분산 학습
Embedding Storage
Faiss (Facebook AI Similarity Search):
- GPU 가속 ANN 검색
- 수억 개 벡터에서 ms 단위 검색
ScaNN (Google):
- Learned quantization
- 압축률과 정확도 trade-off
Feature Store
Filter Bubble 방지
편향성 (Bias) 완화
투명성
1. 영화 추천 시스템
2. 뉴스 추천
3. E-commerce 추천
# Feature Extraction
- Transformers (Hugging Face)
- torchvision (이미지)
- librosa (오디오)
# Recommendation Models
- PyTorch / TensorFlow
- LightFM (Hybrid recommender)
- Surprise (전통적 CF)
# Serving
- FastAPI
- Redis (cache)
- Milvus/Faiss (vector search)
1. Foundation Models for Recommendation
2. Multimodal Fusion
3. Real-time Adaptation
4. Privacy-Preserving CARS
핵심 논문
1. He et al. (2017) - Neural Collaborative Filtering
2. Covington et al. (2016) - Deep Neural Networks for YouTube Recommendations
3. Wang et al. (2019) - KGAT: Knowledge Graph Attention Network
4. Sun et al. (2019) - BERT4Rec: Sequential Recommendation with BERT
오픈소스 프로젝트
온라인 강의
실무 블로그
다음 강의 예고: Graph Neural Networks for Recommendation Systems