2019年被称为图形神经网络元年,在各个领域关于图形神经网络的研究爆炸性增加。 本文主要介绍GCN、GAT和GraphSAGE三种常见的图形神经网络。 前两个是目前广泛应用的图形神经网络,后者为图形神经网络的工程应用提供了基础。
GCN
神经网络是基于巴拿赫不动点定理提出的,而神经网络领域的大发展是在2013年Bruna提出了基于图上频域和空域的卷积神经网络之后。
关于对图卷积神经网络的理解和介绍,已经有足够的回答了。
如何理解graphconvolutionalnetwork(gcn )?
3559 www.zhi Hu.com/question/54504471/answer/332657604
这里主要介绍基于PyG和DGL两个主要图形神经网络库实现的孝顺的Insemi-Supervise DClassification withgraphconvolutional Networks。 它基于图上频域卷积的一次近似,提出了有效的逐层传播规则。
论文标题: semi-supervisedclassificationwithgraphconvolutionalnetworks
论文链接: https://arxiv.org/abs/1609.02907
如果将欧式空间中定义的拉普拉斯算子和傅立叶变换与图相对应,则图上的频域卷积运算可以基于卷积定理自然导出。
其中拉普拉斯矩阵(归一化后) l是半正定对称矩阵,具有谱分解可能的几个良好性质。
其中,u是由l的特征向量构成的矩阵,是由l的特征值构成的对角矩阵,是针对在图表上定义的信号的傅立叶变换。
对角矩阵是卷积内核,也是不同卷积操作的热点,对于不同的设计,会影响卷积操作的效率,其编码的信息也会影响最终任务的精度。
最初的图卷积神经网络被视为l的特征值的函数。 但是,这个定义有两个问题。
1 .对特征向量矩阵u的乘法操作时间的复杂度是:
2 .很难分解大规模图表的拉普拉斯矩阵l的特征。
随后的研究表明,可以使用sxdxm多项式近似。
其中
。 是l的最大特征值,是sxdxm多项式的系数向量。 sxdxm多项式由以下递归公式定义: 开始值:
。 代入之前定义的卷积操作。
其中
此时的时间复杂性是。 孝顺的鞋底在此基础上进行了卷积操作
一步的简化,首先固定 K=1,并且让近似等于 2(注意之前对 L 的定义),则上式可以简化为一个包含两个自由参数 和 的公式:
我们进一步假定
,则可进一步对公式进行变形:
但是此时的
的特征值取值在 [0, 2],对这一操作的堆叠会导致数值不稳定以及梯度爆炸(或消失)等问题。为了解决这一问题,引入一种称为重归一化(renormalization)的技术:
最后将计算进行向量化,得到最终的卷积计算公式为:
这一计算的时间复杂度为
。基于上式实现的 GCN 在三个数据集上取得了当时最好的结果。
GAT
PyG 与 DGL 的 GAT 模块都是基于 Graph Attention Networks 实现的,它的思想非常简单,就是将 transform 中大放异彩的注意力机制迁移到了图神经网络上。
论文标题: Graph Attention Networks
论文链接: https://arxiv.org/abs/1710.10903
整篇孝顺的鞋垫的内容可以用下面一张图来概况。
首先回顾下注意力机制的定义,注意力机制实质上可以理解成一个加权求和的过程:对于一个给定的 query,有一系列的 value 和与之一一对应的 key,怎样计算 query 的结果呢?
很简单,对 query 和所有的 key 求相似度,然后根据相似度对所有的 value 加权求和就行了。这个相似度就是 attention coefficients,在孝顺的鞋垫中计算如下:
其中
是前馈神经网络的权重系数,|| 代表拼接操作。
利用注意力机制对图中结点特征进行更新:
既然得到了上式,那么多头注意力的更新就不言而明了,用 k 个权重系数分别得到新的结点特征之后再拼接就可以了:
最后就是大家喜闻乐见的暴打 benchmarks 的环节,GAT 在三个数据集上达到了当时的 SOTA。
GraphSAGE
GraphSAGE 由 Inductive Representation Learning on Large Graphs 提出,该方法提供了一种通用的归纳式框架,使用结点信息特征为未出现过的(unseen)结点生成结点向量,这一方法为后来的 PinSage(GCN 在商业推荐系统首次成功应用)提供了基础。
论文标题: Inductive Representation Learning on Large Graphs
论文链接: https://arxiv.org/abs/1706.02216
但 GraphSAGE 的思想却非常简单,也可以用一张图表示。
算法的详细过程如下:
1. 对图上的每个结点 v,设置它的初始 embedding 为它的输入特征 ;
2. 之后进行 K次迭代,在每次迭代中,对每个结点 v,聚合它的邻居结点(采样后)的在上一轮迭代中生成的结点表示 生成当前结点的邻居结点表示 ,之后连接 输入一个前馈神经网络得到结点的当前表示 ;
3. 最后得到每个结点的表示
。
这个算法有两个关键点:一是邻居结点采样,二是聚合邻居结点信息的聚合函数。
邻居结点采样方面,论文中在 K 轮迭代中,每轮采样不同的样本,采样数量为 。在聚合函数方面,论文提出了三种聚合函数:
Mean aggregator:
LSTM aggregator: 使用 LSTM 对邻居结点信息进行聚合。值得注意地是,因为 LSTM 的序列性,这个聚合函数不具备对称性。孝顺的鞋垫中使用对邻居结点随机排列的方法来将其应用于无序集合。
Pooling aggregator:
论文在三个数据集上取得了对于 baseline 的 SOTA。
既然为工程应用提出的方法,对于实验部分就不能一笔带过了,这里给出论文中两个有意思的结论:
对于邻居结点的采样,设置 K=2 和
得到比较好的表现;
对于聚合函数的比较上,LSTM aggregator 和 Pooling aggregator 表现最好,但是前者比后者慢大约两倍。
总结
本文对图神经网络中常用的三种方法进行了介绍。随着图神经网络研究的热度不断上升,我们也看到图神经网络的不同变种不断涌现,此外,因为对于非欧空间数据良好的表达能力,图神经网络在交通、金融、社会科学等有大量相应数据积淀的交叉领域也面临着广阔的应用前景。