GNN/임베딩: GCN
ㅁ GNN/임베딩
ㅇ 정의:
그래프 데이터를 처리하고 학습하기 위한 딥러닝 모델로, 노드, 엣지, 그래프 수준의 임베딩을 생성.
ㅇ 특징:
그래프 구조를 활용하여 관계 및 연결성을 학습하며, 비유클리드 데이터에 적합. 다양한 그래프 유형(예: 유향, 무향)에 적용 가능.
ㅇ 적합한 경우:
소셜 네트워크 분석, 지식 그래프, 추천 시스템, 화학 분자 구조 분석 등 그래프 형식의 데이터가 주어질 때.
ㅇ 시험 함정:
그래프의 방향성과 가중치 처리 방식에 대한 이해 부족. GNN과 전통적인 머신러닝 모델의 차이를 혼동할 가능성.
ㅇ 시험 대비 “패턴 보기” 예시:
O: GNN은 그래프 데이터를 학습하기 위한 딥러닝 모델이다.
X: GNN은 이미지 데이터를 처리하기 위한 전용 모델이다.
================================
1. GCN
ㅇ 정의:
그래프 컨볼루션 네트워크(Graph Convolutional Network)는 그래프 구조에서 노드 간의 정보를 컨볼루션 방식으로 학습하는 모델.
ㅇ 특징:
인접 행렬과 노드 특징 행렬을 사용하여 그래프 데이터를 처리하며, 층이 깊어질수록 노드 간의 전역 정보를 학습 가능. 과적합 방지를 위해 정규화 기법 사용.
ㅇ 적합한 경우:
소셜 네트워크에서 사용자 간 관계 분석, 화학 구조에서 원자 간 상호작용 학습, 지식 그래프의 노드 임베딩 생성.
ㅇ 시험 함정:
GCN이 CNN과 동일한 방식으로 작동한다고 오해하거나, 그래프의 정규화 방식(예: 대칭 정규화)을 이해하지 못하는 경우.
ㅇ 시험 대비 “패턴 보기” 예시:
O: GCN은 그래프 데이터를 처리하기 위해 인접 행렬과 노드 특징 행렬을 활용한다.
X: GCN은 순차 데이터를 처리하기 위해 설계된 모델이다.
================================
ㅁ 추가 학습 내용
1. GCN의 주요 변형 모델:
– GraphSAGE: GCN의 한계를 극복하기 위해 고안된 모델로, 각 노드의 이웃 정보를 샘플링하여 학습 효율성을 높임. 이웃 샘플링과 함께 mean, LSTM, pooling 등 다양한 aggregation 방식을 활용.
– GAT (Graph Attention Network): 그래프에서 노드 간 중요도를 학습하기 위해 attention 메커니즘을 도입. 각 이웃 노드의 중요도를 가중치로 계산하여 학습 성능을 향상.
2. 그래프 정규화의 구체적인 방법과 중요성:
– 대칭 정규화: 그래프의 인접 행렬을 정규화하여 각 노드의 중요도를 균등하게 반영. 수식으로는 D^(-1/2) * A * D^(-1/2) 형태로 표현되며, 그래프의 고유값 분포를 안정화시켜 학습을 용이하게 만듦.
– 행 정규화: 인접 행렬의 각 행을 해당 행의 합으로 나누어 정규화. 각 노드의 이웃 노드 기여도를 상대적으로 조정하여 학습의 안정성을 높임.
– 중요성: 그래프 정규화는 학습 과정에서 그래프의 스케일 문제를 완화하고, 특정 노드나 이웃의 과도한 영향력을 방지하여 모델의 일반화 성능을 향상.
3. GCN의 한계점과 이를 해결하기 위한 접근법:
– 과적합: 작은 데이터셋이나 과도한 학습으로 인해 발생. 이를 해결하기 위해 Dropout, Early Stopping, Weight Decay 등 정규화 기법을 사용.
– 층이 깊어질수록 그래디언트 소실 문제: GCN의 층이 깊어지면 그래디언트가 소실되어 학습이 어려워짐. 이를 해결하기 위해 Residual Connection(잔차 연결)을 도입하여 정보 손실을 방지하거나, DropEdge 기법을 사용해 그래프의 일부 연결을 제거하여 과도한 정보 흐름을 제어.
– 과도한 연산 복잡성: 대규모 그래프에서 계산 비용이 급증. 이를 해결하기 위해 GraphSAGE의 샘플링 기법이나 GAT의 attention 메커니즘을 활용.