일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- CS224W
- 유클리드 호제법
- 추천시스템 입문
- 백준
- 논문리뷰
- Graph Representation Learning
- allow_pickle
- 그래프란
- #이코테2021
- 나동빈
- nan값
- 파이썬 머신러닝 완벽가이드 공부
- 추천시스템
- paper review
- numpy
- 알고리즘
- 소수 판정
- 질문 정리
- 코테공부
- 에스토스테네스의 체
- graph
- 이코테
- 수학
- 강의정리
- 데이콘 필사
- BruteForceSearch
- #나동빈
- 글또8기
- BruteForchSearch
- zerodivide
- Today
- Total
꾸준히 써보는 공부 기록
Neural Collaborative Filtering (WWW '17) 본문
MF은 linearity만 반영하는데, NCF는 non-linearity도 반영하는 것이다. User-Item interaction function을 학습하기 위해서 Multi-Layer Perceptron(MLP)을 사용한다. 경험적으로 깊게 쌓을 수록 더 좋은 Recommendation performance를 보인다.
1. Introduction
Information overload ??
Personalized Recommender System의 핵심은 과거 Interaction 정보를 기반으로 User의 Item에 대한 Preference를 모델링하는 것이다. 이는 Collaborative Filtering이라고 알려져 있다.
다양한 Collaborative Filtering 방법들 중에서, Matrix Factorization(MF)는 가장 많이 사용되는 방법이다 !! User와 Item을 같은 Latent space에 Project하는데, 이 때 User와 Item을 나타내기 위해서 Latent feature vector를 사용한다. Item에 대한 User의 Interaction은 Item과 User latent vector의 inner product로 모델링한다.
MF → Latent factor Model-based Recommendation
Inner product는 linear하게 latent feature들의 multiplication을 combine하는데, user interaction data의 복잡한 구조를 찾아내는데 충분하지 않다. DNN이 continuous function을 approximate할 수 있다는 것이 증명되었지만, recommendation에서는 거의 사용된 적이 없었다. 이 논문은 collaborative filtering을 neural network modeling approach로 formalize함으로써 research problem을 해결한다. 여기서는 explicit feedback이 아니라 implicit feedback에 집중한다. Implicit feedback을 모으는 것은 쉬우나 활용하는 것은 더 어려운데, 그 이유는 user satisfaction을 관찰할 수 없다는 것과 negative feedback의 부족이다.
Main contribution
- Neural Network Architecture to model latent features of users and items 제시
- MF는 NCF의 특별 케이스임을 증명
- 두가지 real-world dataset들에 대해서 실험을 통해 효율성을 증명
3. Neural Collaborative Filtering
3.1 General Framework
User-Item interaction yu,i을 modeling하는데 Multi-layer Representation을 적용한다. Bottom Input layer는 두 개의 Feature vectors vUu,vIi으로 구성된다. 이 두 개의 Feature vector들은 User u와 Item i를 나타내는 것이다. 이 논문에서는 Pure Collaborative Filtering setting에 집중하기 때문에, Input feature에 대해서 User와 Item의 Identity를 사용한다. 그리고 Identity를 One-hot Encoding을 사용해서 Binarized Sparse vector로 바꾸었다. Input layer 위의 layer는 Embedding layer으로, fully connected layer으로 구성되어 있다. 이는 sparse representation을 dense vector로 project한다. Final Output layer는 predicted score ^yui로, training은 ^yui와 yui 사이의 pointwise loss를 최소화하는 것을 목표로 한다. 또 다른 방법은 pairwise loss를 사용하는 것인데, BPR loss나 margin-based loss를 사용하는 것이다. 이 논문에서는 neural network modeling part에 집중하기 때문에, NCF의 pariwise learning에 대해서는 언급하지 않는다.
NCF의 predictive model을 formulate하면 다음과 같은데,
^yui=f(PTVUu,QTVIi|P,Q,Θf)
P는 user들에 대한 latent factor matrix, Q는 item들에 대한 latent factor matrix이다. Θf는 interaction fucntion f의 model parameter이다. 그리고 function f는 multi-layer neural network로 정의되기 때문에, 다음과 같이 수식화할 수 있다. 여기서 X는 neural CF layer의 total 개수를 의미.
f(PTVUu,QTVIi)=ϕout(ϕX(...ϕ2(ϕ1(PTVUu,QTVIi))...))
3.1.1 Learning NCF
Model parameter를 학습하기 위해서, pointwise methods는 크게 squared loss를 이용해서 regression을 수행한다. 이는 observation이 Gaussian distribution로부터 생성된다는 것을 전제로 하는데, Implicit data에서는 이러한 전제를 지키는 것이 어렵다.
Lsqr=Σ(u,i)∈Y∪Y−wui(yui−^yui)2
Y는 Y에서 observed interactions의 set을 의미한다. Y−는 Y에서 negative instance들의 set을 의미하는데, 모든 unobserved interactions이 될 수 있다. wu,i는 training instance (u,i)의 weight를 나타내는 hyper-parameter이다.
Target value yui은 Interaction을 기준으로 0 또는 1로 나타낼 수 있는데, 이를 이용해서 probabilistic approach로 pointwise NCF를 학습한다.
Likelihood function은 다음과 같이 정의할 수 있다.
p(Y,Y−|P,Q,Θf)=Π(u,i)∈Y^yuiΠ(u,i)∈Y−(1−^yui)
결론적으로 Objective function은 다음과 같이 정의된다.
L=−Σ(u,i)∈Ylog(^yui)−Π(u,i)∈Y−log(1−^yui)
=−Σ(u,i)∈Y−∪Y−^yui+(1−yui)log(1−^yui)
3.2 Generalized Matrix Factorization (GMF)
이 부분에서 언급하고 있는 것은 MF를 NCF의 special case로 다룰 수 있다는 것이다.
User latent vector pu는 PTvUu, Item latent vector qi는 QTvIi으로 표현하면,
First neural CF layer의 mapping function은 다음과 같이 정의할 수 있다.
ϕ1(pu,qi)=pu⊙qi
Output layer은 다음과 같이 정의할 수 있다.
^yui=aout(hT(pu⊙qi))
aout은 activation function, h은 output layer의 edge weight.
만약 여기서 aout을 identity function로 두고 h를 1 값을 가지는 uniform vector로 두면,
MF model과 동일하다고 볼 수 있다.
MF의 generalized version으로 aout에 sigmoid function을 사용하고, log loss를 이용해서 h를 학습하는데 이를 GMF (Generalized Matrix Factorization)으로 정의한다.
3.3 Multi-layer Perceptron(MLP)
단순하게 vector를 concatenate하는 것은 user와 item latent feature들 사이의 interaction을 고려하지 못한다.이에 대한 해결 방법으로 이 논문에서는 concatenated vector에 hidden layer(standard MLP)들을 추가하는 것을 제안하였다. 이 논문의 NCF Framework에서 제안한 MLP model은 다음과 같다.
z1=ϕ1(pu,qi)=[puqi]
ϕ2(z1)=a2(WT2z1+b2),
.....
ϕL(zL−1)=aL(WTLzL−1+bL)
^yui=σ(hTϕL(zL−1))
그리고 실험 결과, MLP layer들의 activation function으로 ReLU를 사용하는 것이 가장 성능이 좋았다.
3.4 Fusion of GMF and MLP
이제 NCF는 GMF와 MLP로 구성되어 있다. 어떻게 GMF와 MLP를 융합시킬까 ?? 간단한 해결방법은 다음과 같다. GMF와 MLP가 같은 embedding layer를 share하고 interaction function의 output를 결합하는 것이다. 구체적으로 하나의 MLP layer를 GMF와 결합시킨 Model을 수식으로 표현하면 다음과 같다.
^yui=σ(hTa(pu⊙qi+W[puqi]+b))
하지만 이렇게 GMF와 MLP의 embedding layer를 sharing하는 것은 model의 성능을 제한할 수 있다.
그래서 이 논문에서 제안하는 해결방법은 다음과 같다. GMP와 MLP의 embedding을 따로 학습하고, 마지막 hidden layer를 concatenate함으로써 두 model을 결합하는 방법이다. 이를 수식으로 표현하면 다음과 같다.
ϕGMF=pGu⊙qGi
ϕMLP=aL(WTL(aL−1(...a2(WT2[pMuqMi]+b2)...))+bL)
^yui=σ(hT[ϕGMFϕMLP])
MF의 linearity와 DNN의 non-linearity를 결합함으로써 user-item latent vector를 좀 더 잘 학습할 수 있게 된다. 이 model을 NeuMF(Neural Matrix Factorization)라고 부른다.
'Paper Review' 카테고리의 다른 글
AM-GCN (0) | 2020.12.20 |
---|