그래프 어텐션 네트워크(GAT)는 그래프 신경망(GNN)의 한 유형으로, 어텐션 메커니즘을 메시지 전달 과정에 통합한 것이다. 표준 GNN에서는 각 노드가 이웃으로부터 정보를 집계하여 표현을 업데이트하며, 이때 종종 동일하거나 사전 정의된 가중치를 사용한다. 반면 GAT는 각 이웃에 서로 다른 중요도를 할당하는 어텐션 계수를 계산하여, 모델이 주어진 작업에 대해 그래프에서 가장 관련성 높은 부분에 집중할 수 있게 한다. 2018년 Petar Veličković와 동료들이 도입한 이 접근 방식은 기하학적 딥러닝의 기초 아키텍처가 되었으며, 소셜 네트워크 분석에서 분자 특성 예측에 이르기까지 다양한 응용 분야에서 널리 사용된다.
GAT의 핵심 아이디어는 원래 Transformer (architecture) 모델에서 자연어 처리를 위해 대중화된 어텐션 메커니즘을 그래프 구조 데이터에 적용하는 것이다. 트랜스포머에서는 시퀀스의 모든 토큰 쌍 사이에 어텐션 가중치가 계산된다. GAT에서는 노드와 직접 이웃 사이에서만 어텐션이 계산되므로, 국소적이고 순열 등변(permutation-equivariant) 연산이 된다. 이러한 설계는 GNN의 핵심 속성, 즉 출력이 노드의 순서에 불변하다는 것을 보존하는데, 이는 그래프에 표준적인 노드 순서가 없기 때문에 중요하다.
배경: 그래프 신경망
그래프 신경망은 분자, 소셜 네트워크, 인용 네트워크와 같은 그래프가 입력인 작업을 위해 설계된 인공 신경망의 한 부류이다. 이미지나 텍스트와 달리 그래프는 고정된 격자나 시퀀스 구조가 없으며, 노드는 다양한 수의 연결을 가질 수 있다. GNN은 순열 등변 레이어를 사용하여 쌍별 메시지 전달을 통해 노드 표현을 업데이트함으로써 이 문제를 해결한다. 각 노드는 이웃으로부터 메시지를 집계하며, 여러 레이어를 거치면 수용 영역이 확장되어 더 먼 노드까지 포함하게 된다.
그래프 합성곱 네트워크(GCN)와 같은 초기 GNN 아키텍처의 주요 한계는 정보를 집계할 때 모든 이웃을 동등하게 취급한다는 점이다. 예를 들어, 분자 그래프에서 탄소 원자는 수소 원자와 산소 원자 모두에 연결될 수 있지만, 독성 예측에는 산소 원자가 화학적으로 더 중요할 수 있다. GCN은 두 이웃에 동일한 가중치를 할당하는 반면, GAT는 산소 원자에 더 높은 어텐션을 할당하도록 학습할 수 있다.
GAT의 어텐션 메커니즘
GAT의 어텐션 메커니즘은 다음과 같이 작동한다. 특징 벡터 \(\mathbf{x}_u\)를 가진 노드 \(u\)와 그 이웃 \(v\)에 대해, 모델은 공유 선형 변환과 학습 가능한 가중치 벡터를 사용하여 어텐션 계수 \(e_{uv}\)를 계산한다. 이 계수는 일반적으로 softmax 함수를 사용하여 모든 이웃에 걸쳐 정규화되며, 어텐션 가중치의 합이 1이 되도록 보장한다. 정규화된 계수는 이웃의 변환된 특징의 가중 합을 계산하는 데 사용되며, 이것이 노드 \(u\)의 업데이트된 표현이 된다.
형식적으로, 어텐션 계수는 다음과 같이 계산된다:
\[ e_{uv} = \text{LeakyReLU}(\mathbf{a}^T [\mathbf{W}\mathbf{x}_u \| \mathbf{W}\mathbf{x}_v]) \]
여기서 \(\mathbf{W}\)는 공유 가중치 행렬, \(\mathbf{a}\)는 학습 가능한 벡터, \(\|\)는 연결(concatenation)을 나타낸다. 계수는 모든 이웃 \(v \in N_u\)에 대해 softmax를 사용하여 정규화된다. 업데이트된 노드 표현은 다음과 같다:
\[ \mathbf{h}_u = \sigma\left(\sum_{v \in N_u} \alpha_{uv} \mathbf{W}\mathbf{x}_v\right) \]
여기서 \(\alpha_{uv}\)는 정규화된 어텐션 계수이고 \(\sigma\)는 비선형 함수이다.
이 메커니즘은 트랜스포머의 멀티 헤드 어텐션과 유사하며, 여러 독립적인 어텐션 헤드를 사용하여 다양한 유형의 관계를 포착한다. GAT에서는 여러 어텐션 가중 집계를 병렬로 계산하고 그 출력을 연결하거나 평균화하여 멀티 헤드 어텐션을 적용할 수 있다. 이는 모델의 표현력을 높이고 훈련을 안정화한다.
아키텍처 변형
2018년 원본 논문 이후 GAT의 여러 변형이 제안되었다. 주목할 만한 변형 중 하나는 2021년에 도입된 GATv2로, 원본 GAT에서 어텐션 계수가 연결 후 선형 연산으로 계산되는 한계를 해결한다. GATv2는 더 표현력 있는 어텐션 메커니즘을 사용하여 입력 특징에 더 민감한 어텐션 점수를 계산할 수 있게 하며, 미세한 구분이 필요한 작업에서 성능을 향상시킨다.
또 다른 변형은 엣지 특징을 갖는 그래프 어텐션 네트워크로, 어텐션 계산에 엣지 특징을 통합한다. 분자 그래프에서 엣지 특징은 결합 유형(단일, 이중, 방향족)을 나타낼 수 있으며, 이를 통합하면 모델이 연결의 성격에 따라 이웃을 다르게 가중할 수 있다. 이는 화학 및 생물학 응용에서 특히 유용하다.
또한 GAT는 잔차 연결 및 레이어 정규화와 같은 다른 GNN 구성 요소와 결합하여 훈련 안정성과 성능을 개선할 수 있다. 이러한 개선은 현대 GNN 아키텍처에서 흔하다.
응용 분야
GAT는 다양한 분야에 적용되었다. 분자 생물학 및 신약 개발에서 GAT는 용해도, 독성 또는 대장균과 같은 특정 박테리아에 대한 효능과 같은 분자 특성을 예측하는 데 사용된다. 분자는 원자를 노드로, 결합을 엣지로 하는 그래프로 표현되며, GAT는 생물학적 활성에 중요한 작용기를 식별하는 데 집중하도록 학습할 수 있다.
소셜 네트워크 분석에서 GAT는 노드 분류 및 링크 예측에 사용된다. 예를 들어, 인용 네트워크에서 GAT는 가장 영향력 있는 인용 논문에 어텐션을 주어 논문을 연구 주제로 분류할 수 있다. 추천 시스템에서 GAT는 사용자-아이템 상호작용을 이분 그래프로 모델링할 수 있으며, 어텐션은 사용자에게 가장 관련성 높은 아이템을 식별하는 데 도움을 준다.
GAT는 또한 컴퓨터 비전에서 객체 감지 및 장면 그래프 생성과 같은 작업에 사용되며, 이미지는 객체와 그 관계의 그래프로 표현된다. 물리학에서는 입자 궤적 재구성 및 동적 시스템 모델링에 GAT가 적용되었다.
트랜스포머와의 관계
GAT와 Transformer (architecture) 모델 사이에는 밀접한 관계가 있다. 2022년 기하학적 딥러닝에 관한 포지션 페이퍼에서 언급된 바와 같이, 트랜스포머 레이어는 모든 토큰이 다른 모든 토큰에 연결된 완전 그래프에 적용된 GNN으로 해석될 수 있다. 이러한 관점에서 트랜스포머의 자기 어텐션 메커니즘은 어텐션 가중치를 사용한 메시지 전달의 한 형태이다. 반대로 GAT는 어텐션이 모든 쌍이 아닌 기존 엣지로 제한되는 임의의 그래프 구조에 적응된 트랜스포머로 볼 수 있다.
이러한 연결은 두 분야 간의 교차 수분으로 이어졌다. 위치 인코딩 및 크로스 어텐션과 같은 트랜스포머를 위해 개발된 기법이 GNN에 적용되었다. 예를 들어, 그래프 라플라시안 고유벡터에 기반한 위치 인코딩은 어텐션 기반 메시지 전달을 보완하는 구조적 정보를 제공할 수 있다.
구현 및 라이브러리
여러 오픈 소스 라이브러리가 GAT 및 기타 GNN 아키텍처를 구현한다. PyTorch Geometric(PyG)은 PyTorch 기반의 인기 있는 라이브러리로, GAT 레이어의 효율적인 구현과 그래프 데이터 처리를 위한 유틸리티를 제공한다. TensorFlow GNN은 TensorFlow 생태계를 위한 유사한 기능을 제공한다. Deep Graph Library(DGL)는 PyTorch와 TensorFlow 백엔드를 모두 지원하는 프레임워크 비종속 라이브러리이다. JAX 사용자를 위해 jraph 라이브러리가 GNN 구현을 제공하며, Julia 사용자를 위해 GraphNeuralNetworks.jl과 GeometricFlux.jl이 제공된다.
이러한 라이브러리는 일반적으로 사용자 정의 모델에 쉽게 통합할 수 있는 사전 구축된 GAT 레이어를 포함한다. 또한 인용 네트워크(Cora, CiteSeer) 및 분자 특성 예측 데이터셋과 같은 GNN 평가를 위한 데이터셋과 벤치마크를 제공한다.
한계 및 확장
모든 메시지 전달 GNN과 마찬가지로 GAT는 Weisfeiler-Lehman 그래프 동형 테스트의 표현력 한계에 영향을 받는다. 이는 GAT가 구별할 수 없는 비동형 그래프 쌍이 존재한다는 것을 의미하며, 이는 미세한 구조적 구분이 필요한 작업에서 한계가 될 수 있다. 이를 극복하기 위해 연구자들은 단순 복합체에서 작동하는 고차 GNN이나 전역 어텐션을 사용하는 그래프 트랜스포머를 제안했지만, 이는 종종 계산 비용 증가를 수반한다.
또 다른 한계는 확장성이다. 모든 이웃에 대한 어텐션 계산은 고차수 노드가 있는 그래프에서 비용이 많이 들 수 있지만, 일반적으로 완전한 트랜스포머의 이차 비용보다는 덜 심각하다. 이웃 샘플링이나 희소 어텐션 사용과 같은 기법이 이 문제를 완화할 수 있다.
2024년 현재 GAT는 여전히 널리 사용되고 활발히 연구되는 아키텍처이다. 이웃 중요도를 적응적으로 가중할 수 있는 능력 덕분에 GNN 도구 상자의 표준 도구가 되었으며, 머신러닝 및 인공지능 전반에 걸쳐 새로운 변형과 응용을 계속 고무하고 있다.