Graph-level의 task 또한 모든 노드를 활용해 예측한다. y^G=Headgraph ({hv(L)∈Rd,∀v∈G})
Head는 노드들의 정보들을 종합하는 역할을 하며 아래와 같은 방법들이 있다.
1. Global Mean Pooling: 모든 노드의 벡터를 element-wise하게 평균. 그래프의 크기가 상이하더라도 그 차이를 무시할 수 있다. yG=Mean({hv(L)∈Rd,∀v∈G}) 2. Global Max Pooling: 모든 노드의 벡터를 element-wise하게 최대 yG=Max({hv(L)∈Rd,∀v∈G}) 3. Global Sum Pooling: 모든 노드의 벡터를 element-wise하게 합. 상이한 그래프의 크기를 반영할 수 있다.
Global Pooling Problems
Global pooling은 큰 그래프에서 정보를 잃는다는 단점이 있다.
예를 들어, G1:{−1,−2,0,1,2}과 G2:{−10,−20,0,10,20}는 서로 다른 임베딩을 가지고 있지만 Global sum pooling을 할 경우 둘 다 0이 되어 구분할 수 없게 된다.
이러한 문제는 그래프가 클수록 하나의 노드가 가지는 영향력이 작아져 더 크게 나타날 수 있다.
Hierarchical Pooling
위 문제를 해결하기 위해 계층적으로 풀링하는 방식을 취할 수 있다.
예를 들어, G1은 y^a=ReLU(Sum(−1,−2))=0 y^b=ReLU(Sum(0,1,2))=3 y^G=ReLU(Sum(ya,yb))=3으로 표현할 수 있다.
Subgraph의 임베딩 벡터를 생성하는 GNN과 어떤 노드를 클러스터할지 계산하는 GNN은 각각 독립적으로 작동한다.
3. Training Graph Neural Networks
Labels
그래프에서 supervised learning은 라벨이 외부 소스로부터 오는 경우(ex.분자구조에 대한 약효 예측 라벨), unsupervised learning은 그래프 내의 정보를 이용하는 경우(ex.두 노드의 엣지 존재 유무)를 의미한다.
Unsupervised learning은 경계가 모호해져 self-supervised learning와 동일시되기도 하며 노드 정보, 엣지 유무 등 그래프 내의 있는 요소 중 지도 학습으로 사용될 수 있는 요소를 찾는 것이 핵심이 된다.
Loss function
Classification: prediction head를 거친 벡터에 softmax를 취해준다.
Regression: 일반적으로 Mean Squared Error(MSE)가 많이 쓰인다.
Evaluation Metrics
Classification: 다중 분류에서는 accuacy가, 이진 분류에서는 accuracy와 함께 precision, recall, f1-score, ROC, AUC도 사용된다.
Regression: RMSE와 MAE가 주로 사용된다.
4. Setting-up GNN Prediction Tasks
그래프는 이미지, 텍스트와 달리 train, validation, test 데이터로 나눠도 상호종속적이다.
그래프의 데이터셋 분리에는 transductive setting과 inductive setting이 있다.
Transductive setting
Input graph가 모든 data splits에서 활용되며 노드의 라벨만이 나뉜다.
Training 시에는 전체 그래프의 임베딩을 계산하고 노드1,2의 라벨을 활용해 학습한다.
Validation 시에는 전체 그래프의 임베딩을 계산하고 노드3,4의 라벨을 평가한다.
Inductive setting
엣지를 끊어 세 개의 독립적인 그래프를 만든다. 노드5는 더 이상 노드1의 예측에 영향을 미치지 않는다.
Training 시에는 노드1,2만의 임베딩을 계산하며 노드1,2의 라벨을 통해 학습한다.
Validation 시에는 노드3,4의 임베딩을 계산하며 노드3,4의 라벨로 평가를 한다.
Node Classification
노드의 분류는 transductive, inductive setting가 모두 가능하다.
Transductive setting에서는 모든 split이 그래프를 공유하지만 receptive node의 라벨만을 볼 수 있고 Inductive setting에서는 split마다 독립적인 그래프가 존재한다.
Graph Classification
그래프의 분류는 unseen graph에 대해 테스트를 해야하기 때문에 inductive setting에서만 정의된다.
.
Link Prediction
Link prediction은 self-supervised task로 edge를 제거한 뒤 존재여부를 예측하도록 구성한다.
Message passing 시 사용되는 Message edge와 예측을 수행할 supervision edge로 나뉘게 된다
그래프가 하나인 경우 transductive setting으로 supervision edge만 데이터셋에 따라 분리된다. 학습 후 supervision edge는 GNN이 알고있으므로 validation 시에는 message edge로 사용하여 grow하는 방식이 이상적이다.
Inductive setting은 그래프가 여러개인 경우로 각각의 그래프를 split하면 된다.