极市导读
本文介绍了一种新的图神经网络(GNN)训练框架——堆叠图神经网络(SGNN),它通过将多层GNN解耦为多个简单的GNN模块并同时训练,提高了训练效率并保持了合理的性能。SGNN框架包括前向训练(FT)和反向训练(BT),其中反向训练机制允许前层模块感知后层模块,从而优化训练过程。 >>加入极市CV技术交流群,走在计算机视觉的最前沿
论文链接:https://arxiv.org/pdf/2304.10126
摘要
图神经网络(GNN)由于节点依赖随着层数增加呈指数增长,导致严重的效率问题。这极大地限制了随机优化算法的应用,使得GNN的训练通常耗时较长。为了解决这个问题,我们提出了将多层GNN解耦为多个简单模块以实现更高效的训练,该框架包括经典的前向训练(FT)和设计的反向训练(BT)。在所提出的框架下,每个模块都可以在FT中通过随机算法高效地训练,而不会因简单性而扭曲图信息。为了避免FT中单向信息传递以及充分训练浅层模块与深层模块,我们开发了一种反向训练机制,使前层模块能够感知后层模块,灵感来自经典的反向传播算法。反向训练引入了解耦模块中的反向信息传递以及前向信息传递。为了研究解耦和贪婪训练如何影响表征能力,我们理论上证明了在线性模块中产生的误差在大多数情况下不会在无监督任务中累积。理论和实验结果表明,所提出的框架具有高效性并且性能合理,值得进一步研究。
关键词
反向训练
高效训练
图神经网络
I. 引言
近年来,由于其令人印象深刻的性能,神经网络[1]、[2]已扩展到图数据,被称为图神经网络(GNN)[3]。随着GNN显著提高了图任务的结果,它已从不同方面得到了广泛研究,例如图卷积网络(GCN)[4]、[5]、图注意力网络(GATs)[6]、[7]、时空GNN(STGNN)[8]、图自编码器[9]、[10]、图对比学习[11]等。
除了来自不同视角的变体之外,一个重要的议题是众所周知的GNN效率问题。在经典神经网络[2]中,优化通常基于随机算法进行,批量大小有限[12]、[13],因为样本彼此独立。然而,在[14]中定义的聚合类操作导致每个节点依赖于其邻居,并且一个节点的依赖节点数量随着层数的增长呈指数增长,导致批量大小意外增加。一些工作基于邻居采样[14]、[15]、[16]、[17]和图近似[18]提出以限制批量大小,而一些方法[19]、[20]尝试直接应用高阶图操作并牺牲大部分非线性。尽管VRGCN[16]试图通过改进采样来控制方差,但采样方法的训练稳定性仍然是一个问题。注意到所需的节点可能仍然会随着深度的增加而增长(缓慢)。Cluster-GCN[18]找到了一个具有许多连通分量的近似图,以便批量大小被严格上界限制。这些方法的主要挑战是采样期间的信息缺失。简化的方法[19]、[20]是高效的,但有限的非线性可能是这些方法的瓶颈。这些方法可能结合GIN[21]的思想来提高容量[20]。
为了在保留完整图结构的同时应用随机优化,我们提出了一个框架,即堆叠图神经网络(SGNN),它将多层GNN解耦为多个简单的GNN模块,然后同时训练它们,而不是随着深度的增加而连接它们。受反向传播算法的启发,我们发现堆叠网络[22]和经典网络之间的主要区别是没有从后层模块传递到前层的训练信息。缺乏反向信息传递可能是堆叠模型性能限制的主要原因。贡献总结如下:(1)我们相应地提出了一种反向训练策略,让前层模块接收来自最终损失和后层模块的信息,从而形成了一个循环训练框架,以控制偏差并正确训练浅层模块。(2)在这个框架下,多层GNN可以被解耦为多个简单的GNN,本文中称为可分离GNN,以便每个训练步骤都可以使用随机优化而不进行任何采样或对图的更改。因此,SGNN可以同时考虑非线性和高效率。(3)我们研究了解耦和贪婪训练如何影响线性SGNN的表征能力。证明了在大多数情况下,当最终目标是图重建时,线性模块中产生的误差不会累积。
II. 背景
图神经网络:在过去的几年中,图神经网络[4]、[5]、[6]、[21]、[23]、[24]越来越受到关注。GNN不仅应用于图任务[25](例如,推荐系统[26]),还应用于其他应用[27]、[28](例如,计算机视觉[29])。特别是,图卷积网络(GCN)[4]已成为重要的基线。通过引入自注意力技术[30],图注意力网络(GAT)[6]、[7]被提出并应用于其他应用[29]、[31]。正如[32]所声称的,GNN遭受过平滑问题的困扰,GALA[10]发展了图锐化,ResGCN[33]试图设计一个更深的架构。理论工作[32]、[34]、[35]对GNN的深度有不同的看法。一些工作[32]、[34]声称,随着层数的增加,GNN的表达能力会降低,而其他工作则认为[34]中的假设可能不成立,更深的GNN具有更强的表达能力[35]。此外,一些工作[21]、[36]通过展示Weisfeiler-Lehman测试[37]和GNN之间的联系来研究表达能力。然而,大多数人忽略了GNN的效率问题。
高效图神经网络:为了加速通过批量梯度下降对GNN的优化而不产生太大偏差,几种模型[14]、[15]、[16]、[17]提出根据图拓扑采样数据点。这些模型提出了不同的采样策略以获得稳定的结果。GraphSAGE[14]为每个节点生成了一个有限邻居的子图,而FastGCN[15]通过重要性采样为每层采样固定节点。在[16]中进一步控制了采样的方差。Cluster-GCN[18]旨在生成一个具有许多连通分量的近似图,以便每个分量可以作为每一步的批量使用。AnchorGAE[38]提出通过引入锚点将原始图转换为二分图来加速图操作,从而将复杂度降低到与现有模型[39]相比的O(n)。SGC[19]通过将中间层的所有激活函数设置为线性函数来简化GCN,SSGC[20]进一步改进了它。总之,本文提出的SGNN保留了非线性,不需要节点采样或子图采样。L2-GCN[40]试图将经典的堆叠自编码器的思想扩展到流行的GCN,而DGL-GNN[41]进一步开发了一个并行版本。它们都没有训练所有GNN模块,但SGNN首次提供了一个新颖的框架来像训练常规神经网络中的层一样训练它们。
与现有模型的联系:堆叠自编码器(SAE)[22]是应用于神经网络预训练的模型。它训练当前的两层自编码器[42],然后将中间层输出的潜在特征传递给下一个自编码器。该模型通常用作预训练模型而不是正式模型。MGAE[43]是SAE的扩展,其基本模块是图自编码器[9]。与所提出的模型相比,主要区别在于每个模块是否可以被来自正向和反向方向的模块感知。堆叠范式类似于经典的提升模型[44]、[45]、[46],而一些工作[47]、[48]也研究了神经网络的提升算法。近年来,一些提升GNN模型[49]、[50]也得到了发展。大多数提升算法(例如,[47]、[49])的目标是逐步学习预测函数,而所提出的SGNN的目标是逐步学习理想的嵌入。请注意,AdaGCN[50]也是逐步训练的,并且使用AdaBoost[44]结合特征。更重要的是,所有这些GNN的提升方法只进行前向训练,缺少反向训练。深度神经接口[51]提出了解耦神经网络以异步加速梯度计算。解耦是计算L层网络梯度的加速技巧,而本文提出的SGNN明确地将L层GNN分离为L个简单模块。换句话说,SGNN的最终目标不是优化L层GNN。
III. 提出的方法
受SAE[22]的启发,以及简化模型[19]、[20]对GNN的高效率,我们因此重新思考堆叠网络和多层GNN之间的实质区别。总之,我们试图回答本文中的以下两个问题:Q1: 如何将复杂的GNN解耦为多个简单的GNN并联合训练它们?Q2: 解耦如何影响表征能力和最终性能?我们将在本节讨论第一个问题,然后在第四部分详细阐述另一个问题。
预备知识
每个解耦的GNN模型被命名为一个模块, 为了简单起见, 第 个模块被表示为 。向量和矩阵分别用小写和大写粗体字母表示。 表示Frobenius范数。给定一个图, 让 为邻接矩阵, 为节点特征。一个典型的GNN层通常可以定义为:
其中 是投影系数, 是 的一个函数。当我们讨论每个单独的模块时,我们假设 以简化问题。例如, GCN [4] 定义 为
其中 是 的度矩阵。当多层集成时,由多层GNN学习到的表示可以写成:
其中 是层数。假设平均邻居数为 。要计算 , 每个样本将需要 额外的样本。如果深度很大且图是连通的,那么所有节点都必须参与计算一个节点。不受控制的批量大小导致训练耗时。在原始 GNN中, 计算复杂度是
在稀疏图上,其中 是迭代次数, 是 的维度。对于大规模数据集,时间和空间复杂度都过于昂贵。
堆叠图神经网络
尽管堆叠网络通常比多层网络有更多的参数,这通常表明堆叠网络可能更强大,但它们只作为预训练技术。具体来说,它们简单地传递当前网络学习的表示到下一个网络,但没有反馈传递回来。这导致后续模块和最终目标的不可见性。因此,由于前层模块的不可靠性,堆叠模型通常用作无监督预训练模型。
反思网络的学习过程,多层同时通过基于梯度的方法进行优化,其中梯度是通过众所周知的反向传播算法[52]计算的。该算法由前向传播(FP)和反向传播(BP)组成。FP计算BP所需的值,可以看作是信息传递过程。注意FP类似于堆叠网络的训练。具体来说,在堆叠网络中将当前模块的输出传递到下一个模块,类似于FP期间逐层计算神经元。受此启发,我们旨在设计一种类似BP的训练策略,即反向训练(BT),以便前层模块可以根据反馈进行调整。我们提出的堆叠图神经网络(SGNN)的核心思想如图1所示。
可分离性:效率的关键概念
在详细介绍SGNN之前,我们正式引入关键概念和通过SGNN加速GNN的核心动机。
定义3.1:如果一个GNN模型可以被表述为
那么它是一个可分离的GNN。如果它可以进一步被表述为
那么它是一个完全可分离的GNN。
为了保持简单,定义可分离GNN的集合为
(公式3),和完全可分离GNN的集合为
(公式4)。
注意,大多数单层GNN模型是可分离的。例如,SGC[19]是完全可分离的,其中
和
而单层GIN [3]是可分离的但不是完全可分离的,因为
通常成立。JKNet [53]由一层组成也是可分离的但不是完全可分离的。然而,单层GAT [6]不是可分离的,因为图操作与相关。
可分离属性实际上将GNN模型分解为两部分,图操作 和神经操作 。由于GNN中的所有节点依赖都是由图操作引起的,人们可以一次性计算
(像预处理),然后GNN被转换为典型的网络。在计算之后,图中包含的信息已经传递到中,后续的采样不会影响图的拓扑结构。因此,我们可以获得一个通过SGD优化的高效GNN模型,前提是每个模块都是可分离的。另一方面,完全可分离条件对于反向训练传递多个模块的信息至关重要。由于大多数单层GNN是可分离的但不是完全可分离的,我们展示了如何修改可分离GNN以引入完全可分离性。
然后,我们通过展示如何处理Q1来正式阐明SGNN的核心思想。
前向训练(FT):第一个挑战是如何为每个模块 设置训练目标。这对于将SGNN应用于监督和无监督场景至关重要。假设我们有一个可分离的GNN模块 并且让
成为可分离GNN模块学习的特征。对于无监督情况,如果 是GAE,则FT的损失被制定为
其中 表示度量函数, 是一个映射函数。例如,[9]中引入的简单损失是
其中 是sigmoid函数,KL 是Kullback-Leibler散度。其他选项包括但不限于对称内容重建 [10]和图对比学习[11]。对于有监督信息的模块,引入了一个投影矩阵 将 k 维嵌入向量映射到具有 个类别的软标签。对于节点分类, 损失可以简单地设置为
其中 是监督任务的监督信息。注意,上述损失等同于如果 是常数的经典softmax回归。损失也可以是链接预测、图分类等。尽管基础模块可以使用不同的损失,但为了简单起见,本文中我们只讨论所有模块使用相同类型损失的情况。
反向训练(BT):第二个挑战是如何同时训练多个可分离的GNN以确保性能。简而言之,由于前向传播(FP)和反向传播(BP)的信息传递,经典多层神经网络的所有层的梯度被精确计算。BP通过反馈让浅层感知深层。在SGNN中,尾部模块在FT中对头部模块是不可见的。我们因此设计了反向训练(BT)来实现信息的反向传递。具体来说,对于一个可分离的GNN层作为SGNN中的一个模块:
其中 , 我们的目标是调整其输入, 以便前一个模块可以知道当前模块需要什么样的表示。然而, 不是可学习参数。一个直接的方案是使用一个变换( 来调整模块的输入:
其中 是一个可学习的方阵, 是一个非参数函数。显然, 可以被视为一个参数化的GNN。为了保持由于 导致的高效率,我们进一步限制修改后的 为一个完全可分离的GNN, 即:
其中 。注意,如果 被固定为单位矩阵(或其它常数矩阵),那么修改后的层等同于原始的可分离GNN。总结起来,通过引入完全可分离性,我们将可分离GNN层 进行了修改,如下所示:
其中 表示一个函数,从 映射到 。记 并且 是期望的特征。具体来说,让 成为在 的反向训练中学习到的期望特征,并且它作为 从 的期望输入。在前向训练中,信息的传递基于学习到的特征 ,而 在反向训练中扮演类似的角色。反向训练的损失试图缩小 的输出特征 和 的期望输入 之间的差异:
在反向训练之后, 导致 的最终损失 被更新为:
其中 是控制 和 之间权衡的系数。 在第一次前向训练之后被激活, 并在每次反向训练中更新。引入 不会限制随机优化的应用,因为期望的特征也可以在每次迭代中进行采样,没有任何限制。该过程总结在算法1中。
值得注意的是, 在 FT 期间, 保持为单位矩阵。这种设置导致每个前向计算跨越 L 个基础模块等同于前向传播L层GNN。换句话说,具有L个模块的SGNN可以被视为L层GNN的一个分解。有人可能会担心为什么不在FT中一起学习 和 。在这种情况下, 我们更倾向于仅使用 来学习 的期望特征,而从FT中共同学习 可能带来的能力提升也可以通过 实现,这等同于使用 GIN [21] 作为基础模块。
复杂度分析
由于每个基础模块被假设为一个可分离的GNN, 的FT和BT可以分为两个步骤:图操作的预处理步骤和参数学习的训练步骤。记 的输出维度为 , 原始内容特征的维度为 。预处理计算 需要 的成本。假设每个模块训练 次迭代, 批量大小设为 。那么训练步骤的计算成本为 。注意, 这里只考虑了GNN映射的计算, 忽略了损失函数的计算。总体上, 具有L个模块的SGNN的计算复杂度大约为:
需要强调的是, 每个epoch期间图仅使用一次, 且图上没有进行采样处理, 因此图结构被完全保留, 这在现有的快速 GNN中是不可用的。 的系数仅为 。空间复杂度仅为 。因此, 图规模的增长不会影响SGNN的效率。由于其高效性, SGNN的大多数实验可以在配备NVIDIA 1660 ( 6 GB )和16 GB RAM的PC上进行。为了更好地阐明所提出的SGNN的优势, 我们在表|中总结了不同高效GNN的特点。
IV. 理论分析
为了回答在第三节开头提出的Q2问题, 我们在这一部分讨论解耦的影响。直观上讲, 如果一个L层 GNN取得了令人满意的结果,那么存在一组 使得具有L个模块的SGNN也能取得相同的结果。然而,每个 是按照前向训练损失 贪婪地训练的,而多层GNN的中间层是按照相同的目标训练的。主要的担忧是贪婪策略学习到的嵌入是否会导致前向训练中不可逆的偏差。
在这一部分, 我们研究了特定SGNN的影响, 该SGNN由定义在(5)中的无监督模块组成。结论并不明显, 因为简单地将 设置为单位矩阵并不能证明对GNN的适用性, 因为存在 。注意, 一个基本前提是前一个模块已经取得了合理的结果。
给定一个线性可分离 GNN 模块 , 定义为 , 假设前向训练使用重建误差 作为 。我们首先引入矩阵角的概念,以更好地理解定理4.1的条件是否可行。
定义4.1:给定两个矩阵 , 我们定义矩阵角为 。
在详细介绍定理之前,我们引入以下假设,将讨论分为两种情况。
假设4.1: 与 不共享相同的特征空间。
注意, 上述假设是弱的, 并且在大多数情况下经常成立。对于简单起见, 设 为与 个最大特征值相关联的特征向量。在此假设下, 我们发现 的误差被上界 所限制。
定理4.1:定理4.1:设 且 , 其中 , 。在假设4.1下, 如果 且 , 其中 是 的第 个最大奇异值, 则存在 使得 。换句话说, 如果 足够小, 那么 可能是比 更好的近似。
特别地, 如果 或 , 则 , 所以 成立。从上述定理, 我们声称如果输入 , 即前一个模块的输出, 训练良好, 则通过 的误差不会累积(即, 被 限制)。我们进一步提供了一个上界误差, 如果假设4.1不成立。下面的定理显示误差增加的速度最多与尾奇异值的线性相关。
定理4.2: 如果假设4.1不成立,则存在 使得 。
推论4.1: 给定一个具有L个线性模块 的SGNN,其 ,如果 和 共享相同的特征空间, 则 。
基于定理4.2,我们得出结论,当假设4.1不成立时,残差不会迅速累积。所有证明都放在附录中。
V. 实验
在本节中,我们通过实验来研究:(1)SGNN的性能是否能以高效的方式接近原始L层GNN的性能;(2)解耦引入的非线性和灵活性的影响。
为了充分回答上述两个问题,我们使用了节点聚类和半监督节点分类任务。需要强调的是,SGNN可以用于传导和归纳任务。我们主要在传导学习数据集上进行实验,因为在传导学习场景中更可能出现效率问题。我们使用了4个常用数据集,包括Cora、Citeseer、Pubmed[25]和Reddit[14],进行实验。Cora和Citeseer包含数千个节点。Pubmed有近20,000个节点,Reddit包含超过200,000个节点,分别是中等规模和大规模数据集。四个常用数据集的详细信息显示在表II中。有关OGB数据集的实验,请参见第V-D节。
节点聚类
实验设置:我们首先验证SGNN在节点聚类上的有效性。我们将其与10种方法进行比较,包括一个基线聚类模型Kmeans,三种不考虑训练效率的GCN模型(GAE[9]、ARGA[54]、MGAE[43]),以及六种具有GAE损失的快速GCN模型(GraphSAGE[14]、FastGAE[15]、ClusterGAE[18]、AGC[55](SGC[19]的无监督扩展)、S2GC[20]和GAE-S2GC)。
使用的代码基于公开发布的实现。为确保公平,所有多层GNN模型由两层组成,SGNN由两个模块组成。对于可以通过随机算法训练的模型,批量大小设为128。学习率设为0.001,迭代次数设为100。我们设置第一层的大小为128,第二层大小为64。初始化为单位矩阵,默认设为。反向训练的次数设为5或10。为了研究反向训练的有效性,我们报告了每个模块充分训练的实验结果,记为SGNN-FT,而包含所提出的反向训练的SGNN记为SGNN-BT。
为了研究SGNN在不同基础模型下的性能,我们选择一个完全可分离的GNN,S2GC,作为基础模型,这种方法记为SGNN-S2GC。注意,SGNN-S2GC也使用所提出的BT策略,与SGNN-BT相同。原始的S2GC不使用任何激活函数,而我们为每个S2GC基础模型的嵌入添加了与SGNN-FT相同的激活函数。由于S2GC不使用GAE框架,我们还添加了一个竞争者,即GAE-S2GC,它使用S2GC作为编码器,以确保公平。对于SGNN-S2GC和GAE-S2GC,所有额外的超参数都简单地根据S2GC的原始论文设置,无论是节点聚类还是节点分类。我们没有手动调整S2GC的超参数。
所有方法运行五次,记录平均分数。结果总结在表III中。
性能:从表III中,我们发现SGNN在大多数数据集上表现优异。如果发布的代码因内存不足(OOM)而无法在Reddit上运行,我们用“N/A”代替结果。特别是,SGNN-BT在Reddit上取得了高达8%的提升,超过了众所周知的GraphSAGE。SGNN-FT在某些数据集上表现优于平均水平。它通常优于GraphSAGE,但未能超过SGC。由于由多个模块引起的更深层结构,SGNN的性能优于简单的GAE。由于多个模块引入的更多非线性,它也优于SGC。注意S2GC和SGC是强大的竞争者,而SGNN可以轻松地将它们作为基础模块使用,因为它们是可分离的,这由SGNN-S2GC所示。可以很容易地发现SGNN-S2GC通常与S2GC取得了相似的结果。由于它比SGNN-BT慢,并且性能提升不稳定,我们建议在实践中使用简单的SGNN-FT而不是SGNN-S2GC。从表中,我们发现将S2GC修改为GAE-S2GC是不必要的,因为GAE架构根本没有提高S2GC的性能。从消融实验中,SGNN-BT比SGNN-FT表现更好,这表明了反向训练的必要性。
我们还研究了模块数量对节点聚类准确率的影响,结果平均在5次运行上报告在表IV中。为确保公平,我们还展示了具有相同深度的GAE的性能,尽管更深的GCN和GAE通常返回不满意的结果。值得注意的是,每层的神经元被设置为[256, 128, 64, 32, 16, 16, 16]。不难发现SGNN对深度的鲁棒性优于传统GNN。
效率:图2显示了在Pubmed和Reddit上几种GNN的消耗时间,这些GNN具有更高的效率。我们不仅忽略了预处理操作,还测量了效率,即从将数据加载到RAM后开始,直到完成所有参数更新的总时间除以GNNs的更新参数总数。这种度量可以反映旨在将基于批量的算法应用于GNN的不同训练技术之间的真实差异。需要强调的是,SGC在消耗时间上比SGNN差的原因。关键是它们的预处理操作的成本不同。对于一个L阶SGC, 计算 的计算成本至少为 , 而具有L个一阶模块的SGNN总共需要 进行相同的预处理操作。该度量还为SGC和其他模型之间的公平比较提供了依据, 因为停止标准总是不同的。
节点分类
实验设置:我们还在四个数据集上进行了半监督分类的实验。数据集的拆分遵循[19],如表II所示。我们将SGNN与GCN[4]、GAT[6]、DGI[56]、APPNP[57]、L2GCN[40]、FastGCN[15]、GraphSAGE[14]、Cluster-GCN[18]、SGC[19]、GCNII[58]和S2GC[20]进行比较。同样,我们用两种不同的基础模型测试SGNN,即SGNN-BT和SGNN-S2GC。实验设置与节点聚类实验相同。对于GraphSAGE,我们默认使用均值操作符,如果使用额外的操作符,我们会添加一些注释。在引用网络上,学习率设为0.01,而在Reddit上设为。由于引用网络上的训练节点少于200,我们在每次迭代中对所有方法使用所有训练点,而在Reddit上,所有基于批量的模型的批量大小设为512。我们不使用[4]中使用早期停止标准,最大迭代次数遵循SGC的设置。每个模块的嵌入维度与节点聚类设置相同。为了公平起见,我们报告了使用两个模块的SGNN的结果,这些模块使用一阶操作。前向训练损失在(6)中定义。此外,所有比较的模型共享相同的批量迭代器、损失函数和邻域采样器(如适用)的实现。默认情况下,LFT和LBT之间的平衡系数设为1。我们在Cora上优化超参数,并在表V和表VI上报告了在引用数据集上平均10次运行的结果,以及在Reddit上平均5次运行的结果。Reddit上的结果记录在表VI中。超参数在所有数据集上共享,这些超参数在Cora上进行了优化。 性能:表V中比较方法的结果来自相应的论文。当实验结果缺失时,我们运行公开发布的代码,并在结果上加注†。从表V和表VI中,我们得出结论,SGNN在引用网络上超过了使用邻居采样的模型,例如GraphSAGE、FastGCN和Cluster-GCN,并且在Reddit上超过了大多数模型。在简单的引用网络上,SGNN比其他基于批量的模型损失的准确性最少,这接近GCN。由于每个模块的可分离性,批量采样不需要邻居采样,也不会造成图信息的丢失。
需要注意的是,我们简单地使用单层GCN作为SGNN的基础模块,但SGNN也可以通过使用更复杂的可分离GNN模型作为基础模块来提高性能,例如SGNN-S2GC。正如SGNN-S2GC的结果所示,SGNN确实可以通过使用更复杂的基础模型来改进。尽管一些方法取得了可喜的结果,但它们要么无法在大规模数据集上运行,要么在大规模数据集上无法获得满意的结果。此外,我们还展示了在节点分类任务上的效率比较,如图2所示。
可视化解耦的影响:在图3中,我们可视化了由3个模块组成的SGNN和3层GCN的输出,直接展示了解耦不会导致平凡特征,这对应于第IV节中的理论结论。为了展示SGNN和反向训练引入的非线性和灵活性的好处,图7显示了SGC、SGNN-FT和SGNN-BT的收敛曲线。注意,该图显示了最终损失的变化。在SGNN中,最终损失是ML的损失,而在SGC中,它唯一的训练损失。SGC使用了L阶图操作。从这个图中,我们可以得出结论:(1)非线性确实会导致更好的损失值;(2)反向训练显著降低了损失。总之,解耦在实证上不会造成负面影响。
我们还通过图4和图5提供了更多的可视化。我们运行了由3个GNN模块组成的SGNN,并在Cora和Citeseer上通过t-SNE可视化了M1、M2和M3的输入和输出,用于节点聚类和节点分类。这两个图的目的是实证调查解耦是否会导致残差的累积和误差。实验结果支持第IV节中提供的理论结果,即解耦不会导致误差累积。有人可能会担心η(LFT和LBT之间的权衡系数)对性能的影响。我们测试了不同η值{10^-5, 10^-3, 10^-1, 10^1, 10^3, 10^5}的SGNN,并发现η = 10^3通常能带来好的结果。因此,本文中我们只报告了η = 10^3的SGNN结果。此外,我们还在图8中展示了η对Cora和Citeseer节点聚类的影响。
此外,我们在图6中展示了不同时期M1的输出,以展示反向训练的影响。从图中,我们发现BT确实影响了潜在特征,这在图6(d)中尤为明显。
在OGB数据集上的实验
我们进一步展示了在两个OGB数据集上的节点分类实验,OGB-Products和OGB-Arxiv,这些数据集可以从https://ogb.stanford.edu/docs/nodeprop/下载。OGB-Products包含超过200万个节点,OGB-Arxiv包含超过150,000个节点。
需要强调的是,我们只使用简单的单层GCN作为SGNN的基础模块。性能可以通过结合不同的模型进一步提高,例如GCNII、GIN等。特别是,我们只在Arxiv上调整了超参数,并简单地报告了从Reddit继承设置的SGNN结果。
备注:有人可能会担心所提出的SGNN无法像节点聚类那样实现最先进的结果。需要强调的是,具有L个模块的SGNN应该被视为L层GNN的一个变体。因此,将SGNN与GCN进行比较更为公平。从表V、表VI和表VII中,我们可以看到SGNN的性能可以高效地接近GCN。SGNN无法在监督任务(如节点聚类)上超越其他模型的主要原因是为中间模块设计适当的训练损失的困难。这本质上源于神经网络的黑箱属性,即深层层更喜欢什么样的潜在特征。从实验结果中,我们发现简单地将最终的监督损失作为中间模块的训练损失并不是最优的方案。相反,在节点聚类上,我们证明了贪婪策略不会导致误差累积,实验结果验证了理论结论。
VI. 结论
在本文中,我们提出了堆叠图神经网络(SGNN)。我们首先将多层GNN解耦为多个简单的GNN,这在本文中被正式定义为可分离GNN,以确保批量优化的可用性,而不会丢失图信息。现有堆叠模型的瓶颈在于信息传递是单向的,因此我们开发了一种反向训练机制,使前层模块能够感知后层模块。我们还理论上证明了在线性SGNN中,残差在大多数情况下不会在无监督图任务中累积。理论和实验结果表明,所提出的框架不仅仅是一种高效的方法,而且值得在未来进一步研究。理论分析集中在线性SGNN上,并且没有研究泛化界限。因此,它们将成为我们未来工作的核心。此外,由于LFT可以是任何损失,SGNN未能实现最先进的结果,如何为每个模块设置最合适的训练损失,特别是在监督任务上,也将是我们未来工作的一个关键主题。这可能有助于我们理解神经网络的工作原理。
公众号后台回复“数据集”获取100+深度学习各方向资源整理
极市干货
点击阅读原文进入CV社区
收获更多技术干货