2024년 3월 19일
GNN (Graph Neural Network)
1. GNN (Graph Neural Network)의 개요
등장 배경 | 딥러닝 모델은 CNN, RNN, Transformer 등 다양한 신경망 모델 종류로 발전했지만, 복잡한 구조나 관계 임베딩의 한계로 인해 그래프(Graph) 기반 신경망 모델 등장 | |
---|---|---|
개념 | 데이터의 특징 추출을 위해 이웃 노드 간 정보를 이용하여 특징 벡터를 찾아내는 그래프(Graph) 기반 신경망 모델 | |
특징 | 추상적 개념 접근에 용이 | 연결된 데이터 표현 시 관계, 상호작용 등 추상적 개념 접근에 용이 |
Non-Euclidean 공간 표현/학습 | SNS, 분자 데이터 등 유클리디안 공간에 표현 불가능한 데이터 표현 가능 |
- 그래프는 정점, 간선으로 이루어진 자료구조이므로, 현실 사물이나 추상적 개념 간 연결 관계를 Non-Euclidean 공간에 표현하여 데이터의 특징 추출에 용이
2. GNN 기반 모델 생성 파이프라인
① 그래프 구조 탐색 ② 그래프 유형 및 규모 지정 | ③ 손실 함수(Loss Function) 설계 ④ 계산 모듈을 사용하여 모델 생성 |
- GNN 모델 생성 파이프라인에서 계산 모듈은 크게 Propagation/Sampling/Pooling Module로 분류되며, Propagation Module에서 대표적인 학습 모델로 Recurrent/Spectral/Spartial Model을 사용
3. GNN의 학습 과정 및 주요 학습 모델
(1) GNN의 학습 과정
학습 과정 | 기술 요소 | 학습 내용 |
---|---|---|
1. 변환 (Transformation) | – 인접 행렬 – 노드 특성 행렬 | – Non-Euclidean 공간에 존재하는 복잡한 형태의 데이터를 신경망 학습에 적합한 형태로 변환 |
2. 취합 (Aggregate) | – Target Node – Hidden State | – 각 레이어에서 타겟 노드에 인접한 모든 이웃 노드의 은닉 변수 정보를 취합 |
3. 결합 (Combine) | – Hidden State – Aggregated Information | – 타겟 노드와 앞서 결합된 이웃 노드의 은닉 변수 정보 기반 타겟 노드 업데이트 |
4. 생성 (Readout) | – Regression – Classification | – 모든 노드의 은닉변수를 결합하여 그래프 단위 은닉변수 생성 |
5. 출력 (Output) | – Node, Edge, Graph – Graph, Embedding | – 특정 레이어까지 과정 반복 후 노드 별 임베딩 계산하여 출력 |
(2) GNN의 주요 학습 모델
구분 | 학습 모델 | 학습 방법 |
---|---|---|
Recurrent Model | RecGNN | – 노드 특징 추출 위해 파라미터 재귀적 적용 – hidden state를 재귀적으로 업데이트 |
GGNN (Gated Graph Neural Network) | – RNN에서 자주 사용되는 GRU 적용 – 재귀를 고정된 횟수의 step으로 감소 | |
Spectral Model | GCN (Graph Convolutional Network) | – CNN 연산과 유사 방식으로 인접 노드 이용 임베딩 – over smoothing 해결 위해 skip connection 사용 |
HGNN (Heterogeneous GNN) | – 서로 다른 종류의 그래프에 GNN 적용 – 다른 구조, 의미 유지하며 맵핑 함수 학습 | |
Spatial Model | GAT (Graph Attention Network) | – Transformer의 attention 을 그래프에 적용 – 이웃 노드 정보 기반 중요도 고려 임베딩 |
GraphSAGE | – neighbor sampling 기반 mini-batch 학습 – 여러 Sub-Graph를 이용하여 학습 |
- 기본 GNN의 문제점은 노드 은닉 상태의 비효율성, Edge 정보 계산 불가 등의 문제가 있으므로 GGNN, R-GCN 등 개선된 모델 사용 필요
4. GNN의 문제점 및 대응 방안
문제점 | 해결 방안 |
---|---|
– 노드 은닉 상태 반복 업데이트로 비효율적 – 기본 GNN은 Edge의 중요 정보 계산 불가 – 반복 맵핑 시 노드 정보 구별 제약 사항 | 기본 GNN 한계 극복 위해 GGNN(Gated Graph Neural Network), R-GCN(Relational Graph Convolution Network) 등 개선된 GNN 모델 사용 |
- 그래프 데이터 특성은 실제 시스템에서 크게 다르기 때문에 최적의 GNN 아키텍처와 학습 하이퍼파라미터 식별이 어려우므로 AutoML, Self-Supervised Learning 등 적용하여 최적의 솔루션 탐색 가능
[참고]
- KeAi, Graph neural networks: A review of methods and applications
- wikidocs Deep Learning Bible – Graph Deep Learning