JUstory
[추천시스템] Collaborative Filtering_Model-based 본문
NBCF의 한계
Sparsity (희소성) 문제
- 데이터가 충분하지 않다면 추천 성능이 떨어진다.
- 데이터가 부족하거나 혹은 아예 없는 유저, 아이템의 경우 추천이 불가능하다.
Scalability (확장성) 문제
- 유저와 아이템이 늘어날수록 유사도 계산이 늘어난다.
- 유저, 아이템이 많아야 정확한 예측을 하지만 반대로 시간이 오래 걸린다.
Model Based Collaborative Filtering (MBCF)
모델 기반 협업 필터링
: 항목 간 유사성을 단순 비교하는 것에서 벗어나 데이터에 내재한 패턴을 이용해 추천하는 CF 기법
NBCF와의 차이점
- Parametric Machine Learning을 사용
- 주어진 데이터를 사용하여 모델 학습
- 데이터 정보가 파라미터의 형태로 모델에 압축
- 모델의 파라미터는 데이터의 패턴을 나타내고, 최적화를 통해 업데이트
- 이웃 기반 CF는 유저/ 아이템 벡터를 데이터를 통해 계산된 형태로 저장하지만, Model - based CF의 경우 유저, 아이템 벡터는 모두 학습을 통해 변하는 파라미터
장점
1. 모델 학습/ 서빙
유저- 아이템 데이터는 학습에만 사용되고 학습된 모델은 압축된 형태로 저장됨
이미 학습된 모델을 통해 추천하기 때문에 서빙 속도가 빠름
2. Sparsity / Scalability 문제 개선
이웃 기반 CF에 비해 sparse한 데이터에서도 좋은 성능을 보임
사용자, 아이템 개수가 많이 늘어나도 좋은 추천 성능을 보임
3. Overfiting 방지
이웃 기반 CF와 비교했을때 전체 데이터의 패턴을 학습하도록 모델이 작동함
NBCF의 경우 특정 주변 이웃에 의해 크게 영향을 받을 수 있음
4. Limited Coverage 극복
이웃 기반 CF의 경우 공통의 유저/ 아이템을 많이 공유해야만 유사도 값이 정확해짐
NBCF의 유사도 값이 정확하지 않은 경우 이웃의 효과를 보기 어려움
Latent Factor Model의 의미
유저와 아이템 관계를 잠재적 요인으로 표현할 수 있다고 보는 모델
- 다양하고 복잡한 유저와 아이템의 특성을 몇 개의 벡터로 compact하게 표현
유저-아이템 행렬을 저차원의 행렬로 분해하는 방식으로 작동
- 각 차원의 의미는 모델 학습을 통해 생성되며 표면적으로는 알 수 없음
같은 벡터 공간에서는 유저와 아이템 벡터가 놓을 경우 유저와 아이템의 유사한 정도를 확인할 수 있음
- 유저 벡터와 아이템 벡터가 유사하게 놓인다면 해당 유저에게 해당 아이템이 추천될 확률이 높음
Collaborative Filtering 분류
- Neighborghood-based Collaborative Filtering
- User-based / Item-based
- Model-based Collaborative Filtering
- Singular Value Decomposition
- Matirx Factorization (SGD, ALS, BPR)
- Deep Learning
- Hybrid Collaborative Filtering
- Content-based Recommendation과의 결과
Singular Value Decomposition (SVD)
: Rating Matix R에 대해 유저와 아이템의 잠재 요인을 포함할 수 있는 행렬로 분해
[유저 잠재 요인 행렬 & 잠재 요인 대각행렬 & 아이템 잠재 요인 행렬]
Full SVD : $R = U\sum V^{T}$
U : 유저와 Latent Factor의 관계
V : 아이템과 Latent Factor의 관계
$\sum$ : Latent Factor의 중요도를 나타냄
- $RR^{T}$ 을 고유값 분해해서 얻은 직사각 대각 행렬로 대각 원소들은 R의 singular value(특이치)
Truncated SVD : $R \approx \hat{U}\sum_{k}\hat{V^{T}} = \hat{R}$
대표값으로 사용될 k개의 특이치만을 사용함
몇 개의 특이치만을 가지고도 유용한 정보 유지. 분해된 행렬이 부분 복원되면서 가장 중요한 정보로 요약된다는 개념
각각의 K개의 Latent Factor는 유추할 수 있을 뿐 정확히 무엇을 의미하는지 알 수 없음
SVD 한계점
① 분해하려는 행렬의 Knowledge가 불완전할 때 정의되지 않음
- Sparsity가 높은 데이터의 경우 결측치가 매우 많고, 실제 데이터는 대부분 Sparse Matrix임
② 따라서 결측된 entry를 모두 채우는 Imputation을 통해 Dense Matrix를 만들어 SVD를 수행함
- 주로 결측된 entry를 0 or 유저/ 아이템의 평균 평점으로 채우는데, Imputation은 데이터의 양을 상당히 증가시키므로, Computation 비용이 높아짐
③ 정확하지 않음 Imputation은 데이터를 왜곡시키고 예측 성능을 떨어뜨림
- 행렬의 entry가 매우 적을 때 SVD를 적용하면 과적합되기 쉬움
=> SVD의 원리를 차용하되, 다른 접근 방법이 필요함 => MF의 등
Matrix Factorization (MF)
: User - Item 행렬을 저차원의 User와 Item의 latent factor 행렬의 곱으로 분해하는 방법
SVD의 개념과 유사하나, 관측된 선호도(평점)만 모델링에 활용하여, 관측되지 않은 선호도를 예측하는 일반적인 모델을 만드는 것이 목표
Rating Matrix를 P와 Q로 분해하여 R과 최대한 유사하게 $\hat{R}$을 추론(최적화)
Objective Function을 정의하고 최적화 문제를 푸는 것
Objective Function
$r_{u,i}$ : 학습 데이터에 있는 유저 u의 아이템 i에 대한 실제 rating
$p_{u}(q_{i})$ : 유저(아이템) u(i)의 latent vector
$\lambda$ (상수)배 된 penalty term은 L2-정규화(regularization)를 의미 ; 과적합 방지를 위해
* 실제 관측된 데이터만을 사용하여 모델을 학습
SGD
Adding Biases
어떤 유저는 모든 영화에 대해서 평점을 짜게 줄 수도 있음
-> 전체 평균, 유저/아이템의 bias (개별 유저와 개별 아이템에 대해) 를 추가하여 예측 성능을 높임
Adding Confidence Level
모든 평점이 동일한 신뢰도를 갖지 않음. $r_{u,i}$에 대한 신뢰도를 의미하는 $c_{u,i}$ 추가
대규모 광고 집행과 같이 특정 아이템이 많이 노출되어 클릭되는 경우, 유저의 아이템에 대한 평점이 정확하지 않은 경우
Adding Temporal Dynamics
시간에 따라 변하는 유저, 아이템의 특성을 반영하고 싶음
아이템이 시간이 지남에 따라 인기도가 떨어짐, 유저가 시간이 흐르면서 평점을 내리는 기준이 엄격해짐
MF for Implicit Feedback
< Collabrative Filtering for Implicit Feedback Datasets 논문 >
Alternative Least Square(ALS)
Basic Concept
유저(P)와 아이템(Q) 매트릭스를 번갈아가면서 업데이트
두 매트릭스 중 하나를 상수로 놓고 나머지 매트릭스를 업데이트
SGD와의 비교
Sparse한 데이터에 대해 SGD보다 더 Robust함
대용량 데이터를 병렬 처리하여 빠른 학습 가능
수식을 사용해 P,Q를 번갈아 가면서 업데이트
정해진 iteration을 돌거나, loss function이 더이상 작아지지 않을때까지 돌다가 학습을 멈추고 마무리
Implicit Feedback 고려
Preference
유저 u가 아이템 i를 선호하는지 여부를 binary로 표현
Confidence
유저 u가 아이템 i를 선호하는 정도를 나타내는 increasing function
a는 positive feedback과 negative feedback 간의 상대적인 중요도를 조정하는 하이퍼파라미터
Bayesian Personalized Ranking (BPR)
< BPR : Bayesian Personalized Ranking from Implicit Feedback >
1. Implicit Feedback 데이터만을 활용해 아이템 간의 선호도 도출
2. Maximum A Posterior 방법을 통해 파라미터를 최적화
3. LEARNBPR이라는 Bootstrap 기반의 SGD를 활용해 파라미터를 업데이트
4. Matrix Factorization에 BPR Optimization을 적용한 결과 성능 우수
Personalized Ranking
사용자에게 순서(Ranking)가 있는 리스트를 제공하는 문제
Personalized Ranking을 반영한 최적화 / 유저가 item i보다 j를 좋아한다면 이 정보를 사용해 MF의 파라미터 학습
관측되지 않은 데이터에 대해 1) 유저가 아이템에 관심이 없는 것, 2) 실제로 관심은 있지만 아직 모르는 것 으로 고려 가능
가정
관측된 item을 관측되지 않은 item보다 선호
관측된 아이템끼리는 선호도를 추론할 수 없음
관측되지 않은 아이템끼리도 선호도를 추론할 수 없음
특징
관측되지 않은 item들에 대해서도 정보를 부여하여 학습함
관측되지 않은 item들에 대해서도 ranking이 가능
학습 데이터 생성
최대 사후 확률 추정 (Maximum A Posterior, MAP)
Posterior를 최대화한다는 것 -> 주어진 유저 선호 정보를 최대한 잘 나타내는 파라미터를 추정하는 것
↓
User-free Model-based Approaches
장점
1. 새로운 사용자에 대해 inference가 가능함 (새로운 사용자가 발생할 때마다 재학습을 필요로 했던 것과 다르게)
2. 이력이 거의 없는 사용자에 대한 대응이 가능함 (MF 계열의 모델은 이런 상황에서 성능이 좋지 않은 문제 있었음)
3. CF 모델에서 종종 무시되곤 하는 sequential 시나리오에 대해 대응이 가능함 (MF는 sequence를 고려하지 않음)
실제 추천 시스템의 deployment를 고려하면, 새로운 사용자가 발생할 때마다 재학습이 필요한 점은 큰 단점임. 따라서 user-free 모델은 전통적인 MF 계열의 모델보다 practical하다고 볼 수 있음.
작동방식
SLIM : Sparse Linear Methods for Top-N Recommender Systems
희소 행렬 W를 학습하기 위한 formulation은 다음과 같이 Elastic net regularization (L1+L2 reg.)을 포함하는 Constrained Linear Regression 형태로 표현
FISM : Factored Item Similarity Model
이외의 user-free 모델들의 사례는 다음과 같다. (CF와 무관하게)
AutoRec
정확히는 사용자 기반의 U-AutoRec은 user term을 연관 아이템들의 nonlinear function mapping으로 대체함.
Item2Vec
word2vec을 활용하여 item representations를 얻을 수 있으며, 이를 통해 sequence 상에서 context에 기반한 아이템 예측이 가능하다.
Sequential Recommendation Models
최근 많은 연구가 이뤄지고 있는 딥 러닝 기반의 sequential models은 사용자 ID를 사용하지 않고 아이템의 time-ordered sequence를 입력으로 사용한다. (이때의 user term은 RNN의 hidden states등으로 표현됨)
'딥러닝' 카테고리의 다른 글
[추천시스템] Recommender System with DL / MLP / AE (4) | 2024.11.04 |
---|---|
[추천시스템] Item2Vec / ANN (0) | 2024.11.04 |
[추천시스템] Collaborative Filtering 개념 / Memory-based (0) | 2024.11.02 |
[추천시스템] 연관분석 / 컨텐츠 기반 추천 (0) | 2024.10.30 |
[추천시스템] 개요/ 평가지표/ 인기도 기반 추천 (5) | 2024.10.29 |