5. Graph Neural Network for Recommend System

2024. 1. 5. 10:36NAVER AI Tech/Deep Knowledge Tracing

Graph Neural Network(GNN) 은 크게 Spectral / Spatial 분야로 나눌 수 있다.

    - Graph Convolution Network(GCN)이 이 둘을 이어주는 아주 중요한 역할을 한 모델임.

    - GCN 등장 이후 Spatial filtering 위주의 연구가 주를 이루게 됨.

 

Graph를 표현하기 위한 데이터는 Node feature matrix, Adjacency matrix, Degree matrix, Laplacian matrix가 있다.

    - input으로는 Node feature matrix, Laplacian matrix(D - A)

    - task에 따라 Graph-level, Edge-level, Node-level 작업 수행.

 

 

GCN

convolution on Graph

    - Adj에 이웃노드와의 연결성만 표현되어 matrix 연산 시 본인의 node faeture를 고려하기 위해 self-loop를 포함.

    - Adj = Adj + I(Identity matrix)

    - Adj는 degree 측면에서 정규화되어 있지 않아 연산 시 feature vector 크기가 일정하지 않다. 따라서 Laplacian matrix 연산시 정규화 과정을 포함.

Adj matrix(N,N), Node feature matrix(N,h), weight matrix(h, output dim)

 

    - input으로 Adj 가 제공되어 그래프 구조적 정보가 반영되었기 때문에 spectral 특성이 반영되었다고 볼 수 있음.

    - convolution 연산을 통해 이웃 노드와의 관계를 고려했기 때문에 spatial 특성이 반영되었다고 볼 수 있음

    - 따라서 새로운 노드가 등장시 전체 그래프와의 연결성을 고려하기 때문에 Transductive하다고 볼 수 있음.

**주변 이웃 정보를 Aggregate(=Message passing) 하여 Combine(=Update)한다고 표현한다.

 

 

GAT 

    - 이웃 노드와의 연결성을 단순 average가 아닌 가중합으로 구하겠다.

    - 실험적으로 4 hop 이상 이웃정보를 참고하진 않는다.

    - Random Walk(=Layer-wise Edge Dropout) : layer마다 edge를 다르게 설정하겠다.

왼쪽그림 x축(# of convolution layers) y축(Accuracy)

 

 

NGCF(Nerual Graph Collaborative Filtering)

    - Graph types : user-item matrix(bipartite graph), relationship between users, knowledge graph about items + user behavior sequence graph

    - user-item matrix를 high-order connectivity로 표현.

user-item의 bipartite graph는 high-order connectivity라고 볼 수 있다.
빨간색 부분 : item과 user간의 interaction을 element-wise multiply를 통해 포함함.
총 3단계로 update 진행
목표 : u1과 i4의 interaction 발생여부 예측.

 

 

LightGCN : NGCF 그게 최선이야?

차이점1 : aggregate시 weight 없음, 차이점2: 마지막 concat없애고 sum 진행

 

UltraGCN

LightGCN. 수렴관점에서 보자. 굳이 h-hop 해야할까?
수렴을 가정하고 학습이 아닌 수식으로 때려버렸더니 성능도 좋아지고 학습시간도 대폭감소!

 

 

**LightGCN이 sequence data에서는 약한 모습을 보이기도 하기 때문에 현업에서는 LSTM과 함께 사용한다.

 

GNN을 통과한 user embedding, item embedding을 LSTM의 input으로 사용하겠다는 관점