딥러닝 추천시스템
모델 기반 협업 필터링 - MF, 딥러닝
- MLP: 주로 행렬분해(Matrix Factorization) 개선 ex) NeuralCF, DeepFM, Wide&Deep Learning
- AutoEncoder: 차원축소 등 딥러닝 ex) RBM-Rec, AutoRec, CDAE
- RNN/CNN: Sequential Recommendation. ex) GRU4Rec, Caser, SLi-Rec
- Transformer: 주로 언어모델 활용 ex) SASRec, SSE-PT, BERT4Rec
평점 예측
- 연속된 숫자 형태의 평점을 예측하고 이를 평가. ex) 0~5
- 일반적으로 관측된 테스트 데이터에 대해서만 평가.
- RMSE, MAE를 주로 사용.
MF: Matrix Factorization(행렬 분해)
잠재 요인 모델을 이용하여 평점 행렬을 완성.
- R : [ user x item ] 형태의 full-matrix(평가데이터)를 두 개의 행렬로 나누기.
- P : [ user x feature ]
- Q : [ item x feature ]
- 여기서 k개의 feature은 latent factor(잠재요인)로, user와 item이 공유하고 있는 특성.
- 이 k개의 특성을 매개로 user와 item의 관계성이 형성.
- 우리가 궁극적으로 얻으려는 모델의 핵심은, user와 item의 특성이 가장 잘 적용된 각각의 latent factor value를 찾는 것.
유저의 feature와 아이템의 feature가 비슷하다면 아이템과 유저가 잘 맞는다는 의미이고, 내적은 1이 될 것이고, 비슷하지 않다면 0이 된다. 각 feature는 User-Item Matrix를 복원하기 위해 자동으로 계산되는 값이므로 실제 값은 알 수 없다.
NeuralCF
- 기존의 liner 방식에 기반한 MF의 한계를 지적하며 2017 등장. 유연한 아이템-유저 관계표현하는 새로운 방식.
- Sparse한 user/item 데이터를 dense하게 임베딩
- 선형 결합 대신 NN을 통해 평점 예측.
구현방식 3 가지:
1. GMF: Generalized Matrix Factorization
2. MLP
3. GMF + MLP 앙상블
- GMF: 두 프로파일(아이템-유저)을 내적하여 합침.
- MLP: 두 프로파일을 연결하여 합침.
- GMF + MLP 앙상블 (Fusion of GMF + MLP)
한 번에 학습은 어려우므로, GMF, MLP를 미리 사전학습하고 거기에서 전체 모델을 학습.
통합 프레임워크의 가장 큰 특징은 각 모델별로 서로 다른 embedding layer를 사용한다는 것이다.
그 뜻은 두 벡터의 차원이 다를 수 있다는 것이다
GMF와 MLP의 item latent vector를 concatenation하여 로 가중치를 줘 최종추정치를 구하게 된다.
- linear space에 기반한 기존 모델들이 갖는 한계를 DNN을 도입해 해결. 나아가 DNN에만 의존한 것이 아닌 두 모델을 통합함으로써 더 큰 성능 향상시킴..!
전통적인 MF 구현:
기본적인 NeuralCF 구현: