toc: true comments: true layout: post description: CS224W Lecture 8. categories: [Graph Neural Network, GNN, Graph Convolution Network, GCN ] title: Lecture 8.2 - Learning Objectives —
지금까지 우리는 그래프의 구조, GNN 레이어의 구조, 노드 엠베딩 등을 배웠습니다. 이번에는 모델이 예측하는 부분인 prediction heads에 대해 알아봅시다.
예측부분은 지금까지 그래왔듯이 node-level, edge-level, graph-level로 나눌 수 있습니다.
[{엠베딩 차원} x {타겟 갯수 K}] 형태의 아웃풋을 뽑게됩니다.
K-way 예측을 한다고 했을 때, 엣지 레벨 아웃풋을 뽑는 방법은 두 가지인데,
방법1) concatenation + linear
방법 2) dot product
K-way 예측을 한다고 했을 때, multi-head attention에서 봤던 것과 같은 연산을 갖게 됩니다.
정보들을 합산하기 위해서 pooling이 들어가는데,
(1) global mean pooling
(2) global max pooling
(3) global sum pooling
옵션이 있습니다. 다만,
Global Pooling의 문제점
pooling으로 인해 정보가 손실될 수 있습니다.
예를 들어 global sum pooling을 한다고 했을 때,
A = [-1, -2, 0, 1, 2], B = [-10, -20, 0, 10, 20] sum([-1,-2, 0, 1, 2]) = 0 sum([-10, -20, 0, 10,20] = 0
그래프 A와 B는 분명 다른 그래프이지만, pooling으로 인해 같은 값으로 종결됩니다.
⇒ Hierarchical Global Pooling은 이러한 문제를 해결해줍니다.
Logic : 노드들을 한꺼번에 pooling하는 것이 아니라, 나눠서 계층적(hierarchical)으로 pooling하는 겁니다.
e.g) 노드를 나눕니다. A = [-1,-2,0,1,2]이라고 할 때, round1 : a = ReLU(Sum(-1,-2)), b = ReLU(Sum(0,1,2) round2 : ReLU(Sum(a, b)))
B = [-10, -20, 0, 10, 20] round1 : a = ReLU(Sum(-10, -20)) b = ReLU(Sum(0,10,20)) round2 : ReLU(Sum(a,b))
그렇다면 노드들을 어떻게 a와 b를 쪼갤까요?
Hierarchically pool node embeddings (DiffPool)
그래프는 community 구조를 갖습니다.
방법
그럼 이번엔 예측값과 정답 라벨에 대해서 이야기해봅시다.
Supervised vs Unsupervised(self-supervised)
모델의 결과값은 모델의 가이드라인이 되어줄 라벨이 외부 소스로부터 오는지(Supervised) 또는 주어진 인풋 그래프 내부로부터 도출하는지(Unsupervised)에 따라서 학습 방법이 나뉩니다.
Supervised 예시 : 분자 그래프에서 drug likeness(신약 가능성)
Unsupervised 예시 : 두 개의 노드 간의 연결 유무
** 가끔씩 Supervised와 Unsupervised의 경계는 모호합니다. 비지도학습에서도 어느정도의 ‘supervision’은 사용되기 때문입니다.
Supervised Labels의 예시들
** Advice : 그래프 데이터가 주어졌을 때, 태스크를 node/edge/graph 레벨로 바꿔보세요.
(저 레벨들 말고 다른 태스크가 가능한가??)
예를 들어서, 몇 노드들이 클러스터를 이룬다고 했을 때, 이 클러스터를 노드 라벨로써 사용해보는 겁니다.
Unsupervised Labels의 예시들
가끔씩 우리는 다른 정보 없이 그래프 인풋만 받는 경우가 있습니다.
⇒ 이럴 땐 자급자족으로 인풋에서 추출할 수 있는 정보를 활용해보는 겁니다.
Loss Function
분류(Classification) : 이산적, Cross Entropy
다중분류
이진분류
*분류 threshold에 따라 결괏값이 바뀝니다.
이진분류를 위한 threshold 셋팅에 따라 False Positive Rate과 True Positive Rate이 달라집니다. TPR과 FPR 간의 Trade-off 관계를 잘 조절해서 알맞는 threshold 설정이 가능합니다. ROC(Receiver Operating Characteristic Curve)는 y축으로 가파를수록, 그래서 면적(ROC AUC : Area Under the curve)이 클수록 좋은 지표입니다. 예측이 랜덤일수록 그래프를 가로지르는 대각선 축에 가까워집니다.