All Projects → chaitjo → awesome-efficient-gnn

chaitjo / awesome-efficient-gnn

Licence: other
Code and resources on scalable and efficient Graph Neural Networks

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to awesome-efficient-gnn

GNN-Recommender-Systems
An index of recommendation algorithms that are based on Graph Neural Networks.
Stars: ✭ 505 (+1.41%)
Mutual labels:  graph-convolutional-networks, graph-neural-networks, graph-representation-learning, gnn
Graph Based Deep Learning Literature
links to conference publications in graph-based deep learning
Stars: ✭ 3,428 (+588.35%)
Mutual labels:  graph-convolutional-networks, graph-neural-networks, graph-representation-learning
3DInfomax
Making self-supervised learning work on molecules by using their 3D geometry to pre-train GNNs. Implemented in DGL and Pytorch Geometric.
Stars: ✭ 107 (-78.51%)
Mutual labels:  graph-neural-networks, graph-representation-learning, gnn
Literatures-on-GNN-Acceleration
A reading list for deep graph learning acceleration.
Stars: ✭ 50 (-89.96%)
Mutual labels:  graph-convolutional-networks, graph-neural-networks, gnn
gnn-lspe
Source code for GNN-LSPE (Graph Neural Networks with Learnable Structural and Positional Representations), ICLR 2022
Stars: ✭ 165 (-66.87%)
Mutual labels:  graph-neural-networks, graph-representation-learning, gnn
graphml-tutorials
Tutorials for Machine Learning on Graphs
Stars: ✭ 125 (-74.9%)
Mutual labels:  graph-convolutional-networks, graph-neural-networks
Representation Learning on Graphs with Jumping Knowledge Networks
Representation Learning on Graphs with Jumping Knowledge Networks
Stars: ✭ 31 (-93.78%)
Mutual labels:  graph-convolutional-networks, graph-neural-networks
Spectral-Designed-Graph-Convolutions
Codes for "Bridging the Gap Between Spectral and Spatial Domains in Graph Neural Networks" paper
Stars: ✭ 39 (-92.17%)
Mutual labels:  graph-convolutional-networks, graph-neural-networks
Traffic-Prediction-Open-Code-Summary
Summary of open source code for deep learning models in the field of traffic prediction
Stars: ✭ 58 (-88.35%)
Mutual labels:  graph-convolutional-networks, graph-neural-networks
grail
Inductive relation prediction by subgraph reasoning, ICML'20
Stars: ✭ 83 (-83.33%)
Mutual labels:  graph-neural-networks, graph-representation-learning
ProteinGCN
ProteinGCN: Protein model quality assessment using Graph Convolutional Networks
Stars: ✭ 88 (-82.33%)
Mutual labels:  graph-convolutional-networks, graph-neural-networks
GNNLens2
Visualization tool for Graph Neural Networks
Stars: ✭ 155 (-68.88%)
Mutual labels:  graph-neural-networks, graph-representation-learning
SimP-GCN
Implementation of the WSDM 2021 paper "Node Similarity Preserving Graph Convolutional Networks"
Stars: ✭ 43 (-91.37%)
Mutual labels:  graph-convolutional-networks, graph-neural-networks
Stellargraph
StellarGraph - Machine Learning on Graphs
Stars: ✭ 2,235 (+348.8%)
Mutual labels:  graph-convolutional-networks, graph-neural-networks
DCGCN
Densely Connected Graph Convolutional Networks for Graph-to-Sequence Learning (authors' MXNet implementation for the TACL19 paper)
Stars: ✭ 73 (-85.34%)
Mutual labels:  graph-convolutional-networks, graph-neural-networks
Pytorch geometric
Graph Neural Network Library for PyTorch
Stars: ✭ 13,359 (+2582.53%)
Mutual labels:  graph-convolutional-networks, graph-neural-networks
Euler
A distributed graph deep learning framework.
Stars: ✭ 2,701 (+442.37%)
Mutual labels:  graph-convolutional-networks, graph-neural-networks
gemnet pytorch
GemNet model in PyTorch, as proposed in "GemNet: Universal Directional Graph Neural Networks for Molecules" (NeurIPS 2021)
Stars: ✭ 80 (-83.94%)
Mutual labels:  graph-neural-networks, gnn
mtad-gat-pytorch
PyTorch implementation of MTAD-GAT (Multivariate Time-Series Anomaly Detection via Graph Attention Networks) by Zhao et. al (2020, https://arxiv.org/abs/2009.02040).
Stars: ✭ 85 (-82.93%)
Mutual labels:  graph-neural-networks, gnn
Awesome Graph Classification
A collection of important graph embedding, classification and representation learning papers with implementations.
Stars: ✭ 4,309 (+765.26%)
Mutual labels:  graph-convolutional-networks, graph-representation-learning

Knowledge Distillation for Resource-efficient Graph Neural Networks

This repository provides resources on Graph Neural Network efficiency and scalability, as well as implementations of knowledge distillation techniques for developing resource-efficient GNNs.

Knowledge distillation pipeline for GNNs

Check out the accompanying paper 'On Representation Knowledge Distillation for Graph Neural Networks', which introduces new GNN distillation techniques using contrastive learning to preserve the global topology of teacher and student embeddings.

Chaitanya K. Joshi, Fayao Liu, Xu Xun, Jie Lin, and Chuan Sheng Foo. On Representation Knowledge Distillation for Graph Neural Networks. IEEE Transactions on Neural Networks and Learning Systems (TNNLS), Special Issue on Deep Neural Networks for Graphs: Theory, Models, Algorithms and Applications.

PDF | Blog

New to GNN scalability: See awesome-efficient-gnns.md and the accompanying blogpost for a currated overview of papers on efficient and scalable Graph Representation Learning for real-world applications.

Distillation Techniques

Representation distillation techniques for GNNs

We benchmark the following knowledge distillation techniques for GNNs:

  • Local Structure Preserving loss, Yang et al., CVPR 2020: preserve pairwise relationships over graph edges, but may not preserve global topology due to latent interactions.
  • Global Structure Preserving loss, Joshi et al., TNNLS 2022: preserve all pairwise global relationships, but computationally more cumbersome.
  • 🌟 Graph Contrastive Representation Distillation, Joshi et al., TNNLS 2022: contrastive learning among positive/negative pairwise relations across the teacher and student embedding spaces.
  • 🔥 Your new GNN distillation technique?

We also include baselines: Logit-based KD, Hinton et al., 2015; and feature mimicking baselines for computer vision: FitNet, Romero et al., 2014, Attention Transfer, Zagoruyko and Komodakis, 2016.

Datasets and Architectures

We conduct benchmarks on large-scale and real-world graph datasets, where the performance gap between expressive+cumbersome teacher and resource-efficient student GNNs is non-negligible:

  • Graph classification on MOLHIV from Open Graph Benchmark/MoleculeNet -- GIN-E/PNA teachers, GCN/GIN students.
  • Node classification on ARXIV and MAG from Open Graph Benchmark and Microsoft Academic Graph -- GAT/R-GCN teachers, GCN/GraphSage/SIGN students.
  • 3D point cloud segmentation on S3DIS -- not released publicly yet.
  • Node classification on PPI -- provided to reproduce results from Yang et al.

Installation and Usage

Our results are reported with Python 3.7, PyTorch, 1.7.1, and CUDA 11.0. We used the following GPUs: RTX3090 for ARXIV/MAG, V100 for MOLHIV/S3DIS.

Usage instructions for each dataset are provided within the corresponding directory.

# Create new conda environment
conda create -n ogb python=3.7
conda activate ogb

# Install PyTorch (Check CUDA version!)
conda install pytorch=1.7.1 cudatoolkit=11.0 -c pytorch

# Install DGL
conda install -c dglteam dgl-cuda11.0

# Install PyG
CUDA=cu110
pip3 install torch-scatter -f https://pytorch-geometric.com/whl/torch-1.7.1+${CUDA}.html
pip3 install torch-sparse -f https://pytorch-geometric.com/whl/torch-1.7.1+${CUDA}.html
pip3 install torch-cluster -f https://pytorch-geometric.com/whl/torch-1.7.1+${CUDA}.html
pip3 install torch-spline-conv -f https://pytorch-geometric.com/whl/torch-1.7.1+${CUDA}.html
pip3 install torch-geometric

# Install other dependencies
conda install tqdm scikit-learn pandas urllib3 tensorboard
pip3 install ipdb, nvidia-ml-py3

# Install OGB
pip3 install -U ogb

Citation

@article{joshi2022representation,
  title={On Representation Knowledge Distillation for Graph Neural Networks},
  author={Chaitanya K. Joshi and Fayao Liu and Xu Xun and Jie Lin and Chuan-Sheng Foo},
  journal={IEEE Transactions on Neural Networks and Learning Systems},
  year={2022}
}

@article{joshi2022efficientgnns,
  author = {Joshi, Chaitanya K.},
  title = {Recent Advances in Efficient and Scalable Graph Neural Networks},
  year = {2022},
  howpublished = {\url{https://www.chaitjo.com/post/efficient-gnns/}},
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].