图神经网络一大堆最新论文(二)

举报
人工智障研究员 发表于 2021/06/26 11:53:35 2021/06/26
【摘要】 偶然知道了一个图神经网络的包DGL(Deep Graph Library),找到它的github主页瞻仰一下。作者整理并以统一的架构实现了数十种图神经网络模型,基本上涵盖了图神经网络领域内的主流研究。鉴于作者文档已经写得非常完备了,而且对应着每一篇论文给出了相应的例子,这里就不再重复介绍它的使用方法了。刚好最近准备追一追最近几年图神经网络最新进展,就准备借用作者给出的论文列表一篇一篇地看过来了。
  1. Graph Random Neural Network for Semi-Supervised Learning on Graphs. 2020[1]

  这篇文章咋一看与前面4、5两篇非常像,都有生成“损坏”视图和扩散图的过程,但这篇是半监督的,前面两篇是无监督的,过程稍微有点不一样。这篇文章主要想要解决的问题是已知的GNN方法受到过平化(over-smoothing)、鲁棒性差(non-robustness)、泛化性差(weak-generalization)等问题,作者提出的方案是先使用一套随机扩散策略来对图进行数据增强,然后提出了一个结合了标注数据损失和未标注数据正则化的损失函数进行训练,在大量半监督节点分类实验中取得了很好的结果。
  作者的主要贡献点有两个:随机扩散策略和一致性正则化损失函数。在随机扩散过程中(仅在训练过程中使用),提出了DropNode策略,即随机地将部分节点的全部特征掩盖掉,从而生成多个损坏视图进行数据增强,提高鲁棒性和泛化性;然后对损坏视图进行特征扩散,这个过程中也提出了一个扩散策略,使得越近的节点影响越大,越远的节点影响越小,从而防止过平化。经过随机扩散策略后得到多个视图的特征矩阵,经过MLP后得到每个节点属于每个标签的概率值,最终计算损失函数进行反向传播训练模型。作者提出的损失函数和通常图节点分类半监督任务类似,由标注节点的有监督损失函数和无标注节点的一致性正则化函数组成,作者提出的一致性正则化函数主要是约束多个视图的节点的概率分布值要靠近其“平均”的概率分布值,具体函数这里就不详细表述了。作者后面也花了大量的篇幅证明提出的一致性正则化函数约等于一个正则化项,以及由于使用DropNode策略生成“损坏”图后有监督损失函数相当于原始图有监督函数加上一个正则化项。

  1. Heterogeneous graph transformer. 2020[2]

  传统的GNN都将图中所有的点和边同等看待,仅仅学习得到同质网络的拓扑结构。但是真实世界中的网络的点和边是有类型区分的,这篇文章就在此基础上展开。主要的内容有两个:提出了一套名为HGT的GNN架构,基于不同label点和边的Attention机制学习异构图中的网络结构信息;一套对应的采样训练策略,以适应于大网络情况下的mini-batch训练。
  HGT架构如下图所示,主要借鉴的是Transformer架构来设计每一层的基于Attention的类似卷积的操作。Attention的基本过程和Transformer的multi-head attention一致,只是对应Q、K、V有点不一样,对应的参数矩阵也有点不一样,从图中可以看出,Q对应的是中心节点t,K和V对应的都是周围节点s_i,而且为了体现节点和边的不同label,Q/K/V都有对应的节点线性变换,线性变化的参数与节点label相关,计算attention的时候也有一层对应边的线性变换,参数也与边的label相关;Attention有了,传递给中心节点的信息表示的处理过程也和上面类似,多头的线性变换,线性变换的参数也是节点label相关的,而且与上面的参数不共享;最后一步是将周围节点传递过来的信息聚合起来,作者采用的是直接Attention后加和起来,将聚合后的结果经过relu后进行一次线性变换得到“卷积”的结果,最后还借鉴残差的思路,将这一层的结果与上一层的结果加和起来,一遍堆叠多层的HGT。在这个过程当中,作者还节点Transformer的位置编码,将这应用到动态图上面,即将动态图的时间戳与序列建模的位置编码处理对应起来,提出了一套相对时序编码机制,但其实感觉有点画蛇添足的样子。

  为了能够在大图上面训练这套模型,作者也提出了对应的子图采样机制HGSampling来训练模型。整体的思想是一方面需要使得采样后的子图中不同label的节点和不同label的边的数量比较均衡,防止不平衡采样的情况出现;另一方面也需要保证采样到的子图的密集性,防止信息丢失。另外对应着上面的时序编码机制也需要获取图的动态信息,作者的策略是:如果该节点有时序信息,沿用它,如果没有,则使用采样时它的中心节点的时序信息。

  总的来说,这篇论文提出的这样一个HGT模型算是集以往众多模型(GCN/RGCN/GraphSAGE/GAT/Transformer)之大成,而且模型看上去也非常简洁优美(除了那个时序编码机制)。

  1. Graph Convolutional Networks for Graphs with Multi-Dimensionally Weighted Edges. 2020[3]

  这篇论文就非常简洁明了,目的是解决普通GNN没有考虑边也有feature的情形,但是整体操作有点魔幻。作者以GCN为基础模型,将边的特征表示为节点“邻接矩阵”的张量形式,然后使用节点度矩阵进行归一化;GCN每一层也非常简单,作者将边的特征看做是多个通道,每个通道的处理与普通GCN基本一致,最后再使用求和+线性变换与连接+线性变化两种方式将多个通道的结果聚合起来作为下一层的节点隐层。前面也说道了整体的操作有点魔幻,文章也确实没什么好的借鉴点。

  1. SIGN: Scalable Inception Graph Neural Networks. 2020[4]

  作者将自己的模型类比图像领域的Inception module[5],即多个不同大小的卷积核的CNN架构。具体的架构如下图所示,X是节点的特征矩阵,单位矩阵I相当于是11大小的图卷积,A_i为i阶扩散矩阵,相当于(i+1)(i+1)大小的图卷积;作者将多个不同大小的图卷积(0,1,…,r)的计算结果合并起来,再经过一层线性变化得到下一层的节点特征矩阵。而扩散矩阵的计算方式,作者采用的三种比较主流的,包括简单邻接矩阵(simple (normalized) adjacency),基于PageRank的邻接矩阵(Personalized PageRank-based adjacency),以及基于三角环的邻接矩阵(triangle-based adjacency matrices)。整篇文章其实可以看做S-GCN[6]的一个简单扩展。

  1. Strategies for pre-training graph neural networks. 2020[7]

  这篇文章主要针对的是GNN的预训练,作者将之前的GNN预训练分为Node-level和Graph-level两类,指出这两类分别又各自的缺点(如下图所示),两类分别只学到的local和global的信息。于是作者提出了一套策略,将它们结合起来。实验结果也表明,两者结合以后可以提高下游任务的效果,而分别使用的时候会产生负迁移而导致下游任务效果变差。

  对于Node-level的预训练,作者采用了两种方式:上下文预测和属性预测(下图所示)。对于上下文预测,首先圈定中心节点K跳的子图作为邻居子图,学习得到中心节点的表示,然后选定r1跳到r2跳(r1<K<r2)之间的子图作为上下文子图,两个子图重合的点作为上下文锚点,在上下文子图中得到上下文锚点的表示后,将锚点表示的平均作为上下文子图中心节点的表示,最后通过负采样训练约束两个表示相近;对于属性预测,掩盖掉节点或边(边的表示为头尾节点表示之和)的部分属性,然后使用GNN预测这些被掩盖掉的属性。

  对于Graph-level的预训练,也有两种模式:有监督的图属性预测和有监督的图结构相似性预测。对于图属性预测,作者生成了大量的(up to 5000)有监督图属性预测任务来做训练,为了防止不相干的任务造成负迁移,作者提出可以先使用Node-level的训练得到节点的表示,再来预训练Graph-level的任务;对于图结构相似性预测,作者采用这种方式,将其放到了以后的工作中。
  总结一下,这篇论文把重点放在了预训练策略的实验与选取上,而没有放到GNN网络结构的设计上,通过大量的预训练实验,给出了一套不错的GNN预训练策略。


[1] Feng W, Zhang J, Dong Y, et al. Graph Random Neural Network for Semi-Supervised Learning on Graphs[J]. arXiv preprint arXiv:2005.11079, 2020.
[2] Hu Z, Dong Y, Wang K, et al. Heterogeneous graph transformer[C]//Proceedings of The Web Conference 2020. 2020: 2704-2710.
[3] Chen. Graph Convolutional Networks for Graphs with Multi-Dimensionally Weighted Edges.
[4] Rossi E, Frasca F, Chamberlain B, et al. Sign: Scalable inception graph neural networks[J]. arXiv preprint arXiv:2004.11198, 2020.
[5] Christian Szegedy, Wei Liu, Yangqing Jia, Pierre Sermanet, Scott Reed, Dragomir Anguelov, Dumitru Erhan, Vincent Vanhoucke, and Andrew Rabinovich. 2015. Going deeper with convolutions. In CVPR.
[6] Wu F, Souza A, Zhang T, et al. Simplifying graph convolutional networks[C]//International conference on machine learning. PMLR, 2019: 6861-6871.
[7] Hu W, Liu B, Gomes J, et al. Strategies for pre-training graph neural networks[J]. arXiv preprint arXiv:1905.12265, 2019.

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。