[Paper Review] (2019, ACM) Neural Graph Collaborative Filtering

5

Recommender_System

목록 보기
6/22
post-thumbnail

작성자 : 이혜린

Neural Graph Collaborative Filtering (2019, ACM)


1. Introduction

Recommender system은 크게 Content-based Filtering과 Collaborative Filtering으로 나눌 수 있습니다. 본 강의는 Collaborative Filtering Model을 중심으로 학습할 예정입니다.

Collaborative Filtering Model의 일종인 Latent Factor Mdoel의 여러 방법들 중 하나로 Matrix Factorization이 존재합니다. Matrix Factorization은 latent factor간의 내적, 즉 선형결합을 통해 Collaborative Signal(유저 - 아이템 상호작용)을 나타내기 때문에 복잡한 구조의 Signal을 알아내기 어렵습니다. 또한 새로운 유저가 등장하면 저차원 공간에 이를 표현하기 어렵다는 단점이 존재합니다. 그래서 등장한 모델이 바로 Neural Collaborative Filtering 모델입니다.

Neural Collaborative Filtering Model은 Deep Neural Network를 사용하여 유저-아이템간 상호작용을 학습합니다. Neural Network를 사용하기 때문에 비선형적인 Collaborative Signal을 표현할 수 있다는 것이 Matrix Factorization과의 차이점입니다. 그러나 몇몇 연구자들은 Neural Collaborative Filtering(이하 NCF)조차도 유저-아이템간 상호작용을 나타내기에 아직 부족하다며 새로운 모델을 제안합니다. 이 모델은 바로 Neural Graph Collaborative Filtering(이하 NGCF) 모델입니다.

일반적으로 CF 모델은 유저와 아이템을 벡터로 변환하는 Embedding과정과, 이를 기반으로 사용자의 historical interaction(구매 혹은 클릭)을 예측하는 Interaction Modeling로 구성되어 있습니다.
기존의 CF 모델들은 유저-아이템간 상호작용을 명시적으로 사용하지 않았습니다. 즉, 모두 Embedding에 유저-아이템간 상호작용을 반영하지 않았습니다. 단지 유저와 아이템 각각의 descriptive feature만을 embedding에 사용했습니다.

이러한 기존 CF 모델의 한계점을 극복하기 위해 NGCF 모델에서는 High-order Connectivity라는 새로운 특성을 모델에 반영하고자 합니다.

  • Notation
    • uiu_{i} : ii번째 유저
    • iji_{j} : jj번째 아이템
  • 기존 NCF Model
    • u1u_{1}i1i_{1}을 선택 → 관계 종료
    • 1차적인 관계
  • NGCF Model
    • 유저와 아이템 간의 여러 관계를 그래프적으로 표현
    • 여러 관계 = High-order → Sequential한 관계라고도 표현

  • NGCF Model의 High-order connectivity
    • u1i2u2u_{1} ← i_{2} ← u_{2}
      : u1u_{1}u2u_{2} 간 유사성 존재 (두 사용자 모두 i_{2}와 상호작용을 했기 때문)
    • u1i2u2i4u_{1} ← i_{2} ← u_{2} ← i_{4}
      : u1u_{1}i4i_{4}를 사용할 가능성이 있음 (u1u_{1}u2u_{2}와 유사)
    • u1u_{1}i5i_{5}보다 i4i_{4}를 선호할 것
      : u2u_{2} 뿐만 아니라, u1u_{1}와 유사한 또 다른 유저 u3u_{3}i4i_{4}를 사용하기 때문

이처럼 High-order Connectivity에서 Collaborative Signal를 표현하기 위해 GNN의 아이디어를 embedding propagation layer에서 실현합니다.

2. Methodology

  • 모델 구조
    기존 CF 모델들과 다르게 NGCF는 Embedding Propagation Layer를 가집니다.

  • GNN
    GNN은 Node(ex. 사용자)와 Edge(ex.관계) 등으로 표현되는 graph형태의 데이터를 모델링하기 위한 네트워크입니다. 그래프 데이터는 기존 정형, 비정형 데이터와 다르게 유클리드 공간에 벡터화할 수 없다는 성질이 있습니다. 따라서 이를 기존 ML 알고리즘에 넣기 위해 추가적인 Network를 활용하여 벡터 형태의 값을 도출하는 데, 이 때 사용하는 네트워크를 Aggregation Function이라고 합니다. 본 논문에서는 Embedding Propagation Layer가 그와 같은 역할을 한다고 볼 수 있습니다.

1) Embedding Layer

처음 Input data로는 유저와 아이템간 상호작용이 반영되지 않은 유저, 아이템 각각의 Embedding이 사용됩니다.

  • E=[eu1,...,euN,ei1,eiM]E = [e_{u_{1}}, ..., e_{u_{N}}, e_{i_{1}}, e_{i_{M}}] : 임베딩 matrix
  • euNe_{u_{N}} : N번째 사용자의 임베딩 벡터

2) Embedding Propagation Layers

Input 값으로 앞서 Embedding layer의 output인 유저, 아이템의 임베딩 벡터가 사용됩니다.
논문에서는 First-order propagation → High-order propagation 순으로 설명이 진행되고 있으므로, 동일한 순서로 리뷰를 진행하도록 하겠습니다.

  • First-order propagation : 첫번째 Embedding Propagation Layer에서 발생하는 전파
  • High-order propagation : 두번째 ~ ll번째 Embedding Propagation Layer에서 발생하는 전파


[First-order propagation]

First-order propagation을 구성하는 두 가지 주요 작용은 Message Construction과 Message Aggregation입니다.

a. Message Construction
Message Construction은 propagation layer에서 전파될 메시지를 생성해내는 과정을 의미합니다. 그래프 데이터에서 Connected user-item pair (u,i)(u,i)를 도출해내고, 두 노드의 정보를 이용하여 전파될 정보를 의미하는 Message Embedding을 도출합니다.

  • function ff의 input
    • eie_{i} : item의 embedding
    • eue_{u} : user의 embedding
    • puip_{ui} : decay factor (매 전파마다 전파되는 메시지가 감가상각 되는 것을 반영해주는 coefficient)

또한 Message Construction의 function ff는 다음과 같은 구조를 가집니다.
기존 GCN(GNN의 일종, Graph Convolutional Network)과 다르게 eie_{i} (자기자신) 에 대해서만 고려하지 않고, 추가적으로 user-item interatcion을 메시지에 인코딩 합니다.
이 interaction 때문에 메시지는 두 임베딩 사이의 관련성 (affinity)에 의존하고, 유사한 아이템으로부터 더 많은 메시지를 전달할 수 있게 됩니다. (결과적으로 성능 향상이 이루어집니다.)

  • Nu|N_{u}| : user uu의 이웃들의 수
  • Ni|N_{i}| : item ii의 이웃들의 수
  • WW : trainable matrix

b. Message Aggregation
Message Aggregation은 uu의 이웃노드로부터 전파된 메시지들을 모아(aggregate) uu의 임베딩을 refine하는 과정을 의미합니다. 이 때 Aggregation function으로 LeakyReLULeakyReLU를 활용하며, 이웃노드로부터의 메시지 뿐만 아니라 본래 자신에 대한 정보인 muum_{u ← u}까지 input으로 넣습니다. 이를 통해 eu(1)e_{u}^{(1)} (uu에 대한 첫 임베딩 레이어의 벡터 표현)을 도출합니다.

[High-order propagation]
first-order connectivity에서 변환된 벡터 표현을 가지고, high-order connectivity 정보를 탐색하기 위해 더 많은 embedding propagation layers를 쌓습니다(stacking).
이 과정을 통해 사용자와 아이템 사이의 relevance score를 예측할 수 있으며, ll 개의 embedding propagation layer를 쌓으면, 유저 노드는 ll-hop 이웃으로부터 전파된 메시지를 받을 수 있습니다. 이 때 사용되는 함수 식은 다음과 같습니다.

  • eule_{u}^{l} : uu에 대한 ll번째 임베딩 레이어의 벡터 표현
  • eul=LeakyReLU(muu(l)+iNumuu(l))e_{u}^{l} = LeakyReLU(m_{u←u}^{(l)} + \sum_{i \in N_{u}}m_{u←u}^{(l)})
  • mui(l)=ρui(W1(l)eu(l1)+W2(l)(ei(l1)eu(l1)))m_{u←i}^{(l)} = \rho_{ui}\big(W_{1}^{(l)}e_{u}^{(l-1)} + W_{2}^{(l)}(e_{i}^{(l-1)}\odot e_{u}^{(l-1)})\big)
  • muu(l)=W1(l)eu(l1)m_{u←u}^{(l)} = W_{1}^{(l)}e_{u}^{(l-1)}


다음 그림의 빨간선이 u1u_{1}의 임베딩 벡터를 찾아나가는 과정이므로 참고하시면 될 것 같습니다.

3) Model Prediction

ll개의 embedding propagation layer를 거친 후 나온 output은 {eu(1),...,ei(l)}\{e_{u}^{(1)}, ..., e_{i}^{(l)} \} 입니다.
각각의 임베딩들을 concatenate함으로써 최종 유저에 대한 임베딩을 구성합니다.

  • eu=eu(0)...eu(L)e_{u}^{*} = e_{u}^{(0)}\vert\vert ... \vert\vert e_{u}^{(L)}
  • ei=ei(0)...ei(L)e_{i}^{*} = e_{i}^{(0)}\vert\vert ... \vert\vert e_{i}^{(L)}

concatenate를 사용했기 때문에 파라미터가 없어 연산이 단순하다는 장점이 있으며, 최신 GNN 연구를 통해 layer-aggregation 방식으로 꽤 효과적임을 검증받았습니다.
결론적으로, Prediction Layer의 최종 output은 다음과 같습니다.

  • y^NGCF(u,i)=(eu)Tei\hat{y}_{NGCF}(u, i) = (e_{u}^{*})^{T} e_{i}^{*}

4) Etc...

[Loss Function]

  • Pairwise BPR Loss
    : 유저의 선호를 더 잘 반영하는 observed interaction에 높은 점수 부여 (vs unobserseved interaction)
  • Optimizer : Adam

[Message and Node Dropout]

a. Message Dropout

  • High-order connectivity에서 전파되는 메시지를 drop
  • 최종 ll번째 전파 레이어에서는 부분적인 메시지들만이 표현 refine과정에 영향을 줌

b. Node Dropout

  • 특정 노드를 임의로 차단해서, 해당 노드에서 나가는 메시지를 모두 차단하는 방법

3. Evaluation / Conclusion

Evaluation

3개의 벤치마크 데이터셋에 대해 실험을 한 후, 3개의 Research Question에 답하는 것을 중점으로 논문은 진행되고 있습니다.

Recall과 ndcg를 metric으로 사용했습니다.

RQ1. SOTA CF 방법론들에 비해 NGCF는 어떤 성능을 내는가?
NGCF는 모든 데이터셋, 평가지표에서 가장 우수한 성능을 보였습니다. 또한 high-connectivity를 모델 자체가 아닌, training data를 증가시키는 것에만 사용한 HOP-Rec 모델에 비해 NGCF-3의 성능이 좋았다는 사실을 통해, 임베딩 함수에서 명시적으로 Collaborative Signal을 인코딩하는 것이 성능을 개선했음을 알 수 있습니다.

RQ2. 하이퍼파라미터들은 NGCF의 성능에 어떤 영향을 주는가?

a. 임베딩 전파레이어의 개수
전반적으로 전파 레이어에서 레이어 개수를 높일수록 성능이 개선되었으나, NGCF-4의 경우 일부 데이터에서 과적합되었습니다.
이를 통해, 3개의 전파레이어를 사용하는 것이 가장 적합하다는 것을 알 수 있었습니다.
또한 레이어의 개수와 상관없이 NGCF는 다른 모델에 비해 더 성능이 좋았는데, 이를 통해 high-order connectivity를 명시적으로 모델링하는 것이 추천 task에서 성능 향상에 크게 기여한다는 것을 알 수 있습니다.

b. 하이퍼 파라미터
(생략)

RQ3. 벡터 표현이 어떻게 high-order connectivity에서 향상이 이루어지는가?

임베딩 전파가 임베딩 공간에서 표현학습을 어떻게 증진시키는지 TSNE를 이용해 확인했습니다. 유저와 관련된 임의의 아이템을 의미하는 ★을 6개 추출하였습니다. 왼쪽그림은 MF를, 오른쪽 그림은 NGCF-3의 경우를 의미하는데, NGCF-3을 이용했을 때 같은 색의 ★과 ●이 거리상으로도 가까이 위치하고, 클러스터를 잘 형성하고 있었습니다. 이를 통해 high-order connectivity를 통해 벡터 표현이 항상되었음을 확인했습니다.

Conclusion

결론에서는 NGCF에 대해 요약 설명하고, 후속 연구를 제시하며 논문이 마무리 됩니다.

참고 문헌

profile
2021 투빅스 추천시스템 세미나입니다.

6개의 댓글

comment-user-thumbnail
2021년 5월 8일

[15기 이성범]
본 논문은 기존의 NCF 모델이 User와 Item 간의 상호작용이 임베딩 과정에서 명시적으로 표현되지 않기 때문에 CF의 효과를 극대화 할 수 없다고 생각하여 최근에 주목 받고 있는 GNN 알고리즘을 활용한 NGCF 모델을 제안한다.

NGCF은 Node와 edge 등으로 표현되는 그래프 형태의 데이터를 모델링하는데 적합한 GNN을 활용한 모델이다. NGCF 모델은 각 노드를 User와 Item으로 두고 각 노드 사이의 edge를 유저와 아이템 간의 상호작용으로 표현함으로써 조금 더 유저와 아이템 간의 상호작용을 명시적으로 나타내어 학습한다. 이러한 학습 방법은 Collaborative Filtering Model의 Collaborative Signal의 복잡한 구조의 신호를 알아내기에 적합하기 때문에 CF의 효과를 극대화한다.

본 논문에서 제시한 NGCF 모델은 다른 SOTA CF 방법론들 중에서 가장 우수한 성능을 보인다. 또한 본 논문에서 강조하는 NGCF 모델의 특성은 Collaborative Signal을 잘 capture 한다는 것인데, CF의 특성을 capture하여 학습을 시킨다는 측면에서 아이디어는 비슷한 기존의 MF 모델과 NCF 모델보다 성능이 우수하다는 것은 NGCF 모델이 CF 기반의 다른 모델보다 더 Collaborative Signal을 잘 capture한다는 것과 CF효과를 극대화 시켜주는 모델이라고 생각해볼 수 있다.

NGCF 모델의 학습은 크게 Embedding Layer -> Embedding Propagation Layers -> Concatenation Layer -> Prediction Layer 순으로 진행된다. 먼저 Latent feature을 나타내는 User와 Item의 각각의 Embedding Layer를 만든 후, 각각 GNN 형태의 Embedding Propagation Layers으로 input으로 넣는다. Embedding Propagation Layers의 수는 3~4개일 때 가장 성능이 좋았다고 한다. Embedding Propagation Layers의 각각의 User와 Item의 output과 처음의 Embedding Layer를 각각의 User와 Item에 맞게 concat 한 후 Prediction Layer를 거쳐서 최종 output을 얻는 방식으로 모델의 학습이 진행된다. 모델의 학습 방식을 보면 Embedding Propagation Layers의 수에 따라서 다양한 Embedding을 얻을 수 있기 때문에 본 모델이 다른 SOTA CF 모델들 보다 유저와 아이템의 상호작용의 신호를 더 잘 capture할 수 있었다고 생각한다.

답글 달기
comment-user-thumbnail
2021년 5월 11일

NGCF

[15기 강지우]
High-order Connectivity를 기존 NCF모델이 고려하지 못하는데, NGCF는 GNN을 이용해서 이를 학습할 수 있다.

그래프적 표현을 뉴럴넷을 통해 학습하기 위해 Embedding propagation layer를 사용한다.

NGCF는 Embedding layer, Embedding propagation layer, Concation layer로 이루어진다.
1. Embedding layer에서는 유저와 아이템의 상화관계를 고려하지 않은 임베딩을 만든다.
2. Embedding propagation layer는 앞단의 임베딩을 받는다.
이는 First-order propagation, High-order propagation으로 이루어진다.
First-order propagation에서는 Message Construction과 Message Aggregation이 이루어진다. Message Construction은 propagation layer에서 전파될 메시지를 생성해내는 과정을 의미하고, Message Aggregation은 u의 이웃노드로부터 전파된 메시지들을 모아(aggregate) u의 임베딩을 refine하는 과정을 의미한다.
First-order propagation에서의 정보를 입력으로 받아 여러 레이어를 통과하며 유저와 아이템간의 상관성을 학습한다.
3. Concation layer에서는 앞단에서의 아웃풋을 concatenate해서 최종 유저에 대한 임베딩을 구성한다. 이는 파라미터가 없는 단순연산이기에 연산량이 적어 효율적이다.

GNN을 처음 접해봤는데 기존 MLP와 다른 학습방식이 흥미롭다. 유저와 아이템의 순차적인 High-order Connectivity를 고려하기에 GNN이 매우 적합한 모델이라고 생각된다.

답글 달기
comment-user-thumbnail
2021년 5월 11일

[15기 권오현]
Matrix Factorization은 유저, 아이템 간의 interaction에 대한 내적을 통해 나타내기 때문에 복잡한 구조를 알아내기 어려우며 새로운 유저에 대한 표현이 어렵다는 단점을 지니고 있다. 이에 Deep Neural Network과 결합한 Neural Collaborative Filtering을 제시하였지만 유저와 아이템을 별도로 Embedding하여 벡터로 변환하기 때문에 유저, 아이템간의 상호작용을 나타내기에 부족하다는 문제점을 가지고 있다. 이에 논문 저자들은 Graph이론을 통한 Neural Graph Collaborative Filtering모델을 제시 하였다.

NGCF는 유저, 아이템간의 상호작용에 대하여 Node 와 Edge로 표현한 Graph형태의 데이터를 모델링하기 위한 네트워크인 GNN의 구조를 차용하여 Embedding Propagation Layers를 제안하였다.

Collaborative Signal이 반영되지 않은 유저, 아이템에 대한 Embedding을 한 후, Embedding Propagation layers를 통해 유저, 아이템간의 유저, 아이템간의 상호작용에 대해 학습을 진행한다. Embedding Propagation layers는 First-order propagation, High-order propagation으로 이루어져 있다.

First-order propagation은 Message Construction과 Message Aggregation으로 구성되어 있다. Message Construction은 propagation layer에 전파될 메시지를 생성해내는 과정이다. 그래프 데이터에서 Connected user-item pair를 도출해낼 뿐만 아니라, user-item interaction에 대해서도 Message Embedding이 진행이 된다. 이 user-item interaction 때문에 user와 item의 임베딩 사이의 관련성을 통해 유사한 아이템으로부터 더 많은 메시지를 전달할 수 있게 된다.

Message Aggregation은 Message Construction에서 전달된 메시지 뿐만 아니라, user의 이웃노드이부터 전파된 메시지들을 모아 user embedding을 refine한다. 이러한 방법을 통해 자기 자신의 대한 정보 뿐만 아니라, 이웃 노드로부터 전달된 정보 또한 포함하게 된다.

이러한 Embedding propagation layers를 stacking하여 High-order connectivity 정보를 탐색하고, 이 과정을 통해 user와 item간의 relevance score를 예측할 수 있으며, l-hop 이웃으로부터 전파된 메시지를 받아 유저, 아이템간의 interaction에 대하여 학습을 할 수 있게 된다.

NGCF는 다른 CF 방법론과 비교하여 모든 데이터셋에 대해서 가장 우수한 성능을 보였다.

Graph 형태를 통해 유저와 아이템간의 interaction을 학습시킨다는 개념이 신기 하였으며, 기존 CF보다 고차원적으로 학습시킬 뿐만 아니라 이웃의 정보까지 포함하여 학습시키는 NGCF 구조가 추천시스템에 적합하다고 생각한다.

답글 달기
comment-user-thumbnail
2021년 5월 11일

[15기 류채은]

요약: Embedding Propagation Layer에서 Message Construction과 Message Aggregation과정을 통해 High-order connectivity 그래프를 만든 후 GNN을 적용하고 아웃풋을 하나의 벡터로 표현하여 유저-아이템 선호도를 추정할 수 있는 방안을 제안한 논문이다.

임베딩레이어: 일반적인 협업 필터링 모델처럼 각각의 유저와 아이템에 대해 임베딩하는 레이어로 end-to-end 방식으로 학습된다.

Embedding Propagation Layer: GNN의 메시지 전달 아키텍쳐를 구축하며 Message construction과 Message Aggregation 두 가지 주요 작업으로 구성된다.

High-order Propagation: 임베딩 프로파게이션 레이어가 여러개 쌓여 생성된 것으로 상위 연결 정보 탐색이 가능하다.

라플라스 매트릭스로 Propagation Rule를 구현하면 모든 유저와 아이템에 대한 표현을 효율적으로 동시에 업데이트 할 수 있고 노드 샘플링 절차를 생략할 수 있다.

Model Prediction Layer을 거친 후 Output layer을 통해 유저는 선호도가 가장 높은 아이템을 추천받게 된다.

답글 달기
comment-user-thumbnail
2021년 5월 11일

15기 장아연]
본 논문은 기존의 NCF 모델이 User와 Item의 descriptive feature만을 Embedding에 사용하여 Interaction이 명시적으로 표현되지 않는다는 문제점이 있음. 그리하여 여러 관계를 그래프로 표현하는데 적합한 GNN 알고리즘을 적용해 NGCF Model을 제안함.

NGCF Model은 GNN 구조를 가져와 Node와 Edge로 이루어진 Graph 형태로 User와 Item간의 Interaction을 구현하는 Embedding Propagation Layers를 보인다. 상호작용이 반영되지 않은 User, Item을 Embedding하여 Input으로 사용함. First - order propagation에서 전파될 메세지를 생성하고 이웃 노드에서 전파된 메시지를 모아 refine함. 더 많은 embedding propagation layer를 stacking해 High-order propagation을 진행함. 각 embedding을 concate하여 최종 User에 대한 embedding을 구성하는 방식으로 진행됨. 이를 통해 단순한 연산과 GNN의 효과적인 layer-aggregation을 보임.

NGCF는 high-connectivity를 모델 자체에 적용해 명시적으로 Collarborative Signal 인코딩이 성능을 개선했으며 임베딩 전파 레이어 개수는 3개를 사용하는 것이 적함함. TSNE를 통해 임베딩 공간에서 표현 학습 증진 여부가 확인됨.

답글 달기

[15기 김현지]

Neural Graph Collaborative Filtering은 Neural Collaborative Filtering에 GNN을 활용한 모델이다. 그래프 구조를 사용하여 유저와 아이템 간의 상호작용(Collaborative Signal)을 더욱 풍부하게 표현하였고, 이를 토대로 기존 CF 모델의 한계를 극복하고자 했다.

NGCF는 Embedding Layer와 Embedding Propagation Layers, Prediction Layer, Concatenation Layer로 구성된다. 기존 CF 모델과 다르게 Embedding Propagation Layer를 가지는데, First-order propagation과 High-order propagation으로 이루어진다. First-order propagation에서 먼저, 연결된 유저와 아이템 노드 정보를 이용해 전파될 메시지를 생성해 낸 후 이웃노드의 메시지와 자신의 정보를 모아 u에 대한 임베딩 레이어의 벡터 표현을 도출해낸다. 그리고 High-order propagation에서는 많은 임베딩 전파 레이어를 쌓음으로써 high-order connectivity 정보를 탐색한다. embedding propagation layer를 거쳐 나온 임베딩들을 concatenate함으로써 최종 유저에 대한 임베딩을 구성한다.

NGCF는 그래프 구조를 사용하여 복잡한 collaborative signal을 추천에 활용하였고, 이는 우수한 성능으로 이어졌다.

답글 달기