Search

4. Sequential Recommendation

4. Sequential recommendation

Sequential recommendation은 유저의 최근 행동 데이터를 학습해 다음으로 볼 아이템을 예측하는 방법이다.
GNN을 통해서 아이템-아이템간 전환을 그래프 edge로 나타낼 수도 있다.

4.1. Graph Construction

Directed graph (Connecting Consecutive Items)

Sequential 한 유저의 행동 데이터의 경우 시간에 따라 유저가 본 아이템들로 표현되어지며, GNN에서는 directed graph으로 이를 표현함
→ 연속된 두 아이템을 directed graph으로 표현
단점은 유저의 sequence가 짧은 경우 edge를 만들기 힘들고, neighbor가 없는 node (아이템) 도 많이 생기게 됨
→ 따라서 GNN으로 user sequential preference를 더 반영하기 위해 다음과 같이 두가지 방향으로 연구됐다.
Item-Item transition 강화
sequence를 추가로 넣어주는 방식
HetGNN : Heterogeneous Graph Neural Network
sequence를 나타내는 graph와 global level item graph를 만들어, sequence graph에 global item graph 에서 얻는 representation vector를 추가하는 방식
global level item graph의 경우 연속적으로 한번이라도 나타났으면 edge로 연결하여 하나의 graph로 만드는 방식
DGTN: Dual-channel Graph Transition Network for Session-based Recommendation
학습하고자 하는 sequence가 있을 때 해당 sequence의 아이템들을 포함하고 있는 graph 상의 다른 sequence를 neighbor session으로 가져옵니다.
Adjust current sequence graph
sequence graph를 변형하는 방식으로 새로운 node를 추가하거나 edge를 추가함
MA-GNN : Metapath Aggregated Graph Neural Network for Heterogeneous Graph Embedding
3개 node로 이루어진 metapath를 뽑아내서 각각 새로운 node로 aggregate한다.
종류가 다른 node들로 이루어진 meta-graph에서 node embedding을 학습하는 방법이다.
meta-path?
SGNN-HH : Star Graph Neural Networks for Session-based Recommendation
star node라는 모든 sequence item과 연결되어 있는 가상의 node를 만듦
연속된 sequence 뿐만아니라 전체 sequence를 반영하고자 함

4.2 Information propagation

Transition 정보를 학습하기 위해 여러가지 방법이 사용된다.
GGNN (Gated Graph Neural Network)
많이 쓰이지만 neighbor 들간 가중치가 동일하다는 한계가 있다.
Attention
node aggregate 할 때 attention mechanism을 사용
GCN
인접해 있는 node 들을 이용해 node aggregate을 진행함
sequential recommendation에서는 순서를 고려해야 하기 때문에 GCN은 잘 안쓰이는 것 같음

4.3 Sequential preference

일반적인 GNN의 경우 유저의 긴 sequence를 잘 반영하지 못한다는 단점이 있다.
따라서 전체 sequence를 나타내는 global preference (or sequential preference) 를 만들어 긴 sequence를 반영하면 성능을 높일 수 있다.
SGNN-HH 처럼 마지막 아이템에 대한 representation vector (local preference) 와 전체 아이템에 대한 representation vector (global preference)를 더해주는 방식이 가능하다.
global preference를 만드는 방식은 attention mechanism, positional embedding 을 추가하는 방법, GRU 등이 있다.
RNN이나 positional embedding을 추가하는 것보단 attention이 성능이 가장 좋다. (논문들을 비교했을 떄)