u1 기준으로 유저-아아템 상호작용과 high-order connectivity를 볼 수 있음
모든 유저, 아이템 node로부터 1이상인 길이 l을 지나 u1으로 도달
길이 l에는 high-order connectivity를 표현하는 풍부한 의미가 담겨 있음
l을 통해 연결된 두 유저는 서로 유사
유저와 l을 통해 연결된 아이템을 소비할 가능성이 있음
l이 작을수록, 경로가 많을수록 더 관계있다고 볼 수 있음
Present Work
Embedding 함수에 high-order connectivity 정보를 모델링할 것을 제안
다만 구현이 복잡한 트리 구조를 확장하지 말고, 그래프에 재귀적으로 Embedding을 전파하는 신경망 방식을 설계
embedding propagation layer
서로 관계된 아이템의 Embedding을 유저의 Embedding에 통합하는 방식으로 유저 Embedding을 개선(혹은 유저의 Embedding을 아이템 Embedding에 통합하는 반대 과정)
이 layer를 다중으로 쌓으면 high-order connectivity에서 collaborative signal을 포착하는 게 가능
즉 n개의 layer를 쌓는다면 l=n인 관계까지 포착하는 게 가능한 것
이러한 NGCF의 타당성과 효율성을 증명하기 위해 실험할 것
기존의 HOP-REC은 train data의 풍부함을 위해서만 high-order connectivity를 사용하고, prediction model에선 MF가 유지
이와 달리 NGCF는 high-order connectivity을 prediction model에도 사용, 경험적으로 CF에 더 적합한 Embedding을 산출한다는 것을 보여줄 것
2. METHODOLOGY
Figure 2의 모델 구조 (1) Embedding layer
유저와 아이템 Embedding 제공 및 시작 (2) multiple embedding propagation layers
high- order connectivity relations 주입해 Embedding 개선 (3) prediction layer
서로 다른 propagation layers의 Embedding 통합, 유저-아이템 쌍의 친밀감(affinity) 점수 출력
2.1 Embedding Layer
유저 u는 Embedding vector eu∈Rd로 Embedding
아이템 i는 Embedding vector ei∈Rd로 Embedding
이는 Embedding look-up table로 이어짐
E=[eu1,⋯,euN,ei1,⋯,eiM]
이는 end-to-end 방식으로 최적화될 유저 및 아이템 Embedding의 초기 상태로 사용
NGCF에서는 이 Embedding을 유저-아이템 상호작용 그래프에 전파하여 개선시킴
collaborative signal을 명시적으로 주입하여 효과적인 Embedding이 되도록 만드는 단계
2.2 Embedding Propagation Layers
그래프 구조를 따라 CF signal을 파악하고, 유저 및 아이템 Embedding을 개선하기 위해 GNNs의 message-passing 구조를 차용
2.2.1 First-order Propagation
one-layer propagation을 먼저 살펴보기
관계를 가지는 아이템은 유저의 선호도에 대한 직접적인 증거를 제시
유사하게, 아이템을 소비하는 유저는 아이템에 대한 feature로 다루어짐
두 아이템의 유사성을 반판하는 수단이기도 함
결국 연결된 유저와 아이템 Embedding 전파를 위해 두 가지 과정을 공식화
Message Construction
연결된 유저-아이템 쌍 (u,i)에 대해, i로부터 u에게 전달하는 message를 정의
mu←i=f(ei,eu,pui)
f(⋅) : message encoding function pui : edge (u,i)를 따라 전파될 때의 decay factor를 조정하기 위한 계수
이는 message Embedding 즉, 전파되는 정보를 Embedding하는 식
f(⋅)는 아래와 같이 정의
W1,W2∈Rd′×d : 유용한 정보가 담긴, 학습 가능한 weight matrices d′ : transformation size ∣Nu∣∣Ni∣1 : GCN에서 pui를 표현하는 식, 여기서 N은 first-hop neighbors ei⊙eu : 관계를 encode하는 element-wise product 식(기존 GCN과의 차별점)
이 식은 message가 ei,eu 사이 친밀감(affinity)dp 의존하는 식이란 것을 의미
많은 message를 전달할수록 표현 능력이 증가할 뿐 아니라 추천 성능도 상승
pui는 과거의 아이템이 유저의 선호에 얼마나 영향을 미치는지를 나타냄
Message Aggregation
u의 이웃으로부터 전파된 message를 통합하여 u의 표현력을 개선
Aggregation 함수는 아래와 같음
eu(1) : first embedding propagation layer 이후에 유저 u가 얻은 표현력을 의미 LeakyReLU : 활성함수로, positive, small negative 상호작용 신호를 인코딩 mu←u : u의 원래 feature의 정보를 유지하기 위해 self-connection, 이는 W1eu와 같다고 생각
비슷한 방식으로 아이템에 대한 Embedding ei(1)를 얻음
요약하면, embedding propagation layer의 장점은 first-order connectivity 정보(message)를 사용해 유저와 아이템 표현을 연관시킬 수 있다는 것
2.2.2 High-order Propagation
one-layer propagation을 알았으니, 고차원을 살펴보기
first-order connectivity modeling에서 embedding propagation layer을 더 쌓아서 표현
high-order connectivities는 유저와 아이템 사이의 연관 점수를 추정하기 위해 collaborative signal을 인코딩
l개의 embedding propagation layers을 쌓으면 유저와 아이템은 각각 l-hop neightbors의 message를 받게 됨
High-order Propagation 식은 위 First-order Propagation을 변형하여 아래와 같음
W1(l),W2(l)∈Rdl×dl−1 : 학습 가능한 weight matrices dl : transformation size ei(l−1) : 이전 message-passing 단계에서 온 representation, (l−1)-hop neighbors의 message를 기억하여 l layer에서 아이템 i의 표현을 얻을 수 있음
Figure 3에서처럼 i4에서 u1에게 오는 message를 받는다면 3-hop neighbor로부터 온 것이므로 eu1(3)
이처럼 multiple embedding propagation layers를 쌓은 것은 collaborative signal을 representation(표현)에 균일하게 주입하는 것
Propagation Rule in Matrix Form
embedding propagation의 전체적인 관점과 일괄 적용을 위해 matrix form의 layer-wise propagation rule을 제시
위에서는 계속 각각의 유저, 각각의 아이템에 대한 message 수신이었지만 이제는 하나의 layer로 확장하여 matrix 관점에서 보자
그 식은 아래에 제시
E(l)∈R(N+M)×dl : l 단계의 embedding propagation 이후 얻는 유저와 아이템 표현 E(0)이라면 첫 message-passing을 의미 I : identity matrix L : 유저-아이템 그래프의 Laplacian matrix
R∈RN×M : 유저-아이템 상호작용 matrix 0 : 모두 0인 matrix A : adjacency matrix D : diagonal degree matrix, t-th diagonal element Dtt는 ∣Nt∣ (N은 first-hop neighbor였음)
matrix-form propagation rule을 통해 모든 아이템과 유저에 대한 표현을 동시에 업데이트가 가능
이는 node sampling procedure을 하지 않아도 됨
large-scale graph에 대한 GCN에서 작동하게 함(복잡성에 대한 분석은 2.5.2에서)
2.3 Model Prediction
L Layer 전파 이후, 유저 u에 대한 복수의 표현을 가지게 됨
{eu(1),⋯eu(L)}
이들은 각자 다른 층으로부터, 다른 message를 전달해 만들어졌으므로 유저 u의 선호도를 표현하는데 각기 다른 기여도를 가질 것임
따라서 유저에 대한 마지막 Embedding을 통해 concatenate 해야 함
물론 아이템에 대해서도 동일한 작업을 해야 함
concatenate 방식은 아래와 같음
여기서 concatenate를 할 때 pui를 사용하여 가중치를 설정하는 것
아래 식에서는 가중치가 고려된 점을 알 수 없이 그냥 concatenate 하는 것으로 이해됨
∣∣ : concatenation operation
initial embeddings를 풍족하게 할 뿐만 아니라 L을 조정해 전파의 범위를 조절하는 것이 가능
추가적인 학습 parameter가 필요 없고, layer-aggregation mechanism을 사용하는 GNN에서 꽤 효율적
최종적으로 목표 아이템에 대한 유저의 선호를 추정하기 위해 inner product를 거침
embedding function learning의 중요성을 강조하기 위해 간단한 innner product 상호작용 함수를 사용할 것
추가적인 복잡한 선택은 future work
유저와 아이템의 상호작용이 포함된 message를 반영하여 다양한 Embedding을 만들고, 이들을 concatenate 하여 결국 상호작용이 반영된 Embedding을 하게 되었음. 어찌됐든 상호작용을 반영한 Embedding이 중요하다는 걸 보여주기 위함이니 최종 Embedding 과정에서 간단한 inner product를 사용함.
2.4 Optimization
parameter 학습을 위해 pairwise BPR loss를 최적화
이는 추천 시스템에서 집중적으로 사용
관측된 것과 관측되지 않은 것 사이의 상대적인 순서를 고려
유저는 관측한 것을 관측하지 않은 것보다 더 선호한다고 가정
O={(u,i,j)∣(u,i)∈R+,(u,j)∈R−} : pairwise 훈련 데이터 R+ : 관측된 상호작용 R− : 관측되지 않은 상호작용 σ(⋅) : sigmoid function Θ={E{W1(l),W2(l)}l=1L} : 학습 가능한 parameter λ : L2 regularization, overfitting 방지
mini-batch Adam 사용하여 모델 최적화 및 parameter 업데이트
무작위로 뽑은 샘플 (u,i,j)∈O에 대해 앞서 설명한 방식대로 L번 전파를 마치면 [e(0),⋯,e(L)]이라는 표현을 얻을 것
2.4.1 Model Size
NGCF는 각 layer마다 embedding matrix E(l)를 가지고, dl×dl−1 사이즈의 두 개 weight matrices(parameter)를 가짐
이 weight matrices는 embedding look-up table E(0)로부터 파생
MF와 비교하면 NGCF는 2Ldldl−1만큼 더 parameter를 가지는 것
하지만 보통 L은 5 이하이고, dl은 embedding size로 설정되는데 이는 유저와 아이템의 수보다 적음
(예시) 20k 유저와 40k 아이템 데이터에 대해 MF는 4.5 million parameter를 사용하는데, 3 겹의 64×64 propagation layer를 사용하면 2×3×64×64=0.24million개만이 추가될 뿐
2.4.2 Message and Node Dropout
딥러닝 모델은 강력한 표현 능력, 하지만 overfitting의 어려움
Dropout은 overfitting에 대한 효과적인 솔루션
NGCF에서는 node dropout과 message dropout을 채택
message dropout은 보내는 message의 무작위 삭제, 확률 p1
그러면 부분적인 message는 표현을 정제하게 됨
node dropout은 무작위로 특정 node를 막고, 거기서 나오는 모든 message를 버림
l-th propagation layer에서는, Laplacian matrix에서 p2 확률로 (M+N)p2개의 node를 drop
dropout은 훈련에서만 사용, 테스트에서는 비활성화
message dropout은 유저와 아이템 사이의 single connections 표현에 robustness 부여
node dropout은 특정 유저나 아이템의 영향을 줄임
2.5 Discussion
NGCF에서 SVD++의 일반화 방식, 시간 복잡도 계산
2.5.1 NGCF Generalizes SVD++
SVD++는 high-order propagation layer가 없는 NGCF의 특별 case
L을 1로 잡는 것과 같음 즉 transformation matrix and nonlinear activation function이 disable
결국 얻은 eu(1),ei(1)이 최종 u,i의 표현
이걸 NGCF-SVD 모델 공식으로 나타내면
pui′ : 1/Nu pu′i : 0
정확히 SVD++ 모델을 재현
item-based CF model, FISM도 NGCF의 특별 case로 볼 수 있음
2.5.2 Time Complexity Analysis
layer-wise propagation rule이 주요 작업
l번 layer에서 matrix multiplication을 하는 것에 대한 복잡도는 O(∣R+∣dldl−1)
∣R+∣ : Laplacian matrix의 0이 아닌 것들
dl,dl−1 : 현재의, 이전의 transformation size
prediction layer에서는 한 번의 inner product로, 시간 복잡도는 O(Σl=1L∣R+∣dl)
전체적인 시간복잡도는 위의 것을 합한 것
동일한 dataset에 대해 train 시 한 epoch당 MF는 20s, NGCF는 80s 소요