GNNs과 추천시스템

강하예진(Erica)·2023년 5월 11일
0

Graph Neural Network

목록 보기
9/10

[노드 분류, 엣지 예측, 그래프 분류]가 추천 시스템의 영역에서는 각각 어떻게 활용될 수 있는지,
프로젝트 설계에 기본 뼈대가 될 만한 내용을 정리해둔다.

1. 노드 분류(Node Classification):

사용자의 선호도나 사용자 그룹을 분류하는 데 사용될 수 있다. 예를 들어, 각 사용자 노드가 '고객 세분화(Customer Segmentation)'에 따라 어떤 그룹에 속하는지를 분류하는 작업을 수행할 수 있다. 이렇게 분류된 정보는 추천 시스템에서 매우 중요한 역할을 한다. 특정 그룹에 속한 사용자에게 특정 아이템을 추천하는 등, 더욱 개인화된 추천을 제공하는 데 도움이 될 수 있다.

2. 엣지 예측(Edge Prediction):

사용자와 아이템 간의 관계, 즉 사용자가 아이템에 대해 어떤 반응을 보일지를 예측하는 데 사용될 수 있다. 이는 '링크 예측(Link Prediction)'이라고도 한다. 예를 들어, 특정 사용자가 아직 시청하지 않은 영화들 중에서 어떤 영화를 가장 선호할 것인지(Ranking), 또는 사용자가 특정 아이템을 구매할지 여부를 예측하는 것이 이에 해당한다. 이는 추천 시스템의 핵심 작업 중 하나다.
GNN 모델은 이렇게 랭킹 문제를 해결하는 데에 유용하게 쓰일 수 있다. 다시 말해, 사용자와 아이템 사이의 잠재적인 '연결 가능성'을 계산하고, 이를 바탕으로 사용자에게 아이템을 추천해주는 것이다.

> GNN이 Ranking 문제를 해결하는 방법

사용자, 아이템 그래프에서 사용자 노드와 아이템 노드의 임베딩을 학습하면, 이 임베딩을 사용해 노드 간의 잠재적인 '연결 가능성'을 예측할 수 있다.
예를 들어 사용자 u의 임베딩을 user_emb, 아직 평가하지 않은 아이템 i의 임베딩을 item_emb라고 하자. 그렇다면 u와 i의 잠재적인 연결 가능성은 user_emb와 item_emb의 유사도로 계산할 수 있다. 이때 유사도 계산 방법으로는 내적, 코사인 유사도 등을 사용할 수 있다. 이렇게 계산한 유사도는 사용자 u가 아이템 i를 얼마나 선호할지에 대한 지표가 될 수 있다.

그렇다면 이 임베딩이 어떻게 노드 간의 잠재적인 연결 가능성을 나타낼 수 있다는 걸까?
GNN에서 생성되는 임베딩은 중심 노드와 주변 노드들의 정보를 종합하기에, 이 임베딩은 중심 노드의 그래프 이웃에 대한 정보를 포함한다. 다시 말해, 사용자와 아이템의 임베딩 유사도가 높다는 것은, 유사한 이웃 노드를 가지고 있다는 것이다.

GNN은 임베딩은 그래프의 구조 정보를 반영한다. 이는 노드들이 그래프 내에서 어떻게 연결되어 있는지(연결성), 어떤 이웃을 가지고 있는지(local graph structure)의 정보가 반영된다는 것이다. 사용자 노드와 아이템 노드도, 사용자가 아이템을 평가함으로써 서로 연결되어 있다. 이 연결성이 GNN에서 중요한 역할을 하며, 이 연결성을 통해 사용자 노드와 아이템 노드의 정보가 서로에게 전파되고, 그 결과 노드의 임베딩이 생성된다. 이러한 이유 때문에, 임베딩을 통해 사용자와 아이템 간의 잠지적 연결 가능성을 추정하는 것이 가능해진다.

그리고 GNN에서 연결성은 edge_list로 반영된다. edge_list는 노드 간의 직접적인 연결(즉, 에지)만을 나타내지만, GNN의 학습 과정에서는 여러 레이어를 거치며 이러한 직접적인 연결을 넘어서 이웃의 이웃과 같은 간접적인 연결 정보까지 활용하게 된다. 예를 들어, 한 노드에 대한 임베딩을 계산할 때, GNN은 해당 노드의 이웃 노드들의 정보를 먼저 집계(aggregation)한다. 이후에 여러 레이어를 거치면서, 더 넓은 범위의 이웃 노드들의 정보를 더해가며 임베딩을 업데이트한다. 이 과정을 통해, GNN은 해당 노드가 속한 '이웃' 커뮤니티의 정보를 임베딩에 포함시킨다.

노드 피처에 직접적인 정보를 추가하지 않아도, 그래프의 구조 정보만으로도 GNN이 유의미한 임베딩을 학습하는 것이 가능하다. 물론, 노드 피처에 추가적인 정보를 제공하면 그 정보를 바탕으로 더욱 풍부한 임베딩을 학습할 수 있다.

따라서, GNN을 사용하면 사용자가 아직 평가하지 않은 아이템 중에서 어떤 아이템을 가장 선호할 것인지, 즉 아이템들의 선호도 순위를 예측할 수 있다. 이를 바탕으로 사용자에게 아이템을 추천하는 것이 간으하다.
이처럼 GNN은 임베딩 학습뿐만 아니라, 학습된 임베딩을 바탕으로 Ranking 문제를 해결하는 데에도 활용될 수 있다.

3. 그래프 분류(Graph Classification):

이 부분은 추천 시스템의 전형적인 적용 사례는 아니지만, 특정 상황에서는 유용할 수 있다. 예를 들어, 전체 사용자-아이템 상호작용 그래프를 분석하여 그래프 전체가 특정 기간 동안 어떤 추세를 보일지를 예측하는 것이 가능할 수 있다. 이 정보는 시장 전반의 트렌드를 이해하는 데 도움이 될 수 있다.

profile
Recommend System & BackEnd Engineering

0개의 댓글