GNN(Graph Neural Network)
개요
그래프 신경망(Graph Neural Network, GNN)은 그래프 구조 데이터를 직접 처리할 수 있는 딥러닝 모델이다. 전통적인 신경망이 유클리드 공간의 데이터(이미지, 텍스트 등)를 위해 설계된 반면, GNN은 노드(점)와 엣지(선)로 구성된 비유클리드 공간의 그래프 데이터를 효과적으로 학습한다. 소셜 네트워크, 분자 구조, 지식 그래프 등 다양한 분야에서 관계성을 가진 데이터를 처리하는 데 탁월한 성능을 보인다.
설명
GNN은 그래프에 직접 적용할 수 있는 신경망으로, 노드 레벨, 엣지 레벨, 그래프 레벨에서의 예측 작업에 활용된다. GNN의 핵심 원리는 노드가 이웃과의 연결에 의해 정의된다는 것이다. 이는 "이름을 불러주었을 때 꽃이 된다면, 연결될 때 점이 된다"는 표현으로 비유될 수 있다.
GNN의 작동 방식은 다음과 같다:
- 각 노드는 초기에 특징 벡터로 표현된다 (예: 영화가 로맨스, 범죄, 공포 장르에 해당하는지를 (1,1,0)으로 표현)
- 메시지 전달(message passing) 과정을 통해 각 노드는 이웃 노드들의 정보를 수집한다
- 수집된 정보를 바탕으로 자신의 표현(representation)을 업데이트한다
- 이 과정을 여러 번 반복하여 최종적인 노드 임베딩(node embedding)을 생성한다
- 생성된 임베딩을 활용하여 다양한 예측 작업을 수행한다
GNN의 학습 과정은 주로 다음 단계로 이루어진다:
- 그래프 구조 데이터와 초기 노드 특징을 입력으로 받는다
- 메시지 전달 및 집계(aggregation) 함수를 통해 노드 표현을 업데이트한다
- 손실 함수(loss function)를 최소화하는 방향으로 모델 파라미터를 조정한다
- 최종 노드 임베딩을 사용하여 목표 작업을 수행한다
특징
GNN의 주요 특징은 다음과 같다:
- 귀납적 편향(Inductive Bias): 그래프 구조를 활용하여 노드 간 관계를 학습함으로써 데이터에 내재된 관계적 정보를 활용한다.
- 메시지 전달 메커니즘: 노드는 이웃 노드로부터 정보를 수집하고 이를 통합하여 자신의 표현을 업데이트한다. 이 과정을 통해 지역적 구조를 학습한다.
- 전이 학습(Transductive Learning): 학습 시 보지 않은 노드에 대해서도 그래프 구조를 활용하여 예측할 수 있다.
- 다양한 변형: Graph Convolutional Network(GCN), Graph Attention Network(GAT), GraphSAGE 등 다양한 아키텍처가 개발되었다.
- 확장성: 희소 행렬 연산과 샘플링 기법을 통해 대규모 그래프에도 적용 가능하다.
- 다층 표현 학습: 여러 층의 메시지 전달을 통해 점점 더 넓은 이웃 정보를 통합하여 다양한 규모의 패턴을 학습한다.
- 다목적성: 노드 분류, 링크 예측, 그래프 분류 등 다양한 작업에 활용될 수 있다.
예시
GNN은 다양한 분야에서 활용되고 있으며, 주요 응용 사례는 다음과 같다:
1. 노드 분류(Node Classification)
노드 임베딩을 통해 그래프의 노드들을 여러 클래스로 분류하는 작업이다. 일반적으로 그래프의 일부 노드만 레이블이 있는 상황에서 준지도 학습(semi-supervised learning)을 수행한다.
응용 사례:
- 인용 네트워크에서 논문의 연구 분야 분류
- 소셜 네트워크에서 사용자 관심사 예측
- Reddit 게시물 카테고리 분류
- YouTube 동영상 주제 분류
2. 링크 예측(Link Prediction)
그래프의 노드들 사이의 관계를 파악하고 두 노드 사이에 연결이 생길 가능성을 예측하는 작업이다.
응용 사례:
- 소셜 네트워크에서 친구 추천
- 콘텐츠 플랫폼에서의 추천 시스템 (영화, 음악, 상품 등)
- 단백질 상호작용 네트워크에서 새로운 상호작용 예측
- 지식 그래프 완성(Knowledge Graph Completion)
Graph Convolutional Matrix Completion: 사용자-영화 평점 행렬에서 메시지 전달 함수를 사용하여 아직 평가되지 않은 사용자-영화 쌍의 예상 평점을 계산한다.
3. 그래프 분류(Graph Classification)
그래프 전체를 여러 카테고리로 분류하는 작업이다. 이미지 분류와 유사하지만 대상이 그래프 형태의 데이터이다.
응용 사례:
- 분자 구조의 특성 예측 (약물 효과, 독성 등)
- 단백질 구조 분류
- 소셜 네트워크의 커뮤니티 분류
Machine Learning for Scent: 분자 구조를 그래프로 변환하고 GNN을 통해 138개의 향기를 예측한다. 기존에는 Mordred나 fingerprint 방법을 사용했으나, 최근에는 GNN을 활용하여 분자 구조를 분석한다.
4. 컴퓨터 비전과의 결합
GNN은 컴퓨터 비전 분야와 결합하여 다양한 응용이 가능하다:
Scene Graph Generation: CNN으로 탐지된 객체들 사이의 관계를 파악하여 장면 그래프를 생성한다. 이를 통해 이미지에서 객체뿐만 아니라 객체 간의 관계까지 이해할 수 있다.
Image Generation from Scene Graphs: 반대로, 장면 그래프로부터 이미지를 생성하는 작업도 가능하다. 기존의 GAN이나 Autoencoder 방식과는 달리, 객체 간 관계를 명시적으로 고려한 이미지 생성이 가능하다.
Visual Question Answering: 이미지와 질문으로부터 각각 장면 그래프와 질문 그래프를 생성한 후, 이를 처리하여 질문에 대한 답변을 제공한다.
결론
GNN은 관계형 데이터를 처리하는 강력한 도구로, 다양한 분야에서 그래프 구조의 데이터를 효과적으로 학습하고 예측할 수 있다. 특히 노드 분류, 링크 예측, 그래프 분류 등의 작업에서 탁월한 성능을 보이며, 컴퓨터 비전, 추천 시스템, 생물정보학, 화학 등 다양한 응용 분야에서 활용되고 있다.
GNN의 강점은 데이터의 관계적 구조를 명시적으로 활용하여 학습한다는 점이다. 이는 전통적인 딥러닝 모델이 포착하기 어려운 복잡한 관계와 상호작용을 효과적으로 학습할 수 있게 한다. 또한, 준지도 학습을 통해 적은 수의 레이블만으로도 높은 성능을 달성할 수 있다는 장점이 있다.
향후 GNN 연구는 더 큰 규모의 그래프 처리, 동적 그래프 학습, 다양한 도메인에서의 응용 확장 등의 방향으로 발전할 것으로 예상된다. 특히 분자 설계, 신약 개발, 소셜 네트워크 분석, 추천 시스템 등의 분야에서 GNN의 활용이 더욱 확대될 전망이다.
참고문헌
- Kipf, T. N., & Welling, M. (2017). Semi-Supervised Classification with Graph Convolutional Networks. ICLR. https://arxiv.org/abs/1609.02907
- Hamilton, W. L., Ying, R., & Leskovec, J. (2017). Inductive Representation Learning on Large Graphs. NIPS. https://arxiv.org/abs/1706.02216
- Veličković, P., Cucurull, G., Casanova, A., Romero, A., Liò, P., & Bengio, Y. (2018). Graph Attention Networks. ICLR. https://arxiv.org/abs/1710.10903
- Xu, K., Hu, W., Leskovec, J., & Jegelka, S. (2019). How Powerful are Graph Neural Networks? ICLR. https://arxiv.org/abs/1810.00826
- Wu, Z., Pan, S., Chen, F., Long, G., Zhang, C., & Yu, P. S. (2020). A Comprehensive Survey on Graph Neural Networks. IEEE Transactions on Neural Networks and Learning Systems. https://arxiv.org/abs/1901.00596
- Yang, J., Lu, J., Lee, S., Batra, D., & Parikh, D. (2018). Scene Graph Generation by Iterative Message Passing. CVPR. https://arxiv.org/abs/1701.02426
- Johnson, J., Gupta, A., & Fei-Fei, L. (2018). Image Generation from Scene Graphs. CVPR. https://arxiv.org/abs/1804.01622
- Teney, D., Liu, L., & van den Hengel, A. (2017). Graph-Structured Representations for Visual Question Answering. CVPR. https://arxiv.org/abs/1704.00696
- Sanchez-Lengeling, B., Wei, J. N., Lee, B. K., Gerkin, R. C., Aspuru-Guzik, A., & Wiltschko, A. B. (2019). Machine Learning for Scent: Learning Generalizable Perceptual Representations of Small Molecules. https://arxiv.org/abs/1910.10685
- van den Berg, R., Kipf, T. N., & Welling, M. (2017). Graph Convolutional Matrix Completion. https://arxiv.org/abs/1706.02263
- GNN 소개 — 기초부터 논문까지. https://medium.com/watcha/gnn-%EC%86%8C%EA%B0%9C-%EA%B8%B0%EC%B4%88%EB%B6%80%ED%84%B0-%EB%85%BC%EB%AC%B8%EA%B9%8C%EC%A7%80-96567b783479