像深度学习框架一样,图深度学习库也是百家争鸣。这些图深度学习库:
由于很多深度学习框架已经成熟,因此他们基本都是构建于现有深度学习库之上的,即支持高效的张量操作和运算,支持GPU训练测试模型;
由于Python是深度学习接口的第一语言,因此它们基本都是以Python为接口语言的;
由于典型的模型算法都是开源的,因此它们基本都会实现或修改经典的图神经网络模型,让用户可以更方便地调用;
由于是用于图结构数据的计算库,因此它们基本都会内置大量的基础的在图上的常用操作方法。
流行的图深度学习
PyTorch Geometric
是一个构建于PyTorch基础上的几何深度学习库,它可以直接应用在诸如图,点云和流形数据等不规则结构数据上。除了常用的图结构数据的处理方法外,它还包含来自关系学习和3D数据处理领域的公布的各种最新方法。
资源地址:
https://github.com/rusty1s/pytorch_geometric
https://arxiv.org/pdf/1903.02428.pdf
DGL
Deep Graph Library 是一个 Python 版本的图深度学习库,它扩展了现有的张量库,并提供处理图数据的接口。它可以应用在现有的很多深度学习框架(例如,PyTorch,MXNet,Gluon等)之上,方便地实现图神经网络模型,同时保持较高的计算效率。DGL 由纽约大学,纽约大学上海分校,AWS上海 AI 实验室和 AWS MXNet 科学团队开发和维护。
资源地址:
https://github.com/dmlc/dgl
Graph Nets
Graph Nets 是由 DeepMind 开发的图网络库,用于在 TensorFlow 和 Sonnet 中构建图网络。开源的这个项目主要是依据他们在 6 月份发表的论文《Relational inductive biases, deep learning, and graph networks》,他们在该论文中将深度学习与贝叶斯网络进行了融合,并提出了一种具有推理能力的概率图模型。
资源地址:
https://github.com/deepmind/graph_nets
https://arxiv.org/pdf/1806.01261.pdf
OpenNE
这是由清华大学的自然语言处理实验室开源的一个网络嵌入工具包。它提供了标准的网络嵌入/网络表示学习的训练和测试框架。在框架中,统一了不同网络嵌入模型的输入和输出接口,并为各个模型提供可扩展的选项。框架基于 TensorFlow 实现了很多典型的网络嵌入模型。
资源地址:
https://github.com/thunlp/OpenNE
PyTorch-BigGraph
这是一个用于学习大规模图嵌入的分布式系统,特别适用于处理具有多达数十亿实体和数万亿条边的大型网络交互图。
资源地址:
https://github.com/facebookresearch/PyTorch-BigGraph
euler
euler 是由阿里妈妈工程平台团队与搜索广告算法团队共同探讨与开发的一个大规模分布式的图学习框架,可以配合 TensorFlow 或阿里开源的 XDL 等深度学习工具,支持在数十亿节点数百亿边数的复杂异构网络上进行模型训练。
资源地址:
https://github.com/alibaba/euler
StellarGraph
是一个用于在图结构数据上进行机器学习的Python库。
资源地址:
https://github.com/stellargraph/stellargraph
其中 ①②③ 偏向深度学习,④ 偏向于图嵌入,⑤和 ⑥ 偏向于大规模网络的工业应用,⑦ 偏向于机器学习。