인공지능 AI/추천시스템

[AI/이론] 딥러닝 기반의 추천시스템 Recommender System, 행렬분해(MF), NeuralCF, GMF, MLP

딥러닝 추천시스템

 

모델 기반 협업 필터링 - 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을 통해 평점 예측.

NeuralCF의 loss function

 

GMF + MLP 앙상블 모델

구현방식 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 구현: