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

박상우·2023년 3월 31일
0

부스트캠프

목록 보기
33/53
post-thumbnail

GNN과 RNN을 사용한 추천 시스템

Recommender System with GNN

  • 그래프 신경망

Graph

  • Node와 Edge로 이루어진 자료구조

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 임베딩

전체 구조

  1. 유저 - 아이템 초기 임베딩
  2. high order connectivity를 학습하는 임베딩 레이어
  3. 최종적으로 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
profile
세상아 덤벼라

0개의 댓글