gtrick: Bag of Tricks for Graph Neural Networks.

July 19, 2024 · View on GitHub

gtrick is an easy-to-use Python package that collects tricks for graph neural networks. It tests and provides powerful tricks to boost your models' performance.

Trick is all you need! (English Document | 中文介绍)

Library Highlights

  • Easy-to-use: All it takes is to add a few lines of code to apply a powerful trick, with as few changes to existing code as possible.
  • Verified Trick: All tricks implemented in gtrick are tested on our selected datasets. Only the tricks indeed improving a model's performance can be collected by gtrick.
  • Backend Free: We provide all tricks both in DGL and PyG. Whatever graph learning library you use, feel free to try it.

Installation

Note: This is a developmental release.

pip install gtrick

Quick Start

It is very easy to get started with gtrick. You can enhance your GNN model with only a few lines of code.

quickstart

For more detailed examples, see Example in Trick.

Trick

TrickExampleTaskReference
VirtualNodeDGL
PyG
graphOGB Graph Property Prediction Examples
FLAGDGL
PyG
node*
graph
Robust Optimization as Data Augmentation for Large-scale Graphs
FingerprintDGL
PyG
molecular graph*Extended-Connectivity Fingerprints
Random FeatureDGL
PyG
graph*Random Features Strengthen Graph Neural Networks
Label PropagationDGL
PyG
node*Learning from Labeled and Unlabeled Data with Label Propagation
Correct & SmoothDGL
PyG
node*Combining Label Propagation And Simple Models Out-performs Graph Neural Networks
Common NeighborsDGL
PyG
link*Link Prediction with Structural Information
Resource AllocationDGL
PyG
link*Link Prediction with Structural Information
Adamic AdarDGL
PyG
link*Link Prediction with Structural Information
Anchor DistanceDGL
PyG
link*Link Prediction with Structural Information

We have tested all these tricks on selected datasets, you can find the benchmark in PyG Benchmark and DGL Benchmark.

For the ogbg-molhiv GIN, please refer to @willy-b's code.

Contributing

Please let me know if you encounter a bug or have any suggestions by filing an issue.

All contributions for bug fixes, new tricks, and better examples are welcome.

There are also some tricks I'm planning to add, feel free to implement one of them for gtrick: