https://arxiv.org/pdf/1811.00855.pdf
0. Abstract
session-based 추천시스템의 문제는 익명 세션을 기반으로한 사용자의 action을 예측하는 것에 초점을 맞춘다는 것이다.
이전 방법들은 session을 sequence로 모델링하고, recommendation을 만들기 위해 사용자의 representation을 추정한다.
이러한 방법이 좋은 결과를 내었음에도 아직 session에서 정확한 user vector를 얻기에는 충분하지 않고, item 사이의 복잡한 transition을 무시한다.
정확한 item embedding을 얻고, item의 복잡한 transition들은 고려하기 위해, 저자는 Session-based Recommendation with Graph Neural Networks, SR-GNN 을 제안한다.
session graph를 기반으로 GNN은 기존 sequential 방법으로 밝혀내기 어려운 item 사이의 복잡한 transition을 포착할 수 있다.
이후 각각의 세션은 attention network를 사용하여 global preference와 해당 session에서의 current interest를 결합한 형태로 represented된다.
1. Introduction
기존 추천시스템의 대부분은 user progile과 past activites가 지속적으로 기록된다고 가정하였다.
하지만 많은 service에서 user identification은 아마 알 수 없을 것이며, 진행중인 session에서의 user behavior history만 사용 가능하다.
따라서 하나의 세션에서 limited behavior를 모델링하고, 이에 따른 recommendation을 만들어 내는 것이 매우 중요하다.
반대로 적절한 user-item interaction에 의존하는 전통적인 recommendation 방법은 이러한 상황에서 정확한 result를 만들어 내는데 어려움을 가지게 된다.
최근 몇년동안 RNN을 추천시스템에 적용하여 좋은 성능을 얻게 되었지만 몇가지 한계가 존재하였는데,
첫번째로 이 방법은 하나의 session 속에서의 적절한 user behavior가 없다면 user representation을 추정하는데 어려움을 겪는다는 것이다.
보통, RNN의 hidden vector는 user represenation으로 여겨지며, 이러한 recommendation은 이 representation에 기반하여 만들어낸다.
하지만 session-based recommendation 시스템에서 session은 대부분 anonymous하고 numerous하다.
또한 session click으로 표시되는 user behavior는 자주 한계를 갖는다.
따라서 각 세션에서 각 user의 representation을 정확하게 추정하기는 어렵다.
두번째로, 이전 연구에서는 item transition의 pattern을 밝혀내는 것이 중요하고, 이느 session-based recommendation에서 local factor로 사용될 수 있지만, 이 방법은 항상 연속된 item 사이의 singleway transitions들을 모델링하고 context(세션 속에서의 다른 item들)에서의 transition을 무시한다.
따라서 거리가 먼 item 사이의 복잡한 transition들은 이 방법에 의해 종종 간과된다.
위 언급된 한계를 극복하기 위해, 저자는 brevity를 위한 세션 기반 추천인 SR-GNN을 제안하여 item 사이에 rich transition을 탐색하고, item의 정확한 latent vector를 만들어 낼 수 있도록 하였다.
Session-based recommendation을 위해 저자는 처음에 historical session sequence로부터 directed graph를 만든다.
session graph에 기반한 GNN은 item의 transition을 포착하고, 이에 대응하는 item embedding vector를 정확하게 만들어낼 수 있다.
정확한 item embedding vector에 기반한 SR-GNN은 더욱 reliable한 session representation을 구축할 수 있고, next-click item도 또한 추론할 수 있다.
먼저, 모든 session sequence는 directed session graph로 모델링되며, 각각의 session sequence는 subgraph로 여겨진다.
그 후, 각각의 session graph는 순차적으로 진행되고, gated GNN을 통해 각 graph에 관련된 모든 node에 대한 latent vector를 얻을 수 있다.
그 다음 저자는 각 session을 global preference와 user의 current interest의 결합으로 나타내는데, 여기서 이러한 global 또는 local session embedding vector는 모두 node의 latent vector로 구성한다.
최종적으로 각각의 session에 대해 저나는 각 item의 next click 확률을 예측한다.
3. The Proposed Method
Notations
V = {v1,v2,...,vm} : 모든 session에 포함된 모든 unique items들로 구성된 집합
s = [v_(s,1), v_(s,2), ..., v_(s,n)] : anonymous session sequence s ordered by timestamps,
v_(s,i) : session s에 있는 user의 clicked item
session based recommendation의 목표는 다음 click을 예측하는 것으로 session s에서의 v_(s,i+1)을 예측하는 것과 같다.
Constructing Session Graphs
각각의 session sequence s는 directed graph Gs = (Vs , Es ) 로 모델링할 수 있다.
이 session graph에서 각각의 node는 item v_(s,i)로 표현된다.
각각의 edge (v_(s,i-1), v_(s,i))∈ Es 는 session s에서 v_(s,i-1) 이후에 item v_(s,i)을 클릭하는 것을 의미한다.
몇몇의 item들이 sequence 속에서 반복적으로 나타날 수 있기 때문에, 저자는 각 edge를 normalized weighted로 할당하는데, 이는 edge의 occurrence를 edge 시작 노드의 outdegree로 나눈 것으로 계산된다.
저자는 모든 item v ∈ V 을 unified된 embedding space에 embed하고, node vector v은 GNN으로 학습된 item v의 latent vector를 의미한다.
node vector를 기반으로 각각의 session s는 embedding vecotr s로 표현될 수 있으며, 이는 graph에서 사용된 node vector로 구성된다.
Learning Item Embeddings on Session Graphs
GNN을 이용하여 어떻게 node의 latent vector를 얻을 수 있는지를 설명한다.
우선 GNN은 session based recommendation과 잘 맞다고 할 수 있는데, 이는 GNN이 rich node connections을 고려한 session graph의 feature를 automatically하게 추출할 수 있기 때문이다.
다음의 과정을 통해 session graph에서의 node vector를 학습할 수 있다.
t-1 시점의 node vector를 이용하여 t 시점의 node vector를 얻게 되는 과정이라 생각하면 되는데,
A_s는 Aout_s와 Ain_s 두개의 adjacency metrices의 concatenation으로 정의된다. 아래 그림을 통해 설명할 수 있다.
Generating Session Embeddings
이전 session based recommendation 방법은 항상 각각의 session에는 user에 대한 distinct latent representation이 존재한다고 가정하였다.
하지만 SR-GNN에서는 vector에 대해 어떠한 가정도 하지 않는다.
대신 한 session은 그 session을 포함하고 있는 node에 의해 직접적으로 표현된다.
user의 다음 click을 더욱 좋게 예측하기 위해, 저자는 long-term preference와 session의 현재 interest를 결합하는 방법을 개발하였고, 이렇게 결합된 embedding을 session embedding으로 사용한다.
모든 session graph를 gated GNN에 집어넣고 나면, 모든 node에 대한 vector를 얻을 수 있다.
각 session을 embedding vector s로 표현하기 위해, session s의 local embedding s1을 이용하기로 하였다.
local embedding은 가장 마지막에 clicked된 item인 v_(s,n)벡터 v_n를 이용하여 나타낼 수 있다. i.e. s_l = v_n
그 후 모든 vector를 결합하여 session graph Gs의 global embedding s_g를 이용한다.
이러한 embedding이 가진 information이 서로다른 priority level을 가지고 있을 수 있으므로, 저자는 soft-attention mechanism을 가져와 global session preference를 더욱 잘 표현하도록 하였다.
마지막으로 local embedding과 global embedding vector를 결합한 linear transformation을 이용해 hybrid embeddings s_h를 계산할 수 있다.
Making Recommendation and Model Training
각 session의 embedding을 얻은 후에는 각 후보 item embedding vector인 vi와 session representation s_h를 곱셈함으로써 vi에 대한 score zi를 구할 수 있다.
model의 output y는 아래와 같이 구할 수 있다.
loss function은 다음과 같다.
이때 y는 ground truth item에 대한 one-hot vector이다.
4. Results
댓글