《Graph Neural Networks: A Review of Methods and Applications》学习笔记【简略】

《Graph Neural Networks: A Review of Methods and Applications》

《Graph Neural Networks: A Review of Methods and Applications》

Zhou J, Cui G, Zhang Z, et al. Graph neural networks: A review of methods and applications[J]. arXiv preprint arXiv:1812.08434, 2018.

清华大学的一篇GNN综述,读完之后还蛮有收获的。
个人认为最干货的部分是「2.2.2 Propagation Types」中对各种GNN、GCN模型的介绍了,如果之前读过一些综述了,可以直接跳到这来;第三部分感觉。。哈哈哈,至少现在对我的帮助不大。
此外,《深入浅出图神经网络:GNN原理解析》这本书应该也主要参考了这篇综述,可以看完中文版再过来看英文的。


Abstract

扯了一堆,都可以用到开题报告里面。
告诉我们这是一篇GNN的综述以及文章的主要内容和结构,还有就是这个方向是很有前途滴。

1 INTRODUCTION

引出图上的DL方法:GNN
两种基本动机
基于CNN
图嵌入
定义卷积,池化
DeepWalk等
选择GNN的原因
相关工作
阐明文章贡献

首先,引出了图上的DL方法——GNN。
然后,介绍了GNN的两种基本动机:(1)借鉴CNN中的卷积和池化,来提取特征。(2)基于随机游走的图嵌入方法。
在图嵌入(graph embedding)这一部分中,提到了 「DeepWalk、node2vec、LINE」 等基于随机游走的图表示学习模型,之后有时间可以去看一下。
选择GNN进行研究的原因:

  1. GNN忽略节点的排列顺序(排列不变性)。
  2. GNN通过对邻居进行加权聚合,来更新节点的状态。
  3. GNN可以从非结构化数据中(推理)生成图。

相关工作,主要是之前对于GNN的相关综述的情况。
最后说了一下本文的贡献:

  1. 为不同的模型提供一种统一的表示,从聚合器和更新器上区分各种模型。
  2. 根据应用场景对GNN进行分类。
  3. 4个未来的研究方向。

2 MODELS

2.1 Graph Neural Networks

主要介绍了原始GNN模型,后面的各种变体都是针对它进行的改进。

Scarselli F, Gori M, Tsoi A C, et al. The graph neural network model[J]. IEEE Transactions on Neural Networks, 2008, 20(1): 61-80.

原始GNN模型是一个单层的、迭代式计算的NN模型,对有节点标签的无向图进行建模。

在早期的GNN中,一般把节点隐藏嵌入(状态) h v h_v hv称为状态嵌入,这也是模型的学习目标。并且 h v h_v hv并不是最终的输出 o v o_v ov,一般还需要经过输出函数g才行。
模型的矩阵形式如下(迭代地计算T次):
H t + 1 = f ( H t , X ) O = g ( H t + 1 , X N ) H^{t+1}=f(H^t,X)\\ O=g(H^{t+1},X_N)\\ Ht+1=f(Ht,X)O=g(Ht+1,XN)
使用目标信息t进行监督学习,损失函数如下:
l o s s = ∑ i = 1 p ( t i − o i ) loss=\sum_{i=1}^p (t_i-o_i) loss=i=1p(tioi)

Limitations
主要有几个缺点,都是后面的变体需要改进的方向:

  1. 迭代地计算,而非定义多层GNN,导致了效率比较低。
  2. 每次迭代使用相同的参数,而非在不同的层上使用不同的参数,不便于分层提取特征。
  3. 没有考虑图中还有边特征。
  4. 使用的固点(fixed point)方法不适合用来观察节点的嵌入表示,因为这样会使得结果比较平滑,不易区分各个节点。

2.2 Variants of Graph Neural Networks

这一部分比较重要,主要介绍了经过改进后的各种变体GNN。

2.2.1 Graph Types

在这里插入图片描述

Directed Graphs
有向图。ADGPM模型为此定义了2种权重矩阵。

Heterogeneous Graphs
异构图,有多种不同类型的节点。主要介绍了GraphInception模型。

Graphs with Edge Information
含有边信息的图,有多种不同类型的边,在知识图谱中比较常见。主要介绍了G2S、r-GCN模型。

2.2.2 Propagation Types

这一部分很重要,正是我所需要的!
在这里插入图片描述

在这里插入图片描述

这一部分主要对传播步骤(propagation step)进行改进。通过定义不同的aggregator和updator,可以得到不同的模型。

卷积
频域方法
空域方法
门控
GRU
LSTM
注意力
跳跃连接

Convolution
分为频域方法和空域方法,但不论是哪种方法,都需要去定义卷积操作。
频域方法主要介绍了ChebNet和GCN。ChebNet是K阶切比雪夫多项式展开,因此它是K-局部化的;而GCN只使用了1阶近似,因此每次聚合的对象是其直接邻居。
频域方法因为依赖于图结构、拉普拉斯矩阵等,因此它们的灵活性并不好,由此引出了空域方法。
空域方法重点介绍了DCNN和GraphSAGE。
DCNN用到了转移矩阵P的概念。而 P K P^K PK可以类比 A K A^K AK来进行理解,可以认为它是从一个节点到另一个节点的距离为K的概率。
对于节点分类任务,
H = f ( W c ⊙ P ∗ X ) H=f(W^c\odot P^{*}X) H=f(WcPX)
和之前的模型不同的一点是,最后计算出来的嵌入矩阵 H ∈ R N × K × F H\in R^{N\times K\times F} HRN×K×F是一个张量。
GraphSAGE就不多说了,消息传递+固定大小邻域采样+跳跃连接(拼接)。

Gate
这一部分介绍门控方法,使用了RNN核:GRU和LSTM。
重点介绍了GGNN和Graph LSTM。
GGNN在传播过程中使用的是GRU。

Li Y, Tarlow D, Brockschmidt M, et al. Gated graph sequence neural networks[J]. arXiv preprint arXiv:1511.05493, 2015.

Graph LSTM是一类模型,使用的是LSTM。
这一部分搞得我挺懵逼的,果然基础还是很重要的。

Attention
在注意力机制这一部分中,主要介绍了GAT模型+多头注意力机制。
注意力机制可以作为一种模型的改进方法,可以很容易的应用于归纳学习的问题。

Skip connection
收到ResNet的启发,跳跃连接一般是用于缓解深层模型的过平滑问题,主要是因为深层模型聚合了过多的噪声信息。
主要介绍了Highway GCN和JK-Net。
Highway GCN主要是使用选通权重,来对某一层的输入和输出进行加权求和:
T ( h t ) = σ ( W t h t + b t ) h t + 1 = h t + 1 ⊙ T ( h t ) + h t ⊙ ( 1 − T ( h t ) ) T(h^t)=\sigma(W^th^t+b^t)\\ h^{t+1}=h^{t+1}\odot T(h^t)+h^t\odot (1-T(h^t)) T(ht)=σ(Wtht+bt)ht+1=ht+1T(ht)+ht(1T(ht))
JK-Net之前也记过笔记,它将所有层的输出进行连接得到最终结果。实验证明,它在引文网络中有着不错的表现,可以借鉴它来改进模型。 此外,跳跃连接可以和GCN、GraphSAGE、GAT等模型进行组合,以改善模型的性能。

2.2.3 Training Methods

原始GCN在训练上也有一些缺点:(1)计算L代价很大(2)每次都使用节点的所有邻居,感知域很大,损失计算变得困难(3)只在固定图上进行训练,不利于归纳学习。
重点介绍了GraphSAGE和FastGCN的改进策略。
GraphSAGE对GCN进行了全面的改进,它使用可学习的聚合、更新函数+邻居采样。
FastGCN改进了采样算法,不采样每个节点的邻居了,而是直接采样每一层的感知域。

2.3 General Frameworks

主要介绍3种通用框架:MPNN、NLNN和GN。

2.3.1 Message Passing Neural Networks

MPNN是一种监督学习的框架。

Gilmer J, Schoenholz S S, Riley P F, et al. Neural message passing for quantum chemistry[J]. arXiv preprint arXiv:1704.01212, 2017.

和之前介绍的有点区别,本文将MPNN分为了2个阶段:消息传递阶段、读出阶段。之前看过的一些资料大部分都是针对节点嵌入表示的,因此重点在于消息传递阶段;而如果针对图级任务,那么还需要加上读出阶段。
不同的聚合函数、更新函数和读出函数,可以得到不同的模型。

2.3.2 Non-local Neural Networks

NLNN是一类自注意力类型的框架。

Wang X, Girshick R, Gupta A, et al. Non-local neural networks[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2018: 7794-7803.

NLNN的核心是非局部(non-local)操作,它是对所有位置特征的加权求和来得到隐藏表示的。
h i ′ = 1 C ( h ) ∑ ∀ j f ( h i , h j ) g ( h j ) h_i'=\frac{1}{C(h)}\sum_{\forall j}f(h_i,h_j)g(h_j) hi=C(h)1jf(hi,hj)g(hj)
函数f的计算结果是一个标量,函数g的计算结果一个向量,一般取线性变换 g ( h j ) = W g h j g(h_j)=W_gh_j g(hj)=Wghj。剩下的工作就是去找函数f了。

文章中列举了几种函数f,说白了就是在计算两个向量之间的相似度。
Gaussian
高斯函数
Embedded Gaussian
嵌入的高斯函数
Dot product
点积
Concatenation
拼接

此外,还可以将非局部操作添加跳跃连接,封装成非局部块:
z i = W z h i ′ + h i z_i=W_zh_i'+h_i zi=Wzhi+hi

2.3.3 Graph Networks

GN模型,挺复杂的,主要还是对于GN块的理解。

3 APPLICATIONS

从各种应用场景来对GNN模型进行分类。
略略略😂

4 OPEN PROBLEMS

虽然GNN已经取得了巨大的成功,但是它们在某些方面仍有待提高。

Shallow Structure
现在大部分表现还不错的模型都采用了浅层结构(一般不超过3层),这反映了一个模型深度问题(过平滑),这也是GNN最大的一个问题。
有人试图去解决这个问题:

Li Q, Han Z, Wu X M. Deeper insights into graph convolutional networks for semi-supervised learning[J]. arXiv preprint arXiv:1801.07606, 2018.

Dynamic Graphs
动态图的结构会不断发生变化,目前的模型大多是针对静态图的。

Non-Structural Scenarios
非结构化场景,一般归类为图生成问题。

Scalability
由于大数据环境下的计算代价,扩展到web规模的图上还是有一定困难。

5 CONCLUSION

一篇GNN综述。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值