티스토리 뷰
본 포스팅은 "Neural Collaborative Filtering" 논문의 주요 내용을 정리하였습니다.
NCF(Neural Collaborative Filtering) 모델은 사용자/아이템의 latent vector를 입력값으로 하여,
신경망을 기반으로 사용자가 아이템을 선택할 확률을 예측하는 모델입니다.
# 주요 키워드 : 신경망, 행렬 분해(MF,Matrix-Factorization), 암시적 선호(implicit feedback), 비선형성, 협업 필터링
논문 : https://arxiv.org/abs/1708.05031
1. 어떤 문제를 해결하려고 하는가?
- implicit feedabck을 활용한 추천 모델 개선
- MF와 사용자/아이템의 인터랙션을 딥러닝 (신경망)을 사용해서 개선하는 것
- MF의 한계점 지적: user-item의 복잡한 관계를 저차원으로 표현하면서 문제가 발생

- U4 사용자와 유사도가 높은 사용자는 U1>U3>U2 순
- 이를 latent space 상에 표현하면, P1>P2>P3 순
- 앞의 U4사용자의 유사도 관계를 표현하지 못하는 문제 발생
- 더 높은 차원의 latent space 추가할 경우, overfitting 우려
- 기존 MF는 비선형적인 관계를 표현하기에는 문제 발생
- 신경망을 사용해서 복잡한 사용자/아이템의 관계를 표현하자고 주장
- 비선형적인 신경망을 사용해서 user-item의 복잡한 상관관계를 표현
2. Implicit Feedback

- User-Item martix로 나타낼 경우, user와 item사이에 interaction이 있으면 1, 그렇지 않으면 0의 값으로 정의
- 여기서 1이라는 값이 user가 실제로 item의 선호/비선호를 나타내는 것은 아님
3. NCF Framework

- Input Layer : User와 Item의 one-hot vector로 표현
- Embedding Layer: input layer에서 sparse 한 vector를 dense한 vector로 변환 (사용자가 설정한 벡터의 차원으로 변환)
- Neural CF Layers: User Latent Vector와 Item Latent Vector를 Concat 하여 layer를 통과
- Output Layer : User u와 Item i의 인터랙션 정보를 0과 1사이의 점수로 나타냄
3-1. Learning NCF

- 예측하고자 하는 값(Label)이 0 또는 1이므로, 베르누이 분포를 사용한다.
- point-wise learning / pair-wise learning 둘다 사용 가능
- point-wise learning : 실제값과 예측값의 차이를 최소화
- pair-wise learning : 1이 0보다 큰 값을 갖도록 마진을 최대화
- loss function은 binary cross entropy를 사용
- L을 최소화하는 파라미터를 찾고, 학습은 SGD를 사용
3-2. Generalized Matrix Factorization (GMF)

- NCF는 linear(GMF) + un-linear (MLP) 의 결합
- p, q는 각각 user와 item의 latent vector를 의미하고, 이를 element-wise로 곱하고, weight를 곱해줌
- a는 비선형 activation function (sigmoid)를 의미하며, h는 가중치이며, latent vector를 학습하고, 중요도를 조절하도록 함
3-3. Multi-Layer Perceptron (MLP)

- z는 p,q (user/item vector)를 concat 한 것
- w,b,a는 x번째 레이어의 weight matrix, bias vector, activation function을 의미
- 최종식은 GMF와 동일한 구조를 가짐
3-4. Fusion of GMF와 MLP
- MF와 선형성과 MLP의 비선형성을 결합하여 장점만 선택하는 것
- 최종 예측값은 MLP와 GMF의 output을 concat 하여 사용
- GMF와 MLP는 상황에 따라 따로 사용해도 되고, 같이 사용해도 됨 (case by case)
4. 실험 : movieLens와 Pinterest 데이터 사용


- Movie Lens, Pinterest 데이터 모두 제안 NCF 모델이 우수 (HR@10, NDCF@10)
- K의 수를 늘려갈 수록, 제안 모델이 우수

- Negatie Sampling의 수가 커질 수록, 전체 모델의 성능이 떨어지는 추세나 제안 모델이 우수

- 레이어가 많아 질 수록, 제안 모델 성능이 높아짐 (Is Deep Learning Helpful? )
5. 결론
- 신경망을 기반으로 한 Collaborative Filtering(CF) 모델을 제안 (GMF, MLP, Neural MF)
- Matrix Factorization(선형) 모델의 한계를 신경망을 도입하여 해결할 수 있다는 점을 발견
- GMF와 MLP를 결합하였으며, 성능 향상에기여
- User-item 인터랙션 정보만 다루는 CF 모델을 개선
마무리
NCF는 신경망을 사용하여, 선형/비선형 interaction 정보를 결합하여, 기존 모델과 비교해 우수한 성능을 보였습니다. 특히, 협업 필터링의 특징인 유저/아이템의 상호작용 데이터를 통해 선형/비선형적인 관계를 표현할 수 있다는 점에 의미가 있다고 생각합니다. 다음 포스팅에서는 NCF 모델과 유사한 DeepCF 논문을 리뷰하고, NCF와 DeepCF 모델의 차이점에 대해 정리해보겠습니다.
<참고>
패스트 캠퍼스, 딥러닝 추천 시스템 강의 참고
https://supkoon.tistory.com/28
'추천시스템' 카테고리의 다른 글
[추천 모델 리뷰] Learning To Rank (LTR) (0) | 2022.10.02 |
---|---|
[추천 논문 리뷰] Deep Knowledge Tracing 논문 리뷰 (0) | 2022.08.21 |
[추천 논문 리뷰] Session based recommendations with recurrent neural network (0) | 2022.07.24 |