这段时间准备尝试做一些Graph Neural Network方面的实验,在GitHub上看了一下,发现有些朋友使用的是DGL这个库。我之前对这个库不太了解,瞅了一下,发现还挺方便的。DGL是上海纽约大学发起的,以中国人为主导的开源项目。感谢他们做的贡献。
在这里列出了很多Graph Neural Network的例子:https://github.com/dmlc/dgl/tree/master/examples
由于我比较关心的是graph classification这个task,所以搜了一下,发现也有不少实现,其中比较有代表性的包括:
GCN:
Kipf and Welling. Semi-Supervised Classification with Graph Convolutional Networks. Paper link.
- Example code: PyTorch, PyTorch on ogbn-arxiv, PyTorch on ogbl-ppa, PyTorch on ogbg-ppa, TensorFlow, MXNet
- Tags: node classification, link prediction, graph classification, OGB
GGNN:
Li et al. Gated Graph Sequence Neural Networks. Paper link.
- Example code: PyTorch
- Tags: question answering
以及GIN:
Xu et al. How Powerful are Graph Neural Networks? Paper link.
- Example code: PyTorch on graph classification, PyTorch on node classification, PyTorch on ogbg-ppa, MXNet
- Tags: graph classification, node classification, OGB
按照上面这些链接,对应的graph classification的例子代码分别是:
GCN:https://github.com/awslabs/dgl-lifesci/tree/master/examples/property_prediction/ogbg_ppa
GGNN:https://github.com/dmlc/dgl/tree/master/examples/pytorch/ggnn
GIN:https://github.com/dmlc/dgl/tree/master/examples/pytorch/gin
说实话,个人觉得,如果不是专门搞Deep Learning和Graph Neural Network的,其实在论文里evaluate一下这些典型的模型就可以了。也可以看到,像GCN的例子并不是在DGL中,而是Amazon AWS的lab的项目,这个也很好理解啊,估计和
Yann LeCun有点关系,因为他是纽约大学的。
就简单总结这么多,希望能对一些仅仅想使用Graph Neural Network的盆友有点帮助。
---------------------
2021年5月31日更新:
试了一下,发现其实例子也并不好用,于是还是参考GIN和这里:https://docs.dgl.ai/tutorials/blitz/5_graph_classification.html
再参考了一下GCN和GAT的实现代码:https://github.com/dmlc/dgl/blob/master/examples/pytorch/gcn/gcn.py
https://github.com/dmlc/dgl/blob/master/examples/pytorch/gat/gat.py
然后自己魔改好了。由于有很多和项目相关的代码,就不放上来了。