추천시스템 (6) GNN기반 추천 시스템 조사 - 논문 리뷰: Graph neural networks in recommender systems: a survey

이영락·2024년 10월 15일
0

인공지능 공부

목록 보기
30/33

🏖️ 0. 개요

유튜브, 넷플릭스, 스포티파이 같은 대규모 온라인 플랫폼은 사용자에게 방대한 항목(제품, 영화, 음악 등)을 제공하며, 사용자들이 흥미로운 항목을 탐색하는 것을 돕기 위해 추천 시스템을 사용한다. 추천 시스템은 사용자가 이전에 상호작용한 데이터(예: 클릭, 시청, 구매 등)를 바탕으로, 미래에 선호할 가능성이 있는 항목을 예측하여 추천한다.

추천 시스템은 여러 가지 방법론을 거쳐 발전해 왔다:
1. 이웃 기반 방법: 유사한 사용자들이 선호하는 항목을 추천하는 방식.
2. 표현 학습 기반: 딥러닝을 통해 사용자와 항목 간의 비선형적 관계를 학습하여 더 정교한 추천을 제공하는 방식.

최근에는 딥러닝 기반의 그래프 신경망(Graph Neural Networks, GNN)이 추천 시스템에서 큰 주목을 받고 있다. 대부분의 추천 데이터는 그래프 구조로 표현될 수 있다. 예를 들어, 사용자와 아이템 간의 관계를 이분 그래프로 나타내어, GNN을 통해 이들 간의 복잡한 상호작용을 학습할 수 있다.


🏖️ 1. 추천 시스템과 그래프 신경망(GNN)

1.1 추천 시스템

추천 시스템은 주로 두 가지 방식으로 작동한다:
1. 이웃 기반 협업 필터링: 사용자와 비슷한 취향을 가진 다른 사용자의 행동을 바탕으로 추천을 생성하는 방법이다.

  • 예시: 사용자 A가 특정 영화를 좋아했다면, 사용자 B도 그 영화를 좋아할 가능성이 높다는 가정 하에, 사용자 A에게 해당 영화를 추천한다.
  1. 딥러닝 기반 표현 학습: 딥러닝을 이용해 사용자의 복잡한 행동 패턴을 학습한다. 이 방식은 사용자가 이전에 상호작용한 항목들의 임베딩을 학습하고, 이 벡터를 사용해 새로운 항목을 추천하는 방식이다.
    • 순차적 추천: 사용자의 시간 순서에 따른 상호작용을 분석하여 다음에 어떤 항목을 선호할지를 예측하는 방법.
    • 세션 기반 추천: 특정 시간 동안의 행동을 세션으로 나눠 개인화된 추천을 제공하는 방식이다. 예를 들어, 쇼핑 사이트에서 한 세션 동안 여러 상품을 탐색한 후 최종적으로 어떤 상품을 구매했는지 학습하여 이후 세션에서 비슷한 추천을 제공한다.

1.2 그래프 신경망(GNN)

그래프 신경망(GNN)은 그래프 구조 데이터를 처리하는 딥러닝 모델이다. 추천 시스템에서 노드(Node)는 사용자를, 엣지(Edge)는 사용자와 아이템 간의 상호작용을 나타낸다.

  • 노드(Node): 그래프 내에서 개별 객체를 나타낸다. 예를 들어, 사용자나 아이템이 노드로 표현될 수 있다.
  • 엣지(Edge): 두 노드 간의 관계를 나타낸다. 예를 들어, 사용자가 특정 영화를 시청한 이력이 있으면 해당 사용자는 영화와 연결된 엣지를 갖는다.

GNN의 핵심 아이디어는 각 노드가 이웃 노드로부터 정보를 집계하고, 이를 바탕으로 노드의 임베딩을 학습하여 이를 이용해 예측 작업을 수행하는 것이다. 이러한 방식은 사용자의 복잡한 상호작용을 더욱 세밀하게 분석할 수 있게 한다.


🏖️ 2. GNN을 기반으로 한 추천 시스템

GNN을 추천 시스템에 활용하면, 사용자-아이템 간의 상호작용을 그래프로 표현하여 이 관계를 더 정확하게 학습할 수 있다. 이는 사용자와 아이템 간의 상호작용뿐만 아니라, 이웃 관계와 같은 구조적 특성도 학습할 수 있다는 장점이 있다.

2.1 사용자-아이템 협업 필터링

사용자-아이템 협업 필터링은 사용자와 아이템 간의 상호작용을 기반으로 추천하는 방법이다. GNN을 통해 사용자가 상호작용한 아이템뿐만 아니라 그 이웃 노드의 정보까지 활용하여 더 풍부한 추천을 제공할 수 있다.

1. 그래프 구성 (Graph Construction)

그래프를 구성할 때는 사용자-아이템 이분법 그래프를 사용한다. 이 그래프에서는 사용자와 아이템이 각각 노드로 표현되며, 두 노드 간의 상호작용이 엣지로 연결된다.

  • 엣지 추가: 사용자의 행동 패턴을 보다 잘 반영하기 위해 상호작용이 없는 경우에도 가상의 엣지를 추가하여 그래프를 보강할 수 있다. 예를 들어, 유사한 항목을 클릭한 두 사용자 간의 간접적인 상호작용을 추가할 수 있다.
  • 샘플링 전략: 대규모 그래프에서는 모든 노드를 학습하는 것이 비효율적이므로, 중요한 이웃 노드를 샘플링하여 학습하는 방식이 사용된다. PinSage와 같은 모델은 무작위로 이웃을 샘플링하는 전략을 사용하여 학습 효율성을 높인다.

2. 이웃 집계 (Neighbor Aggregation)

이웃 노드로부터 정보를 집계하여, 중앙 노드의 임베딩을 업데이트하는 과정이다. 다양한 방법으로 이웃 노드의 중요도를 반영할 수 있으며, 대표적인 집계 방법은 다음과 같다:

  • 평균 풀링: 이웃 노드의 임베딩을 단순히 평균하여 중앙 노드의 임베딩을 업데이트한다.
  • 어텐션 메커니즘: 각 이웃 노드의 중요도를 다르게 부여하여, 특정 노드의 정보가 더 중요하게 반영되도록 한다.

3. 정보 업데이트 (Information Update)

집계된 이웃 노드의 정보를 바탕으로 중앙 노드의 임베딩을 갱신하는 과정이다. 이 과정에서는 다음과 같은 방법을 사용할 수 있다:

  • 비선형 변환: 이웃 노드의 임베딩을 변환하여 더 복잡한 관계를 학습할 수 있다.
  • GRU: 순환 신경망을 사용해 정보를 전달하고 업데이트하는 과정에서 이웃과 중앙 노드의 상호작용을 더 정교하게 모델링할 수 있다.

2.2 GNN Layer 종류

GNN 모델에는 여러 가지 레이어가 존재하며, 각각의 레이어는 사용자와 아이템 간의 관계를 학습하는 방식을 조금씩 달리한다. 대표적인 GNN 레이어는 다음과 같다:

1. GCN (Graph Convolutional Network)

GCN은 그래프 구조 데이터를 처리하는 합성곱 신경망 모델이다. 각 노드는 이웃 노드의 정보를 평균하여 새로운 임베딩을 생성하며, 이를 반복하여 학습한다.

  • 특징: GCN은 각 이웃 노드의 정보를 동일한 방식으로 처리하여, 계산이 효율적이다. 하지만 모든 이웃 노드를 동일하게 취급한다는 한계가 있다.

2. GraphSAGE (Graph SAmple and aggreGatE)

GraphSAGE는 노드의 이웃을 샘플링하여, 그 샘플된 이웃들의 정보를 바탕으로 노드 임베딩을 생성하는 방식이다. 이 방식은 대규모 그래프에서 더 효율적으로 학습할 수 있다.

  • 집계 방법: GraphSAGE는 다양한 집계 함수를 사용할 수 있다. 예를 들어, Mean, LSTM, Pooling과 같은 방식을 적용하여 이웃 정보를 집계할 수 있다.

3. GAT (Graph Attention Network)

GAT는 각 이웃 노드의 중요도를 다르게 평가하여, 중요도에 따라 정보를 가중치로 부여하는 어텐션 메커니즘을 사용하는 모델이다. 이를 통해 중요한 이웃 노드의 정보가 더 많이 반영될 수 있다.

  • 특징: GAT는 이웃 노드 간의 중요도를 학습할 수 있으며, 각 노드의 임베딩을 다르게 처리하여 더 정교한

    표현을 학습할 수 있다.


🏖️ 3. 순차적 추천

3.1 그래프 구성 (Graph Construction)

순차적 추천에서는 사용자의 상호작용 시퀀스를 그래프로 표현하고, 시퀀스 내에서 아이템 간의 전환 패턴을 학습한다. 사용자가 시간 순서대로 상호작용한 아이템 간의 관계를 그래프 상의 엣지로 표현한다.

  • 시퀀스 그래프 강화: 사용자가 여러 아이템과 상호작용한 경우, 시퀀스 내에서 더욱 복잡한 연결 관계를 반영하기 위해 엣지를 추가하여 시퀀스 그래프를 강화할 수 있다.

3.2 정보 전파 (Information Propagation)

순차적 추천에서는 아이템 간의 전환 패턴을 학습하는 것이 핵심이다. 이를 위해 GNN을 사용하여 시퀀스 내의 아이템 정보를 결합하고, 그 정보를 전파하는 방식으로 학습한다.

  • 어텐션 메커니즘: 어텐션 메커니즘을 사용하여 시퀀스 내에서 중요한 아이템에 더 큰 가중치를 부여할 수 있다.

🏖️ 4. 소셜 추천

소셜 추천은 사용자의 소셜 네트워크 정보를 활용하여 추천 성능을 개선하는 방법이다. GNN은 소셜 네트워크에서 사용자 간의 관계를 학습하여, 사용자 행동에 미치는 영향을 모델링할 수 있다.

4.1 친구의 영향력 (Influence of Friends)

소셜 네트워크에서는 사용자가 자신의 친구들로부터 영향을 받기 때문에, GNN은 각 친구의 영향을 학습하여 이를 추천에 반영할 수 있다.

  • 어텐션 메커니즘: 각 친구가 사용자에게 미치는 영향을 다르게 평가하여, 더 중요한 친구의 정보가 추천에 더 크게 반영되도록 한다.

4.2 선호도 통합 (Preference Integration)

소셜 네트워크 정보와 사용자-아이템 간의 상호작용 정보를 결합하여, 사용자의 선호도를 더욱 정확하게 모델링할 수 있다. 이때 두 가지 접근 방식이 있다:
1. 별도의 네트워크: 사용자-아이템 상호작용과 소셜 네트워크를 각각 별도로 처리한 후, 그 결과를 통합하는 방식.
2. 통합 네트워크: 사용자-아이템 상호작용과 소셜 관계를 하나의 통합된 그래프로 결합하여 처리하는 방식.


🏖️ 5. 지식 그래프 기반 추천

지식 그래프는 아이템 간의 복잡한 관계를 나타내며, GNN을 통해 이러한 관계를 학습하여 아이템 추천을 개선할 수 있다. 지식 그래프를 활용하면, 아이템 간의 속성 정보를 더 잘 반영하여, 사용자의 선호도를 더 정확하게 모델링할 수 있다.

5.1 그래프 구성 (Graph Construction)

지식 그래프에 사용자와 아이템을 통합하여, 아이템 간의 속성 관계를 기반으로 추천을 생성할 수 있다.

  • 하위 그래프 구성: 사용자와 아이템 간의 중요한 관계를 강조하기 위해 하위 그래프를 구성하여, 주요 정보를 반영한다.

5.2 관계 인식 집계 (Relation-aware Aggregation)

지식 그래프 내의 다양한 관계를 학습하여, 이 관계를 기반으로 사용자의 선호도를 모델링한다. GAT와 같은 어텐션 메커니즘을 통해 연결된 엔티티 간의 관계를 학습하여, 더 정확한 추천을 제공할 수 있다.


🏖️ 6. 결론

그래프 신경망(GNN)은 추천 시스템에서 매우 효과적인 도구로 자리 잡고 있다. 복잡한 그래프 구조를 학습하여 사용자와 아이템 간의 상호작용을 더 정확하게 모델링하고, 다양한 추천 작업에 활용할 수 있다. GNN을 통한 추천은 기존의 방법보다 성능이 뛰어나며, 이를 통해 더 정교하고 개인화된 추천을 제공할 수 있다.


참고자료

https://jypark1111.tistory.com/99

profile
AI Engineer / 의료인공지능

0개의 댓글

관련 채용 정보