作者:邹杂品_433 | 来源:互联网 | 2023-09-12 05:44
文章目录1.前言2.GNNs分类2.1RecGNNs2.2ConvGNNs2.3GAEs2.4STGNNs3.GNNs应用3.1ComputerVision3.2NaturalLa
文章目录
- 1. 前言
- 2. GNNs分类
- 2.1 RecGNNs
- 2.2 ConvGNNs
- 2.3 GAEs
- 2.4 STGNNs
- 3. GNNs应用
- 3.1 Computer Vision
- 3.2 Natural Language Processing
- 3.3 Traffic
- 3.4 Recommender system
- 3.5 Chemistry
- 3.6 Others
- 4. GNNs模型评估
- 5. 常用数据集
- 6. 未来发展方向
- 6.1 Model Depth
- 6.2 Scalability trade-off
- 6.3 Hetergenity
- 6.4 Dynamicity
- 论文地址:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9046288
- 来源:IEEE Transactions on Neural Networks and Learning Systems, 2020
- 作者:Zonghan Wu, Shirui Pan et.al
- 关键词:Deep Learning, graph neural networks, graph convolutional networks, graph representation learning, graph autoencoders
1. 前言
该论文对今年来图神经网络的发展和应用进行了全面的总结,包括对最近的GNNs进行分类、GNNs在不同领域内的应用、开源的代码和基准数据集、GNNs的模型评估以及GNN未来可能的发展方向。
2. GNNs分类
该论文将GNNs分为四大类:recurrent gnns RecGNNs)、convolutional gnns(ConvGNNs)、graph autoencoders(GAEs)、spatial-temporal gnns(STGNNs)。
2.1 RecGNNs
大多是GNNs较为早期的工作,目的是通过循环的神经结构来学习结点/图的表征,结点间一轮一轮地交换信息就相当于循环地过程。\cite{li2015gated}就是其中的一种。RecGNN的结点表征更新如下:
hv(t)=∑u∈N(v)f(Xv,X(v,u)e,hu(t−1))\boldsymbol{h}^{(t)}_v = \sum_{u \in N(v)} f(\boldsymbol{X}_v, \boldsymbol{X}^{\boldsymbol{e}}_{(v,u)}, \boldsymbol{h}^{(t-1)}_u) hv(t)=u∈N(v)∑f(Xv,X(v,u)e,hu(t−1))
其中fff是recurrent function,该函数应该是一个压缩映射(可以用NN来实现),能够将输入映射到一个更紧凑的空间中。本质上,RecGNNs是基于信息传播的模型的,通过一轮轮的传播来更新表征。
2.2 ConvGNNs
现在最常见的GNNs — 图卷积神经网络。ConvGNNs和RecGNNs很像,但是有一个很明显的区别 — ConvGNNs通过不同的层来完成结点之间信息的交换,且层所代表的映射可以不是压缩映射,且ConvGNNs的层一般都是不一样的,而RecGNNs中的fff通常都是同一个函数。二者的对比如下图所示。
在这四种GNNs中,ConvGNNs算是发展得最迅猛、相关工作最多的一类了。ConvGNNs又可以分为两类:Spectral-based ConvGNNs和Spatial-based ConvGNNs。
Spectral-based的方法从图信号处理的角度定义了图卷积。Spectral-based默认graph是无向的,spectral下的图卷积需要对图的Laplacian矩阵进行谱分解L=UΛUT\mathbf{L}=\mathbf{U} \Lambda \mathbf{U}^{T}L=UΛUT,对graph signal进行卷积需要进行\textit{graph Fourier transform},即F(x)=UTx\mathscr{F}(\mathbf{x})=\mathbf{U}^{T} \mathbf{x}F(x)=UTx,其中x\boldsymbol{x}x为输入的graph signal。图傅里叶变换能够将graph signal变换到由U\boldsymbol{U}U定义的正交空间中。那么给定一个filter(和图像处理领域的滤波器很像)g\boldsymbol{g}g,那么对一个graph signal的卷积定义如下:
x∗Gg=F−1(F(x)⊙F(g))=U(UTx⊙UTg)\begin{aligned} \mathbf{x} *_{G} \mathbf{g} &=\mathscr{F}^{-1}(\mathscr{F}(\mathbf{x}) \odot \mathscr{F}(\mathbf{g})) \\ &=\mathbf{U}\left(\mathbf{U}^{T} \mathbf{x} \odot \mathbf{U}^{T} \mathbf{g}\right) \end{aligned} x∗Gg=F−1(F(x)⊙F(g))=U(UTx⊙UTg)
那么Spectral CNN的定义如下,其中Θi,j(k)\Theta_{i, j}^{(k)}Θi,j(k)是需要学习的滤波器:
H:,j(k)=σ(∑i=1fk−1UΘi,j(k)UTH:,i(k−1))(j=1,2,⋯,fk)\mathbf{H}_{:, j}^{(k)}=\sigma\left(\sum_{i=1}^{f_{k-1}} \mathbf{U} \Theta_{i, j}^{(k)} \mathbf{U}^{T} \mathbf{H}_{:, i}^{(k-1)}\right) \quad\left(j=1,2, \cdots, f_{k}\right) H:,j(k)=σ(i=1∑fk−1UΘi,j(k)UTH:,i(k−1))(j=1,2,⋯,fk)
spectral-based的图卷积有很坚实的数学基础,但也存在一些局限性:
- 不同的结点排列会产生不同的谱分解 — 不是结点排列无关的
- 学习到的滤波器是领域相关的 — 难以应用到其他领域
- 矩阵分解计算复杂 — 难以应用到large scale graph上
Spatial-based即空域的图卷积,是目前的主流。空域的图卷积与图像中的CNN很像。过程:将邻居结点的信息汇聚后,再通过某个函数将结点自身的信息与汇聚后的邻居信息结合起来,与spectral-based的方法相比更直观。在空域卷积的基础上还诞生了图注意力网络 Graph Attention Network。与基础的空域卷积相比,结点与其邻居结点间的权重改由注意力替代。二者的比较如下图所示:
除了GAT还出现了与图像领域中类似的操作,如Graph Pooling,功能也与图像领域的池化操作类似 — 降低图的规模/从结点表征矩阵产生图表征(Readout)。
2.3 GAEs
图自编码器 — encoder将graph的结点映射到隐空间中,decoder将隐空间中的图还原/重建。GAEs可以用来学习结点的表征以及生成图。一个现有的GAEs的一个统计表如下图所示。
使用GAEs来生成图可以分为两类:Sequential — 逐步地增减结点/边,Global — 一次性生成整个graph。
2.4 STGNNs
时空地图神经网络,这种GNNs主要用在dynamic graphs上 — 捕捉时间序列地特征/分布,序列与graph的联合/边缘分布,graph在时间、空间上的关系。STGNNs的任务可以是预测预测结点的值/标签或者graph的便签 — 当然是结合时间的。常见的应用场景包括流式的图数据、交通数据(如交通中的流量、速度等数据)等。STGNNs目前主要由两个发展方向:RNN-based和CNN-based。
RNN-based方法会单独处理每一个时刻的图数据,并作为输入流入下一个时刻的处理步骤。有些方法会将结点和边分开来处理 — 分别输入RNN-based处理单元中。CNN-based方法以非循环的方式来处理,RNN-based和CNN-based有点像RecGNNs和ConvGNNs,CNN-based方法通过堆叠多层网络来处理dynamic graph。
3. GNNs应用
3.1 Computer Vision
包括场景图生成、点云数据分类、动作识别。在场景图中,GNNs可以帮助识别对象之间的语义关系,与之相反的是场景图的生成,将自然语言描述的场景生成为场景图。
3.2 Natural Language Processing
GNNs可以借助文本中句子/词之间的关系来对文本进行分类,除此之外,在NLP领域还有很多自然的grpah-like数据,如语法依存树。同时也可以基于语义图(semantic graph)来生成文本或者反过来。
3.3 Traffic
例如动态预测道路的可行驶速度、流量等,这通常与STGNNs联系起来。通常将交通网络看作时空图,其中的结点为安装在路上的传感器、边表示传感器之间的距离,这样每个结点在一定的时间区间内都有自己的流速。
3.4 Recommender system
Graph-based的推荐系统通常将用户、商品视作结点,通过利用结点之间的关系以及与相关的信息融合起来进行推荐。推荐系统的一个关键点:针对一个用户,给出每个商品对其的重要性排序/分数,这也可以转化为一个链接预测问题 — 预测用户和商品之间的链接。
3.5 Chemistry
在生物/化学/生物信息领域,通常利用GNNs来研究分子/化合物/药物的结构 — 这些东西也天然地具有graph结构。
3.6 Others
除了上述的几个主要的应用领域,还存在一些比较小众/还未广泛研究的领域,例如程序验证、程序推理、社会影响力预测、对抗攻击防御、异常检测、脑网络研究等。
4. GNNs模型评估
在GNNs中有几个主要的任务:结点分类、图分类、链接预测(我自己补充的)。
5. 常用数据集
常见的数据如下图所示:
6. 未来发展方向
6.1 Model Depth
就目前的情况来看,GNNs的模型都比较浅,与CNN模型动则数十层的模型相比,GNNs的模型层数都比较少。当GNN中层数较多时,基本上每个结点的信息都已经被传播到了图中其余的结点 — 通常图的最短路径会在6跳左右/六度分隔,这也导致当层数一多,图中结点的表征就会趋于一致,这反而使得结点的表征不具有区分性。\tbc{red}{如何加深GNNs或者什么情况下需要深度的GNNs是一个很值得研究的问题}。
6.2 Scalability trade-off
伸缩性权衡。GNNs的可伸缩性是以破坏图的完整性为代价的。在现有的GNNs中,通常会有ZPooling和Coarsening操作来降低节点特征的维度或者图的规模,但是这些操作都或多或少的丢失了一部分信息。如何设计一个破坏图数据完整性的GNN或者如何权衡完整性和可行性是一个很值得研究的问题。
6.3 Hetergenity
GNNs在异质图数据上的应用。目前大多数的GNNs处理的是同质的图数据 — 结点都为同一类型或者只有一种类型,边也只有一种类型,但是还有很多数据是异质的 — 结点/边的类型是多样的,以及结点/边的输入形式都是不一样的,例如结点/边为文本/图像等,这可以视作现在的多模态融合问题,相当于以GNNs来进行多模态数据融合。
6.4 Dynamicity
虽然已经有STGNNs来处理随时间变化的图数据,但是大部分都没有dynamic spatioal relations(这里我不太理解)。不过确实需要设计更好的处理动态的图数据、流式的图数据(流式的数据处理是一个很有意思的问题)。
这篇综述是2019年发表的,虽然在2020年已经出现了很多新的关于GNNs的工作,一些工作也与文中谈的一些问题重叠了,但是这篇综述依然是一片很全面、详细的对GNNs今年来的工作的总结,提出的问题也很具有参考性,是一篇非常棒的综述!
欢迎访问我的个人博客~~~