그래프 신경망(GNN)은 입력이 그래프인 작업을 위해 설계된 인공 신경망의 한 종류이다. 그래프는 노드(정점)와 엣지(연결)로 구성되며, 분자의 원자나 소셜 네트워크의 사용자와 같은 개체와 그 관계를 나타낼 수 있다. 이미지나 텍스트와 달리 그래프는 노드의 표준적인 순서가 없으므로, GNN 아키텍처는 일반적으로 순열 등변성(permutation equivariance)을 갖도록 설계된다. 즉, 입력의 노드 순서를 바꾸면 해당 노드 표현도 같은 방식으로 재정렬된다. 그래프 수준 예측 작업의 경우 GNN은 순열 불변성(permutation-invariant) 읽기 함수를 사용하며, 이 함수의 출력은 노드 순서에 따라 변하지 않는다.
GNN의 핵심 설계 요소는 쌍별 메시지 전달(pairwise message passing)로, 그래프 노드가 이웃과 정보를 교환하며 반복적으로 표현을 업데이트하는 방식이다. 이를 통해 네트워크는 로컬 구조적 패턴과 의존성을 포착할 수 있다. GNN은 관계형 데이터에 대한 머신러닝의 초석이 되었으며, 분자 생물학, 화학, 물리학, 소셜 네트워크, 자연어 처리와 같은 딥러닝 영역에 걸쳐 응용되고 있다.
역사적 발전
그래프에 신경망을 적용하는 개념은 1990년대 후반과 2000년대 초반에 등장했다. 초기의 재귀적 및 컨볼루션적 접근 방식이 기초를 마련했지만, 이 분야는 2010년대에 더 강력한 컴퓨팅 자원의 출현과 다른 영역에서의 딥러닝 성공으로 큰 추진력을 얻었다. 2022년의 한 포지션 페이퍼는 메시지 전달을 "넘어서는" 것으로 설명된 많은 아키텍처가 적절히 수정된 그래프에 대한 메시지 전달로 해석될 수 있다고 주장하며, 이러한 접근 방식을 "증강 메시지 전달"이라는 용어로 제안했다. 이는 GNN 설계에서 메시지 전달의 중심적 역할을 강조한다.
아키텍처
일반적인 GNN의 아키텍처는 여러 기본 레이어를 구현한다. 순열 등변성 레이어는 그래프의 표현을 동일한 그래프의 업데이트된 표현으로 매핑하며, 일반적으로 메시지 전달을 통해 수행된다. 로컬 풀링 레이어는 다운샘플링을 통해 그래프를 조밀화하여 컨볼루션 신경망의 풀링과 유사하게 수용 필드를 증가시킨다. 전역 풀링 레이어는 읽기 레이어라고도 하며, 그래프 전체에 대한 고정 크기 표현을 제공하고 순열 불변성을 가져야 한다. 전역 풀링의 예로는 요소별 합, 평균, 최대값이 있다.
표준 메시지 전달 GNN은 최대한 Weisfeiler-Leman 그래프 동형 테스트만큼의 표현력을 가지므로, 이러한 네트워크로 구별할 수 없는 서로 다른 그래프 구조가 존재한다. 단순 복합체(simplicial complex)와 같은 고차원 기하학에서 작동하는 더 강력한 GNN을 설계할 수 있다. 2022년 현재, 향후 아키텍처가 메시지 전달 프리미티브를 극복할 수 있을지 여부는 여전히 열린 연구 질문이다.
메시지 전달 레이어
메시지 전달 레이어는 그래프를 동일한 그래프의 업데이트된 표현으로 매핑하는 순열 등변성 레이어이다. 공식적으로 이는 메시지 전달 신경망(MPNN)으로 표현할 수 있다. G = (V, E)를 그래프라고 하자. 여기서 V는 노드 집합, E는 엣지 집합이다. V의 노드 u에 대해 N_u를 이웃 집합, x_u를 특징, e_uv를 엣지 (u, v)의 특징이라고 하자. MPNN 레이어는 업데이트된 노드 표현 h_u를 다음과 같이 계산한다:
h_u = φ(x_u, ⊕_{v∈N_u} ψ(x_u, x_v, e_uv))
여기서 φ와 ψ는 미분 가능한 함수(예: 인공 신경망)이고, ⊕는 합, 평균, 최대값과 같은 미분 가능하고 순열 불변인 집계 함수이다. 집계 함수는 이웃의 메시지를 결합하고, φ는 노드의 표현을 업데이트한다. 각 메시지 전달 레이어는 수용 필드를 한 홉씩 증가시켜 정보가 그래프 전체에 전파되도록 한다.
여러 GNN 아키텍처가 다양한 방식의 메시지 전달을 구현한다. 예를 들어, 그래프 컨볼루션 네트워크(GCN)는 이웃 특징의 단순 평균을 사용하는 반면, 그래프 어텐션 네트워크(GAT)는 어텐션 메커니즘을 사용하여 이웃 기여에 가중치를 부여한다. 이러한 변형은 모델의 용량과 귀납적 편향에 영향을 미친다.
기하학적 딥러닝
GNN은 신경망 아키텍처를 비유클리드 영역으로 일반화하려는 기하학적 딥러닝이라는 더 넓은 주제의 일부이다. 이 프레임워크에서 특정 기존 아키텍처는 적절히 정의된 그래프에서 작동하는 GNN으로 해석될 수 있다. 예를 들어, 컴퓨터 비전의 컨볼루션 신경망 레이어는 노드가 픽셀이고 엣지가 인접 픽셀을 연결하는 그래프에 적용된 GNN으로 간주할 수 있다. 마찬가지로, 자연어 처리의 트랜스포머 레이어는 텍스트 구절의 단어 또는 토큰을 노드로 하는 완전 그래프에 적용된 GNN으로 볼 수 있다. 이 관점은 겉보기에 서로 다른 아키텍처를 공통 수학적 프레임워크로 통합한다.
응용 분야
GNN은 다양한 영역에 적용되어 왔다. 분자 약물 설계에서 분자는 원자를 노드로, 원자 결합을 엣지로 하는 그래프로 표현되며, 종종 알려진 화학적 특성을 특징으로 포함한다. 입력은 원자와 결합의 수가 다르므로 크기가 다양할 수 있다. 그래프 수준 작업은 특정 의학 응용(예: 대장균 제거)을 위한 분자의 효능을 예측하는 것일 수 있다. GNN은 소셜 네트워크 분석, 인용 네트워크, 추천 시스템에서도 사용되어 왔다. 물리학에서는 입자 상호작용을 모델링할 수 있으며, 조합 최적화에서는 외판원 문제와 같은 NP-난해 문제에 적용되었다.
구현 및 라이브러리
여러 오픈소스 라이브러리가 GNN을 구현하여 연구자와 실무자에게 접근성을 제공한다. PyTorch Geometric은 PyTorch 기반의 인기 있는 라이브러리이고, TensorFlow GNN은 TensorFlow에 유사한 기능을 제공한다. Deep Graph Library(DGL)는 프레임워크에 구애받지 않으며 여러 백엔드를 지원한다. jraph는 JAX용으로 설계되었고, GraphNeuralNetworks.jl과 GeometricFlux.jl은 Julia 생태계를 지원한다. 이러한 라이브러리는 사전 구축된 레이어, 풀링 연산, 그래프 데이터 처리를 위한 유틸리티를 제공하여 개발과 실험을 가속화한다.
과제 및 향후 방향
성공에도 불구하고 GNN은 여러 과제에 직면해 있다. Weisfeiler-Leman 테스트에 비해 표현력이 제한되어 특정 그래프 구조를 구별하지 못할 수 있다. 대규모 그래프로의 확장성도 문제인데, 메시지 전달이 계산적으로 집약적일 수 있기 때문이다. 고차 특징이나 증강 메시지 전달을 사용하는 아키텍처와 같은 더 표현력 있는 아키텍처에 대한 연구가 계속되고 있다. 또한 GNN의 일반화와 견고성에 대한 이론적 이해도 활발한 연구 영역이다. 2022년 현재, 이 분야는 빠르게 진화하고 있으며 새로운 아키텍처와 응용이 정기적으로 등장하고 있다.