[부스트캠프 AI Tech 5기] Recommender System with Deep Learning (2)

GNN과 RNN을 사용한 추천 시스템
Recommender System with GNN
Graph

Why Graph?
- 관계 상호작용과 같은 추상적인 개념을 다루기에 적합
- Non-Euclidean Space의 표현 및 학습이 가능
그래프 신경망 (GNN)

- 그래프 데이터에 적용 가능한 신경망
- Naive한 접근으로는 그래프를 인접 행렬로 변환해 예측하는 것
- 차원이 커질 수록 Sparse하며, 순서에 관계가 없는데 순서가 생겨 의미가 불분명
Graph Convolution Network (GCN)

- 이미지의 컨볼루션과 유사
- shared weights, multi - layer를 이용해 연산량을 줄이며 깊은 네트워크로 관계 특징 추출 가능
- 보통 GCN을 사용
Neural Graph Collaborative Filtering
- 유저와 아이템 상호작용(Collaborative Signal)을 GNN으로 임베딩 과정에서 인코딩하는 접근법을 제시
등장 배경

- CF 모델은 유저와 아이템 임베딩, 상호작용 모델링이 중요
- 신경망을 적용한 기존 CF 모델들은 유저 - 아이템간의 상호작용을 임베딩 단계에서 접근하지 못함
- sub-optimal한 임베딩이기에 부정확한 추천의 원인이 될 수 있음
- 유저 - 아이템 상호작용이 임베딩 단에서 학습될 수 있도록 접근
- 단순히 유저가 소비한 아이템이 아닌, connectivity를 통해 high - order 임베딩
전체 구조

- 유저 - 아이템 초기 임베딩
- high order connectivity를 학습하는 임베딩 레이어
- 최종적으로 predict
임베딩 레이어

임베딩 전파 레이어

- 기존 유저의 임베딩인 ei에 weight와 다른 유저 임베딩인 eu를 내적하고 normalize한 Message mu<-i 를 구성 후 message를 결합해 새로운 임베딩 eu(1) 생성

- path를 2개, 3개 해서 eu(2), eu(3)를 쭉쭉 생성
선호도 예측 레이어

- embedding layer를 모두 concat해 prediction
결과
- MF 보다 빠르게 수렴 및 높은 Recall
- 임베딩 전파 레이어를 잘 이해하는 것이 중요
LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation
아이디어

- 이웃 노드의 임베딩을 가중합 하는 것이 convolution의 전부로, 학습 파라미터와 연산량이 감소
- Layer의 깊이가 깊어질 수록 강도가 약해질 것이라는 아이디어를 적용해 모델을 단순화
vs NGCF
임베딩 전파 레이어

- 임베딩 전파 레이어에 어떤 파라미터도 존재하지 않음
- self connection도 존재하지 않음
Prediction 레이어

- concat이 아닌, 가중합으로 정보를 압축
- 가중치는 (K+1)^-1 인데, 이는 깊이가 깊어질 수록 강도가 약해질 것이라는 아이디어에서 채용한 것
결과
- 손실 함수와 성능 모두 NGCF보다 뛰어남
- Generalization Power가 큼
- 현업에서도 활발하게 사용 됨
Recommender System with RNN
Recurrent Neural Network
- 시퀀스 데이터의 처리와 이해에 좋은 성능을 보이는 신경망
- LSTM, GRU 등
Gated Recurrent Unit (GRU)

- LSTM에서 출력 게이트를 생략해 성능 차이가 없으면서 가벼운 모델
Session Based Recommendation
Session
- 유저가 서비스를 이용하는 동안의 행동을 기록한 데이터
GRU4Rec

- Session이라는 시퀀스를 GRU 레이어에 입력하여 바로 다음에 올 확률이 높은 아이템을 예측
Session Parallel
- 사용자마다 세션의 길이가 다름
- 길이가 짧은 세션이 단독 사용되어 idle하지 않도록, 세션을 병렬적으로 구성하여 미니 배치 학습
Sampling on the output
- 아이템의 수가 많기에 모든 후보 아이템의 확률을 계산하기 어려움
- 사용자가 상호작용하지 않은 아이템은 존재 자체를 모르는 것인가? 아니면 관심이 없는 것인가?
- 인기가 높은데 상호작용이 없었다면 관심이 없다고 가정
- 인기에 기반한 Negative Sampling