본문 바로가기
스터디/인공지능, 딥러닝, 머신러닝

[CS224W] GNN for RecSys (1) - Task and Evaluation

by 궁금한 준이 2024. 11. 6.
728x90
반응형

GNN for Recommender Systems: Task and Evaluation

Preliminary

추천시스템은 기본적으로 이분그래프(bipartite graph)의 구조를 갖는다.

이분 그래프는 2개의 노드 종류를 갖는다: users, items

이분 그래프의 edge는 user와 item을 연결한다.

user-item의 상호작용(interaction)일 수도 있고, timestamp와 연관지을 수도 있다.

Bipartite Graph (CS224W)

추천시스템의 목적은 다음과 같다.

과거의 user-item 상호작용이 주어질 때, 새로운 user-item 상호작용을 예측한다.

(보통 기존 user가 new item과 상호작용을 할지 말지)

이를 link prediction으로 환원하여 생각할 수 있다.

user와 item의 집합을 $U,\ V$라 하자.

$u \in U$, $v \in V$일 때, 우리는 실수값을 갖는 score function $f(u, v)$를 구현해야한다.

 

Modern RecSys

현대 추천시스템은 데이터가 너무 많기 때문에 모든 $u-v$ pair를 구할 수 없다.

보통 2-stage process로 추천시스템을 구현한다.

  1. 후보쌍 생성 (cheap, fast) 
  2. 랭킹 계산 (slow, accurate)

 

각 user마다 $K$개의 item을 추천해준다고 하자.

추천이 효과적이려면 $K$는 전체 item 개수보다 현저히 적어야 한다.

일반적으로 $10 \le K \le 100$ 이다. (item 개수가 수십억 단위)

이렇게 top-K 추천했을 때, 실제로 얼마나 positive item을 포함하는지가 목표이다.

(positive item: 미래에 실제 user가 상호작용할 item)

이러한 평가지표를 Recall@K라고 한다.

 

※ Precision@K, Recall@K, F1@K, MAP, NDCG 등 여러가지 metric을 사용할 수 있다.

Recall@K

각 user $u$에 대하여 $P_u$와 $R_u$를 구해보자.

$P_u$: user $u$가 미래에 상호작용할 positive item의 집합

$R_u$: model이 $u$에게 추천해주는 item 집합. top-K 추천시스템이라면 $|R_u|=K$ 이다.

이때, Recall@K는 다음과 같이 계산한다.

\[ \text{Recall@}K = \cfrac{P_u \cap R_u}{|P_u|} \]

Recall@K (CS224W)

 

final Recall@K는 모든 user의 평균값을 이용한다.

 

GNN은 user와 item(product)를 embedding한다.

LLM은 textify한 후에 embedding을 한다.

"Do Large Language Models make accurate personalized recommendations?"에 따르면, GNN이 LLM보다 개인화 추천시스템에 더 정확하다고 한다.

※ LLM과 GNN 모두 연구가 활발하므로 앞으로 내용이 바뀔지로 모른다.

 

 

728x90
반응형