这里写目录标题
- 文献地址:https://ieeexplore.ieee.org/document/9046288
- 参考https://www.jianshu.com/p/77dd838e2b91
- 摘要
- I 介绍
- II 背景和定义
- III 类别和框架
- IV 递归图神经网络 (recurrent graph neural networks, RecGNNs)
- V 卷积图神经网络(convolutional graph neural networks, ConvGNN)
- A.基于频谱的方法:
- B.基于空间的方法
- 1.NN4G (neurla network for graph)
- 2.CGMM (Contextual Graph Markov model)
- 3.DCNN (Diffusion CNN)
- 4.DGC
- 5.PGG-DGGNN
- 6.PGC (Partition graph convolution)
- 7.MPNN (message-passing neural network)
- 8.GIN ( Graph isomorphism network)
- 9.GraphSage
- 10.GAT (Grapg Attention Network)
- 11.GAAN (Gated attention network)
- 12.GeniePath
- 13.MoNet (Mixture model network)
- 14.PATCHY-SAN
- 15.LGCN (Large-scale GCN)
- 16.训练效率方面的提升:
- 17.频谱模型与空间模型之间的比较
- C.图池化模块
- D.理论方面的讨论【可以努力的方面】
- VI 图自编码器 (graph autoencoders, GAE)
- VII 时空图神经网络(spatial-temporal graph neural networks, ST-GNN)
- VIII 应用
- IX 未来的方向
- X 总结
文献地址:https://ieeexplore.ieee.org/document/9046288
参考https://www.jianshu.com/p/77dd838e2b91
摘要
图像分类、视频处理、语音识别、自然语言处理等任务数据通常是在欧式空间表示,越来越多的应用程序从非欧几里得域生成数据,并表示为对象之间具有复杂关系和相互依赖的图,本文提出了一种新的分类法,将最先进的图神经网络分为四类,即递归图神经网络 (recurrent graph neural networks, RecGNNs)、卷积图神经网络(convolutional graph neural networks, ConvGNN)、图自编码器 (graph autoencoders, GAE)和时空图神经网络(spatial-temporal graph neural networks, ST-GNN)。
I 介绍
A.从图像数据到图数据
图数据的复杂性给现有的机器学习算法带来了巨大的挑战。由于图可以是不规则的,一个图可以有一个大小可变的无序节点,并且一个图中的节点可能有不同数量的邻居,导致一些重要的操作(例如卷积)在图像域很容易计算,但很难应用到图域。
图像可以被视为图的一种特殊情况,其中像素由相邻像素连接。与二维卷积类似,可以通过取节点邻域信息的加权平均来执行图卷积。
左图:将图片中的每一个像素作为节点,其邻居由 Filter 决定;图中橙色节点的更新方式是 其与邻居节点的加权平均值;
右图: 类同于二维卷积,橙色节点的更新方式是 取其与邻居节点的节点特征的平均值;节点是无序的并且大小可变【不同节点有不同数目的邻居】
B.本文主要贡献
新的分类方法:递归图神经网络、卷积图神经网络、图自编码器、考虑时间因素的图神经网络
全面的综述:为图形数据提供了现代深度学习技术最全面的概述。对于每种类型的图神经网络,我们都对代表性模型进行了详细的描述,并进行了必要的比较,并总结了相应的算法。
丰富的资源:收集了丰富的图神经网络资源,包括最先进的模型、基准数据集、开源代码和实际应用。
未来方向:讨论了图神经网络的理论方面,分析了现有方法的局限性,并从模型深度、可扩展性权衡、异质性和动态性方面提出了四个可能的未来研究方向。
II 背景和定义
A.图神经网络和网络嵌入
网络嵌入旨在将网络节点表示为低维向量表示,同时保留网络拓扑结构和节点内容信息,以便任何后续的图分析任务,如分类、聚类和推荐,都可以使用简单的现成机器学习算法(例如用于分类的支持向量机)轻松执行。
图神经网络目的是以端到端的方式解决与图相关的任务,其提取高级表示。
gnn与网络嵌入的主要区别在于gnn是一组针对各种任务设计的神经网络模型,而网络嵌入则涵盖了针对同一任务的各种方法
B.图神经网络和图核方法
图核方法:用于解决图分类的方法,这些方法通过核函数来计算图对之间的相似度 用于图的监督学习;其可以通过映射函数将图或者节点嵌入向量空间。与gnn类似,图内核可以通过映射函数将图或节点嵌入到向量空间中。不同之处在于这个映射函数是确定的,而不是可学习的。由于成对相似度计算,图核方法受到计算瓶颈的严重影响。
C.符号表示
[来自https://www.jianshu.com/p/77dd838e2b91]
定义:图、有向图、时空图(节点属性随时间动态变化的有属性图)
III 类别和框架
A. GNN的分类
一、递归图神经网络 (recurrent graph neural networks, RecGNNs)
假设图中的一个节点不断地与它的邻居交换信息/消息,直到达到稳定的平衡(目的是通过递归神经网络架构学习节点表示);在概念上很重要,启发了后来对卷积图神经网络的研究。特别是基于空间的卷积图神经网络继承了消息传递的思想。
二、卷积图神经网络(convolutional graph neural networks, ConvGNN)
主要思想是通过 聚合节点 v 的特征 x_v 及其邻居节点的特征 x_u 得到节点 v 的特征;与RecGNNs不同,ConvGNNs堆叠多个图卷积层来提取高级节点表示。
节点分类图解:
1.图卷积层通过聚合来自其邻居的特征信息来封装每个节点的隐藏表示
2.特征聚合后,对结果输出应用非线性变换
3.通过堆叠多层,每个节点的最终隐藏表示接收更远邻居的表示
分割线
图分类图解:
1.在图卷积之后进行池化,将图粗化为子图,以便粗化图上的节点表示更高的图表示
2.经过Readout层,其通过获取子图的隐表示的和/平均值来得到最终的图表示
三、图自编码器 (graph autoencoders, GAE)
图自编码器(GAEs)是一种无监督学习框架,它将节点/图编码到潜在的向量空间中,并从编码的信息中重构图数据。用于学习网络嵌入和图形生成分布。
GAEs用于学习网络嵌入和图形生成分布。对于网络嵌入,GAEs通过重构图结构信息(如图邻接矩阵)来学习潜在的节点表示(如下引用)。对于图的生成,有些方法是一步一步生成图的节点和边,而另一些方法是一次性输出图。
用于网络嵌入的GAE
1.编码器使用图卷积层来获得每个节点的网络嵌入(上文解释过:网络嵌入旨在将网络节点表示为低维向量表示,同时保留网络拓扑结构和节点内容信息,以便任何后续的图分析任务)。
2.解码器计算给定网络嵌入的成对距离。在应用非线性激活函数后,解码器重构图邻接矩阵。
3.通过最小化真实邻接矩阵与重构邻接矩阵之间的差异来训练网络。
四、时空图神经网络(spatial-temporal graph neural networks, ST-GNN)
时空图神经网络(STGNNs)旨在从时空图中学习隐藏模式,关键思想是同时考虑空间依赖性和时间依赖性。目前许多方法将图卷积与rnn或cnn集成在一起来捕获空间依赖关系,以建模时间依赖关系。
1.一个图卷积层后面是一个一维CNN层。图卷积层对A和X(t)进行操作以捕获空间依赖性,而一维CNN层沿着时间轴在X上滑动以捕获时间依赖性。
2.输出层是一个线性转换,为每个节点生成一个预测,例如它在下一个时间点的未来值。
B.框架
一、整体框架
输入为图结构和节点内容信息,gnn的输出可以针对不同的任务分为以下三种:
1.节点级
节点级输出与节点回归和节点分类任务相关。RecGNNs和ConvGNNs可以通过信息传播/图卷积提取高级节点表示。使用多感知器或softmax层作为输出层,gnn能够以端到端方式执行节点级任务。
2.边级
边级输出与边分类和链路预测任务相关。利用来自gnn的两个节点的隐藏表示作为输入,可以利用相似函数或神经网络来预测边缘的标签/连接强度。
3.图级
图级输出与图分类任务相关。为了在图级上获得紧凑的表示,gnn通常与池化(pooling)和读出(readout)操作相结合。
二、训练框架
许多gnn(例如convgnn)可以在端到端学习框架内以(半)监督或纯无监督的方式进行训练,这取决于手边可用的学习任务和标签信息。可以根据具体任务分为三种:
1.用于节点级分类的半监督学习
给定一个 部分有标记节点与其他无标记节点 的单个网络,ConvGNNs可以学习到一个健壮的模型,这个模型能够确定无标签节点的标签。最后,可以通过堆叠几个图卷积层,然后是一个用于多类分类的softmax层来构建端到端框架。
2.用于图级分类的监督学习
图级分类的目的是预测整个图的类标签。实现此任务的端到端学习的方式是组合图卷积层、图池化层、Readout层。其中图卷积层负责提取高级节点表示;图池化层负责充当下采样的角色,用于将图粗化为子图;Readout层将每个图的节点表示折叠为图表示(readout:将所有节点特征集合起来代表整张图)。最后通过多层感知机和softmax层应用于图表示,进而构建用于图分类的端到端框架。
3.用于图嵌入的无监督学习 (标)
图中没有可用的标签,使用端到端框架以无监督的方式学习图嵌入。有两种方式应用了边级信息:1)采取自编码器框架 ,其中编码器使用图卷积层将图嵌入到潜表示中,然后解码器对此潜变量进行解码重构图结构。2)利用负样本,其对一部分节点对采样为负对,而图中具有链接的现有节点对为 正对 ,最后使用逻辑回归层来区分正对和负对。
4.具有代表性的RecGNNs和ConvGNNs总结
IV 递归图神经网络 (recurrent graph neural networks, RecGNNs)
A.递归图神经网络(RecGNNs)
递归图神经网络(RecGNNs)是神经网络的先驱。在图中的节点上循环应用相同的参数集,以提取高级节点表示。受计算能力的限制,早期的研究主要集中在有向无环图。
B.GNN*
GNN*扩展了先前的递归模型,例如无环图、循环图、有向图和无向图。基于信息扩散机制,通过循环交换邻域信息来更新节点状态,直到达到稳定平衡。
更新方式为
1. f ( ∗ ) f(*) f(∗)为参数化函数
2. h v ( 0 ) h_v^{(0)} hv(0)是随机初始化得到的
3.求和操作使GNN适用于所有节点,即使邻居数量不同和不知道邻居顺序。
4. f f f必须是一个收缩函数,投影后缩小两点之间的距离,进而确保收敛
5.在 f ( ⋅ ) f(·) f(⋅)为神经网络的情况下,必须对参数的雅可比矩阵施加惩罚项。当满足收敛条件时,最后一步节点隐藏状态被转发到读出层。GNN交替节点状态传播阶段和参数梯度计算阶段,以最小化训练目标。该策略使GNN*能够处理循环图。(标)
6.后续优化。。
C.门控图神经网络(GGNN)
门控图神经网络(GGNN)采用门控递归单元(GRU)作为递归函数,将递归减少到固定步数。优点是它不再需要约束参数来确保收敛。
一个节点的隐藏状态由它之前的隐状态和它相邻的隐状态更新,公式为
1. h v ( 0 ) = x v h_v^{(0)} = x_v hv(0)=xv
2.GGNN采用时间反向传播(back-propagation through time, BPTT)算法学习模型参数
3.对于大型图来说,GGNN需要在所有节点上多次运行循环函数,要求所有节点的中间状态都存储在内存中。
D.随机稳态嵌入(SSE)
随机稳态嵌入(SSE)是一种更适合大图的学习算法。SSE以随机和异步的方式周期性地更新节点隐状态。它交替地对一批用于状态更新的节点和一批用于梯度计算的节点进行采样
为了保持稳定性,SSE的递归函数定义为历史状态和新状态的加权平均,公式为
1. α \alpha α是一个超参数
2. h v ( 0 ) h_v^{(0)} hv(0)随机初始化
3.SSE并不能通过反复应用公式在理论上证明节点状态将逐渐收敛到固定点
V 卷积图神经网络(convolutional graph neural networks, ConvGNN)
卷积图神经网络(ConvGNNs)与递归图神经网络密切相关。convgnn不是用收缩约束迭代节点状态,而是在体系结构上使用固定数量的层,每层具有不同的权重来解决循环相互依赖关系。引用中也说明了这一区别。
1.recgnn在更新节点表示时使用相同的图循环层(Grec)。
2.convgnn在更新节点表示时使用不同的图卷积层(Gconv)。
卷积神经网络分为两类,基于频谱的和基于空间的。基于频谱的方法通过从图信号处理的角度引入滤波器来定义图卷积,其中图卷积操作被解释为从图信号中去除噪声。基于空间的方法继承了RecGNNs的思想,通过信息传播来定义图卷积。
A.基于频谱的方法:
一、背景
1.假设图是无向的
2.无向图的规范化拉普拉斯矩阵的数学表示可以定义为
L
=
I
n
−
D
(
−
1
/
2
)
A
D
(
−
1
/
2
)
L = I_n - D^{(-1/2)}AD^{(-1/2)}
L=In−D(−1/2)AD(−1/2),其中D是节点度的对角矩阵
D
i
i
=
∑
i
A
i
,
j
D_{ii} = \displaystyle\sum_{i}A_{i,j}
Dii=i∑Ai,j
3.规范化图拉普拉斯矩阵具有实对称正半定的性质。利用这一性质,可将规范化拉普拉斯矩阵分解为
L
=
U
Λ
U
L = U\Lambda U
L=UΛU ,其中U是按照特征值排序的特征向量矩阵,Λ为特征值的对角矩阵,即
Λ
i
i
=
λ
i
Λ_{ii}=\lambda_i
Λii=λi
4.归一化拉普拉斯矩阵的特征向量形成一个标准正交空间(若内积空间中两向量的内积为0,则它们正交。类似地,若内积空间中的向量v与子空间A中的每个向量都正交,那么这个向量和子空间A正交。若内积空间的子空间A和B满足一者中的每个向量都与另一者正交,那么它们互为正交子空间。),即
U
T
U
=
I
U^TU = I
UTU=I
5.在图信号处理中,图信号
x
∈
R
n
x \in R^n
x∈Rn 表示一个图所有节点的特征向量,其中
x
i
x_i
xi指的是第i个节点的值(标)
6.信号x的傅里叶变换为
F
(
x
)
=
U
T
x
F(x) = U^Tx
F(x)=UTx,逆傅里叶变换为
F
−
1
(
x
^
)
=
U
x
^
F^{-1}(\widehat{x}) = U \widehat{x}
F−1(x
)=Ux
,其中
x
^
\widehat{x}
x
表示经过图傅里叶变换的结果信号
7.最终含义就是 图傅里叶变换 将输入的图信号投影到正交空间,正交空间上的基是由归一化图拉普拉斯算子的特征向量组成,变换后的信号
x
^
\widehat{x}
x
是在新空间中对应的坐标,所以输入的信号
x
x
x可以表示为
x
=
∑
i
x
^
i
u
i
x = \sum_i \widehat{x}_iu_i
x=∑ix
iui ,这个计算过程正好是逆傅里叶变换。
8.输入信号x带滤波器
g
∈
R
n
g \in R^n
g∈Rn的图卷积被定义为
⊙表示逐元素相乘
如果滤波器 表示为 g θ = d i a g ( U T g ) g_\theta = diag(U^Tg) gθ=diag(UTg),那么谱图卷积可以表示为 x ∗ G g θ = U g θ U T x x*_Gg_\theta = Ug_\theta U^Tx x∗Ggθ=UgθUTx,基于频谱的convgnn均遵循此定义,关键看滤波器的选择。
二、谱卷积神经网络(Spectral CNN)
1.假设 滤波器
g
θ
=
Θ
i
,
j
(
k
)
g_\theta = \Theta_{i, j}^{(k)}
gθ=Θi,j(k) 是一系列可学习的参数,并考虑具有多通道的图信号。
2.谱卷积神经网络的图卷积层定义为
H
i
,
j
(
k
)
=
σ
(
∑
i
=
1
f
k
−
1
U
Θ
i
,
j
(
k
)
U
T
H
:
,
j
(
k
−
1
)
)
H_{i, j}^{(k)} = \sigma (\sum_{i=1}^{f_{k-1}} U \Theta_{i, j}^{(k)}U^TH_{:, j}^{(k-1)})
Hi,j(k)=σ(∑i=1fk−1UΘi,j(k)UTH:,j(k−1))
k表示层的下标
H ( k − 1 ) ∈ R n × f k − 1 H^{(k-1)} \in R^{n \times f_{k-1}} H(k−1)∈Rn×fk−1 是输入的图信号,并且 H ( 0 ) = X f k − 1 H^{(0)} = X f_{k-1} H(0)=Xfk−1是输入的通道数, f k f_{k} fk是输出的通道数
Θ i , j ( k ) \Theta_{i, j}^{(k)} Θi,j(k)是由可学习参数组成的对角矩阵
3.谱卷积神经网络的限制
首先,对图的任何扰动都会导致特征值的变化。其次,学习到的过滤器是域相关的,这意味着它们不能应用于具有不同结构的图。第三,特征分解的计算复杂度为
O
(
n
3
)
O(n^3)
O(n3)
4.解决上述限制的方法:将复杂度降低为 O(m),比如ChebNet和GCN
ChebNet(Chebyshev谱卷积):通过特征值对角矩阵的切比雪夫多项式近似滤波g
g θ = ∑ i = 0 K θ i T i ( Λ ~ ) g_\theta = \sum_{i=0}^K \theta_iT_i(\widetilde{\Lambda}) gθ=∑i=0KθiTi(Λ )
Λ ~ = 2 Λ λ m a x − I n \widetilde{\Lambda} = 2 \frac{\Lambda}{\lambda_{max}} - I_n Λ =2λmaxΛ−In
Λ ~ ∈ [ − 1 , 1 ] \widetilde{\Lambda} \in [-1, 1] Λ ∈[−1,1]
切比雪夫多项式的递归定义 T i ( x ) = 2 x T i − 1 ( x ) − T i − 2 ( x ) T_i(x) = 2xT_{i-1}(x) - T_{i-2}(x) Ti(x)=2xTi−1(x)−Ti−2(x)
T 0 ( x ) = 1 T_0(x) = 1 T0(x)=1,并且 T 1 ( x ) = x T_1(x) = x T1(x)=x
带有 filter g_\theta的图信号的卷积为 x ∗ G g θ = U ( ∑ i − 0 K θ i T i ( Λ ~ ) ) U T x x*_G g_\theta = U(\sum_{i-0}^K\theta_i T_i (\widetilde{\Lambda}))U^Tx x∗Ggθ=U(∑i−0KθiTi(Λ ))UTx
L ~ = 2 L λ m a x − I n , T i ( L ~ ) = U T i ( Λ ~ ) U T \widetilde{L} = \frac{2L}{\lambda_{max}} - I_n,T_i(\widetilde{L}) = UT_i(\widetilde{\Lambda})U^T L =λmax2L−In,Ti(L )=UTi(Λ )UT
切比雪夫的最终形式:
x ∗ G g θ = ∑ i = 0 K θ i T i ( L ~ ) x x *_G g_\theta = \sum_{i=0}^{K} \theta_i T_i(\widetilde{L})x x∗Ggθ=∑i=0KθiTi(L )x
CayleyNet进一步应用Cayley多项式作为参数有理复函数来捕获窄频段。
Cayley 的频谱图卷积
x ∗ G g θ = c 0 x + 2 R e { ∑ j = 1 r c j ( h L − i L ) j ( h L + i L ) − j x } x *_G g_\theta= c_0x + 2Re\{{\sum_{j=1}^r c_j(hL-iL)^j(hL+iL)^{-j}}x\} x∗Ggθ=c0x+2Re{∑j=1rcj(hL−iL)j(hL+iL)−jx}
Re(*)返回复数的实数部分,c_0是实数,c_j是复数, i是虚数
,h是控制 filter 的一个参数
在保留空间局域性的同时,CayleyNet表明ChebNet可以被认为是CayleyNet的一个特例。
GCN(Graph Convolutional Network):引入了ChebNet的一阶逼近
1.假设 K = 1,并且
λ
m
a
x
=
2
\lambda_{max} = 2
λmax=2
2.公式
x
∗
G
g
θ
=
∑
i
=
0
K
θ
i
T
i
(
L
~
)
x
x *_G g_\theta = \sum_{i=0}^{K} \theta_i T_i(\widetilde{L})x
x∗Ggθ=∑i=0KθiTi(L
)x 可以变成
x
∗
G
g
θ
=
θ
0
x
−
θ
1
D
−
1
2
A
D
−
1
2
x
x *_G g_\theta = \theta_0 x - \theta_1D^{-\frac 12}AD^{-\frac 12}x
x∗Ggθ=θ0x−θ1D−21AD−21x
3.防止过拟合,假设
θ
=
θ
0
=
−
θ
1
\theta = \theta_0 = -\theta_1
θ=θ0=−θ1
4.最后得到的表达式为
x
∗
G
g
θ
=
θ
(
I
n
+
D
−
1
2
A
D
−
1
2
)
x
x *_G g_\theta = \theta(I_n + D^{-\frac 12}AD^{-\frac 12})x
x∗Ggθ=θ(In+D−21AD−21)x
5.为了允许输入和输出的可以是多通道,组合层定义为
H
=
x
∗
G
g
Θ
=
f
(
A
‾
X
Θ
)
H = x *_G g_\Theta = f(\overline{A}X\Theta)
H=x∗GgΘ=f(AXΘ)
A ‾ = I n + D − 1 2 A D − 1 2 \overline{A} = I_n + D^{-\frac 12}AD^{-\frac 12} A=In+D−21AD−21
f ( ∗ ) f(*) f(∗)是激活函数
使用 I n + D − 1 2 A D − 1 2 I_n + D^{-\frac 12}AD^{-\frac 12} In+D−21AD−21 从经验上来说会造成数值不稳定
使用 A ‾ = D − 1 2 A D − 1 2 \overline{A} = D^{-\frac 12}AD^{-\frac 12} A=D−21AD−21 代替 A ‾ = I n + D ~ − 1 2 A ~ D ~ − 1 2 \overline{A} = I_n + \widetilde{D}^{-\frac 12} \widetilde{A}\widetilde{D}^{-\frac 12} A=In+D −21A D −21,其中 A ~ = A + I n , D ~ i i = ∑ j A ~ i j \widetilde{A} = A + I_n,\widetilde{D}_{ii} = \sum_j\widetilde{A}_{ij} A =A+In,D ii=∑jA ij
6.GCN可以解释为基于空间的方法,即将GCN认为是聚合节点邻居的特征信息,那么公式
H
=
x
∗
G
g
Θ
=
f
(
A
‾
X
Θ
)
H = x *_G g_\Theta = f(\overline{A}X\Theta)
H=x∗GgΘ=f(AXΘ)可以表示为
H
v
=
f
(
Θ
T
(
∑
u
∈
{
N
(
v
)
⋃
v
}
A
‾
v
,
u
x
u
)
)
∀
v
∈
V
H_v = f(\Theta^T(\sum_{u \in{\{N(v) \bigcup v}\}}\overline{A}_{v,u}x_u)) \ \ \ \forall v \in V
Hv=f(ΘT(∑u∈{N(v)⋃v}Av,uxu)) ∀v∈V
7.自适应卷积图神经网络(AGCN):学习未被图邻接矩阵指定的隐结构关系
学习图邻接矩阵未指定的隐藏结构关系
以两个节点的特征为输入,通过可学习距离函数构造一个所谓的残差图邻接矩阵
8.双卷积图神经网络(DGCN):引入双图卷积体系结构
有两个并行的图卷积层
这两层共享参数,它们共同使用归一化的邻接矩阵 A ‾ \overline{A} A和逐点正互信息(PPMI)矩阵,该矩阵通过从图中进行随机游走获取节点共现信息,其表示为 P P M I V 1 , V 2 = m a x ( l o g ( c o u n t ( v 1 , v 2 ) • ∣ D ∣ c o u n t ( v 1 ) c o u n t ( v 2 ) ) , 0 ) PPMI_{V_1, V_2} = max(log(\frac{count(v_1, v_2)•|D|}{count(v_1)count(v_2)}), 0) PPMIV1,V2=max(log(count(v1)count(v2)count(v1,v2)•∣D∣),0)
其中
1. v 1 , v 2 ∈ V v_1, v_2 \in V v1,v2∈V
2. ∣ D ∣ = ∑ v 1 , v 2 c o u n t ( v 1 , v 2 ) |D| = \sum_{v_1, v_2}count(v_1, v_2) ∣D∣=∑v1,v2count(v1,v2)
3. c o u n t ( • ) count(•) count(•)函数返回在样本随机游走中节点v 和/或 节点u 共同发生/出现的概率
4.通过集成来自双图卷积层的输出,DGCN对局部和全局结构信息进行编码,而不需要堆叠多个图卷积层。
B.基于空间的方法
基于空间的ConvGNNs与RecGNNs共享相同的信息传播/消息传递思想。
1.NN4G (neurla network for graph)
思想:通过在每一层具有独立参数的综合神经架构学习图的互依赖
方式:直接汇总节点的邻域信息来执行卷积,同时还会应用残差连接和跳过连接用来存储每层的信息
节点状态更新过程:
h v ( k ) = f ( W ( k ) T x v + ∑ i = 1 k − 1 ∑ u ∈ N ( v ) Θ ( k ) T h u ( k − 1 ) ) h_v^{(k)} = f(W^{(k)^T}x_v + \sum_{i=1}^{k-1}\sum_{u \in N(v) }\Theta^{(k)^T}h_u^{(k-1)}) hv(k)=f(W(k)Txv+i=1∑k−1u∈N(v)∑Θ(k)Thu(k−1))
其中 f ( • ) f(•) f(•)是一个激活函数并且 h v ( 0 ) = 0 h_v^{(0)} = 0 hv(0)=0
上述过程可以使用矩阵进行表示: H ( k ) = f ( X W ( K ) + ∑ i = 1 ( k − 1 ) Θ ( k ) ) H^{(k)} = f(XW^{(K)} + \sum_{i=1}^{(k-1)}\Theta^{(k)}) H(k)=f(XW(K)+i=1∑(k−1)Θ(k))
与GCN传统形式的不同点:NN4G是使用非归一化的邻接矩阵
存在的问题:没有归一化会导致隐节点状态存在不同的范围
2.CGMM (Contextual Graph Markov model)
特点:在保持空间局部性的同时,还具有概率可解释性的优势
3.DCNN (Diffusion CNN)
思想:将图卷积视为一种扩散过程
前提:假设信息是以一定的转移概率从一个节点传递到邻域的节点之一 【使得信息可以在几轮传递之后能够达到平衡】
图卷积定义 H ( k ) = f ( W ( k ) ⊙ P k X ) H^{(k)} = f(W^{(k)}⊙P^kX) H(k)=f(W(k)⊙PkX)
其中
f ( • ) f(•) f(•) 是一个激活函数
P ∈ R n × n P \in R^{n \times n} P∈Rn×n 是概率迁移矩阵,表示方式为 P = D − 1 A P = D^{-1}A P=D−1A
隐表示矩阵 H ( k ) H^{(k)} H(k)保持与输入特征矩阵相同的维度,与 H ( k − 1 ) H^{(k-1)} H(k−1)无关
输出结果:串联 H ( 1 ) , H ( 2 ) , . . . H ( K ) H^{(1)}, H^{(2)},... H^{(K)} H(1),H(2),...H(K)
4.DGC
思想:与DCNN基本类似,最终的处理方式不同
图卷积定义 H = ∑ k = 0 K f ( P k X w ( k ) ) H = \sum_{k=0}^{K}f(P^kXw^{(k)}) H=k=0∑Kf(PkXw(k))
其中
W ( k ) ∈ R D × F W^{(k)} \in R^{D \times F} W(k)∈RD×F
f ( • ) f(•) f(•) 是一个激活函数
使用迁移概率矩阵的平方表示远处的邻居对中心节点的贡献很小
输出结果:累加 H ( 1 ) , H ( 2 ) , . . . H ( K ) H^{(1)}, H^{(2)},... H^{(K)} H(1),H(2),...H(K)
5.PGG-DGGNN
思想:使用最短路径增加远处的节点的贡献度
最短距离邻接矩阵 { S v , u ( j ) = 1 ,如果节点 u 到节点 v 的最短距离为 j S v , u ( j ) = 0 ,其他情况 \left\{\begin{aligned}S_{v, u}^{(j)} &=1, 如果节点u到节点v的最短距离为j \\S_{v, u}^{(j)}&=0,其他情况 \end{aligned}\right. {Sv,u(j)Sv,u(j)=1,如果节点u到节点v的最短距离为j=0,其他情况
图卷积操作 H ( k ) = ∣ ∣ j = 0 r f ( ( D ~ ( j ) ) − 1 ) S ( j ) H ( k − 1 ) W ( j , k ) ∣ ∣ H^{(k)} = ||^r_{j=0}f((\widetilde{D}^{(j)})^{-1})S^{(j)}H^{(k-1)}W^{(j, k)}|| H(k)=∣∣j=0rf((D (j))−1)S(j)H(k−1)W(j,k)∣∣
其中
D ~ i i ( j ) = ∑ l S i , l ( j ) \widetilde{D}_{ii}^{(j)} = \sum_l S_{i, l}^{(j)} D ii(j)=∑lSi,l(j)
H ( 0 ) = X H^{(0)} = X H(0)=X
∣ ∣ || ∣∣操作表示向量的串联
γ \gamma γ是控制感受野大小的超参数
缺点:计算最短路径邻接矩阵的时间复杂度 O ( n 3 ) O(n^{3}) O(n3)
6.PGC (Partition graph convolution)
思想:根据不限于最短距离的一定标准将节点的邻居分为Q组
方式:根据每个组定义的邻域构造 Q 个邻接矩阵
图卷积方式: H ( k ) = ∑ j = 1 Q A ‾ ( j ) H ( k − 1 ) W ( j , k ) H^{(k)} = \sum_{j=1}^Q \overline{A}^{(j)}H^{(k-1)}W^{(j, k)} H(k)=j=1∑QA(j)H(k−1)W(j,k)
其中
H ( 0 ) = X H^{(0) } = X H(0)=X
A ‾ ( j ) = ( D ~ ( j ) ) − 1 2 A ~ ( j ) ( D ~ ( j ) ) − 1 2 \overline{A}^{(j)} = (\widetilde{D}^{(j)})^{-\frac 12}\widetilde{A}^{(j)} (\widetilde{D}^{(j)})^{-\frac 12} A(j)=(D (j))−21A (j)(D (j))−21
A ~ ( j ) = A ( j ) + I \widetilde{A}^{(j)} = A^{(j)} + I A (j)=A(j)+I
7.MPNN (message-passing neural network)
思想:将图卷积视为一种消息传递的过程,信息可以沿着边直接从一个节点传递到另一个节点
方式:使用K步消息传递迭代确保信息能够传递更远
图卷积方式: h v ( k ) = U k ( h v ( k − 1 ) , ∑ u ∈ N ( v ) M k ( h v ( k − 1 ) , h u ( k − 1 ) , x v u e ) ) h_v^{(k)} = U_k(h_v^{(k-1)}, \sum_{u \in N(v)} M_k(h_v^{(k-1)},h_u^{(k-1)}, x_{vu}^e)) hv(k)=Uk(hv(k−1),u∈N(v)∑Mk(hv(k−1),hu(k−1),xvue))
h v ( 0 ) = x v h_v^{(0)} = x_v hv(0)=xv
U k ( ⋅ ) U_k(·) Uk(⋅)和 M k ( ⋅ ) M_k(·) Mk(⋅) 是可学习的参数的函数
得到的结果可以用于执行节点级预测任务,或者将结果传递到 Readout 函数用于执行图级的预测任务
Readout 函数基于节点隐表示生成整张图
Readout 函数生成图的表示 h G = R ( h v ( K ) ∣ v ∈ G ) h_G = R(h_v^{(K)}|v \in G) hG=R(hv(K)∣v∈G)
R ( ⋅ ) R(·) R(⋅)表示可学习参数的Readout函数
选择不同的 U k ( ⋅ ) U_k(·) Uk(⋅)、 M k ( ⋅ ) M_k(·) Mk(⋅)和 R ( ⋅ ) R(·) R(⋅) 可以覆盖很多的 GNNs
8.GIN ( Graph isomorphism network)
思想:通过可学习的参数调节中心节点的权值
图卷积方式: h k ( k ) = M L P ( ( 1 + ε ( k ) ) h v ( k − 1 ) + ∑ u ∈ N ( v ) h u ( k − 1 ) ) h_k^{(k)} = MLP((1+ \varepsilon^{(k)})h_v^{(k-1) } + \sum_{u \in N(v)}h_u^{(k-1)}) hk(k)=MLP((1+ε(k))hv(k−1)+u∈N(v)∑hu(k−1))
M L P ( ⋅ ) MLP(·) MLP(⋅)表示多层感知
9.GraphSage
思想:为每个节点固定数量的邻居
图卷积方式: h v ( k ) = σ ( W ( k ) ⋅ f k ( h v ( k − 1 ) , { h u ( k − 1 ) ∀ u ∈ S N ( v ) } ) ) h_v^{(k)} = \sigma(W^{(k)}·f_k(h_v^{(k-1)}, \{ h_u^{(k-1)} \forall u \in S_{N{(v)}} \})) hv(k)=σ(W(k)⋅fk(hv(k−1),{hu(k−1)∀u∈SN(v)}))
h v ( 0 ) = x v h_v^{(0)} = x_v hv(0)=xv
f k ( ⋅ ) f_k(·) fk(⋅) 是聚合函数
S N ( v ) S_{N{(v)}} SN(v) 是对于节点 v 的邻居的随机取样
聚合函数不随节点顺序的变化而变化
10.GAT (Grapg Attention Network)
思想:采用注意力机制来得到相连节点之间的相对权值
图卷积方式: h v ( k ) = σ ( ∑ u ∈ N ( v ) ⋃ v α v u ( k ) W ( k ) h u ( k − 1 ) ) h_v^{(k)} = \sigma(\sum_{u \in N(v) \bigcup v}\alpha_{vu}^{(k)}W^{(k)}h_u^{(k-1)}) hv(k)=σ(u∈N(v)⋃v∑αvu(k)W(k)hu(k−1))
h v ( 0 ) = x v h_v^{(0)} = x_v hv(0)=xv
α v u ( k ) \alpha_{vu}^{(k)} αvu(k)是注意力权值,用来测量节点 v 与其邻居节点 u 之间的连接强度
α v u ( k ) = s o f t m a x ( g ( α T [ W ( k ) h v ( k − 1 ) ∣ ∣ W ( k ) h u ( k − 1 ) ] ) ) \alpha_{vu}^{(k)} = softmax(g(\alpha^T[W^{(k)}h_v^{(k-1)}||W^{(k)}h_u^{(k-1)}])) αvu(k)=softmax(g(αT[W(k)hv(k−1)∣∣W(k)hu(k−1)]))
g ( ⋅ ) g(·) g(⋅)表示 LeakyReLu 激活函数
α \alpha α是一个可学习参数的向量
softmax 函数确保该节点与其邻居节点的权值和为1
GAT 执行多头注意力增强了模型的表达能力
缺点:GAT假设注意头的贡献是相同的
与GCN的不同
GCN 为节点与其相邻的节点之间赋予相同的权值
GAT 为节点与其相邻的节点之间赋予不同的权值,贡献度大的权值高
11.GAAN (Gated attention network)
思想:引入自注意力机制
特点:该机制为每个注意力头分配不同的注意分数
12.GeniePath
思想:提出了在空间施加注意力之外,还进一步提出了一种类似于LSTM的门控机制
特点:这种门控机制可以控制跨图卷积的信息流
13.MoNet (Mixture model network)
思想:使用节点伪坐标确定节点与其邻居之间的相对位置
方式:确定位置之后,权值函数会将相对位置映射到这两个节点之间的相对权值
特点:Filter 的参数可以在不同的位置之间进行共享
流行的方法:
geodesic CNN (GCNN)
anisotropic CNN (ACNN)
spline CNN
提出了一个具有可学习参数的高斯核,能够自适应学习权值函数
14.PATCHY-SAN
思想:根据节点邻居的图标签对节点进行排序,选择前q个邻居
图标签本质是节点分数,节点分数的获取:
node degree
centrality
Weisfeiler–Lehman (WL) color
特点:由于每个节点都有固定数量的有序邻居,因此可以将图结构化数据转换为网格结构化数据
应用标准的一维卷积 Filter 来汇总邻域特征信息
Filter 的权值与节点邻居的顺序相对应
缺点:需要对节点进行排序,因此需要大量的计算才能进行数据处理
15.LGCN (Large-scale GCN)
思想:根据节点特征信息对节点的邻居进行排名
方式:对于每个节点,LGCN都会集成一个由其邻域组成的特征矩阵,然后沿着每一列对该特征矩阵进行排序,然后将前q行作为输入
16.训练效率方面的提升:
一般的GNN需要将整个图数据和所有节点的中间状态存储在内存中,可能造成内存溢出
GraphSage 提出批量训练算法节省了内存,其以固定样本大小的K步递归扩展根节点的邻域来对每个节点构造树,对于每棵采样树,GraphSage通过从下到上分层汇总隐藏节点表示形式来计算根节点的隐藏表示形式。【对每个节点采样固定数量的邻居】
FastGCN (Fast Learning with GCN)为每个卷积层采样固定数量的节点,其将图卷积解释为概率度量下节点嵌入函数的积分变换,使用Monte Carlo近似和方差减小技术来简化训练过程,但是层间连接可能稀疏
自适应的分层采样方法,其较低层的节点采样以上一层为条件,相比于FastGCN,其实现了更高的精度,但是采样方案更加复杂
StoGCN (stochastic GCNs)使用历史节点表示作为控制变量将图卷积的感受野大小减小到任意小的比例,即使每个节点有两个邻居,其也能够达到可比较的性能。但是,其必须保存所有节点的中间状态,对于大型图不好解决。
Cluster-GCN 使用图聚类算法对子图进行采样,并对采样的子图中的节点执行图卷积,由于邻域搜索受子图的限制,因此其能够以更小的代价(更少时间,更小内存,更深网络)处理更大的图,其提供了时间复杂度和内存复杂度的直接比较。
GCN 是 进行批量训练的 baseline
GraphSage 是牺牲时间效率来节省内存
Sto-GCN 的时间复杂度最高,处于瓶颈
Cluster-GCN 实现了最低的内存复杂度
17.频谱模型与空间模型之间的比较
频谱模型:
在图信号处理中具有理论依据
可以通过设计不同的 Filter 得到不同的 GCNs
空间模型:
在每个节点上本地执行图卷积
可以在不同的位置和结构之间轻松共享权值
比较
频谱模型在 效率、通用性、灵活性上不如空间模型
频谱模型仅限用于无向图,空间模型可以用于多源图
C.图池化模块
通过GNN生成节点特征之后,直接应用于最终任务会导致计算量大的问题,此时需要进行下采样
一、两个下采样的操作
池化操作
目的:降低参数的大小
方式:通过对节点进行下采样以生成较小的表示
意义:防止过拟合、避免置换不变性与计算复杂性的问题
Readout 操作
用途:主要用于基于节点表示生成图级表示
二、池化方法
最原始以及最有效的池化方法:均值、最大值、求和
表示
h
G
=
m
e
a
n
/
m
a
x
/
s
u
m
(
h
1
(
K
)
,
h
2
(
K
)
,
.
.
.
h
n
(
K
)
)
h_G = mean/max/sum(h_1^{(K)}, h_2^{(K)} ,...h_n^{(K)})
hG=mean/max/sum(h1(K),h2(K),...hn(K)),其中 K是最后一个卷基层的下标
优点:可以降低图域的维度以及降低计算费用
池化总体来说就是减小图形大小,需要研究的是如何提高池化的有效性与计算复杂性
存在的问题:
使用以上池化方式,甚至使用了注意力机制的方式对于任意大小的图形都会生成固定大小的嵌入
Set2Set:使用LSTM在应用减少操作的之前将与顺序相关的信息整合到内存嵌入中,否则将此信息进行破坏。
ChebNet:使用Graclus算法将输入图粗化多个级别,然后将输入图的节点与粗化版本重新排列成平衡二叉树。自底而上任意聚合平衡二叉树将相似的节点排列在一起。
DGCNN:其使用的池化策略类似于 SortPooling,将节点重新排列为有意义的序列,然后再执行池化操作。DGCNN根据节点在图中结构角色进行排序【对节点特征进行排序】,另外还通过 截断/扩展 节点特征矩阵将图形大小统一为q
DiffPool (differentiable pooling):不仅将图上的节点聚类,同时学习了在k层的聚类分配矩阵 , ,其中表示第k层的节点数, 中的概率值基于节点特征与拓扑结构生成的,。如此设计的核心思想是同时考虑图拓扑和特征信息,进而学习到一个全面的节点分配,但是DiffPool会在池化之后生成密集图,导致时间复杂度为
SAGPool:在考虑了拓扑与节点特征的同时,还通过自注意力方法学习池化。
池化总体来说就是减小图形大小,需要研究的是如何提高池化的有效性与计算复杂性
D.理论方面的讨论【可以努力的方面】
一、感受野的形状
定义:节点的感受野是节点的集合
目的:有助于确定最后的节点表示
变化过程:每当合成一个多个图卷积层时,节点的感受野每次都会向其远处的邻居向前增长一步
一个ConvGNN能够通过堆叠局部图卷积层来提取出全局信息
二、VC 维度
定义:VC 维度是模型复杂度的度量
三、图同构
定义:如果两个图的拓扑是相同的,那么它们是同构的
四、等变性和不变性
执行节点级任务,GNN一定是等变函数
执行图级任务,GNN一定是不变函数
五、通用逼近
具有一个隐层的MLP可以近似任意函数,
级联相关可以逼近结构化输出的函数
RecGNNs可以近似保留任何展开精度的任何函数
VI 图自编码器 (graph autoencoders, GAE)
说明:GAEs是深度数据架构,能够将节点映射到潜特征空间,然后解码器能够根据潜表示解码出图信息
A.网络嵌入:
定义:网络嵌入是节点的低维度向量表示,可以保留节点的拓扑信息
过程:
1.使用编码器提取网络嵌入
2.使用解码器执行网络嵌入【保存图拓扑结构(比如PPMI矩阵和邻接矩阵)】
3.最后学习网络嵌入
1.SDNE (structural deep network embedding)
方式:使用堆叠式自动编码器共同保存节点的一阶近似度和二阶近似度
缺点:仅仅考虑了结构信息,但是没有考虑节点本身信息
两个损失函数
第一个损失函数 L 1 s t = ∑ ( v , u ) ∈ E A v , u ∣ ∣ e n c ( x v ) − e n c ( x u ) ∣ ∣ 2 L_{1st} = \sum_{(v, u) \in E} A_{v, u}||enc(x_v)-enc(x_u)||^2 L1st=(v,u)∈E∑Av,u∣∣enc(xv)−enc(xu)∣∣2
x v = A v x_v = A_v xv=Av
e n c ( ⋅ ) enc(·) enc(⋅) 是由一个MLP组成的编码器
第二个损失函数
L 2 n d = ∑ v ∈ V ∣ ∣ ( d e c ( e n c ( x v ) ) − x v ) ⊙ b v ∣ ∣ 2 L_{2nd} = \sum_{v \in V}||(dec(enc(x_v)) - x_v)⊙b_v ||^2 L2nd=v∈V∑∣∣(dec(enc(xv))−xv)⊙bv∣∣2
{ b v , u = 1 ,如果 A v , u = 0 b v , u = β > 1 ,如果 A v , u = 0 \left\{\begin{aligned}b_{v, u} &= 1, 如果A_{v, u} =0 \\b_{v, u} &= \beta > 1,如果A_{v, u} =0 \end{aligned}\right. {bv,ubv,u=1,如果Av,u=0=β>1,如果Av,u=0
d e c ( ⋅ ) dec(·) dec(⋅)是由一个MLP组成的解码器
2.GAE*
特点:使用GCN同时编码节点结构信息和节点特征信息
编码器公式表示: Z = e n c ( X , A ) = G c o n v ( f ( G c o n v ( A , X ; Θ 1 ) ) ; Θ 2 ) Z = enc(X, A) = Gconv(f(Gconv(A, X;\Theta_1));\Theta_2) Z=enc(X,A)=Gconv(f(Gconv(A,X;Θ1));Θ2)
Z 代表图的网络嵌入矩阵
f ( ⋅ ) f(·) f(⋅)是一个ReLu激活函数
G c o n v ( ⋅ ) Gconv(·) Gconv(⋅)是由公式 H = x ∗ G g Θ = f ( A ‾ X Θ ) H = x *_G g_\Theta = f(\overline{A}X\Theta) H=x∗GgΘ=f(AXΘ)定义的图卷积层
解码器通过重建图邻接矩阵,从节点的嵌入中解码出节点关系信息
解码器公式表示: A ^ v , u = d e c ( z v , z u ) = σ ( z v T z u ) \widehat{A}_{v, u} = dec(z_v, z_u) = \sigma(z_v^Tz_u) A v,u=dec(zv,zu)=σ(zvTzu)
z v z_v zv 是节点 v 的嵌入表示
训练GAE*的方式是根据真实邻接矩阵A和重构邻接矩阵 A ^ \widehat{A} A ,最小化负交叉熵
3.VGAE (Variational GAE)
由于GAE的简单重建图邻接矩阵可能会导致过拟合,因此使用VGAE用于学习数据分布
变分下边界的优化方式: L = E q ( Z ∣ X , A ) [ log p ( A ∣ Z ) ] − K L [ q ( Z ∣ X , A ) ∣ ∣ p ( Z ) ] L = E_{q(Z|X, A)}[\log p(A|Z)] - KL[q(Z|X, A)||p(Z)] L=Eq(Z∣X,A)[logp(A∣Z)]−KL[q(Z∣X,A)∣∣p(Z)]
K L ( ⋅ ) KL(·) KL(⋅)指的是两个分布之间距离度量的KL散度
p ( Z ) p(Z) p(Z) 是高斯先验,表示为 p ( Z ) = ∏ i = 1 n p ( z i ) = ∏ i = 1 n N ( z i ∣ 0 , I ) p(Z) = \prod_{i=1}^np(z_i) = \prod_{i=1}^nN(z_i|0, I) p(Z)=∏i=1np(zi)=∏i=1nN(zi∣0,I)
q ( Z ∣ X , A ) = ∏ i = 1 n q ( z i ∣ X , A ) q(Z|X, A) = \prod_{i=1}^nq(z_i|X, A) q(Z∣X,A)=∏i=1nq(zi∣X,A), 其中 q ( z i ∣ X , A ) = N ( z i ∣ μ , d i a g ( σ i 2 ) ) q(z_i|X, A) = N(z_i|\mu, diag(\sigma_i^2)) q(zi∣X,A)=N(zi∣μ,diag(σi2))
μ i \mu_i μi是由公式 Z = e n c ( X , A ) = G c o n v ( f ( G c o n v ( A , X ; Θ 1 ) ) ; Θ 2 ) Z = enc(X, A) = Gconv(f(Gconv(A, X;\Theta_1));\Theta_2) Z=enc(X,A)=Gconv(f(Gconv(A,X;Θ1));Θ2)定义的编码器输出的第i行
log σ i \log \sigma_i logσi与另一个编码器 μ i \mu_i μi的相似
由公式 L = E q ( Z ∣ X , A ) [ log p ( A ∣ Z ) ] − K L [ q ( Z ∣ X , A ) ∣ ∣ p ( Z ) ] L = E_{q(Z|X, A)}[\log p(A|Z)] - KL[q(Z|X, A)||p(Z)] L=Eq(Z∣X,A)[logp(A∣Z)]−KL[q(Z∣X,A)∣∣p(Z)]可以知道,VGAE假设经验分布 q ( Z ∣ X , A ) q(Z|X, A) q(Z∣X,A)与先验分布 p ( Z ) p(Z) p(Z)
4.ARVGA (adversarially regularized VGAE)
思想:学习得到一个编码器,这个编码器能够得到经验分布 q ( Z ∣ X , A ) q(Z|X,A) q(Z∣X,A),这个分布与先验分布 p ( Z ) p(Z) p(Z)无法分开,即这两个分布之间存在一定的关系
5.GraphSage
思想:使用两个卷积层编码节点特征
特点:没有优化重建误差,只是显示了两个节点之间的关系信息【负采样】
损失计算: L ( z v ) = − log ( d e c ( z v , z u ) ) − Q E v n ∼ P n ( v ) l o g ( − d e c ( z v , z v n ) ) L(z_v) = -\log(dec(z_v, z_u)) - QE_{v_n \sim P_n(v)}log(-dec(z_v, z_{v_n})) L(zv)=−log(dec(zv,zu))−QEvn∼Pn(v)log(−dec(zv,zvn))
节点 u 是节点 v 的邻居
节点 v n v_n vn是一个到节点v 的远处节点,该节点是从负采样分布 P n ( v ) P_{n}(v) Pn(v)中采样的
Q 为负样本的数量
损失函数的本质:与该节点相近的节点有近似的表示,远处的节点与该节点有不同的表示
6.DGI
通过最大化本地互信息来驱动本地网络嵌入以得到全局结构信息
以上的方法是通过解决链路预测问题来学习网络嵌入的
7.DRDE (Deep recursive network embedding)
假定节点的网络嵌入近似与其邻域网络嵌入的聚合
采取LSTM聚合一个节点的邻居
重建损失 L = ∑ v ∈ V ∣ ∣ z v − L S T M ( { z u ∣ u ∈ N ( v ) } ) ∣ ∣ 2 L = \sum_{v \in V} ||z_v - LSTM(\{z_u|u \in N(v)\})||^2 L=v∈V∑∣∣zv−LSTM({zu∣u∈N(v)})∣∣2
z v z_v zv表示通过字典查找得到的节点的网络嵌入
LSTM将节点 的邻居的随机序列作为输入【按照节点度数排序】
DRDE 通过 LSTM 隐式学习 网络嵌入,而不是使用 LSTM 网络生成网络嵌入
如此做可以避免 LSTM 对于节点序列的排列不是不变的问题
8.NetRAs (Network representations with adversarially regularized autoencoders)
提出了一种具有一般损失函数的图自编码框架
损失函数表示 L = − E z ∼ P d a t a ( z ) ( d i s t ( z , d e c ( e n c ( z ) ) ) ) L = -E_{z \sim P_{data}(z)} (dist(z, dec(enc(z)))) L=−Ez∼Pdata(z)(dist(z,dec(enc(z))))
d i s t ( ⋅ ) dist(·) dist(⋅)表示节点嵌入 z 与重建的 z 之间的距离度量
NetRAs 的编码器和解码器是 LSTM 网络, LSTM的输入是节点的随机游走得到的序列
B.图生成:
有多个图,GAEs能够学习到图的生成分布,方式是将图编码成隐表示,然后解码器根据给定的隐表示解码出图结构
目前用于图生成的 GAEs 大多数都用于分子生成图问题
1.顺序方式:逐步得到图的节点与边
DeepGMG (Deep generative model of graphs)
假设图的概率是所有可能节点置换的排列组合
公式表达: p ( G ) = ∑ π p ( G , π ) p(G) = \sum_\pi p(G, \pi) p(G)=π∑p(G,π)
π \pi π表示节点顺序 ,用于得到图中所有节点和边的复杂联合概率
通过决策来确定是否需要添加节点,要添加哪个节点,是否添加边以及连接到新节点的节点
生成节点和边的决策过程取决于RecGNN更新的增长图的节点状态和图状态
GraphRNN
使用图级RNN与边级RNN用来给节点和边的生成建模
图级RNN每次添加一个节点到节点序列
边级RNN产生二进制序列,说明新节点与该序列中先前生成节点之间的连接
2.全局方式:一次性输出整张图
GraphVAE (Graph variational autoencoder)
将存在的节点和边建模为独立随机变量
假设有编码器定义的后验分布 q ϕ ( z ∣ G ) q_\phi(z|G) qϕ(z∣G)和由解码器定义的生成分布 p θ ( G ∣ z ) p_\theta(G|z) pθ(G∣z)
变分下界的定义: L ( ϕ , θ ; G ) = E q ϕ ( z ∣ G ) [ − log p θ ( G ∣ z ) ] + K L [ Q ϕ ( z ∣ G ) ∣ ∣ p ( z ) ] L(\phi, \theta; G) = E_{q_\phi(z|G)}[-\log p_\theta (G|z)] + KL[Q_\phi(z|G)||p(z)] L(ϕ,θ;G)=Eqϕ(z∣G)[−logpθ(G∣z)]+KL[Qϕ(z∣G)∣∣p(z)]
p ( z ) p(z) p(z)服从高斯先验
ϕ \phi ϕ 和 θ \theta θ是可学习的参数
使用ConvGNN作为编码器
使用简单的MLP作为解码器
输出结果:带有邻接矩阵、节点属性和边属性的图
3.RGVAE (Regularized GraphVAE)
增强GraphVAE的约束,对GraphVAE的解码器正则化
4.MolGAN (Molecular GAN)
整合convGNNs, GANs, 强化学习目标生成具有所需特性的图
MolGAN由生成器和判别器组成,相互竞争以提高生成器的真实性
生成器尝试生成一个伪图及其特征矩阵
判别器将伪样本与真实样本进行区分
对判别器引入奖励机制,根据外部评估者鼓励所生成的图具有一定的属性
5.NetGAN
结合LSTM 与 WGAN 结合在一起
基于随机游走的方法生成图形
训练生成器通过 LSTM 网络生成合理的随机游走
强制执行判别器从真实的随机游走中识别出生成器生成的随机游走
通过标准化生成器生成的随机游走计算出节点的共现矩阵,从而得到新的图
总结
顺序方法将图线性化为序列,但是由于循环,可能丢失结构信息
全局方法可以一次性生成一张图,但是无法应用于大图 【GAE的输出空间最多为
O
(
n
2
)
O(n^2)
O(n2)】
VII 时空图神经网络(spatial-temporal graph neural networks, ST-GNN)
实际情况下,图在图结构和图输入方面都是动态的,因此出现了 STGNN
大体思想:给动态节点输入建模,同时假设已连接节点之间的互依赖性【根据节点状态建模】
案例:交通网络中存在许多速度传感器,不同距离的传感器之间的权值不同
STGNN 可以同时获取到图的空间和时间依赖性
STGNNs的任务是预测未来的节点值/标签或者预测带有时间因素的图标签
STGNN遵循的两个方向:基于RNN的方法和基于CNN的方法
A.基于RNN的方法
大多数基于RNN的方法是通过使用图卷积过滤传递给递归单元的输入和隐状态来获取时空依赖性
上述语句的说明:假设有一个简单的RNN任务 H ( t ) = σ ( W X ( T ) + U H ( T − 1 ) + b ) H^{(t)} = \sigma(WX^{(T) } + UH^{(T-1)} + b) H(t)=σ(WX(T)+UH(T−1)+b)
W ( t ) ∈ R b × d W^{(t)} \in R^{b \times d} W(t)∈Rb×d 表示在时间步为t时的节点特征矩阵
对上述表达插入图卷积 H ( t ) = σ ( G c o n v ( X ( t ) , A ; W ) + G c o n v ( H ( t − 1 ) , A ; U ) + b ) H^{(t)} = \sigma(Gconv(X^{(t)}, A; W) + Gconv(H^{(t-1), A; U}) + b) H(t)=σ(Gconv(X(t),A;W)+Gconv(H(t−1),A;U)+b)
G c o n v ( ⋅ ) Gconv(·) Gconv(⋅)是图卷积层
1.GCRN (Graph convolutional recurrent network)
集合了LSTM和ChebNet
2.DCRNN (Diffusion convolutional RNN)
将提出的扩散图卷积层合并到GRU网络中
采用编码器-解码器框架来预测节点值的未来的K步
使用节点级和边级RNNs解决时间信息的不同方面
3.Structureal-RNN
提出一种递归框架来预测每个时间步的节点标签
存在两个RNN: 节点RNN和边RNN
每个节点和每条边的时间信息分别通过节点RNN和边RNN
为了合并空间信息,节点RNN将边RNN的输出作为输入
将节点和边分成语义组,并且同一语义组中的节点或者边共享相同的RNN模型,因此节省了成本
基于RNN的方法存在耗时的迭代传播与梯度爆炸/消失问题
B.基于CNN的方法
以非递归的方式处理时空图
相比于基于RNN的方法的优点:并行计算、稳定的梯度和低内存需求
基于CNN的方法将一维CNN层与图卷积层进行交错,从而学习到时间和空间依赖性
假设STGNN的输入是一个张量
X
∈
R
T
×
n
×
d
X \in R^{T \times n \times d}
X∈RT×n×d
一维卷积层沿着时间轴在
X
[
:
,
i
,
:
]
X_{[:, i, :]}
X[:,i,:]上滑动,从而对每个节点的时间信息进行汇总
图卷积层在
X
[
i
,
:
,
:
]
X_{[i, :, :]}
X[i,:,:]用于聚合空间信息
1.CGCN
将一维卷积层与ChebNet/GCN层整合在一起
时空块的构成:按顺序堆叠的一个门控的一维卷积层,一个图卷积层和另一个门控的一维卷积层
2.ST-GCN
使用一维卷基层和PGC层组成时空块
先前的方法都是使用预定义的图结构,假设预定义的图结构反映了节点之间的真实依赖关系,实际上时空设置下的图有许多的快照【图形模糊】
3.Graph WaveNet
提出使用自适应邻接矩阵来执行图卷积,进而从数据中自动学习到潜在的静态图形结构
自适应邻接矩阵 A a d p = S o f t M a x ( R e L u ( E 1 E 2 T ) ) A_{adp} = SoftMax(ReLu(E_1E_2^T)) Aadp=SoftMax(ReLu(E1E2T))
SoftMax是沿行维度进行计算的
E ! E_! E!表示源节点嵌入
E 2 E_2 E2表示带有可学习参数的目标节点嵌入
E 1 E_1 E1 与 E 2 E_2 E2的相乘,可以得到源节点和目标节点之间的依赖权值
借助FNN的复杂时空神经网络,Graph WaveNet不需要提供邻接矩阵就可以表现良好
学习潜静态空间相关性可以发现网络中不同实体之间的可解释且稳定的相关性,但是有的时候,学习潜动态空间的相关性可以进一步提高模型的精度,比如在交通网络中,车辆在两条道路上行驶的时间可能取决于道路的当前状况
4.GaAN
利用注意力机制通过基于RNN的方法学习动态空间依赖性
注意函数用于根据给定的两个连接节点的当前节点输入来更新它们之间的边权值
5.ASTGCN
进一步包括空间注意函数和时间注意函数
通过基于CNN的方法学习潜动态空间相关性和时间相关性
学习潜空间相关性存在的缺点是 需要计算没对节点之间的空间相关性权值,时间复杂度为 O ( n 2 ) O(n^2) O(n2)
VIII 应用
图结构化数据无处不在
A.基准图数据集
引文网络
生化图
社交网络
其他
B.评估与开源实现
一、评估方法
节点分类和图分类是评估recgnn和convgnn性能的常见任务。
1.节点分类:
大多数方法遵循基准数据集的 训练/验证/测试 的标准划分
Cora
Citeseer
Pubmed
PPI
评估性能存在的陷进:
在所有实验中使用相同的 训练/验证/测试 划分会低估泛化误差
不同的方法采用了不同的训练技术【超参数调参,参数初始化,学习率衰减和提前停止】
2.图分类
一般采用10倍交叉验证对模型进行评估
存在的问题:在每一折的外部测试集都用于模型选择和风险评估
二、开源实现
开源实现促进了深度学习研究中基线实验的工作。在补充材料C中,我们提供了本文中审查的GNN模型的开源实现的超链接。值得注意的是,Fey等人在PyTorch中发布了一个名为PyTorch geometric 4的几何学习库,该库实现了许多gnn。最近,深度图库(DGL) 5发布,它在流行的深度学习平台(如PyTorch和MXNet)上提供了许多gnn的快速实现。
C.实际应用
1.计算机视觉
场景图生成
点云分类
动作识别
2.自然语言处理
3.交通
预测交通速度
预测交通量
预测道路密度
4.推荐系统
5.化学
6.其他
程序验证
程序推理
社会影响预测
对抗攻击的预防
电气健康记录建模
脑网络
事件检测
组合优化
IX 未来的方向
1.模型深度
随着图卷积层数的增加,ConvGNN的性能急剧下降。由于图卷积将相邻节点的表示推得更近,理论上,在无限个图卷积层的情况下,所有节点的表示都会收敛到一个单点。这就提出了一个问题:深度学习是否仍然是学习图数据的好策略?
2.可扩展性权衡
gnn的可扩展性是以破坏图完备性为代价获得的。无论使用抽样还是聚类,模型都会丢失部分图信息。通过抽样,一个节点可能会错过它有影响力的邻居。通过聚类,一个图可能被剥夺了一个明显的结构模式。如何权衡算法的可扩展性和图的完整性可能是未来的研究方向
3.异质性
目前大多数gnn都假设是齐次图。目前的gnn很难直接应用于异构图,因为异构图可能包含不同类型的节点和边,或者不同形式的节点和边输入,如图像和文本。因此,应该开发新的方法来处理异构图。
4.动态性
图在本质上是动态的,节点或边可能出现或消失,节点/边的输入可能随时间而变化。为了适应图的动态性,需要新的图卷积。虽然stgnn可以部分解决图的动态性问题,但很少有人考虑如何在动态空间关系的情况下执行图卷积。
X 总结
在本文中,我们对图神经网络进行了全面的概述。我们提供了一种分类法,将图神经网络分为四类:循环图神经网络,卷积图神经网络,图自编码器和时空图神经网络。我们提供了一个彻底的审查,比较和总结的方法内或之间的类别。然后介绍了图神经网络的广泛应用。
总结了图神经网络的数据集、开源代码和模型评估。最后,我们提出了图神经网络的四个未来发展方向。