New Features
- Support link prediction task on knowledge graphs
- Support hyper-parameter search using `optuna`
New Models
- [`GCC`](https://github.com/THUDM/cogdl/blob/master/cogdl/models/nn/dgl_gcc.py) for graph classification: `GCC` is a contrastive learning framework that implements unsupervised structural graph representation pre-training.
- [`GRAND`](https://github.com/THUDM/cogdl/blob/master/cogdl/models/nn/grand.py) for node classification (thanks to wzfhaha): `GRAND` randomly drops node features in training process to implement data augmentatoin and achieves sota in benchmarks.
- [`DGI`](https://github.com/THUDM/cogdl/blob/master/cogdl/models/nn/dgi.py) for unsupervised node classification: `DGI` applies local-global contrastive learning methods to train GNN and first achieves results comparable to semi-supervised methods in benchmarks.
- [`MVGRL`](https://github.com/THUDM/cogdl/blob/master/cogdl/models/nn/mvgrl.py) for unsupervised node classification: `MVGRL` is a self-supervised approach based on contrastive multi-view learning to learn representations.
- [`ProNE++`](https://github.com/THUDM/cogdl/blob/master/cogdl/models/emb/prone%2B%2B.py) for unsupervised node classification: `ProNE++` employs graph filter and AutoML to help enhance node embeddings.
- [`GraphSAGE`](https://github.com/THUDM/cogdl/blob/master/cogdl/models/nn/unsup_graphsage.py) for unsupervised node classification: unsupervised version of GraphSAGE.
- [`DisenGCN`](https://github.com/THUDM/cogdl/blob/master/cogdl/models/nn/disengcn.py) for node classification: `DisenGCN` disentangles node representations by separating different factors.
- [`CompGCN`](https://github.com/THUDM/cogdl/blob/master/cogdl/models/nn/compgcn.py)/[`RGCN`](ster/cogdl/models/nn/rgcn.py) for KG link prediction: `RGCN` and `CompGCN` are GNNs for knowledge graph embedding considering the type of edges.
New Results
- `GCC` results for heterogeneous node classification task
New Datasets
- Add some [knowledge graph datasets](https://github.com/THUDM/cogdl/blob/master/cogdl/datasets/kg_data.py) (FB/WN datasets)
New Examples
- Add an example using [hyper-parameter search](https://github.com/THUDM/cogdl/blob/master/examples/hyper_search.py)
- Add an example using a [custom dataset/model](https://github.com/THUDM/cogdl/tree/master/examples)
Bug Fixes
- Fixed "division by zero" bug in Sparse GAT model
Requirement Update
- CogDL now requires `optuna`
- CogDL does not require `dgl.model_zoo` anymore.
Miscellaneous
- Add a check whether tuples of (task, model, dataset) are matching in the training script
- Add a `GCC` pre-trained model in `saved/`