Graph의 task
1.
Node Classification
2.
Link Prediction
3.
Graph Classification
Task를 수행하기 위한 여러가지 모델
GNN
•
이웃 노드의 표현을 집계함으로써 노드의 representation을 업데이트
GCN
•
신호처리 과정에서 유래, 잔디와 고양이가 달라지는 그 부분, 노이즈가 많이 발생하는데 그 부분을 detect하는 원리
•
graph convolution을 이용하여 그래프에 포함된 노드나 그래프 자체를 벡터 형태의 데이터로 변환
•
GNN이 임베딩 시에 자기 자신의 노드와 이웃 노드에 다른 가중치로 업데이트 시킨다면, GCN은 자기 자신 노드와 이웃 노드들이 동일한 가중치 행렬을 사용
•
노드 v의 degree와 이웃노드 각각의 degree를 곱한 값으로 나누어 normalize를 진행
•
결과
: More parameter sharing : 임베딩 값을 구하는 노드(v)와 이웃 노드들 간의 가중치 행렬을 구분하지 않고 공유한 것이 성능 향상의 요인이 됨.
: Down-weights high degree neighbors : 이웃 노드 중 degree가 컸던, 즉 연결된 노드가 많은 인싸 노드에 대한 embedding 값을 적게 반영, degree가 큰 이웃 노드에 대해 penalty를 주었다고 해석하면 편함.
GraphSAGE
•
임베딩 함수를 학습하기 위해서 노드 기능을 활용하여 노드의 레이블을 예측
•
노드와 이웃노드들의 가중치 값을 더하지 않고 concat하는 것이 큰 차이
•
aggregation function에는 Mean, Pool, LSTM 등이 사용될 수 있음.
GAT
•
GCN이나 GraphSAGE같은 방식은 결국, 미리 기여도를 구해놓고 학습에 사용
•
이웃 노드의 관여를 기여도(이웃 노드의 hidden representation이 해당 노드에 얼마나 영향을 주는지) 관점에서, transformer 모델의 attention을 통해 학습 파라미터로 동작하도록
•
트랜스 포머의 multi-head 개념과 같이, attention을 여러개 도출하여 aggregate하여 최종 output값을 계산 가능