RecSys with GNN

김동환·2023년 4월 7일
0

AI_tech_5기

목록 보기
15/18

Graph

  • 관계, 상호작용과 같은 추상적인 개념을 다루기에 적합
  • Non-Euclidean Space의 표현 및 학습이 가능

Naive Graph

  • 이웃 노드들 간의 정보를 이용 -> 특정 노드를 잘 represent하는 벡터를 찾는 것이 GNN의 Goal
    • 노드가 많아질수록 연산량이 많아지고 노드의 순서가 바뀌면 의미가 달라지는 문제가 존재

GCN

  • local connectivity, shared weights, multi-layer를 이용
    • convolution 효과 -> 연산량 줄이고 깊은 네트워크 가능

NGCF

  • CF의 key points = user-item embedding, interaction
  • 유저-아이템의 상호작용을 임베딩 단계에서 접근하지 못함
  • 따라서 interaction이 임데딩 단에서부터 학습이 될 수 있도록 접근한 것이 NGCF

Graph Embedding

  • interaction graph의 형태로 collaborative signal을 인코딩한 후
  • GNN을 통해 High-order Connectivity를 임베딩

임베딩 레이어(Embedding Layer)

  • 기존 MF나 NCF의 경우는 이러한 Embedding이 바로 interaction layer에 들어감
  • NGCF에서는 user-item interaction이 GNN상에서 propagate하면서 Embedding값이 전달(Collaborative Signal을 명시적으로 임베딩 레이어에서 주입)

임베딩 전파 레이어 – First-order Propagation

Message Construction

  • 유저-아이템의 collaborative signal을 담을 'message'를 구성하고 결합하는 단계
  • 유저 임베딩과 아이템 임베딩이 서로 관련성이 있을수록 메세지가 전달하는 바도 증가
  • 이웃 노드의 개수로 스케일링

Message Aggregation

  • uu의 이웃 노드로부터 전파된 message들을 결합하면 1-hop 전파를 통한 임베딩완료

임베딩 전파 레이어 – Higher-order Propagation

  • ll 개의 임베딩 전파 레이어를 쌓으면, 유저 노드는 ll-차 이웃으로부터 전파된 메시지 이용 가능
  • u1에 대해서 i4의 message는 위의 그림과 같고 i4 -> u2 -> i2 -> u1에 대한 user-item interaction을 다음과 같이 전달되는 것을 볼 수 있다.
  • 층별 propogation 규칙은 다음과 같은 matrix다.
  • ELE_L
    • LL 단계 embedding propagation이후 얻어진 user와 item의 embedding을 concat한 결과
  • LL
    • 은 라플라시안 행렬로 user-item graph를 아래의 식으로 나타낸 것

Model Prediction

  • L layer를 거친 이후에 user와 item에 대한 multiple representation이 얻어진다.
  • 다만, 각 층마다 연결이 달라 강조되는 message가 달라 final embedding을 위해서는 각 layer를 concat한다.
  • 이후에는 내적을 통해서 output을 계산

Light GCN

  • feature transformation이나 nonlinear activation를 제거하고 가중합으로 GCN 적용
  • k-층으로 된 레이어의 임베딩을 각각 �#배 하여 가중합으로 최종 임베딩 벡터 계산
profile
AI Engineer

0개의 댓글