【论文笔记】Simple and Deep Graph Convolutional Networks

本文提出了一种新的GCN方法——GCNII,一种结合了初始残差(Initial residual)和恒等映射(Identity mapping)的普通GCN扩展模型,并证明了这两种技术有效的解决了过平滑的问题。

 

概要

GCNs是一种基于图结构的十分有用的深度学习方法。近年来,GCNs和它的变体在很多领域都取得了很好的成果。但是现有的GCNs方法大多都是浅层的,由于过平滑问题。在本文中,我们分析了GCNs网络设计的问题。我们提出了GCNⅡ,一种含有初始残差和恒等映射简单且有效方法的GCN变体,我们证明了GCNⅡ有效得解决了过平滑问题。

 

1. 介绍

GCNs相当于把CNNs应用于图结构的数据任务中。为了学习图表示,图卷积给所有的节点应用相同的线性变换,随后跟着一个非线性函数。进几年,GCNs和它的变体成功在很多地方都有成功应用。

虽然GCNs取得了很大的成功,但是大多数的GCN网路还是比较浅层的。最近的大多数模型,例如GCN和GAT,只用了两层就达到了最好的模型效果。如此浅层的模型限制了它们从高阶邻居中获取信息。然而,堆叠过多的层数和非线性变换会降低模型的表现。这种现象叫过平滑,具体来说就是随着层数的增加节点的表示会倾向于收敛到某个具体的值因此不可区分。ResNet在计算机视觉上使用残差连接解决了类似的问题,它在训练深层网络时是十分有效的。但是,把残差连接应用在GCNs只是缓解了过平滑的问题,最后的表现最好的模型仍然是GCN或GAT的两层模型。

过去有很多方法来尝试解决过平滑的问题:JKNet使用密集的跳跃连接来保持节点表示的局部性。DropEdge随机抛弃图中的一些边,缓解了过平滑问题。这两种方法能缓解随着层数增加模型表现下降的问题。但是对于半监督学习任务,最后的模型仍然使浅层的,层数增加给模型带来的好处仍然保持怀疑。

还有多种方法将深传播与浅层神经网络相结合:SGC在一层使用k阶平滑矩阵来捕获高阶信息。PPNP和APPNP使用个性化PageRank矩阵代替图卷积矩阵解决过平滑问题。GGDC(Klicperaet al.,2019b)通过将个性化PageRank(Page et al.,1999)推广到任意的图扩散过程,进一步扩展了APPNP。然而,这些方法在每一层使用线性聚合函数聚合邻居特征,失去了深层非线性结构的强大表达能力,这意味着它们仍然使浅层模型。

总之,如何设计一个真正深层的GCNs模型(没有过平滑并且有效)仍然是一个巨大的问题。在本文中,我们证明了普通GCN能通过两个简单且有效的改进(初始残差、恒等映射)扩展成到深层模型。初层残差从输入层构造了一个跳跃连接,恒等映射添加单位矩阵到权重矩阵中。我们证明了两个简单的技术解决了过平滑问题并且可以通过增加层数不断提高模型性能。GCNⅡ在多种半监督学习和全监督学习中取得了最好的模型效果。

其次,我们提供了GCNII模型的理论证明。通过堆叠k层,普通GCN本质上模拟了具有预定系数的k阶的多项式滤波器。wang指出这样一个滤波器模拟了一种懒惰的随机游走并且最终聚合到一种稳定的向量,所以导致了过平滑。从另一方面,我们证明了k层的GCNII模型能表达一个带着任意系数的多项式谱滤波器。这一性质对于设计深度神经网络至关重要。我们还导出了平稳向量的闭式并且对普通GCN进行了收敛速度分析。发现在一个多层的GCN模型中有高度数的节点更有可能过平滑。

2.准备工作

G=(V,E)表示n个节点m条边。\tilde{G}=(V,\tilde{E})表示添加了自循环的图。d_{j}d_{j}+1分别表示节点j的度(G\tilde{G}中)。A表示邻接矩阵而D表示对角度矩阵。\tilde{A}=A+I\tilde{D}=D+IX\in R^{n*d}表示节点的特征表示。单个节点v的特征表示为X_{v}。归一化的拉普拉斯矩阵为L=I_{n}-D^{-1/2}AD^{-1/2},这是个带着自分解(U\Lambda U^{T})的半正定矩阵。\Lambda是L的特征值组成的对角矩阵。U\in R^{n*n}是一个由L特征向量组成的酉矩阵。x为信号向量,卷积核定义为g_{\gamma }(L)*x=Ug_{\gamma }(\Lambda )U^{T}x,参数\gamma \in R^{n}对应一个光谱滤波向量。

普通GCN

普通GCN表示卷积可以进一步近似于一个K阶的拉普拉斯多项式:

\Theta \in R^{K+1}对应于一个多项式系数向量。普通GCN设置K=1,\theta _{0}=2\theta\theta _{1}=-\theta得到卷积操作g_{\theta }*x=\theta (I+D^{-1/2}AD^{-1/2})x。最后,通过重整化技巧(the renormalization trick),通过\tilde{P}=\tilde{D}^{-1/2}\tilde{A}\tilde{D}^{-1/2}=(D+I_{n})^{-1/2}(A+I_{n})(D+I_{n})^{-1/2}替换了I+D^{-1/2}AD^{-1/2},最终得到了图卷积层:

\sigma表示ReLU操作。

SGC文中表示通过堆叠K层,GCN相当于一个在\tilde{G}的图频域的固定K阶多项式滤波器。特别地,使用\tilde{L}=I_{n}-\tilde{D}^{-1/2}\tilde{A}\tilde{D}^{-1/2}表示自连接图\tilde{G}的归一化的拉普拉斯矩阵。因此,对一个信号x使用k层GCN相当于(\tilde{D}^{-1/2}\tilde{A}\tilde{D}^{-1/2})^{K}x=(I_{n}-\tilde{L})^{k}x。wu证明了,通过给图添加自连接,\tilde{L}有效地缩小了底层图谱。

APPNP

Kllicpera使用个性化PageRank代表K阶固定滤波器。f_{\theta }(X)表示在特征矩阵X上的两层全连接神经网络的输出。PPNP表示为:

由于Personalized PageRank的优点,这个滤波器保存了局部性因此很适合于节点分类。

APPNP使用由截断幂迭代导出的近似值代替了\alpha (I_{n}-(1-\alpha )\tilde{A})^{-1},最后,带着K阶邻居的APPNP表示为:

 

通过解耦特征变换和传播,PPNP和APPNP能从高阶邻居中聚集信息而不需要增加神经网络的层数。

JKNet

JKNet会在最后结合所有层的表示来学习表示。不同的层代表了不同阶的信息。JKNet缓解了过平滑问题。

DropEdge

它随机丢弃了一些边,\tilde{P}_{drop}表示丢弃了一些边的重整化图卷积矩阵:

 

3.GCNII模型

 

我们定义l层的GCNII为:

\alpha _{l}\beta _{l}是两个超参数。

\tilde{P}=\tilde{D}^{-1/2}\tilde{A}\tilde{D}^{-1/2}结合了重整化技巧的图卷积矩阵。

相比于GCN模型,我们做了两个修改:

1.我们结合了平滑特征\tilde{P}H^{(l)}和初始残差连接到H^{(0)}

2.我们添加了一个自连接矩阵I_{n}到第l层的权重矩阵W^{(l)}

初始残差连接:

在ResNet中的残差连接时结合\tilde{P}H^{(l)}H^{(l)},但是这种方法只能缓解过平滑的问题。随着模型层数的增加表现仍然会降低。

我们提出了使用初始表示层H^{(0)}的残差,这样能保证即使堆叠了多层我们最后的表示仍然能有一部分(\alpha _{l})来自初始层。在实际中,我们设置\alpha _{l}为0.1或者0.2所以最后一层的节点表示至少有小一部分是从输入特征中来的。并且H^{(0)}不一定要是特征矩阵X。如果特征的维度d很大,我们可以使用一个全连接神经网络在X上来获取X的低维向量表示H^{(0)}

最后,APPNP使用了同样了初始残差网络,但是多层的非线性变换也会导致过平滑,因此,APPNP在不同层之间使用线性变换,仍然使一个浅层模型。说明只使用初始残差不足以使GCN扩展到一个深层模型。

恒等映射:

为了修复APPNP的缺点,我们从ResNet带来了恒等映射想法。在第l层,我们添加自连接矩阵到权重矩阵W^{(l)}中。我们总结了我们这样做的动机:

1.和ResNet一样,添加同一映射保证了GCNⅡ至少会和GCN的浅层模型一样的性能。尤其使,当\beta _{l}足够小,深层的GCNⅡ忽略了权重矩阵W^{(l)},并且最终与APPNP一样。

2.不同维度的特征矩阵频繁交互会降低半监督学习任务的性能。将平滑表示\tilde{P}H^{(l)}值直接映射到输出可以减少这种交互作用。

3.恒等映射在半监督学习中被证明是非常有效的。这被展示在线性ResNet中。

H^{(l+1)}=H^{(l)}(W^{(l)}+I_{n})满足以下特性:1)最优的权重矩阵W^{(l)}有更小的范数   2)唯一的临界点是全局最小值

第一点允许我们时使用大的正则化在W^{(l)}中来防止过拟合,第二点当训练数据小时是有价值的

4.Oono理论证明了第k层的节点特征会归一到同一表示,并且会导致信息丢失。聚合速度取决于s^{k}s是权重矩阵W^{(l)}的最大奇异值,通过把W^{(l)}替换成(1-\beta _{l})I_{n}+\beta _{l}W^{(l)},并且在W^{(l)}上实施正则化,我们强迫的W^{(l)}范数是小的。(1-\beta _{l})I_{n}+\beta _{l}W^{(l)}会很接近1,因此最大奇异值s也会接近1。这意味这s^{k}很大,信息丢失就会减少。

\beta _{l}的设置原则是保证权重矩阵适应性的随着层数的增加而衰退。在实际中,我们设置(\lambda是超参数):

与迭代收缩阈值法的联系

近年来,有很多工作在基于优化的网络结构设计上。基本思想使全连接神经网络可以看成一种迭代优化算法来最小化一些函数,这是基于更好的优化算法可能导致更好的网络结构。在数值优化算法中的理论可能会激励更好的设计和更多可解释的网络结构。在我们结构中的恒等映射也被次激励。我们考虑LASSO:

类似于压缩感测,我们把x当作我们要恢复的信号,B是测量矩阵,y是我们观测到的节点特征。在我们的设置中,y是节点的原始特征,x是需要在网咯中学习的节点嵌入。与标准的回归模型不同,B是需要通过回馈不断学习的矩阵。所以,这和稀疏编码问题是一样的,它被广泛用于设计和解释CNN中。迭代收缩阈值算法对解决上述优化问题是十分有效的,第(t+1)次更新为:

这里u_{t}是步大小,P_{\beta }()(\beta >0)是入口软阈值函数:

现在,如果我们使用W重整化参数-B^{T}B,上述更新公式就和我们使用的非常像了。更有针对性,我们使用x^{t+1}=P_{u_{t}\lambda }((I+u_{t}W)x^{t}+u_{t}B^{T}y),这里u_{t}B^{T}y表示初始残差连接,I+u_{t}W对应我们模型的恒等映射。软阈值算子相当于我们模型的非线性激活函数,相当于ReLU激活函数的作用。

总之,我们的模型,尤其是恒等映射,是由求解套索问题的迭代收缩阈值算法中得到启发的。

 

4.频域分析

4.1多层GCN的频域分析

考虑了残差连接的GCN模型:

\tilde{P}=\tilde{D}^{-1/2}\tilde{A}\tilde{D}^{-1/2}=(D+I_{n})^{-1/2}(A+I_{n})(D+I_{n})^{-1/2}是使用了重整化技巧的图卷积矩阵。有人证明等式6相当于懒惰的随机游走带着转移矩阵,这懒惰的随机游走最后聚合到一个静止状态因此导致了过平滑。我们现在走进这个静止状态并且分析聚合速度。我们理论表明单个节点的聚合速度与节点的度有关,并且我们实验证明了这个发现。

定理1

假设连接了自己,表示对图信号x使用了k层带着残差连接的重整化图卷积操作,\lambda _{\tilde{G}}表示自连接图的\tilde{G}的光谱间隙,就是\tilde{L}=I_{n}-\tilde{D}^{-1/2}\tilde{A}\tilde{D}^{-1/2}

我们有以下结论

1)随着K趋向无穷,h^{(K)}趋向于\pi =\frac{<\tilde{D}^{1/2}1,x>}{2m+n}*\tilde{D}^{1/2}11表示全1向量

2)聚合速度定义为:

 

mn表示原始图G的节点个数和边的个数。我们使用+-来表示对于每一个h^{K}(j)\pi (j)j=1,....,n

定理1有两个结果:

1)它表示第k层GCN的表示h^{(K)}会会聚到一个向量\pi =\frac{<\tilde{D}^{1/2}1,x>}{2m+n}*\tilde{D}^{1/2}1。这样的汇聚导致了过平滑,因为向量\pi只包含两部分信息:每个节点的度,和初始信号的x和向量D^{1/2}1的内积。

 

收敛速度和节点度

等式7表明会聚速度与特征条目的总和\sum _{i=1}^{n}x_{i}、光谱间隙\lambda _{\tilde{G}}有关。若我们对单个节点的相对收敛速度近距离观测,我们能表示最后表示h^{(K)}(j)为:

这表明如果一个节点j有一个很高的度d_{j},它的表示h^{(K)}(j)会比静止状态\pi (j)会聚得更快。更具次,我们得出以下猜想:

猜想1:度数越高的节点越容易受到过度平滑的影响。

 

4.2GCNII的频域分析

我们从频域角度考虑带自循环的图\tilde{G}。图信号x的k阶多项式滤波器定义为:(\sum _{l=0}^{K}\theta _{l}\tilde{L}^{l})x\tilde{L}是图\tilde{G}的归一化拉普拉斯矩阵,并且\theta _{k}是多项式系数。wu证明了k层的GCN相当于带着固定系数\theta的k阶多项式。我们之后将会证明,固定的系数将会限制GCN的模型表现并导致过平滑。另一方面,我们证明了一个K层的GCNⅡ模型可以表示为带着任意系数的K阶多项式。

定理2:考虑带自环的图\tilde{G}和图信号x。一个k层的GCNⅡ可以表示为一个带着任意系数\theta的k阶多项式(\sum _{l=0}^{K}\theta _{l}\tilde{L}^{l})x

凭直觉,参数\beta允许GCNⅡ模拟多项式滤波器的系数\theta _{l}

表现力和过度平滑

使用带着任意系数的k阶多项式表达的本质是防止过平滑。为什么会这样,回顾定理1表明一个k层的普通GCN近似一个带着固定系数的k阶多项式滤波器\tilde{P}^{K}x\tilde{P}是重整化图卷积矩阵。过平滑是由于\tilde{P}^{K}x会聚到一个分布从而与输入特性x无关,因此引发梯度消失。DropEdge缓解了会聚的速率,但是随着K增加到无穷最后也没有用。

另一方面,定理二表明深层的GCNⅡ会聚到一个分布,这个分布携带了输入特征和图结构。凭此属性可确保GCNII不会遭受过度平滑的影响,即使层数变为无穷。更准确的说,定理二说明了K层的GCNⅡ能表示为h^{(K)}=(\sum _{l=0}^{K}\theta _{l}\tilde{L}^{l})x带着任意系数{\theta }'。正确的选择系数{\theta }'h^{K}能同时携带着输入特征和图结构即使K趋向于无穷。例如APPNP和GDC设置{\theta }'_{i}=\alpha (a-\alpha )^{i}对于某些常数0<\alpha <1,随着K趋向于无穷,h^{(K)}=(\sum _{l=0}^{K}\theta _{l}\tilde{L}^{l})x会汇聚到向量x的个性化PageRank,这是由邻接矩阵\tilde{A}和输入特征x的一个方程。在GCNⅡ和APPNP/GDC之间的差别有:1.模型中的向量\theta是从输入特征和标签学习得来的。2.我们在每一层使用了激活函数Relu

5.其他相关工作

基于频域的GCN网络在近几年来非常火爆

6.实验

 

 

 

7.结论

我们提出了GCNII,一种简单并且深层的GCN模型来阻止过度平滑通过初始残差和同一映射。理论分析表明,该滤波器可以用任意系数的K阶的多项式来表示。对于多层的普通GCN模型,我们理论证明了高度数的节点更容易受到过平滑的。实验证明了深层GCNII达到了新的最好状态在很多半监督和全监督学习任务中。未来工作的有趣方向是结合attention机制并且分析GCNII与relu操作结合。

 

 

 

 

 

 

 

### Simple and Deep Graph Convolutional Networks (SD-GCN) #### 背景介绍 图卷积网络(Graph Convolutional Networks, GCNs)作为一种强大的深度学习工具,在处理图结构数据方面表现优异。然而,传统的GCN模型由于过度平滑的问题,通常局限于较浅的网络架构[^5]。为了克服这一局限性并充分利用深度网络的强大表示能力,研究人员提出了多种改进方案。 其中一种重要的扩展是 **Simple and Deep Graph Convolutional Networks (SD-GCN)** 的设计思路,它引入了初始残差(Initial Residual)和恒等映射(Identity Mapping),从而有效解决了过平滑问题,并实现了更深层次的网络结构[^1]。 --- #### 工作原理 ##### 初始残差(Initial Residual) 初始残差的核心思想是在每层的输入中加入原始节点特征 \( X \) 。这种机制可以看作是对传统残差连接的一种增强形式: \[ H^{(l)} = f(H^{(l-1)}, A) + \alpha_l X, \] 其中: - \( H^{(l)} \) 表示第 \( l \)-th 层的隐藏状态; - \( f(\cdot,\cdot) \) 是基于邻接矩阵 \( A \) 的传播函数; - \( \alpha_l \) 是可学习参数,控制原始特征的影响程度。 通过这种方式,即使在网络层数增加时,原始特征仍然能够被保留下来,从而减轻了因多层传播而导致的信息损失或同质化现象。 ##### 恒等映射(Identity Mapping) 除了利用初始残差外,SD-GCN 还采用了跳跃连接的形式——即直接将前几层的结果传递给后续层作为附加输入之一。具体而言, \[ H^{(l)} = f(H^{(l-1)}, A) + \beta_l H^{(k)}, \] 这里 \( k<l \),\( \beta_l \) 同样是一个待优化系数向量。这种方法不仅有助于梯度流动更加顺畅,而且进一步增强了整个体系捕捉复杂模式的能力。 上述两项关键技术共同作用下,使得所构建出来的深层GCN具备更强表达力的同时也保持良好泛化性能。 --- #### 实现细节 以下是基于PyTorch框架的一个简化版 SD-GCN 示例代码片段: ```python import torch import torch.nn as nn import torch.nn.functional as F class GCNIILayer(nn.Module): def __init__(self, input_dim, output_dim, alpha=0.1, beta=0.1): super(GCNIILayer, self).__init__() self.linear = nn.Linear(input_dim, output_dim) self.alpha = alpha self.beta = beta def forward(self, x, adj_matrix, initial_x=None, prev_h=None): h = F.relu(torch.spmm(adj_matrix, self.linear(x))) if initial_x is not None: h += self.alpha * initial_x if prev_h is not None: h += self.beta * prev_h return h class SDCNNModel(nn.Module): def __init__(self, num_layers, input_dim, hidden_dim, output_dim, dropout_rate=0.5): super(SDCNNModel, self).__init__() layers = [] for i in range(num_layers): dim_in = input_dim if i == 0 else hidden_dim dim_out = output_dim if i == num_layers - 1 else hidden_dim layer = GCNIILayer(dim_in, dim_out) layers.append(layer) self.layers = nn.Sequential(*layers) self.dropout = nn.Dropout(dropout_rate) def forward(self, features, adjacency_matrix): init_features = features.clone() out = features residuals = [] for idx, gcn_layer in enumerate(self.layers): res_input = residuals[idx//2] if idx >=2 else None out = gcn_layer(out, adjacency_matrix, init_features, res_input) out = self.dropout(out) residuals.append(out) return out ``` 此段程序定义了一个基本版本的SDCNN模块,包含了多个`GCNIILayer`实例以及必要的dropout操作以提高鲁棒性和防止过拟合等问题发生。 --- #### 应用场景与优势对比 相比其他类型的GNN模型如u-net风格架构【^2】或者单纯依赖于线性变换的传统方法【^3】,采用SD-GCN策略具有如下几个显著优点: 1. 更加灵活可控:允许用户自定义不同层次间相互关系权重比例。 2. 显著提升效果:实验证明其能够在多项分类预测任务上取得超越现有SOTA水平的表现【^4】。 3. 广泛适用范围:无论是半监督还是完全标注的数据集均能展现出色适应能力和稳定性【^5】。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值