1. 그래프 이해하기

 

 Contents
1. Why graph?
2. Graph learning
3. Graph neural network

 

최근 그래프 뉴럴 네트워크(GNN)은 다양한 딥러닝, 머신러닝 분야에서 중요하게 적용되고 있습니다. 특히 추천 시스템의 경우, 학회에 나오는 최신 모델들은 대부분 그래프 기반 모델을 채택하고 있습니다. 이번 포스팅을 시작으로, 앞으로 Graph Neural Networks (GNN)에 대한 포스팅을 진행할 예정입니다. 기본적인 그래프 이론부터, 전통적인 그래프 모델, 코드를 살펴보겠습니다. 최종 목표는 그래프 이론을 기반으로 한 최신 추천 시스템 모델을 이해하는 것입니다. 그 전에, 본 포스팅에서는 먼저 왜 그래프 이론이 중요하고, 어떻게 적용되는지를 살펴보겠습니다.

 

1. Why graph?

  그래프 기법은 최근 딥러닝, 머신러닝 모델에서 가장 중요하게 적용되는 기법중 하나이다. 특히 추천 시스템 쪽 학회 프로시딩을 살펴 보면, 세션 기반 연구나, 그래프 기반 모델에 관한 연구가 대다수이다. 또한 이미지, 텍스트 분야에도 그래프를 적극적으로 활용하는 추세이다. 최신 연구들에서 이러한 그래프 기법을 적용하는 가장 큰 이유는, 그래프는 복잡계 시스템, 특히 상호 관계들에 대한 데이터를 표현하기 적합하기 때문이다.

 

예를 들어, 생물학 분야에서 단백질 구조와 같은 생물학 데이터를 표현할 때 그래프 기법을 사용하기 적합하다. 또한 social sicence 분야에서, social network 구조를 표현하기 위해 그래프 이론이 필수적이며, 금융, 컴퓨터 공학 분야 등 다양한 도메인의 데이터를 표현하기 적합하다. 

https://i.imgur.com/FSJq5lx.png

그래프 네트워크는 entity를 표현하는 노드(node)와 노드 간의 관계를 표현하는 엣지(edge)로 구성된다. 예를 들어, 소셜 네트워크에서 각각의 개인이 노드로 표현되고, 사람들 사이의 관계는 엣지로 표현된다. 이러한 사회적 관계가 표현된 하나의 그래프를 소셜 네트워크로 표현할 수 있다. 또한 자연어 처리 분야에서는, 하나의 문장(sentence)을 그래프로 표현할 때, 각 단어들은 노드로 표현되며, 문장 안에서 단어들이 인접했는 지를 엣지로 나타낸다.

 

2. Graph learning

  • 노드 분류(Node classification)
    각 노드가 어떤 클래스에 속하는 지를 예측한다. 예를 들어 노드로 표현된 한 사람이 어떤 소셜 관계에 포함되는지를 예측한다.

 

  • 링크 예측(Link prediction)
    노드와 노드 사이의 누락된 링크를 예측한다. 예를 들어 소셜 관계망에서 두 사람의 관계가 이어져있을 지를 예측하는 작업이다.

 

  • 그래프 분류(Graph Classification)
    서로 다른 그래프를 분류하는 것이다. 예시로는 그래프로 표현된 여러 분자 구조가 어떻게 분류 되는지를 예측한다.

 

  • 그래프 생성(Graph generaion)
    신약에 대한 새로운 분자 구조를 설계하는 것과 같이, 새로운 그래프를 생성하는 것이다.

 

3. Graph neural network

  GNN은 그래프 구조를 기반으로 다양한 분야의 데이터를 처리하는 딥러닝 아키텍처이다. 시프레드 시트와 같은 데이터 프레임이나, 이미지에 대한 어레이 값과 같은 정형 데이터를 사용하던 기존의 딥러닝 모델과 달리, 입력 데이터로 그래프 구조를 사용한다. 물론 그래프 신경망을 통해 텍스트나 이미지를 처리할 수도 있다.

 

특히 GNN은 e-commerce에서 유저들과 유저들이 구매한 아이템 간의 관계 학습하는 추천 시스템에 활발히 사용되고 있다. 기존 딥러닝 기반 추천 시스템은 임베딩 기법을 활용하여 다양한 정보를 모델에 반영할 수 있다는 장점이 있다. 그러나 각 데이터들이 독립적으로 입력되기 때문에, 데이터들 간의 관계는 고려하기 제한된다. 따라서 유저와 아이템 간의 상호작용을 충분히 학습하지 못한다. 추천 시스템에서 유저와 아이템의 관계는 아래 왼쪽 그림과 같이 이분 그래프로 표현할 수 있다. 또한 그래프 신경망을 통해 오른쪽 그림과 같이 고수준의 관계를 모델의 입력 정보로 사용할 수 있다.

 

 

결론적으로 GNN은 그래프 기반 입력 데이터로, 뉴럴 네트워크 방식의 딥러닝 학습을 진행하여 다양한 문제를 해결하기 위해 사용된다. 컴퓨터 기술과 딥러닝 기법의 발전으로, GNN은 수많은 양의 빅데이터를 처리할 수 있고, 병렬 학습을 통해 학습을 최적화 할 수 있다. 마지막으로 GNN은 복잡계 시스템이나 네트워크 분석, 추천 시스템과 같이, 복잡하고 추상적인 문제를 표현하고, 처리하는 것에 유리한 기법이라고 할 수 있다. 

 

마무리

본 포스팅에서는 그래프 이론에 대한 간단한 소개를 진행했습니다. 다음 포스팅에서는 GNN에 필요한 그래프 개념과 표현들을 살펴보도록 하겠습니다. 이후 포스팅에서는 추천 시스템 관점에서 GNN을 탐구할 예정입니다.

반응형