图是一种数据结构,它对一组对象(节点)及其关系(边)进行建模。近年来,由于图结构的强大表现力,用机器学习方法分析图的研究越来越受到重视。图神经网络(GNN)是一类基于深度学习的处理图域信息的方法。由于其较好的性能和可解释性,GNN 最近已成为一种广泛应用的图分析方法。
本质上说,世界上所有的数据都是拓扑结构,也就是网络结构,如果能够把这些网络数据真正的收集、融合起来,这确实是实现了AI智能的第一步。所以,如何利用深度学习处理这些复杂的拓扑数据,如何开创新的处理图数据以及知识图谱的智能算法是AI的一个重要方向。
自2012年以来,深度学习在计算机视觉以及自然语言处理两个领域取得了巨大的成功。假设有一张图,要做分类,传统方法需要手动提取一些特征,比如纹理啊,颜色啊,或者一些更高级的特征。然后再把这些特征放到像随机森林等分类器,给到一个输出标签,告诉它是哪个类别。而深度学习是输入一张图,经过神经网络,直接输出一个标签。特征提取和分类一步到位,避免了手工提取特征或者人工规则,从原始数据中自动化地去提取特征,是一种端到端(end-to-end)的学习。相较于传统的方法,深度学习能够学习到更高效的特征与模式。
深度学习在多个领域的成功主要归功于计算资源的快速发展(如 GPU)、大量训练数据的收集,还有深度学习从欧几里得数据(如图像、文本和视频)中提取潜在表征的有效性。但是,尽管深度学习已经在欧几里得数据中取得了很大的成功,但从非欧几里得域生成的数据已经取得更广泛的应用,它们需要有效分析。例如,在电子商务领域,一个基于图的学习系统能够利用用户和产品之间的交互以实现高度精准的推荐。在化学领域,分子被建模为图,新药研发需要测定其生物活性。在论文引用网络中,论文之间通过引用关系互相连接,需要将它们分成不同的类别。
图数据的复杂性对现有机器学习算法提出了重大挑战,因为图数据是不规则的。每张图大小不同、节点无序,一张图中的每个节点都有不同数目的邻近节点,使得一些在图像中容易计算的重要运算(如卷积)不能再直接应用于图。此外,现有机器学习算法的核心假设是实例彼此独立。然而,图数据中的每个实例都与周围的其它实例相关,含有一些复杂的连接信息,用于捕获数据之间的依赖关系,包括引用、朋友关系和相互作用。
最近,越来越多的研究开始将深度学习方法应用到图数据领域。受到深度学习领域进展的驱动,研究人员在设计图神经网络的架构时借鉴了卷积网络、循环网络和深度自编码器的思想。为了应对图数据的复杂性,重要运算的泛化和定义在过去几年中迅速发展。
图卷积神经网络(Graph Convolutional Network)是一种能对图数据进行深度学习的方法。
图卷积网络(Graph Convolutional Networks (GCNs))的结构
不妨先设一个图:G = (V,E) 图的关系都由V节点(Vertex)和E 边(Edge)构成
受到卷积网络在计算机视觉领域所获巨大成功的激励,近来出现了很多为图数据重新定义卷积概念的方法。这些方法属于图卷积网络(GCN)的范畴。Bruna 等人(2013)提出了关于图卷积网络的第一项重要研究,他们基于谱图论(spectral graph theory)开发了一种图卷积的变体。自此,基于谱的图卷积网络不断改进、拓展、进阶。由于谱方法通常同时处理整个图,并且难以并行或扩展到大图上,基于空间的图卷积网络开始快速发展。这些方法通过聚集近邻节点的信息,直接在图结构上执行卷积。结合采样策略,计算可以在一个批量的节点而不是整个图中执行,这种做法有望提高效率。
图卷积神经网络具有卷积神经网络的以下性质:
1、局部参数共享,算子是适用于每个节点(圆圈代表算子),处处共享。
2、感受域正比于层数,最开始的时候,每个节点包含了直接邻居的信息,再计算第二层时就能把邻居的邻居的信息包含进来,这样参与运算的信息就更多更充分。层数越多,感受域就更广,参与运算的信息就更多。
GCN模型同样具备深度学习的三种性质:
1、层级结构(特征一层一层抽取,一层比一层更抽象,更高级);
2、非线性变换 (增加模型的表达能力);
3、端对端训练(不需要再去定义任何规则,只需要给图的节点一个标记,让模型自己学习,融合特征信息和结构信息。)
GCN四个特征:
1、GCN 是对卷积神经网络在 graph domain 上的自然推广。
2、它能同时对节点特征信息与结构信息进行端对端学习,是目前对图数据学习任务的最佳选择。
3、图卷积适用性极广,适用于任意拓扑结构的节点与图。
4、在节点分类与边预测等任务上,在公开数据集上效果要远远优于其他方法。
图神经网络这块的研究主要涉及到如下的几个方面:
1、 图表示学习
2、 图网络结构
3、 图注意力机制
4、 子图采样
5、 图结构生成
6、 图网络迁移学习
其中,图表示学习、图网络结构、子图采样、图注意力机制是最基础和最常用的,基本上较为完整的图网络模型都包含这几个流程(对应的开源框架:图表示学习--OpenNE、图注意力机制--GATs)。
应用方向
对于图神经网络的研究,具体可以分为两个重要的方向:
1、基于关系明显的图数据挖掘: 这个方向主要是研究对很容易形成网络数据的场景进行数据分析、预测,在已经网络数据的基础上进行挖掘,主要就是做节点分类、节点状态预测、节点链接预测等,比如社交网络、商品推荐等;
2、基于关系模糊的图数据建模与推理:这个方向难点在于,场景里面本身没有明显的网络数据,需要我们根据场景建立网络关系模型,然后再做相关的关系推理和状态预测,比如人物姿态识别(把人物关节点作为建模为图节点数据)、场景识别、获取最短路径等。
建模流程
对于图神经网络的建模,其实也具有一定的规律,一般化的流程可以归纳如下的步骤:
1、图节点预表示:利用NE框架,直接获得全图每个节点的Embedding;
2、正负样本采样:(1)单节点样本;(2)节点对样本;
3、抽取封闭子图:可做类化处理,建立一种通用图数据结构
4、子图特征融合:预表示、节点特征、全局特征、边特征
5、网络配置:可以是图输入、图输出的网络;也可以是图输入,分类/聚类结果输出的网络
6、训练和测试
加深网络。深度学习的成功在于深度神经架构。例如在图像分类中,模型 ResNet 具有 152 层。但在图网络中,实证研究表明,随着网络层数增加,模型性能急剧下降 [147]。根据论文 [147],这是由于图卷积的影响,因为它本质上推动相邻节点的表示更加接近彼此,所以理论上,通过无限次卷积,所有节点的表示将收敛到一个点。这导致了一个问题:加深网络是否仍然是学习图结构数据的好策略?
感受野。节点的感受野是指一组节点,包括中心节点和其近邻节点。节点的近邻(节点)数量遵循幂律分布。有些节点可能只有一个近邻,而有些节点却有数千个近邻。尽管采用了采样策略 [24], [26], [27],但如何选择节点的代表性感受野仍然有待探索。
可扩展性。大部分图神经网络并不能很好地扩展到大型图上。主要原因是当堆叠一个图卷积的多层时,节点的最终状态涉及其大量近邻节点的隐藏状态,导致反向传播变得非常复杂。虽然有些方法试图通过快速采样和子图训练来提升模型效率 [24], [27],但它们仍无法扩展到大型图的深度架构上。
动态性和异质性。大多数当前的图神经网络都处理静态同质图。一方面,假设图架构是固定的。另一方面,假设图的节点和边来自同一个来源。然而,这两个假设在很多情况下是不现实的。在社交网络中,一个新人可能会随时加入,而之前就存在的人也可能退出该社交网络。在推荐系统中,产品可能具有不同的类型,而其输出形式也可能不同,也许是文本,也许是图像。因此,应当开发新方法来处理动态和异质图结构。
笔记来源:
https://zhuanlan.zhihu.com/p/40991375 https://zhuanlan.zhihu.com/p/37091549
https://zhuanlan.zhihu.com/p/49835919 https://www.jiqizhixin.com/articles/2019-01-07-8
论文:
Semi-Supervised Classification with Graph Convolutional Networks
Modeling Relational Data with Graph Convolutional Networks
Relational inductive biases, deep learning, and graph networks
A Comprehensive Survey on Graph Neural Networks
Graph Neural Networks: A Review of Methods and Applications