콘텐츠로 이동

8. 그래프 신경망과 기하 구조

이 장의 질문과 목표

이미지는 규칙적인 grid에 놓이고 text는 순서가 있는 시퀀스다. 하지만 분자, 결정, 사회관계망, 도로망은 대상 사이의 연결 자체가 중요한 그래프다. 그래프 신경망(GNN)은 각 노드가 이웃의 정보를 모아 자신의 표현을 갱신하도록 설계한다.

이 장의 목표는 GNN 층 공식을 모두 암기하는 것이 아니다. 그래프에서 예측 단위가 무엇인지, 메시지 전달이 연결 구조를 어떻게 반영하는지, 노드 순열과 3차원 회전이 왜 서로 다른 대칭인지 설명하는 것이 목표다.

읽기 수준과 선수지식 확인

먼저 알아볼 항목

  • 그래프, 노드, 에지의 직관
  • 벡터와 행렬, adjacency 행렬
  • 집합의 합, 평균, 최댓값
  • 3차원 coordinate, distance, rotation, translation의 직관

5장의 수용 영역과 7장의 attention은 GNN을 각각 local neighborhood와 이웃별 가중치에 빗대어 이해하는 데 도움이 되는 선택 비교다. 두 장을 먼저 읽지 않아도 1, 2, 3장 뒤에 이 장을 바로 읽을 수 있다.

1. 그래프는 대상과 관계를 함께 표현한다

그래프 \(G=(V,E)\)는 노드 집합 \(V\)와 에지 집합 \(E\)로 구성된다. 각 노드와 에지에는 특성을 붙일 수 있다.

  • 분자에서는 원자가 노드, 결합이나 이웃 관계가 에지가 될 수 있다.
  • 결정에서는 단위 cell의 원자와 주기적 이웃 관계를 그래프로 만들 수 있다.
  • 인용망에서는 논문이 노드, 인용이 방향을 가진 에지가 될 수 있다.
  • 도로망에서는 교차점과 도로가 노드와 에지가 될 수 있다.

에지가 방향을 가질 수도 있고, 에지 type이나 거리 같은 특성을 가질 수도 있다. 실제 세계의 연결을 그래프로 만드는 규칙은 모델 바깥의 중요한 설계 선택이다. 예를 들어 분자에서 결합만 연결할지, cutoff 안의 모든 원자를 연결할지에 따라 모델이 볼 수 있는 정보가 달라진다.

예측 단위를 먼저 정하기

같은 그래프에서도 출력 단위가 다를 수 있다.

  • Node-level prediction은 각 노드의 레이블이나 값을 예측한다.
  • Edge-level prediction은 두 노드의 관계나 에지 property를 예측한다.
  • Graph-level prediction은 그래프 전체의 class나 scalar를 예측한다.

예측 단위를 정해야 마지막 readout과 평가 지표를 정할 수 있다. 분자 전체의 에너지는 graph-level 출력이고, 각 원자의 힘은 node-level 벡터 출력이다.

2. 메시지 전달의 공통 틀

많은 GNN은 메시지 전달로 설명할 수 있다. 층 \(l\)에서 노드 \(i\)의 표현을 \(h_i^{(l)}\), 이웃 집합을 \(\mathcal{N}(i)\)라 하자.

\[ m_i^{(l)} = \operatorname{AGG}\left(\left\{ M\left(h_i^{(l)}, h_j^{(l)}, e_{ij}\right) : j \in \mathcal{N}(i) \right\}\right) \]
\[ h_i^{(l+1)} = U\left(h_i^{(l)}, m_i^{(l)}\right) \]

각 에지를 따라 이웃 \(j\)에서 노드 \(i\)message를 만들고, 이웃 message를 순서와 무관한 함수로 aggregate한 뒤, 기존 노드 표현과 합쳐 update한다.

합, 평균, 최댓값은 이웃 순서를 바꾸어도 결과가 같으므로 aggregation에 사용할 수 있다. 한 층 뒤에는 1-hop 이웃, 두 층 뒤에는 대체로 2-hop 이웃의 정보가 들어온다. CNN의 수용 영역이 층과 함께 넓어지는 것과 비슷하지만, neighborhood는 grid가 아니라 그래프 에지로 정의된다.

중심 노드가 이웃 노드의 메시지를 모아 표현을 갱신하는 그래프 신경망
이웃의 정보를 모아 중심 노드의 표현을 갱신하는 메시지 전달. 출처: NickDiCicco, Wikimedia Commons, CC BY-SA 4.0, 변경 없음.
더 깊이 살펴보기: GCN, GAT와 기하학적 등변성

3. GCN과 GAT는 어떻게 다른가

그래프 합성곱 신경망(GCN)은 인접 노드 특성을 degree에 따라 정규화해 모으는 대표적 그래프 convolution이다. 핵심은 각 노드가 자기 자신과 이웃의 표현을 공유된 transformation으로 집계한다는 점이다.

그래프 어텐션 신경망(GAT)은 모든 이웃을 같은 규칙으로 평균내는 대신, 현재 노드와 이웃 표현에서 attention 가중치를 학습한다. 7장의 query-key-value attention과 세부 식은 다르지만, 후보 이웃마다 데이터 의존적인 가중치를 준다는 관점이 이어진다.

GCN, GAT는 서로 다른 이름을 외우기보다 다음 질문으로 비교하면 된다.

  • 어떤 에지를 따라 정보가 이동하는가?
  • Message가 노드와 에지 특성을 어떻게 사용하는가?
  • Aggregation은 합, 정규화 평균, attention 중 무엇인가?
  • 여러 층 뒤에 어떤 범위의 정보가 섞이는가?

4. 순서를 바꿔도 그래프는 같은가

그래프의 노드 번호는 사람이 임의로 붙인 index다. 같은 분자의 원자 번호를 다시 매겨도 물리적 대상은 달라지지 않는다. 그래서 GNN은 노드 순열에 대해 올바른 변환 성질을 가져야 한다.

노드 순열에 맞춰 입력 특성 순서를 바꾸었을 때 노드별 출력도 같은 방식으로 순서가 바뀌면 permutation equivariance라고 한다. 반면 그래프 전체 출력이 노드 순서를 바꾸어도 같으면 permutation invariance라고 한다.

  • Node-level GNN 층은 보통 permutation equivariant해야 한다.
  • Sum이나 mean pooling으로 만든 graph-level 표현은 permutation invariant해야 한다.

Invariant한 GNN이라는 한 표현으로 둘을 섞으면 출력 유형을 놓치기 쉽다. 노드 출력은 순열에 따라 함께 이동해야 하고, 그래프 전체 scalar는 그대로여야 한다.

5. 깊게 쌓을 때 생기는 문제

메시지 전달 층을 쌓으면 더 먼 이웃을 볼 수 있지만 무조건 좋아지지는 않는다.

  • Oversmoothing은 여러 번 이웃을 섞은 노드 표현이 서로 비슷해져 구분하기 어려워지는 현상이다.
  • Oversquashing은 멀리 있는 많은 정보를 고정 크기 벡터와 좁은 그래프 연결을 통해 압축하면서 중요한 관계가 손실되는 문제를 가리킨다.
  • 그래프가 잘못 구성되면 실제로 중요한 관계가 에지에 없거나, 불필요한 연결이 과도하게 들어간다.

잔차 연결, normalization, 샘플링, 그래프 rewiring 같은 방법이 사용되지만 하나의 처방이 모든 그래프에 맞는 것은 아니다. 필요한 관계의 거리와 그래프 topology를 먼저 살펴야 한다.

6. 3차원 그래프에는 기하가 더 필요하다

분자와 결정에서는 원자 종류와 연결뿐 아니라 3차원 좌표가 중요하다. 좌표를 그대로 일반 MLP에 넣으면 분자 전체를 회전하거나 이동했을 때 예측이 불필요하게 달라질 수 있다.

변환 \(T\)에 대해 입력을 변환한 뒤 함수에 넣은 결과를 생각해 보자.

  • 출력이 변하지 않아야 하면 invariance가 필요하다. 분자 전체의 energy는 회전하거나 이동해도 같아야 한다.
  • 출력도 입력과 같은 방식으로 변해야 하면 equivariance가 필요하다. 원자별 force 벡터는 분자를 회전하면 함께 회전해야 한다.

이를 간단히 쓰면 equivariant 함수 \(f\)는 다음 성질을 목표로 한다.

\[ f(Tx) = T f(x) \]

Scalar 출력에서는 오른쪽의 변환이 항등 변환이면 invariance가 된다.

Permutation과 geometry를 구분하기

노드 순서를 바꾸는 것은 데이터 배열의 index를 다시 매기는 일이다. 3차원 회전과 이동은 실제 좌표계를 변환하는 일이다. 두 경우 모두 대칭성과 관련되지만 같은 transformation은 아니다.

  • Permutation symmetry는 노드 번호 매김에 관한 성질이다.
  • E(3) symmetry는 3차원 rotation, translation, reflection을 포함한다.
  • SE(3) symmetry는 rotation과 translation을 포함하지만 reflection은 제외한다.

어떤 물리량이 reflection에서도 같은지에 따라 E(3) 또는 SE(3) 중 필요한 성질이 달라질 수 있다.

7. 그래프 트랜스포머의 위치

그래프 Transformer는 그래프 노드 사이에 attention을 적용한다. 모든 노드 쌍을 연결하거나, 원래 에지나 거리에 따라 attention 범위를 제한할 수 있다. 일반 Transformer의 position 임베딩 대신 그래프 distance, 에지 특성, 3차원 geometry 같은 구조 정보를 넣는다.

Transformer를 그래프에 적용했다는 사실만으로 그래프의 대칭성과 기하가 자동으로 보존되는 것은 아니다. 노드 ordering, 에지 편향, coordinate 표현, 출력 type을 함께 확인해야 한다.

핵심과 노출 수준 구분

핵심으로 이해할 것

  • 노드, 에지, 특성과 노드, 에지, graph-level prediction의 구분
  • message, aggregation, update의 공통 틀
  • 그래프 층 depth와 neighborhood 범위의 관계
  • permutation equivariance와 graph-level invariance의 차이
  • scalar energy의 invariance와 벡터 force의 equivariance 차이

이름과 위치를 알아둘 것

  • GCN, GAT, MPNN
  • oversmoothing과 oversquashing
  • E(3), SE(3)
  • 등변 신경망
  • 그래프 Transformer
  • molecular 그래프와 crystal 그래프
자주 하는 혼동과 한계

자주 생기는 혼동과 한계

Adjacency는 자연이 자동으로 주는 정답이 아니다

실제 데이터를 어떤 노드와 에지로 만들지 사람이 정한다. Cutoff, bond definition, periodic boundary 처리에 따라 같은 구조도 다른 그래프가 된다.

GNN은 그래프 isomorphism을 언제나 완벽히 구분하지 않는다

표준 message-passing GNN은 서로 다른 일부 그래프를 같은 표현으로 만들 수 있다. 표현력은 aggregation과 특성, 모형 구조에 의해 제한된다.

  • 깊은 층이 항상 장거리 상호작용을 잘 전달하지는 않는다.
  • Train/test 그래프가 같은 source에서 왔는지, 크기와 조성, topology가 달라졌는지에 따라 일반화 난도가 크게 달라진다.
  • 3차원 좌표를 사용해도 올바른 symmetry가 자동으로 보장되지는 않는다.
  • Graph-level 평가 지표만 보면 특정 노드 type이나 희귀 구조의 실패를 놓칠 수 있다.

공통 분석축으로 정리하기

  • 입력과 출력: 노드, 에지, 그래프 특성과 선택적으로 좌표를 받아 노드, 에지 또는 그래프 prediction을 출력한다.
  • 구조적 가정: 에지로 정의된 locality, 노드 permutation, 필요하면 3차원 symmetry를 사용한다.
  • 표현: 이웃 message를 집계해 노드 표현을 반복 갱신한다.
  • 학습 신호: 노드 레이블, 그래프 property, energy와 force 등이 될 수 있다.
  • 기준 모델: 특성 기반 선형 모델, fingerprint 모델, 비기하 GNN 등 과제에 맞는 단순 기준과 비교한다.
  • 평가와 shift: 그래프 크기, 조성, scaffold, 구조 family가 달라지는 split을 별도로 고려한다.

앞뒤 장과의 연결

CNN의 국소 수용 영역은 그래프의 이웃 관계로 일반화되고, 트랜스포머의 어텐션은 GAT와 그래프 트랜스포머에서 이웃별 가중치로 다시 나타난다. 15장에서는 메시지 전달과 기하학적 등변성이 원자계 에너지와 힘 예측에 어떻게 연결되는지 살펴본다.

스스로 확인하기

  • Node-level 출력의 permutation equivariance와 graph-level 출력의 permutation invariance는 어떻게 다른가?
  • GCN의 neighborhood aggregation과 GAT의 attention aggregation은 무엇을 다르게 결정하는가?
  • 노드 번호를 바꾸는 것과 분자를 3차원에서 회전하는 것은 왜 다른 transformation인가?
  • Energy와 force에는 각각 어떤 geometric transformation 성질이 필요한가?

더 읽을 자료