[논문 리뷰 스터디] A Comprehensive Survey on Graph Neural Networks + torch_geometric 라이브러리
작성자: 15기 이승은
최근 이미지 사이의 유사성에 관심 → 단순히 cosine similiarity로 계산 가능하지만 보다 고차원의 정보를 반영하여 이미지 사이의 유사성을 계산해보고 싶어졌음 → 기존의 Euclidean space (R^n)에서의 연산을 넘어 non-Euclidean space에서 Graph로 이미지를 다뤄보고 싶음
non-Euclidean space에서 대상들 간 복잡한 관계나 상호 의존성 등을 그래프로 표현 가능 (화학 분자 구조, 사람들 간의 관계 네트워크, 쇼핑 상품 추천 등)
특히 머신러닝에서는 인스턴스들이 서로 독립적이어야 한다는 전제가 있으나 (Dropout이나 Multi-collinearity 제거 등) 그래프에서 노드는 서로 독립적이지 않고, 다른 노드들과 여러 관계를 맺고 있어서 기존 머신러닝 기법들을 활용하기 어려움 → BUT 반대로 생각하면 그러한 관계를 이용하는 특정 task들에서는 성과가 있지 않을까
Graph Neural Networks [GNN]은 크게 4가지로 분류 가능
node attribute가 시간에 따라 동적으로 변경되는 그래프
그래프 자체가 시작과 끝이 있는 것이 아닌 순환 구조이므로 이 구조를 recurrent 모델을 통해 표현하고자 함
GRU 사용하기도
but 요즘에는 잘 사용하지 않고 거의 convolution 사용. ConvGNN에 영향을 줌
convolution 연산을 Euclidean space의 grid data가 아닌, 그래프 데이터에 적용
노드와 노드의 feature, 그리고 이웃 노드의 feature → 이들의 aggregation을 활용하여 노드를 고차원으로 표현하고, 여러개의 layer를 쌓는다
CNN과 유사하게, ReLU, Softmax 등 사용하여 classification 등 다양한 task에 활용할 수 있다
노드나 그래프를 인코딩하고 다시 복원하는 과정에서 latent vector를 얻는 unsupervised learning의 일종으로, latent node representaiton, graph generative distributions 학습 가능
그래프의 숨겨진 패턴들을 학습하는 네트워크로, 교통량 예측, 사람 동작 인식, 운전 행동 예측 등 다양한 분야에서 활용 중. 공간적, 시간적 의존성을 동시에 고려할 수 있는 모델을 설계하는 것이 목표. Graph Convolution을 통해 공간적 의존성을, RNN이나 CNN을 통해 시간적 의존성을 얻는 방식 사용
node representation / graph convolution으로 classification, regression 등 활용
edge로 연결된 두 노드의 hidden representation, 연결 강도, label, 유사도 함수 등 활용
그래프 분류
일부 노드들은 label이 있고, 다른 노드들은 label이 없는 상태에서 unlabeled 노드도 분류하는 모델 학습 → GCN 모델링 후 multi-class classification을 위한 layer 연결
Autoencoder / negative sampling (노드 쌍의 일부는 negative, 일부는 positive로 샘플링 후 logistic regression layer를 통해 positive/negative 분류 → 전체 노드 집합보다 작은 노드 집합을 만듦 (해당 노드 주변 노드들만 positive로 샘플링/나머지는 랜덤으로 샘플링해서 negative) → 이후 이진 분류)
ref. https://thejb.ai/comprehensive-gnns-1/, https://pytorch-geometric.readthedocs.io/en/latest/notes/introduction.html
댓글 영역