最近火爆的人工智能2.0--图神经网络,究竟什么来路?

最近火爆的人工智能2.0--图神经网络,究竟什么来路?

最近几年,作为一项新兴的图数据学习技术,图神经网络(GNN)受到了广泛的关注。2018年年末,发生了两件特殊的事情。图数据学习领域同时发表了三篇综述论文,这种现象体现了学术界对该项技术的高度认可;更有众多工业界与学术界的大佬联名上书,支持GNN。由DeepMind、谷歌大脑、MIT 和爱丁堡大学等公司和机构的 27 位科学家共同发表了一篇论文Relational inductive biases, deep learning, and graph networks,提出了图网络(graph network)的概念。让深度学习也能因果推理。

https://pic4.zhimg.com/80/v2-c9848f22dc6f0ff4cad95d53192fc9db_720w.jpg

图1 27位科学家联名综述[1]

知道它这么厉害,总要先知道它是什么吧,首先我们来看看图神经网络究竟是什么样子的。 下面我们通过两张图说明普通卷积与图神经网络卷积的含义与不同。

图2 普通卷积网络

如图2所示,普通卷积神经网络使用的卷积核一般是固定大小的(如图中为3*3大小)。它的应用一般面向的对象是序列或者是图像这种规则化的数据结构,这就是为什么现在神经网络在图像处理与自然语言处理领域应用的如此火爆。

图3图卷积神经网络

图卷积神经网络也是卷积,如图3所示,我们卷积产生的结果Z3就是来自X1,X2,X3,X4,简单的说就是邻域节点的特征对于自己有没有帮助,进行一定的吸收,吸收之后重新产生一个新的图。图卷积的功能与传统卷积神经网络是相同的,提取高维特征,找到更加粗粒度的表示,例如图中存在的社团,簇等等。但是卷积的时候由于受限于邻居节点数量不同的问题。图神经网络卷积核的选取往往比较困难。

看完了对比,我们发现普通神经网络主要是依靠固定的卷积核组合出高维特征。图神经网络使用特别设计的卷积核来提取泛图数据中的高维特征。卷积核的设计一般有两种方式,后续我们会聊到。

有人说就这模样,就人工智能2.0了,你骗钱呐吧!别急,我们往下看,自2012年以来,深度学习理论及其所需的硬件计算能力取得了很大的发展,然后它在很多的领域取得了极大的发展。尤其在计算机视觉以及自然语言处理两个领域取得了巨大的成功。深度学习的杰出代表就是CNN,RNN。俩兄弟一个处理图片,一个处理序列,分工明确,各司其职(但是我告诉你们一个秘密,最近又出了个temporal convolutional neural network,这两个兄弟要打架了,CNN要抢RNN的饭碗啊)。言归正传,我觉得题目中所说的图神经网络(GNN)将会是第三个杰出代表,为什么这么说呐?主要有两个核心原因。

第三个杰出代表,why?

1.传统神经网络无法逾越的鸿沟

https://static.leiphone.com/uploads/new/sns/article/201905/5ce69d7cb7ddc.png
CNN无法处理非欧几里得结构(Non Euclidean Structure)数据,学术上的表达是传统的离散卷积在非欧几里得结构的数据上无法保持平移不变性。通俗的理解就是在拓扑图中每个顶点的相邻节点数目可能不同,所以根本无法用一个同样尺寸的卷积核来进行卷积运算。

图4 图卷积神经网络

我们还是来看这张图片,我们会发现X3有三个邻居,但是X1,X2只有一个邻居,所以我们再卷积的时候卷积的大小究竟是1?还是3?这个情况CNN是hold不住的啊。

由于传统神经网络的大兄弟CNN无法处理非欧几里得结构的数据,又希望在这样的数据结构(拓扑图)上有效地提取空间特征来进行机器学习,所以GCN成为了研究的重点。

 

2.面向对象广

既然能够处理非欧几里得结构数据,那这种数据究竟有什么用处呐?其实现实的问题当中还存在大量的该结构数据,如社交多媒体网络(Social Network)数据,化学成分(Chemical Compound)结构数据,生物基因蛋白(Protein)数据以及知识图谱(Knowledge Graphs)数据等均可以抽象出图谱,同时图也是一种典型的非欧几里得结构数据。图神经网络能够解决该结构数据的卷积,因此它有很大的应用空间。

 

GNN如此厉害,有何具体的操作?

按照我们上面介绍的图神经网络理论思路,它有两种方式,这两种方式其实也比较简单,继续向下看吧。

(1)空域(spatial domain)卷积

简单说就是提取拓扑图上的空间特征,然后把每个顶点相邻的节点(邻域)找出来,我把你拼成规则的数据结构,然后进行卷积[2]。
具体的操作方法包含三个步骤:
1.从图中选择一个固定长度的节点序列;
2.对序列中的每个节点,收集固定大小的邻域集合;
3.对由当前节点及其对应的邻域构成的子图进行规范化,作为卷积结构的输入,后面就是传统神经网络的常规操作了。

(2) 频域(spectral domain)卷积

这种思路就是希望借助图谱的理论来实现拓扑图上的卷积操作。从整个研究的时间进程来看:首先研究谱图论(graph signal processing)的学者定义了graph上的Fourier Transformation,进而定义了graph上的convolution,最后与深度学习结合提出了Graph Convolutional Network。其实核心概念就是借助于图的拉普拉斯矩阵的特征值和特征向量来研究图的性质。什么是拉普拉斯矩阵呢?拉普拉斯矩阵就是长下面这个样子(最右侧),它就是包含了每个节点自身与其邻域节点连接信息的矩阵。

图5 拉普拉斯矩阵(引自维基百科)

其实使用的时候非常的简单,我们继续向下看:

最后我们编程使用的就是AXW,基本上所有使用GCN的论文都可以看到这个公式的身影,最多就是变形些。其中A是标准化的邻接矩阵,X是每个节点的特征矩阵,就是每个节点有什么属性,举个简单的例子,比如图像处理中,图片的每个像素有RGB值,如果把每个像素看作一个节点,那RGB值就是三个属性。W是学习的参数,就是神经网络要训练优化的参数。再牛一些的公式就是A(AXW)W,它是一个两层的图卷积网络,一般的图卷积网络由于计算量比较大,除非经过特殊的改良,否则实验只操作到两层。

从上面我们可以看出来,目前设计图卷积核的方式主要是两个,第一种设计的卷积核是确定的,比如空域。对于不同的图,如果每个节点的邻居数量不同,要去规范化一个卷积核,,那就选取固定数量的邻居,这样就能够使用一个固定大小的卷积核。第2种就是频域的卷积核设计,我将所有的节点都考虑,但是在卷积的时候,我根据拉普拉斯矩阵的特征进行选择,只选择部分与节点相关的邻域进行卷积。

空域卷积其实是将问题简单化,卷积前先进行剪枝邻域,所以计算速度一般较快。频域的卷积是先将所有的节点考虑,然后在卷积时依靠拉普拉斯矩阵进行筛选,由于考虑了所有节点,所以这种计算速度明显的要慢一些。

总结

看到这里相信你对图神经网络有了比较全面的认识。图神经网络有着如此大的应用市场,如智能交通,智慧物流,社交网络等复杂场景,又有如此简单的操作,相信以后可以大有作为。

参考文献

[1] Battaglia, Peter W, Hamrick, Jessica B, Bapst, Victor,等. Relational inductive biases, deep learning, and graph networks[J].

[2] Niepert M , Ahmed M , Kutzkov K . Learning Convolutional Neural Networks for Graphs[J]. ICML ,2016.

 

 

猜你喜欢

转载自blog.csdn.net/huang_shao1/article/details/105040482