toc: true comments: true layout: post description: CS224W Lecture 8. categories: [Graph Neural Network, GNN, Graph Convolution Network, GCN ] title: Lecture 8.3 - Setting up GNN Prediction Tasks —
이제 모델 학습을 위해서 데이터를 어떻게 나눠야할지 배워봅시다.
train / validation / test 데이터셋으로 어떻게 분류하면 좋을까요?
그 이유는, 이미지의 경우, 데이터 단위가 이미지 한 장이고, 각 이미지는 서로 영향을 미치지 않지만, 그래프의 구조는 다양하고, 각 데이터 포인트 간의 영향이 제각각 다르기 때문입니다.
e.g) 예를 들어서, 노드 5를 예측하기 위해서는 노드 1, 2, 4, 6이 필요한데, 5번이 test, 4,6 번이 validation에 사용되면 데이터 유실(Data Leakage)이 발생함.
방법1) Transductive setting
인풋 그래프를 모든 데이터셋 종류에 포함시킵니다. (train/valid/test)
node, edge prediction 태스크에서만 사용 가능합니다.
방법2) Inductive setting
데이터셋 종류에 따라 엣지 연결을 끊고 각기 다른 그래프로 취급합니다.
e.g) Train : {1,2} Validation : {3,4}, Test : {5,6}
헷갈림 방지. train/val/test 그래프는 각각 다른 그래프.
message edges : 학습에 사용되는 엣지들
supervision edges : 학습에 사용되지 않은 숨겨진 엣지들
step1. 원본 그래프에 message와 supervision 엣지들을 나눕니다.
step2. train/validation/test set 별로 엣지들을 나눕니다.
옵션 1 : inductive link prediction split
옵션 2 : transductive link prediction split
그림에서와 같이, train, validation, test 단계별로 엣지 수가 증가하는데,
💡Takeaway