정보 전파 조절이 가능하며 단순화된(또는 단일항으로 표현된) 그래프 확산 신경망을 이용한 링크 예측 및 분류 성능 향상.
- 'Adjustable single-term graph diffusion learning'과 'Adjustable and simplified graph diffusion learning' 제목이 혼재될 수 있습니다.
- 본 코드의 GAE, VGAE, GCN 파트는 다음 저장소의 코드를 바탕으로 구축되었습니다.
https://github.com/tkipf/gae
https://github.com/zfjsail/gae-pytorch
https://github.com/tkipf/gcn - 본 연구에 사용된 Cora, Citeseer, Pubmed, arXiv-condmat 데이터셋은 모두 메타데이터로부터 구축되었고, 다음 저장소에서 일부 전처리 과정 및 데이터셋을 확인할 수 있습니다.
https://github.com/ztor2/network_datasets
- 이 저장소는 2021년 대한산업공학회 추계학술대회 구두발표 세션에서 발표될 예정이며, 추후 논문화 작업 예정인 '조절 가능한 단순화 그래프 확산 학습 모델(Adjustable and simplified graph diffusion learning)'의 실험 코드 및 데이터를 포함한다.
- 이 연구에서는 기존의 대표적인 그래프 신경망 모델인 그래프 합성곱 신경망 모델(graph convolutional networks, GCN; Kipf & Welling, 2017)과 그래프 확산 합성곱 모델(graph diffusion convolution, GDC; Klicpera et al., 2019)을 보완한 simplified graph diffusion model(SimDiff)을 제안한다.
- SimDiff는 GCN보다 풍부한 이웃 노드 정보를 이용하면서 GDC에 비해 효율적으로 이를 구현한다, 노드 간 거리에 따른 특성 반영 비율도 조절이 가능한 파라미터를 도입한다.
- 제안한 모델로 분류와 링크 예측을 수행해 성능을 확인한다.
- 모든 실험은 colab 환경에서 수행되었으므로, 로컬 환경에서 실행 시 코드 앞부분의 drive mount 및 경로 설정 파트를 생략해야 한다.
- 각 실험의 결과는 미리 생성한 json 파일에 추가되도록 설정되어 있다. 따라서 실험 전 결과가 저장될 json 파일을 생성해야 한다.
- 모든 실험은 2021년 11월 기준 pytorch 1.9.0 버전, cuda는 10.2 또는 11.1 버전, scikit-learn은 0.24.2 버전에서 정상 작동하는 것을 확인함.
- sc_dw.ipynb: 링크 예측 실험의 baseline인 spectral clustering(SC)와 DeepWalk(DW) 모델 코드 파일.
- gae.ipynb: GAE를 이용한 링크 예측 실험 코드 파일.
- vgae.ipynb: VGAE를 이용한 링크 예측 실험 코드 파일.
- logreg_mlp.ipynb:: 분류 실험의 baseline인 logistic regression과 multi-layer perceptron(MLP) 모델 코드 파일.
- gcn.ipynb: GCN을 이용한 분류 실험 코드 파일.
- optimizer.py: loss function 함수를 포함.
- layers.py: 각 model을 구성하는 layer를 정의하는 함수 포함.
- model.py: 모델을 구성하는 class를 포함.
- utils.py: 데이터 로드, 전처리 등의 각종 보조 함수를 포함. SimDiff는 이 함수에서 인접 행렬을 전처리할 때 반영된다.
- 각 파일의 이름은 (데이터셋 이름).(데이터 유형)으로 설정되어 있으며, sparse matrix로 전환되어 pickle 형식 파일로 저장되었다.
- 데이터셋은 벤치마크 데이터인 cora, citeseer와 arXiv 데이터로부터 추출된 arXiv-condmat(arx) 데이터가 있다.
- 데이터셋 유형은 graph(인접 행렬), feature(노드 특성 정보), labels(레이블 정보)로 구분된다.
- 실험에 사용된 데이터 중, pubmed 데이터셋은 용량 문제로 저장소에 포함되지 않았다.
- 모든 실험 결과는 results 폴더 내에 json 파일로 저장되어 있으며 readme 파일의 index를 통해 실험결과를 확인할 수 있다.
- 기존 GCN에 사용된 renormalization trick 파트에 파라미터 α를 도입해, 인접행렬을 제곱할 때마다 중심 노드와 이웃 노드의 정보 반영 비율을 조절할 수 있도록 한다.
- Degree matrix로 symmetrically normalization을 적용하고 반영하고자 하는 이웃 노드와의 거리만큼 n 제곱한다.
- 이렇게 simplifed graph diffusion 연산이 적용된 인접 행렬을 링크 예측 모델(GAE, VGAE) 및 분류 모델(GCN)에 적용한다.
그림 1. Variational graph auto-encoder 모델의 학습 프로세스.
그림 2. Graph auto-encoder 모델의 학습 프로세스.
표 1. 분류 및 링크 예측 실험에 사용된 데이터셋 정보.
- SimDiff 모델은 인접행렬만을 사용한 링크 예측과, 분류 실험에서 기존 모델보다 높은 성능을 보였다.
표 2. SimDiff를 이용한 링크 예측 실험 결과(위: 노드 특성을 제외한 링크 예측 결과, 아래: 노드 특성을 포함한 링크 예측 결과).
표 3. SimDiff를 이용한 분류 실험 결과.
- Kipf & Welling. (2016). Variational Graph Auto-Encoders. NIPS Workshop on Bayesian Deep Learning.
- Kingma & Welling. (2014). Auto-encoding variational bayes. In Proceedings of the International Conference on Learning Representations (ICLR).
- Klicpera et al. (2019). Diffusion Improves Graph Learning. 33rd Conference on Neural Information Processing Systems (NeurIPS 2019).
- Kipf & Welling. (2017). Semi-supervised classification with graph convolutional networks. ICLR 2017.