首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

GNNs相关开源实现资源整理及应用发展分析

技术前沿

来源:IEEE Fellow、Senior Member 和 Member Zonghan Wu 等人贡献的图神经网络综述文章。

编译整理:萝卜兔

近年来深度学习为很多机器学习任务带来了突破,包括图像分类、语音识别和自然语言理解。在这些任务中,通常都是欧式数据。然而,现实中有很多数据都是非线性的,我们通常用图(Graph)来表示物体间的关系。

由于图数据的复杂性,很多机器学习算法处理起来很有挑战性。最近,出现了很多关于处理图数据的深度学习方法研究。在本综述中,我们将让大家全面了解GNNs在数据挖掘和机器学习领域的应用。

本文提出一种新的分类方法,将图神经网络划分为不同的类别。着眼于GCN,我们一起回顾各种GNNs架构,包括Graph attention networks,Graph autoencoders,Graph generative networks以及Graph spatial-temporal networks。

当然,有了算法的创新,还需要有应用领域,我们为大家总结了相关领域的应用和项目。最后,将一起探讨一下该领域的潜在研究方向。

概况

虽然深度学习在欧式数据分析中取得了巨大成功,但是还有大量的非欧式数据在各种各样的生活场景以及应用中产生,需要进行数据分析。例如电子商务,基于图数据分析的系统能够利用用户与产品间的交互来进行更加准确的推荐;在化学中,高分子可以建模成图数据,用来分析生物活性以用于药物的研究;引文网络中,论文互相关联,建立不同的分组。

图是由许多节点组成的,每个节点具有不同数量的邻居节点,节点与节点之间存在着某种关系。这样的结构使得原来适用于图像领域的操作,不能直接应用于图领域了。此外,现有机器学习算法的核心假设是实例彼此独立。

开源实现概览

ChebNet (2016)

tensorflow

https://github.com/mdeff/cnn_graph

1stChebNet (2017)

tensorflow

https://github.com/tkipf/gcn

GGNNs (2015)

lua

https://github.com/yujiali/ggnn

SSE (2018)

c

https://github.com/Hanjun-Dai/steady_state_embedding

GraphSage (2017)

tensorflow

https://github.com/williamleif/GraphSAGE

LGCN (2018)

tensorflow

https://github.com/divelab/lgcn/

SplineCNN (2018)

pytorch

https://github.com/rusty1s/pytorch_geometric

GAT (2017)

tensorflow

https://github.com/PetarV-/GAT

GAE (2016)

tensorflow

https://github.com/limaosen0/Variational-Graph-Auto-Encoders

ARGA (2018)

tensorflow

https://github.com/Ruiqi-Hu/ARGA

DNGR (2016)

matlab

https://github.com/ShelsonCao/DNGR

SDNE (2016)

python

https://github.com/suanrong/SDNE

DRNE (2016)

tensorflow

https://github.com/tadpole/DRNE

GraphRNN (2018)

tensorflow

https://github.com/snap-stanford/GraphRNN

DCRNN (2018)

tensorflow

https://github.com/liyaguang/DCRNN

CNN-GCN (2017)

tensorflow

https://github.com/VeritasYin/STGCN_IJCAI-18

ST-GCN (2018)

pytorch

https://github.com/yysijie/st-gcn

Structural RNN (2016)

theano

https://github.com/asheshjain399/RNNexp

实际应用

GNNs在不同的任务和领域中有着广泛的应用。尽管每一种类别的GNN都有常规的任务,比如节点分类(node classification),节点表示学习(node representation learning),图分类(graph classification),图生成(graph generation)和时空预测(spatial-temporal forecasting)。

GNNs同样可以应用于节点聚类(node clustering),边预测(link prediction )和图区分(graph partition)。在这一部分我们主要根据它们所属的一般领域介绍实际应用。

Computer Vision

GNNs的应用领域之一。研究人员已经探索了场景图生成(scene graph generation),点云分类和分割(point clouds classification and segmentation),动作识别(action recognition)等应用。

在场景图生成中(scene graph generation),对象之间的语义关系有助于机器理解视觉场景背后的语义。给定一张图像,场景生成模型会检测和识别图像中的对象,并预测对象之间的语义关系。另一应用通过给定场景图(包含语义关系),模型生成逼真的图像(与上一应用过程相反)。由于自然语言可以解析为语义图,其中每个单词代表一个对象,因此在给定文本描述的情况下合成图像是很有前景的。

在点云分类和分割(point clouds classification and segmentation)中,点云是由LiDAR扫描记录的一组3D点。应用GNNs可以是LiDAR设备能够看到周围的环境,这通常使用在自动驾驶领域。为了识别点云描绘的对象,将点云转换为k-最近邻图或者超点图,并使用图卷积神经网络来探索拓扑结构。

在动作识别中,识别视频中包含的人类行为有助于机器更好的理解视频内容。常用的解决方案是检测视频中人体关键点位置,人体关键点相互连接形成自然的graph。给定人类关键点位置的时间序列,使用时空神经网络预测人类动作模式。

总的来说,将GNNs应用到计算机视觉中是一种趋势,未来将更多。除了上面提到的,还包括比如few-shot image classification,语义分割(semantic segmentation),视觉推理(visual reasoning),问答( question answering)。

Recommender Systems

基于图数据的推荐系统将物品和用户作为节点。通过利用物品与物品、用户与用户、用户与物品以及内容信息之间的关系,推荐系统能够实现更加准确的推荐。推荐系统的关键是将物品的重要性评分给用户。结果是,可以转化为边预测问题,目标是预测用户和物品之间缺失的关系。为了解决这个问题,Van等人提出了一个基于GCN的图自动编码器(GCN-based graph auto-encoder)【论文一】。Monti 等人结合了GCN和RNN来学习进行评分过程。【论文二】

Traffic

交通堵塞是现代城市一个很普遍的问题。准确预测交通网络中的交通速度,交通量或密度对于路线规划和流量控制至关重要。在一些论文研究中,提出了基于图的时空预测神经网络。输入模型的数据是时空图(spatial-temporal graph)。在spatial-temporal graph中,节点是放置在各种道路上的传感器,边是由阈值以上的成对节点的距离表示,并且每个节点包含时间序列作为特征。目标是能够在一个时间间隔内预测道路的平均速度。

另一个比较有意思的是出租车需求预测(打车需求)。这能够帮助只能交通系统充分利用资源,有效节约能源。基于出租车历史需求、地理信息、天气数据和事件特征,Yao等发布了相关研究论文【论文三】,结合了LSTM,CNN和LINE训练的node embeddings为每个位置生成一个联合表示,来预测一个时间间隔内某个位置需要的出租车数量。

生物化学

在生物化学领域的应用大家应该可以想象,研究人员用GNNs学习分子的图结构。在分子图中,原子作为节点,化学键作为边。节点分类、图分类和图生成是主要的三种任务,旨在学习分子分子指纹(molecular fingerprints),预测分子特性,推断蛋白质界面和合成化合物。

其他

还有一些GNNs的应用领域才刚刚起步,比如说程序验证,社会影响预测,风险预测,对抗性攻击预防,健康管理,事件检测以及组合优化等问题。

未来发展方向

GNNs在学习图数据方面已经表现出了它的能力,未来的挑战仍然是图的复杂性。在这里,我们提供四个未来可能的发展方向。

Go Deep

深度学习的成功是建立在更深层的神经架构上的。比如在图像分类中,杰出的模型ResNet有152层。然而,在图数据上,根据目前的研究,随着模型层数的增加,模型的性能急剧下降。根据Q. Li, Z. Han,和 X.-M. Wu等人的论文【论文四】,这是由于图卷积的影响,因为卷积推动了相邻节点的表示彼此更接近,那么在理论上,通过无限次卷积,所有节点的表示将收敛到一个点上。于是,这提出了一个值得我们思考的问题,即增加模型的深度是否仍然是学习图数据的好策略?

Receptive Filed

节点的感受野是指包含中心节点和它的邻居的一组节点。节点的邻居数量遵循幂律分布(power law distribution),一些节点只有一个邻居,而一些节点可能有上千邻居。虽然抽样策略是目前我们采用的方法,但是如何选择一个具有代表性的感受野仍然值得探索。

Scalability

大部分的GNNs对于大图的扩展性并不好。主要的原因是当堆叠图卷积的多个层时,节点的最终状态涉及其大量邻居的隐藏状态,这导致了反向传播的高度复杂性。虽然一些研究提出尝试快速采样【论文五】和子图训练【论文六】的方法来提升他们模型的效率,但是其可扩展性仍然不足以支持大图的深层结构。

Dynamics and Heterogeneity

大多数当前的GNNs都采用静态同构图,一方面假设图结构是固定的,另一方面,假设图中的节点和边来自于单一的源。但是,在许多情况下,这两个假设是不现实的。在社交网络中,新人可以在任何时间进入网络,同样任何人也可以随时退出网络。在一个推荐系统中,产品会有不同的类型,输入形式可以是文本,也可以是图像。因此,应该探索新的方法来处理动态和异构图。

https://www.arxiv-vanity.com/papers/1901.00596/

论文链接:

https://arxiv.org/abs/1901.00596

论文一:

R. van den Berg, T. N. Kipf, and M. Welling, “Graph convolutional matrix completion,” stat, vol. 1050, p. 7, 2017.

https://arxiv.org/abs/1706.02263

论文二:

F. Monti, M. Bronstein, and X. Bresson, “Geometric matrix completion with recurrent multi-graph neural networks,” in Advances in Neural Information Processing Systems, 2017, pp. 3697–3707.

https://arxiv.org/abs/1704.06803

论文三:

H. Yao, F. Wu, J. Ke, X. Tang, Y. Jia, S. Lu, P. Gong, J. Ye, and Z. Li, “Deep multi-view spatial-temporal network for taxi demand prediction,” inProceedings of the AAAI Conference on Artificial Intelligence, 2018, pp. 2588–2595.

https://arxiv.org/abs/1802.08714

论文四:

Q. Li, Z. Han, and X.-M. Wu, “Deeper insights into graph convolutional networks for semi-supervised learning,” in Proceedings of the AAAI Conference on Artificial Intelligence, 2018.

https://arxiv.org/abs/1801.07606

论文五:

J. Chen, T. Ma, and C. Xiao, “Fastgcn: fast learning with graph convolutional networks via importance sampling,” in Proceedings of the International Conference on Learning Representations, 2018.

https://arxiv.org/abs/1801.10247

论文六:

W. Hamilton, Z. Ying, and J. Leskovec, “Inductive representation learning on large graphs,” in Advances in Neural Information Processing Systems, 2017, pp. 1024–1034.

https://arxiv.org/abs/1706.02216

>

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190108A06KTC00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券