티스토리 뷰

본 포스팅은 "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의 복잡한 관계를 저차원으로 표현하면서 문제가 발생

MF 모델의 한계점 예시

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

2. Implicit Feedback

implicit feedback 설명

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

3. NCF Framework

Neural Collaborative Filtering

  • 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

 

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) 

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) 

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의 수를 늘려갈 수록, 제안 모델이 우수

negative samplint 수에 따른 모델 성능

- 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

 

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함