An autoML framework & toolkit for machine learning on graphs.
Actively under development by @THUMNLab
Feel free to open issues or contact us at autogl@tsinghua.edu.cn if you have any comments or suggestions!
- 2021.12.31 New Version! v0.3.0-pre is here!
- AutoGL now support Deep Graph Library (DGL) backend to be interface-friendly for DGL users! All the homogeneous node classification task, link prediction task, and graph classification task are currently supported under DGL backend. AutoGL is also compatible with PyG 2.0 now.
- The heterogeneous node classification tasks are now supported! See hetero tutorial for more details.
- To make the library more flexible, the module
model
now supports decoupled to two additional sub-modules namedencoder
anddecoder
. Under the decoupled design, oneencoder
can be used to solve all kinds of tasks, relieving burdens for developing and user expanding/contributing. - We enrich our supported NAS algorithms such as AutoAttend, GASSO, hardware-aware algorithm, etc.
- 2021.07.11 New version! v0.2.0-pre is here! In this new version, AutoGL supports neural architecture search (NAS) to customize architectures for the given datasets and tasks. AutoGL also supports sampling now to perform tasks on large datasets, including node-wise sampling, layer-wise sampling, and sub-graph sampling. The link prediction task is now also supported! Learn more in our tutorial.
- 2021.04.16 Our survey paper about automated machine learning on graphs is accepted by IJCAI! See more here.
- 2021.04.10 Our paper AutoGL: A Library for Automated Graph Learning is accepted by ICLR 2021 Workshop on Geometrical and Topological Representation Learning! You can cite our paper following methods here.
AutoGL is developed for researchers and developers to conduct autoML on graph datasets and tasks easily and quickly. See our documentation for detailed information!
The workflow below shows the overall framework of AutoGL.
AutoGL uses datasets
to maintain datasets for graph-based machine learning, which is based on Dataset in PyTorch Geometric or Deep Graph Library with some functions added to support the auto solver framework.
Different graph-based machine learning tasks are handled by different AutoGL solvers
, which make use of five main modules to automatically solve given tasks, namely auto feature engineer
, neural architecture search
, auto model
, hyperparameter optimization
, and auto ensemble
.
Currently, the following algorithms are supported in AutoGL:
Feature Engineer | Model | NAS | HPO | Ensemble |
Generators Graphlets EigenGNN more ... Selectors SeFilterConstant gbdt Graph netlsd NxAverageClustering more ... |
Homo Encoders GCNEncoder GATEncoder SAGEEncoder GINEncoder Decoders LogSoftmaxDecoder DotProductDecoder SumPoolMLPDecoder JKSumPoolDecoder |
Algorithms Random RL Evolution GASSO more ... Spaces SinglePath GraphNas AutoAttend more ... Estimators Oneshot Scratch |
Grid Random Anneal Bayes CAMES MOCAMES Quasi random TPE AutoNE |
Voting Stacking |
This toolkit also serves as a framework for users to implement and test their own autoML or graph-based machine learning models.
Please make sure you meet the following requirements before installing AutoGL.
-
Python >= 3.6.0
-
PyTorch (>=1.6.0)
see https://pytorch.org/ for installation.
-
Graph Library Backend
You will need either PyTorch Geometric (PyG) or Deep Graph Library (DGL) as the backend. You can select a backend following here if you install both.
3.1 PyTorch Geometric (>=1.7.0)
See https://pytorch-geometric.readthedocs.io/en/latest/notes/installation.html/ for installation.
3.2 Deep Graph Library (>=0.7.0)
See https://dgl.ai/ for installation.
Run the following command to install this package through pip
.
pip install autogl
Run the following command to install this package from the source.
git clone https://github.com/THUMNLab/AutoGL.git
cd AutoGL
python setup.py install
If you are a developer of the AutoGL project, please use the following command to create a soft link, then you can modify the local package without install them again.
pip install -e .
Please refer to our documentation to see the detailed documentation.
You can also make the documentation locally. First, please install sphinx and sphinx-rtd-theme:
pip install -U Sphinx
pip install sphinx-rtd-theme
Then, make an html documentation by:
cd docs
make clean && make html
The documentation will be automatically generated under docs/_build/html
Please cite our paper as follows if you find our code useful:
@inproceedings{
guan2021autogl,
title={Auto{GL}: A Library for Automated Graph Learning},
author={Chaoyu Guan and Ziwei Zhang and Haoyang Li and Heng Chang and Zeyang Zhang and Yijian Qin and Jiyan Jiang and Xin Wang and Wenwu Zhu},
booktitle={ICLR 2021 Workshop on Geometrical and Topological Representation Learning},
year={2021},
url={https://openreview.net/forum?id=0yHwpLeInDn}
}
You may also find our survey paper helpful:
@article{zhang2021automated,
title={Automated Machine Learning on Graphs: A Survey},
author={Zhang, Ziwei and Wang, Xin and Zhu, Wenwu},
booktitle = {Proceedings of the Thirtieth International Joint Conference on Artificial Intelligence, {IJCAI-21}},
year={2021},
note={Survey track}
}
We follow Apache license across the entire codebase from v0.2.