1. Collaborative Filtering
개념:
사용자-아이템 간의 과거 상호작용 데이터를 바탕으로 추천
즉, "비슷한 사용자/아이템이 좋아한 것"을 기반으로 예측
User-based CF
- 비슷한 사용자를 찾고, 그들이 좋아한 아이템을 추천
- 예시: 나와 취향이 유사한 A가 좋아한 영화 B → 나에게도 B 추천
Item-based CF
- 비슷한 아이템을 찾고, 사용자가 좋아한 아이템과 유사한 아이템을 추천
- 예시: 내가 좋아한 영화 A와 유사한 영화 B → 나에게 B 추천
평점 예측 공식
r^ui=μ+bu+bi+qiTpu
- r^ui : 사용자 u의 아이템 i에 대한 예측 평점
- μ : 전체 평균 평점
- bu : 사용자 편향
- bi : 아이템 편향
- pu, qi : 잠재 요인(latent factor) 벡터
2. Recommendation System Implementation Detail
Matrix Factorization
- 사용자-아이템 행렬 R을 P×QT 로 분해
- P∈Rnusers×k,Q∈Rnitems×k
Objective Function
minp∗,q∗∑(u,i)∈κ(rui−puTqi)2+λ(∣∣pu∣∣2+∣∣qi∣∣2)
- κ: 관측된 사용자-아이템 쌍의 집합
- λ: 정규화 계수
학습 방법
- Stochastic Gradient Descent (SGD) 방식으로 미니배치 기반 학습
- 관측된 평점에 대해서만 손실을 계산
3. Content-Based Filtering
개념:
아이템의 속성(장르, 설명, 키워드 등)을 사용하여 사용자 취향에 맞는 아이템을 추천
핵심 개념
- 각 아이템은 특징 벡터로 표현됨 (예: TF-IDF, Word2Vec 등)
- 사용자의 선호도를 이 벡터와 비교하여 예측
사용자 프로필 벡터
u=∣Iu∣1∑i∈Iuxi
- Iu: 사용자 u가 좋아한 아이템들의 집합
- xi: 아이템 i의 특징 벡터
예측 방식
- 사용자 벡터 u와 아이템 벡터 x 간의 유사도(cosine similarity)를 계산하여 추천
4. Principal Component Analysis (PCA)
목적:
고차원 데이터를 저차원 공간으로 투영하여 중요한 정보 유지하면서 차원 축소
주요 개념
- 분산이 큰 방향으로 새로운 축(Principal Component)을 정의
- 첫 번째 주성분이 데이터의 최대 분산을 가지는 방향
수식 정리
- 평균 중심화
xi′=xi−xˉ
- 공분산 행렬 계산
Σ=m1XTX
- 고유값 분해 또는 SVD
- U: 좌표 회전 행렬 (주성분)
- S: 특이값 (분산 크기)
- V: 원래 차원 축의 방향
- 차원 축소
Z=X⋅Ureduce
- Ureduce: 상위 k개의 주성분 벡터로 구성