Search

Heterogeneous Global Graph Neural Networks for Personalized Session-based Recommendation (HG-GNN)

논문 소개
WSDM 2022 논문, cite 32

Abstract

기존의 많은 session based recommendation 연구들은 item-item transition에 집중했고, user preference를 만들 때 user historical session을 고려하지 않고 추천을 하는 문제가 있다. (user의 전체적인 선호도를 반영하지 못한다는 뜻)
이 논문에서 제시하는 Heterogeneous Global Graph Neural Network (HG-GNN)에서는 item transition, user-item interactions, global co-occurrence item 등의 정보를 사용하여 유저의 선호를 파악한다. (다 쓰겠다는 소리)
추가적으로 Personalized Session Encoder를 통해서 global user preference (전체적인 유저 선호도)와 temporal user interest (최근 유저 선호도)를 둘 다 반영하는 시도를 했다.

Introduction

기존 방식의 문제점
1.
위의 그림처럼 비슷한 session을 가지는 유저 (아이폰, 아이폰 케이스, 에어팟) 들에게는 똑같은 추천을 하게 된다. 하지만 유저의 session이 비슷하더라도 유저의 선호도는 다를 수 있다.
2.
다른 유저의 item-item transition은 고려하고 있지 않는다. → 단일 session에 대한 유저 preference를 만들 때 정보가 부족함.

Related Works

생략

Preliminary

V={v1,v2,...,vV}V = \{v_1, v_2, ... , v_{|V|} \} → 아이템
U={u1,u2,...,uU}U = \{ u_1, u_2, ..., u_{|U|} \} → 유저
Sui={Sui,1,Sui,2,...,Sui,n}S_{u_i}=\{S_{u_{i,1}}, S_{u_{i, 2}}, ..., S_{u_{i, n}}\}uju_j의 모든 history 정보
Sui,jS_{u_{i, j}}uiu_ijj 번째 session

Methodology

user-item edge를 추가해 user preference를 잡고자 함
item-item transition 이 있는 경우 edge로 만들었고, global co-occurence를 바탕으로도 비슷한 item pair를 연결하였다. (global co-occurence?)
1.
Heterogeneous Global Graph Construction
1.1. item-to-item
transition의 종류에는 하나의 session에서 인접하여 나타난 아이템 쌍을 의미할 수도 있고, 같은 session에서 반복적으로 같이 등장한 아이템 쌍을 의미하기도 한다.
Session-based Recommendation with Graph Neural Networks
인접한 item transition relation은 다른 session based GNN 논문의 방식을 따라했다함.
(vi,vj,rin)(v_i, v_j, r_{in}) 또는 (vi,vj,rout)(v_i, v_j, r_{out})으로 표현되며 각 아이템에 대해서 top-S 개의 relation score
r={rin,rout}r = \{r_{in}, r_{out}\}를 가지는 edge 들만 선택한다.
→ 만약 특정 아이템 (인기 상품) 이 다른 아이템과 연결된게 많다면 해당 아이템은 relation score가 낮게 나올 것이다. (1/neightbor 수로 계산)
→ 인기 상품들이 추천되는 것이 아니라 실제로 강하게 relation이 있는 아이템 쌍만을 반영할 수 있지 않을까 생각이 들었음
co-occurrence item-item pair의 경우 특정 아이템 viv_i 가 있을 때 해당 아이템과 가장 자주 같이 등장하는 top-k 아이템들을 고르는 것이다. (vi,vj,rsimilar)(v_i, v_j, r_{similar})
N(vi)N(v_i)의 경우 viv_i가 있는 session의 set을 의미한다.
이 점수를 통해 top-K의 neighbor node를 고른다.
또한 첫번째로 구하는 adjacent relation과 co-occurence relation이 겹치는 경우가 발생한다.
top-K 아이템(co-occurence relation)과 adjacent relation으로 얻는 edge를 비교하여 adjacent relation으로 얻은 아이템 수만큼 top-K 아이템(co-occurence relation item)을 자른다.
similar relation에 노이즈가 너무 많이 들어가는 것을 방지하기 위함
1.2. item-to-user
item-user relation의 경우 user의 long-term preference를 나타내기 위해 필요하다.
user item interaction이 있는 경우 (vj,ui,rinteract)(v_j, u_i, r_{interact}) 또는 (ui,vj,rinteractedby)(u_i, v_j, r_{interacted-by})로 edge를 나타낸다.
2.
Heterogeneous Global Graph Neural network
유저 벡터와 아이템 벡터는 똑같이 d 차원의 embedding vector로 초기화
qui(0)q_{u_i}^{(0)}, pvj(0)p_{v_j}^{(0)} → 초기값
qui(k)q_{u_i}^{(k)}, pvj(k)p_{v_j}^{(k)} → k layer 이후 embedding vector
아이템의 경우 가능한 relation은 rin,rout,rsimilar,rur_{in}, r_{out}, r_{similar}, r_{u} 등이 있다. 각각의 relation을 rxr_x로 두고 다음과 같이 neighbor aggregation이 가능하다.
pvi,rx(k+1)p_{v_{i},r_{x}}^{(k+1)}은 k+1 번째 layer에서 아이템 viv_irxr_x relation을 가지고 있는 neighbor node들을 aggregate 한 결과라고 보면 된다.
en(k)e_{n}^{(k)}pn(k)p_{n}^{(k)} 또는 qn(k)q_{n}^{(k)}로 neighbor node들의 representation vector를 나타낸다.
최종적인 pvi(k+1)p_{v_i}^{(k+1)}은 위에서 구한 다양한 relation의 representation vector를 합친다. sum, stack, mean 중에서 모든 정보를 골고루 반영하기 위해 mean을 사용하였다고 한다.
유저 representation vector의 경우 rvr_v밖에 없으므로 위와 같이 합쳐진다.
최종 representation vector는 위와 같이 표현되며, 실험적으로 ak=1K+1a_k = \frac{1}{K+1}의 uniform 값을 사용한다고 한다. (lightgcn과 똑같은 결과)
3.
Personalized Session Encoder
추천을 할 때 current session 도 중요하지만 long-term user preference도 중요하다. General Preference Learning 모듈과 Current Preference Learning 모듈을 만들었음
Current Preference Learning
user의 session이 {v1s,v2s,...,vls}\{v_1^s, v_2^s, ..., v_l^s\} 일 때, positional embedding을 더한 item representation을 soft attention에 통과
psp_s^{'} 는 global representation으로전체 아이템에 representation에 대한 평균, 전반적인 representation 정보를 학습하기 위해 사용한다.
ϵi\epsilon_i 를 각각의 아이템마다 구하게 되는데, 이때 각 아이템의 representation과 global represenation을 사용한다.
current preference는 각각의 representation에 위에서 구한 soft-attention 가중치를 곱하게 된다.
General Preference Learning
general preference embedding을 구할 때는 위처럼 모든 아이템들을 평균내서 구한 global representation이 아니라 HGNN을 통해서 얻어낸 user representation을 이용한다.
계산 방식은 동일함
두 preference는 weighted sum되어 하나의 preference representation으로 나타내어 진다.
4.
Prediction and Training
위에서 구한 representation vector와 item embedding을 각각 내적하여 해당 아이템을 다음에 클릭할 확률로 나타냄

Experiments

사용한 데이터셋
모델간 비교
몇개의 데이터셋에서는 성능이 살짝 떨어지지만 대체적으로는 가장 높다.
생각보다 엄청 좋진 않음,,,
Ablation Study
HGNN을 완전히 없앤 경우, CPL (current preference) 모듈을 없앤경우, GPL (general preference learning)을 없앤 경우 위의 결과와 같다.
생각보다 GPL은 영향이 적고 상대적으로 CPL을 뺐을 때 영향이 큰 것 같음
여러가지 종류의 relation edge들을 제거했을 때 결과이다.
→ 생각했던 것보다 영향이 적음, 심지어 similar edge를 제거하는 경우 MRR이 오른다 …?
→ MRR이 오른다는 것은 정답 아이템을 상위권으로 잘 올린다는 것인데, HG-GNN을 적용하면 candidate item은 잘 뽑지만 ranking은 잘하지 못한다는 생각이 들었음
각각 adjacent edge sampling size, similar item edge top-K 에 대한 실험이다.

결론

다양한 방식으로 그래프 edge를 만들어서 정보를 넣으려고 한 것 같다. 하지만, 너무 많은 정보를 넣어서 오히려 노이즈도 많이 학습되어 성능이 생각보다 뛰어나지 않은 건가 생각이 들었다.