2025. 1. 14. 08:03ㆍ머신러닝&딥러닝/GNN
전통적인 GCN(https://cascade.tistory.com/134) 은 고정된 adjacency matrix를 사용한다. 하지만 실제로는 그래프에서 노드 간의 관계는 가변적이다. (소셜 미디어를 예시로 들면, 새로 친구를 맺거나 친구를 끊는 이용자들이 있다). GCN에서 이러한 요소를 개선하려는 시도는 많이 있어왔는데, 대부분의 경우 계산량이 많은 행렬연산 (inversion 등)을 동반한다.
ICLR 2018에 등장한 GAT (Graph Attention Networks)는 attention을 이용하여 이러한 가변적인 그래프 연결관계를 적절한 계산량으로 잘 모델링한다.
GAT의 동작과 수식
GAT는 가변적인 엣지를 attention vector를 통해 모델링한다. 한 번의 업데이트에는 아래 세 가지 과정이 일어난다.
- Edge의 강도 계산
- Attention 값의 계산 (edge 강도의 정규화)
- Node의 feature update
특정 노드 i와 j를 연결하는 엣지의 강도는 아래와 같이 정의된다. 가중치 벡터 a는 학습 가능한 파라미터이다. || 는 concat 연산인데, Whi와 Whj를 concat한 후 a와 곱해지므로 a의 길이는 feature vector길이의 2배가 된다.
$$ e_{ij} = \text{LeakyReLU}\left(\mathbf{a}^\top \cdot [\mathbf{W}\mathbf{h}_i \, \| \, \mathbf{W}\mathbf{h}_j]\right) $$
이러한 엣지들은 softmax에 의해 정규화되어 attention score로 이용된다.
$$ \alpha_{ij} = \text{softmax}_j(e_{ij}) = \frac{\exp(e_{ij})}{\sum_{k \in \mathcal{N}_i} \exp(e_{ik})} $$
이를 통해 node feature는 아래와 같이 업데이트된다.
$$ \mathbf{h}_i' = \sigma\left(\sum_{j \in \mathcal{N}_i} \alpha_{ij} \mathbf{W}\mathbf{h}_j\right) $$
이러한 구조를 통해 Cora, Citeseer, Pubmed, PPI 네 개의 데이터셋에 관해 실험했다. Graph task에는 크게 두 가지 종류가 있다.
- Transductive task : test data에 있는 노드가 모두 train data의 노드집합 안에 있을 때
- Inductive task : test data에 새로운 노드가 추가될때
이러한 의미에서 전통적인 GCN은 고정된 adjacency를 사용하기 때문에 inductive task를 수행할 수 있다. 이에 반해, GAT는 새로운 노드가 추가된 경우, 이 노드와 이웃한 노드의 attention값을 계산하여 예측이 가능하다. 즉, Inductive task를 수행 가능하다. 네 가지 benchmark dataset에 대해, PPI는 inductive task이며 나머지 3개는 transductive task이다.
Transductive task에 대해서는 기존의 SOTA인 GCN에 비해 세 dataset 모두에서 같거나 나은 성능을 보이는 것을 확인할 수 있다.
또한 Inductive task에서는 기존의 대표적인 모델로 GraphSAGE가 있는데, 이보다 높은 성능을 보였음을 확인할 수 있다. 이때 Const - GAT는 attention값을 상수취급하여 모든 이웃한 노드 간의 값을 1로 설정한 모델로, GAT와 비교했을 때 학습가능한 attention의 중요성을 확인할 수 있다.
'머신러닝&딥러닝 > GNN' 카테고리의 다른 글
rs-fMRI 분류를 위한 ST-GCN 모델 (0) | 2025.01.16 |
---|---|
GCN의 개요와 수식 정리 (0) | 2025.01.13 |