最近几年,作为一项新兴的图数据学习技术,图神经网络(GNN)受到了广泛的关注。2018年年末,发生了两件特殊的事情。图数据学习领域同时发表了三篇综述论文,这种现象体现了学术界对该项技术的高度认可;更有众多工业界与学术界的大佬联名上书,支持GNN。由DeepMind、谷歌大脑、MIT 和爱丁堡大学等公司和机构的 27 位科学家共同发表了一篇论文Relational inductive biases, deep learning, and graph networks,提出了图网络(graph network)的概念。让深度学习也能因果推理。
图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)将会是第三个杰出代表,为什么这么说呐?主要有两个核心原因。
传统神经网络无法逾越的鸿沟
CNN无法处理非欧几里得结构(Non Euclidean Structure)数据,学术上的表达是传统的离散卷积在非欧几里得结构的数据上无法保持平移不变性。通俗的理解就是在拓扑图中每个顶点的相邻节点数目可能不同,所以根本无法用一个同样尺寸的卷积核来进行卷积运算。
图4 图卷积神经网络我们还是来看这张图片,我们会发现X3有三个邻居,但是X1,X2只有一个邻居,所以我们再卷积的时候卷积的大小究竟是1?还是3?这个情况CNN是hold不住的啊。
由于传统神经网络的大兄弟CNN无法处理非欧几里得结构的数据,又希望在这样的数据结构(拓扑图)上有效地提取空间特征来进行机器学习,所以GCN成为了研究的重点。
面向对象广
既然能够处理非欧几里得结构数据,那这种数据究竟有什么用处呐?其实现实的问题当中还存在大量的该结构数据,如社交多媒体网络(Social Network)数据,化学成分(Chemical Compound)结构数据,生物基因蛋白(Protein)数据以及知识图谱(Knowledge Graphs)数据等均可以抽象出图谱,同时图也是一种典型的非欧几里得结构数据。图神经网络能够解决该结构数据的卷积,因此它有很大的应用空间。
按照我们上面介绍的图神经网络理论思路,它有两种方式,这两种方式其实也比较简单,继续向下看吧。
空域(spatial domain)卷积
简单说就是提取拓扑图上的空间特征,然后把每个顶点相邻的节点(邻域)找出来,我把你拼成规则的数据结构,然后进行卷积[2]。
具体的操作方法包含三个步骤:
1.从图中选择一个固定长度的节点序列;
2.对序列中的每个节点,收集固定大小的邻域集合;
3.对由当前节点及其对应的邻域构成的子图进行规范化,作为卷积结构的输入,后面就是传统神经网络的常规操作了。
频域(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种就是频域的卷积核设计,我将所有的节点都考虑,但是在卷积的时候,我根据拉普拉斯矩阵的特征进行选择,只选择部分与节点相关的邻域进行卷积。
空域卷积其实是将问题简单化,卷积前先进行剪枝邻域,所以计算速度一般较快。频域的卷积是先将所有的节点考虑,然后在卷积时依靠拉普拉斯矩阵进行筛选,由于考虑了所有节点,所以这种计算速度明显的要慢一些。
由于城市中道路网络具有着天然的网结构数据,图神经网络的应用是当然的选择。简单介绍背景:神经网络开始应用在交通领域是微软亚洲研究院(现为京东副总裁)的郑宇博士[3]。将地图的人流量与车流量转化为热力图,然后使用图片处理的方法解决。使用三个CNN模型分别去拟合周期性(period)、邻近性(closeness)和趋势性(trend),在CNN中使用12个残差单元,每个残差单元包含两个级联的ReLu和Conv模块,并使用shortcut降低梯度消失的问题。
简单介绍背景:图神经网络开始应用在交通领域是南加州大学的李亚光老师初次introduce的。与ConvLSTM[4]有异曲同工之妙,只是CNN换为GCN。在使用的时候就是使用图卷积(GCN)代替普通卷积(CNN),同时考虑的双向传输性。然后将卷积的结果输入到RNN或LSTM捕捉时序特征[5]。
图6 双向卷积公式 图7 DCRNN架构图说到这里,我们介绍时空特征提取:交通流预测主要包含两个方面,一个是空间(spatial),另一个是时间(temporal)。
1.Spatial的手段主要包括基于road network(如图8)的图卷积(GCN)与基于地图网格(如图9)的普通卷积(CNN);
2.Temporal的手段主要是基于LSTM,GRU等序列建模的方式,现在对于更长期的序列建模也是研究的热点,一个是基于多个序列模型(如RNN,LSTM等)的聚合(如图11),来增加时间维度的感受野。一个是使用时间卷积网络(TCN)来增强时间维度的感受野(如图10)。基本主流论文中的方法大框架都是采用空间领域的图卷积与时间领域的GRU。
图8 road network 图9 map grid 图10 TCN 图11 多序列模型聚合基于这些基础基础,还有这更加复杂的模型。基于真实的交通信息,使用注意力机制计算每个道路节点之间的变化相似度,得到一个节点特征相似性矩阵(similarity matrix)(描述道路节点之间的相似性),如图12(a)所示;使用道路结构信息(structure info)对相似性矩阵进行截断;然后通过图卷积(GCN)对特征进行聚合,最后通过全连接层输出更新系数与重置系数,如图12(b)所示。我觉得创新主要有两点:1)使用attention的方式代替原来GCN中基于拉普拉斯矩阵进行聚合的方式,用来捕捉基于节点特征的网络结构动态性。2)使用新GCN重新设计原来GRU中的首个linear层(即更新门与重置门),如图12(c)所示;整个模型的训练流程如图13所示。
图12 AGCN cell结构图。其中(a)(b)共同构成了AGCN cell,(c)展示了基于AGCN cell的新GRU 图 13 模型训练框架图看到这里相信你对图神经网络有了比较全面的认识。图神经网络有着如此大的应用市场,如智能交通,智慧物流,社交网络等复杂场景,又有如此简单的操作,相信以后可以大有作为。大家若感兴趣,或者有疑问可以知乎私信(知乎@皇德华叫兽),也可以在知识星球提问。
[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.
[3]Zhang,Junbo, Zheng, Yu, Qi, Dekang. Deep Spatio-Temporal Residual Networks for Citywide Crowd Flows Prediction[J].
[4]Shi X,Chen Z,Wang H, et al. Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting[J]. 2015:802-810.
[5]Li Y , Yu R , Shahabi C , et al. Diffusion Convolutional Recurrent Neural Network: Data-Driven Traffic Forecasting[J]. 2017.