/M3S_Pytorch

Pytorch implementation of "Multi-Stage Self-Supervised Learning for Graph Convolutional Networks on Graphs with Few Labeled Nodes"

Primary LanguagePython

M3S_Pytorch

Implementation of Multi-Stage Self-Supervised Learning for Graph Convolutional Networks on Graphs with Few Labels.

A PyTorch implementation of "Multi-Stage Self-Supervised Learning for Graph Convolutional Networks on Graphs with Few Labels" paper, accepted in AAAI 2020.

To implement the details, I refer official codes of "Deeper Insights into Graph Convolutional Networks for Semi-Supervised Learning".

Requirements

  • Python version : 3.9.7
  • Pytorch version : 1.10.1
  • torch-geometric version : 2.0.3

Hyperparameters

--dataset: Name of the dataset. Supported names are: cora, citeseer, pubmed, computers, photo.
usage example :--dataset computers

--label_rate: Percentage of labeled nodes.
usage example :--label_rate 0.15

--stage: Number of stage to pseudo-label.
usage example :--stage 3

--clustering: Whether or not to check the pseudo-label using k-means clustering.
False : Self-Training / True : M3S
usage example :--clustering

--num_k: The number of clusters for k-means clustering usage example :--num_k 3

python main.py --dataset computers --label_rate 0.15 --clustering

Experimental Results

Methods Cora Citesser Pubmed Am. Computers Am. Photos
Label Rate 0.5% 1% 2% 0.5% 1% 2% 0.03% 0.06% 0.1% 0.15% 0.2% 0.25% 0.15% 0.2% 0.25%
Self-training 57.28 70.73 75.40 46.26 60.36 66.47 57.34 65.13 72.86 61.32 65.95 68.66 61.92 65.24 71.34
M3S 64.46 72.93 76.41 55.07 65.74 67.64 61.53 64.60 73.18 61.51 66.30 68.10 63.93 67.62 73.39