📑Paper Review

[paper review] Session-based Recommendation with Graph Neural Networks

date
Jul 14, 2023
slug
session-based-recommendation
author
status
Public
tags
DeepLearning
paper
summary
type
Post
thumbnail
캡처.PNG
category
📑Paper Review
updatedAt
Sep 6, 2024 02:25 PM

1. Introduction

session-based recommendation은 한 user의 record된 past activities를 바탕으로 다음 스텝에서 무얼을 추천할지 예측하는 추천 기법이다. 지금까지의 추천 기법으로는 session을 하나의 sequence로 보아 sequence-based algorithm (LSTM 등) 을 사용한 방법이 시도되어 왔다. 기존에 markov chain을 이용한 방법도 있었고, RNN을 이용한 방법도 있었다고 한다. 그러나 이런 방법들은 하나하나의 시퀀스들에 집중했기 때문에 distant item 들에 대한 복잡한 transition을 고려하지 못했다고 한다.
이 논문에서는 복수의 session sequence들을 directed session graph로 표현하여 session들 간의 상관관계를 잡아내며 모델링하는 방법을 제안하였다. 모델 도식은 다음과 같다.
notion image
모든 노드로 구성된 그래프 G에 대해 각각의 세션은 subgraph라고 볼 수 있다. session sequence대로 다음 스텝의 item을 가리키는 subgraph가 구성된다. 따라서 전체 graph는 복잡한 direct 관계를 가질 수 있다.

2. Notations

각 session에 대해, session의 각각의 item은 다음과 같은 set으로 포함될 수 있다.
임의의 session s는 다음과 같은 item의 list로 표현될 수 있다.(timestamp 기준으로 정렬)
n개의 timestep에 대해 session s는 위의 아이템들을 순차적으로 가진다고 볼 수 있다. 또한 session-based recommendation의 목표는 다음 click(추천)을 예측하는 것이다. sequence label로 본다면
을 예측하는 것이다.

3. Constructing Session Graphs

각각의 session sequence s는 위에서 말했듯이 다음과 같은 유향 그래프로 표현할 수 있다.
V_s는 session sequence에 포함되는 item set이고, E_s는 timestamp의 ordering에 따라 sequence s 내에서 현재 item에서 다음 item으로 가는 edge set이다. 이는 recommendation에서 user click으로 볼 수 있다. 이 모델에서는 모든 노드에 대해 d차원의 동일한 embedding space를 둔다. 이 node embedding vector로 session의 representation 또한 d-dimensional로 표현할 수 있고, 전체 그래프 또한 그렇다.

4. Learning Item Embeddings on Session Graphs

다음은 embedding을 위한 node aggregating function을 정의할 차례이다. 여기서는 session graph에 대한 rich node connection을 고려하여 다음과 같은 gate를 정의하였다.
위는 학습가능한 connection matrix를 이용하여 node i에 대하여 session s 내의 노드가 어떻게 communicate하는지 계산하는 layer이다. 여기서 matrix A는 정의에 따라 다를 수 있는데, 본 논문의 저자는 A_out matrix와 A_in matrix를 더한 다음과 같은 matrix를 제시하였다.
notion image
여기에서 A의 shape는 (n*2n)인데, 만약 계산의 target node가 2라면 2번째 row의 (1*2n) 벡터가 A_{s,i}로 들어가게 된다. 그 모양에 따라 list of node vector v^{t-1}도 2n*d (d는 node feature dimension) 확장된다.
다음은 update gate와 reset gate이다.
reset gate는 아래의 formula에 적용되어 candidate state v_tilde{i,t}를 뽑아낸다.
final node vector는 previous hidden state와 candidate state의 combination으로 구성된다. z_{s,i}^t는 얼마나 업데이트를 진행할지 결정하는 update gate 역할을 수행한다.
위의 결과로 d-dimensional한 node embedding v를 session의 각 item마다 얻을 수 있게 된다.

5. Generating Session Embeddings

user의 next click을 더 잘 예측하기 위해서 session s의 global embedding을 뽑아야 하는데, 이 논문에서는 local, global 두 개의 방법을 제시한다. session s의 local embedding은 단순히 세션의 마지막 item의 vector를 사용하면 된다. 하지만 local embedding은 세션의 전체 정보를 온전히 고려하지 못할 가능성이 있기 때문에, 다음과 같이 각각의 session item에 대해 attention score를 계산하여 가중합 하는 방식으로 global session embedding을 얻을 수 있다.
trainable parameter q와 W1, W2는 item embedding vector의 가중치를 조절한다. 마지막으로 다음의 formula로 local, global session embedding을 concat하여 session embedding을 얻는다.
W3의 shape는 (d x 2d) 이다. 최종적인 session embedding은 d-dimensional한 vector를 얻게 된다.

6. Making Recommendation

전체 graph의 각 node i 에 session representation s_h를 내적함으로써 score z를 얻을 수 있다.
score vector z에 softmax 함수를 취하면 model 의 output vector y를 얻는다.
loss function은 cross entropy이다.