图神经网络（GNN）总结

30 篇文章 4 订阅

1 简单的图的参数介绍

G = ( V , E , A ) \mathcal { G } = ( V , E , A )

• V(N个)是节点集合, 只描述了存在的节点
• E是边集合, 只描述了存在的连接(边)
• A(NxN)是图的邻接矩阵, 描述了节点之间的连接关系, 当对应的边eij(连接vi,vj的边)存在的时候, 则对应的Aij = wij> 0, 若eij不存在, 则Aij = 0
• D(NxN)是图的度矩阵, 描述了节点自身连接的边的数目, 是对角矩阵, D i i = ( ∑ A i ) D_{ii} = ( \sum A_i) 度矩阵和邻接矩阵的关系可以参考这里
• X(NxF)是节点属性矩阵, 每个节点对应拥有一个长为F的属性向量, L = D − A , L n = I n − D − 1 / 2 A D − 1 / 2 L=D-A, L_n=I_n-D^{-1/2}AD^{-1/2} ,图可以用节点属性来关联
• L(NxN)是图的拉普拉斯矩阵, 归一化的拉普拉斯矩阵是图的一个鲁棒的数学表示.
归一化图拉普拉斯矩阵具有实对称半正定的性质,也就是可以进行特征分解得到特征值和特征向量.

2 图神经网络分类

• graph convolution networks
• graph attention networks
• graph auto-encoders
• graph generative networks（图生成网络）
• graph spatial-temporal networks（图时空网络）

3 GCN: 由谱方法到空域方法

Inspired by the huge success of convolutional networks in the computer vision domain, a large number of methods that re-define the notation of convolutionfor graph data have emerged recently.

These approaches are under the umbrella of graph convolutional networks (GCNs). The first prominent research on GCNs is presented in Bruna et al. (2013), which develops a variant of graph convolution based on spectral graph theory [20]. Since that time, there have been increasing improvements, extensions, and approximations on spectral-based graph convolutional networks [12], [14],[21], [22], [23].

As spectral methods usually handle the whole graph simultaneously and are difficult to parallel or scale to large graphs, spatial-based graph convolutional networks have rapidly developed recently [24], [25], [26],[27]. These methods directly perform the convolution in the graph domain by aggregating the neighbor nodes’ information. Together with sampling strategies, the computation can be performed in a batch of nodes instead of the whole graph[24], [27], which has the potential to improve the efficiency.

3.2 GCN的输出机制

1. 节点级输出与节点回归和分类任务相关. 图卷积模块直接给出节点潜在的表达, 多层感知机或者softmax层被用作最终的GCN层.
2. 边级输出与边分类和连接预测任务相关. 为了预测边的标记和连接强度, 一个附加函数将会把来自图卷积模块的两个节点的潜在表达作为输入.
3. 图级输出与图分类任务有关. 为了获取一个图级的紧凑表达, 池化模块被用来粗化图到子图, 或用来加和/平均节点表达.

3.3 GCN的不同方法

• 谱方法通过从图信号处理的视角引入滤波器来定义图卷积, 这里图卷积操作被解释为移除图信号中的噪声
• 空域方法将图卷积表达为从邻域中集成特征信息的过程.
• 当GCN在节点等级上操作的时候, 图池化模块, 可以超入到GCN层中, 来粗化图到高级的子图.这样一个结构被用来提取图级表达和处理图分类任务.
3.3.1 基于谱方法的GCN

3.3.1.1 初始

X : , j k + 1 = σ ( ∑ i = 1 f k − 1 U Θ i , j k U T X s , i k ) ( j = 1 , 2 , ⋯ &ThinSpace; , f k ) \mathbf { X } _ { : , j } ^ { k + 1 } = \sigma \left( \sum _ { i = 1 } ^ { f _ { k - 1 } } \mathbf { U } \Theta _ { i , j } ^ { k } \mathbf { U } ^ { T } \mathbf { X } _ { \mathbf { s } , i } ^ { k } \right) \quad \left( j = 1,2 , \cdots , f _ { k } \right)

3.3.1.2 切比雪夫K阶截断: ChebNet

g θ = ∑ i = 1 K θ i T k ( Λ ~ ) \mathbf { g } _ { \theta } = \sum _ { i = 1 } ^ { K } \theta _ { i } T _ { k } ( \tilde { \boldsymbol { \Lambda } } ) ,where Λ ~ = 2 Λ / λ max ⁡ − I N \tilde { \boldsymbol { \Lambda } } = 2 \Lambda / \lambda _ { \max } - \mathbf { I } _ { \mathrm { N } }
Chebyshev polynomials are defined recursively by T k ( x ) = 2 x T k − 1 ( x ) − T k − 2 ( x ) T _ { k } ( x ) = 2 x T _ { k - 1 } ( x ) - T _ { k - 2 } ( x ) with T 0 ( x ) = 1 T _ { 0 } ( x ) = 1 and T 1 ( x ) = x T _ { 1 } ( x ) = x

x ∗ G g θ = U ( ∑ i = 1 K θ i T k ( Λ ~ ) ) U T x = ∑ i = 1 K θ i T i ( L ~ ) x  where  L ~ = 2 L / λ max ⁡ − I N \begin{aligned} \mathbf { x } * _ { G } \mathbf { g } _ { \theta } &amp; = \mathbf { U } \left( \sum _ { i = 1 } ^ { K } \theta _ { i } T _ { k } ( \tilde { \boldsymbol { \Lambda } } ) \right) \mathbf { U } ^ { T } \mathbf { x } \\ &amp; = \sum _ { i = 1 } ^ { K } \theta _ { i } T _ { i } ( \tilde { \mathbf { L } } ) \mathbf { x } \\ \text { where } \tilde { \mathbf { L } } = 2 \mathbf { L } / \lambda _ { \max } - \mathbf { I } _ { \mathrm { N } } \end{aligned}

3.3.1.3 一阶ChebNet

x ∗ G g θ = θ 0 x − θ 1 D − 1 2 A D − 1 2 x \mathbf { x } * _ { G } \mathbf { g } _ { \theta } = \theta _ { 0 } \mathbf { x } - \theta _ { 1 } \mathbf { D } ^ { - \frac { 1 } { 2 } } \mathbf { A } \mathbf { D } ^ { - \frac { 1 } { 2 } } \mathbf { x }

x ∗ G g θ = θ ( I n + D − 1 2 A D − 1 2 ) x \mathbf { x } * _ { G } \mathbf { g } _ { \theta } = \theta \left( \mathbf { I } _ { \mathbf { n } } + \mathbf { D } ^ { - \frac { 1 } { 2 } } \mathbf { A } \mathbf { D } ^ { - \frac { 1 } { 2 } } \right) \mathbf { x }

X k + 1 = A ~ X k Θ \mathbf { X } ^ { \mathbf { k } + \mathbf { 1 } } = \tilde { \mathbf { A } } \mathbf { X } ^ { \mathbf { k } } \Theta
where A ~ = I N + D − 1 2 A D − 1 2 \tilde { \mathbf { A } } = \mathbf { I } _ { \mathbf { N } } + \mathbf { D } ^ { - \frac { 1 } { 2 } } \mathbf { A } \mathbf { D } ^ { - \frac { 1 } { 2 } }

3.3.1.4 自适应图卷积网络AGCN

3.3.1.5 谱方法小结

• 首先，对图的任何扰动都会导致特征基的改变。
• 其次，学习的过滤器是域相关的，这意味着它们不能应用于具有不同结构的图。
• 第三，特征分解需要 O ( N 3 ) O(N^3) 的计算和 O ( N 2 ) O(N^2) 的内存。

3.3.2 基于空域方法GCN

3.3.2.1 基于递归的空间GCN(Recurrent-based Spatial GCNs)

h v t = f ( 1 v , 1 c o [ v ] , h n e t − 1 [ v ] , l n e [ v ] ) \mathbf { h } _ { v } ^ { t } = f \left( 1 _ { \mathbf { v } } , 1 _ { c o } [ v ] , \mathbf { h } _ { n e } ^ { t - 1 } [ v ] , \mathbf { l } _ { n e } [ v ] \right)

Jacobian矩阵是一阶偏导数以一定的方式排列成的矩阵.

GNN使用Almeida-Pineda算法来训练模型. 核心思想是通过运行传播过程到达固定点，然后给出收敛解的后向过程.

GGNN使用门控递归单元(GRU)作为递归函数, 来讲递归降低为一个固定的步数.

GGNN的空间图卷积定义为:

h v t = G R U ( h v t − 1 , ∑ u ∈ N ( v ) W h u t ) \mathbf { h } _ { v } ^ { t } = G R U \left( \mathbf { h } _ { v } ^ { t - 1 } , \sum _ { u \in N ( v ) } \mathbf { W h } _ { u } ^ { t } \right)

h v t = ( 1 − α ) h v t − 1 + α W 1 σ ( W 2 [ x v , ∑ u ∈ N ( v ) [ h u t − 1 , x u ] ] ) &ThickSpace; ( 10 ) \mathbf { h } _ { \mathbf { v } } ^ { t } = ( 1 - \alpha ) \mathbf { h } _ { \mathbf { v } } ^ { t - 1 } + \alpha \mathbf { W } _ { \mathbf { 1 } } \sigma \left( \mathbf { W } _ { 2 } \left[ \mathbf { x } _ { \mathbf { v } } , \sum _ { u \in N ( v ) } \left[ \mathbf { h } _ { \mathbf { u } } ^ { t - 1 } , \mathbf { x } _ { \mathbf { u } } \right] \right] \right) \; (10)

3.3.2.2 基于合成的空间GCN(Composition Based Spatial GCNs)

MPNN包含两个阶段, 消息传送阶段(message passing phase)和读出阶段(readout phase). 消息传送阶段实际上运行T步的空间图卷积. 图卷积操作通过消息函数 M t ( ) M_t() 和一个更新函数 U t ( ) U_t() 来定义:

h v t = U t ( h v t − 1 , ∑ w ∈ N ( v ) M t ( h v t − 1 , h w t − 1 , e v w ) ) \mathbf { h } _ { v } ^ { t } = \mathbf { U } _ { t } \left( \mathbf { h } _ { v } ^ { t - 1 } , \sum _ { w \in N ( v ) } M _ { t } \left( \mathbf { h } _ { v } ^ { t - 1 } , \mathbf { h } _ { w } ^ { t - 1 } , \mathbf { e } _ { v w } \right) \right)

y ^ = R ( h v T ∣ v ∈ G ) \hat { \mathbf { y } } = R \left( \mathbf { h } _ { v } ^ { T } | v \in G \right)

GraphSage

h v t = σ ( W t ⋅ a g g r e g a t e k ( h v t − 1 , { h u k − 1 , ∀ u ∈ N ( v ) } ) \mathbf { h } _ { v } ^ { t } = \sigma \left( \mathbf { W } ^ { t } \cdot aggregate _ { k } \left( \mathbf { h } _ { v } ^ { t - 1 } , \left\{ \mathbf { h } _ { u } ^ { k - 1 } , \forall u \in \mathcal { N } ( v ) \right\} \right)\right.

GraphSage并没有在所有节点上更新状态, 而是提出了一个批学习算法, 这个提升了对于大图的可扩展性. 其学习过程主要有三步:

• 首先，对节点的局部k跳邻域进行固定大小的采样
• 其次，它通过聚合中心节点的邻居特征信息来获得中心节点的最终状态。
• 最后，它使用中心节点的最终状态进行预测并反向传播错误

对于GraphSage而言, 计算损耗随着的阶段的增加, 而呈指数增长. 这导致该算法不能有太深的结构, 然而, 实际测试, 跳两步的GraphSage已经可以是实现很高的性能了.

3.3.2.3 空域GCN的其他变体

• 扩散卷积神经网络(DCNN)提出了一种图卷积网络，它封装了图的扩散过程。
• A hidden node representation is obtained by independently convolving inputs with power series of transition probability matrix.（通过将输入与转移概率矩阵的幂级数进行独立卷积，得到了一个隐藏节点表示。）
• Though covering a larger receptive field through higher orders of transition matrix, the DCNN model needs O(N2mH) memory, causing severe problems when applying it to large graphs.（DCNN模型虽然通过更高阶的转换矩阵覆盖了更大的接受域，但需要O(N2mH)内存，在应用于大图时存在严重的问题。）

PATCHY-SAN

• uses standard convolution neural network (CNN) to solve graph classification tasks. To do this, it converts graph-structured data into grid-structured data.（使用标准卷积神经网络(CNN)求解图的分类任务。为此，它将图形结构数据转换为网格结构数据。）
• Finally, after the grid-structured data with fixed-size is formed, PATCHY-SAN employed standard CNN to learn the graph hidden representations.（最后，在固定大小的网格结构数据形成后，PATCHY-SAN使用标准CNN学习图形隐藏表示。）
• Utilizing standard CNN in GCNs has the advantage of keeping shift-invariance, which relies on the sorting function.（在GCNs中使用标准CNN具有保持移位不变性的优点，它依赖于排序函数。）
• As a result, the ranking criteria in the node selection and ordering process is of paramount importance. In PATCHY-SAN, the ranking is based on graph labellings. However, graph labellings only take graph structures into consideration, ignoring node feature information.（因此，节点选择和排序过程中的排序标准至关重要。在PATCHY-SAN，排名是基于图表标签。然而，图标签只考虑图的结构，忽略了节点特征信息。）

• 在后续工作中，LGCN提出了一种基于节点特征信息的排序方法.
• Unlike PATCHY-SAN, LGCN uses standard CNN to generate node-level outputs.（与PATCHY-SAN不同，LGCN使用标准CNN生成节点级输出。）
• For each node, LGCN assembles a feature matrix of its neigborhood and sortes this feature matrix along each column. The first k rows of the sorted feature matrix are taken as the input grid-data for the target node.（对于每个节点，LGCN组装其邻近域的特征矩阵，并沿着每一列对该特征矩阵进行排序。将排序后的特征矩阵的前k行作为目标节点的输入网格数据。）
• 最后，LGCN将一维CNN应用于最终的输入，得到目标节点的隐藏表示.
• 虽然在Patchy-SAN中导出图标签需要复杂的预处理，但在LGCN中对特征值进行排序不需要预处理步骤，从而使其效率更高。
• 为了适应大规模图的情况，LGCN提出了一种子图训练策略，将采样的子图放入一个小批处理中.

• 将标准CNN与非欧几里得域上的卷积结构统一起来.
• 在融合邻域特征信息时，有几种基于空间的方法忽略了节点与邻域之间的相对位置，而MoNet引入了伪坐标和权函数，使得节点的邻域权重由节点与其邻域之间的相对位置(伪坐标)来确定.
• 在图上例如GCN, DCNN(扩散卷积神经网络)都可以被泛化为一个特殊MoNet的例子.
• However these approaches under the framework of MoNet have fixed weight functions. MoNet instead proposes a Gaussian kernel with learnable parameters to freely adjust the weight function.（但这些方法在MoNet框架下具有固定的权重函数。MoNet提出了一种参数可学习的高斯核函数来自由调整权函数。）

3.3.2.4 空域方法小结

4 图池化模块

Mean/max/sum池化是实现这一点的最原始和最有效的方法，因为在池化窗口中计算均值/最大/和值是快速的。

h G = m e a n / max ⁡ / sum ⁡ ( h 1 T , h 2 T , … , h n T ) \mathbf { h } _ { G } = m e a n / \max / \operatorname { sum } \left( \mathbf { h } _ { 1 } ^ { T } , \mathbf { h } _ { 2 } ^ { T } , \ldots , \mathbf { h } _ { n } ^ { T } \right)

• Henaff等人证明了在网络的开始加入一个简单的max/mean池化, 对于降低图的维度和减轻昂贵的图傅里叶变换操作的损耗是尤其重要的.

• 而Defferrard(ChebNet)等人, 进一步优化了max/min池化操作, 设计了一种有效的池化策略.

• 使用设计的粗化操作经过粗化后，将输入图及其粗化版本的顶点转化为一棵平衡的二叉树.
• 在最粗糙的层次上对节点进行任意排序，然后在平衡二叉树中将这种排序传播到较低的层次，最终在最精细的层次上产生一个规则的排序.
• 池化这样的重排的1D信号比原始的效率要高得多。
• SortPooling操作也被在架构DGCNN中提出, 也是进行了类似的重排操作, 将顶点重排到更有意义的顺序. 不同于ChebNet,这里是根据顶点图中的结构化的角色来进行的排序.

• 这个方法将来自空间图卷积的图的无序顶点特征看做一个连续的WL颜色, 并且用来对顶点排序.
• 除了对顶点特征进行排序外，它还通过截断/扩展图的特征张量将图的大小统一为k. 如果n>k，则删除最后的n-k行, 否则添加k-n零行.
• 该方法通过求解一个具有挑战性的底层图结构任务，即置换不变量，增强了池化网络以提高GCN的性能.
• DIFFPOOL池化模块, 可以生成图的层次表达,它不仅可以与CNN相结合，而且可以与各种(various)图型神经网络进行端到端的结合.

• 与以前的所有粗化方法相比，DIFFPOOL并不简单地将节点聚集在一个图中，而是为一组广泛的输入图的分层池节点提供了一个通用的解决方案.
• DIFFPOOL通过使用两个GNN对节点进行集群来重新定义图池模块. 任何标准的GCN模块都能够与DIFFPOOL相结合，不仅可以提高性能，而且可以加快卷积运算的速度.

5 谱方法与空域方法的比较

1. 在效率方面，基于谱的模型的计算代价随着图的大小而急剧增加，因为它们要么需要进行特征向量计算，要么需要同时处理整个图，这使得它们很难并行或扩展到大图.基于空间的模型具有处理大图的潜力，因为它们通过聚集相邻节点直接在图域中执行卷积。计算可以在一批节点上进行，而不是在整个图形中进行.当相邻节点数目增加时，可以发展采样技术以提高效率.
2. 在通用性方面，基于谱的模型假设一个固定的图，这使得它们不能很好地推广到新的或不同的图.另一方面，基于空间的模型在每个节点上局部执行图形卷积，其中的权重可以方便地在不同的位置和结构之间共享.
3. 在灵活性方面，基于谱的模型仅限于处理无向图.有向图上的Laplacian矩阵没有明确的定义，因此将基于谱的模型应用于有向图的唯一方法就是将有向图转换为无向图.基于空间的模型在处理多源输入(如边缘特征和边缘方向)方面更为灵活，因为这些输入可以合并到聚合函数中.

6 未来的方向

• The success of deep learning lies in deep neural architectures.（深度学习的成功在于深度神经结构。）
• However, when it comes to graphs, experimental studies have shown that with the increase in the number of layers, the model performance drops dramatically.（然而，当涉及到图形时，实验研究表明，随着层数的增加，模型性能急剧下降。）
• According to [Deeper insights into graph convolutional networks for semi-supervised learning], this is due to the effect of graph convolutions in that it essentially pushes representations of adjacent nodes closer to each other so that, in theory, with an infinite times of convolutions, all nodes’ representations will converge to a single point.（根据图的【深入理解半监督学习图卷积网络】,这是由于图形旋转的影响,它本质上推表示相邻节点互相接近,因此,从理论上讲,与无限旋转的时候,所有节点表示将收敛于一个点。）
• This raises the question of ** whether going deep is still a good strategy for learning graph-structured data**.（这就提出了一个问题:深入研究图表结构数据是否仍然是一种好的学习策略。）

• 节点的感受域是指包括中心节点及其邻居在内的一组节点. 节点的邻居数服从幂律分布.
某些节点可能只有一个邻居，而其他节点的邻居可能多达数千个.
• Though sampling strategies have been adopted, how to select a representative receptive field of a node remains to be explored.（虽然已经采用了抽样策略，但如何选择节点具有代表性的接受域仍有待探索。）

• 多数图神经网络不能适应于大图. 主要原因在于当多层图卷积堆叠时, 节点的最终状态涉及到了大量的相邻接点的隐含状态,导致了反向传播的高复杂性.
• 虽然有几种方法试图通过快速采样和子图训练来提高模型的效率, 但是它们的可扩展性仍然不足以处理具有大图的深度体系结构。

• 目前大多数的图神经网络都是用静态的同质图(homogeneous graph)来处理的. 一方面，图的结构被假定是固定的；另一方面，假设图中的节点和边来自单个源.
• 然而，这两个假设在许多情况下是不现实的. 在社交网络中，新的人可以随时进入网络，现有的人也可以退出网络.在推荐系统中，产品可能有不同的类型，其输入可能有不同的形式，如文本或图像. 因此，需要开发新的方法来处理动态的、异构的图(dynamic and heterogeneous graph)结构。

• permutation invariant: 置换不变量
• heterogeneous graph: 异构图
• homogeneous graph: 同构图

···································································································································································································································································································································································

https://blog.csdn.net/Frank_LJiang/article/details/94971055
https://blog.csdn.net/Frank_LJiang/article/details/95214027
https://blog.csdn.net/Frank_LJiang/article/details/94888011
https://www.cnblogs.com/lart ，尊重作者，致敬作者！

12-18 1102
03-11 1602
12-21 6132
11-16 1939
06-02 6181
03-26 2436
07-14 483
10-27 211
06-30 2616
04-29 129
02-26 30万+

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

• 非常没帮助
• 没帮助
• 一般
• 有帮助
• 非常有帮助

©️2022 CSDN 皮肤主题：技术黑板 设计师：CSDN官方博客

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