카테고리 없음

GNN 공부

EYEN 2025. 6. 20. 21:28

GNN

입력: 그래프(노드, 엣지, 노드/엣지 피처)

-> 노드 간 메시지 전달 후 임베딩 업데이트- Attention 기반 / Sum / Max 

-> readout(노드->그래프 단위 변환)

-> 예측값 도출

-> loss 계산+역전파 학습

 

GIN 이란

GNN은 평균을 내거나, 일반화해서 이웃 노드를 집계하는 반면 GIN은 단순합이어서 구조를 더 구체적으로 구분.

데이터 증강: 과적합방지, 일반화/ 너무 세세한 부분까지 학습하지 않고, 몇개 없어도 예측할 수 있도록 몇부분 없애거나 가림

node/edge drop: 노드 엣지 제거

subgraph: 부분 그래프 추출

attribute masking: 어트리뷰트(=피처) 일부 가리기

 

노드 임베딩 업데이트

Sum: 정보 보존력 좋음 (GIN 사용). 구조 구별에 강함

Max : 특징적인 값만 반영. 정보 손실 위험 있음-GNN/Mean: 평균!-GNN

Attention: 중요한 이웃에 가중치 부여-GAT

 

Readout( 노드->그래프 단위 변환)

global mean pooling: 그래프 전체 노드 임베딩 평균

global sum pooling : 전체 노드 임베딩의 합

global attention: 노드별 중요도에 따라 가중합

Set2Set: RNN 기반 반복 집계. 순서 고려 가능, 복잡도 높음

 

학습 방식

supervised: 라벨이 있는 데이터로 학습. Cross-Entropy loss 사용

self-supervised: 라벨 없이 학습. 구조 예측, 마스킹 복원 등을 통해 학습

contrastive: 유사/비유사 쌍을 구성해 차이 학습

 

loss 함수: 예측값 vs 실제값 비교 후 오차 계산

cross-entropy: 분류 문제에서 예측 확률 분포와 실제 라벨의 차이를 최소화

triplet loss : 기준값+positive+negative 사용해 임베딩 간 거리 조절 

 

MLP 안에 있는 W가 loss 함수로 인해 바뀌게 됨. 

 

엣지,노드 피처

노드 간 관계를 조절 (중요한 호출, 덜 중요한 호출 구분되게)