趋近智
图卷积网络 (GCN) 已成为从图数据中学习表示的一种高效且有效的方法。尽管 GCN 非常有用,但它存在两个主要的限制。首先,这类网络本质上是转导式 (transductive) 的。GCN 模型为训练图中的每个节点学习一个特定的嵌入 (embedding),无法轻松地为训练后新加入的节点生成嵌入。其次,在大规模图上的计算成本可能很高,特别是对于拥有大量邻居的节点,因为每一层都需要处理整个邻域。
GraphSAGE(全称 Graph SAmpling and Aggregating,即图采样与聚合)的设计初衷就是为了直接解决这些挑战。它引入了一个不仅可以扩展到大规模图,还支持归纳式 (inductive) 学习的框架,使模型能够泛化到完全未见的节点。
GraphSAGE 的创新体现在两个方面:
通过学习如何从采样的一组局部邻居中聚合信息,模型学习到的是一个生成嵌入的函数,而不仅仅是记住现有节点的嵌入。
在模型的每一层中,GraphSAGE 对每个节点执行以下两个步骤:
下图展示了两层 GraphSAGE 模型的采样过程。为了计算中心节点 A 的最终嵌入 (embedding),模型首先采样其部分邻居 (B, C, D)。然后,对于这些邻居中的每一个,再从它们各自的邻域中采样(例如,B 采样了 E 和 F)。聚合过程则是由外向内进行的。
对于节点 A,计算依赖于其采样的邻居 {B, C, D},而这些邻居又依赖于它们各自采样的邻居。无论节点 A 的实际度数是多少,这都会创建一个固定大小的计算图。
这种采样策略确保了每个节点的计算成本是恒定的,与其度数无关。即使一个节点有成千上万个邻居,我们也只处理一个小的、固定大小的样本,从而使算法具有很强的可扩展性。
与使用固定均值聚合的 GCN 不同,GraphSAGE 使用不同的函数从采样的邻居中聚合信息。聚合器的选择会显著影响模型表现。设 表示上一层 中邻居节点 的特征向量 (vector), 表示目标节点 的采样邻居集合。
GraphSAGE 的作者提出了三种主要的聚合函数:
这是最简单的选项,与 GCN 聚合器非常相似。它计算所有采样邻居特征向量的逐元素均值。
此函数简单直接且计算效率高。
在这种聚合器中,邻居被视为一个序列。LSTM(长短期记忆网络 (LSTM),一种循环神经网络 (neural network) (RNN))负责处理这个序列。由于 LSTM 对输入顺序敏感,而图中邻居并没有自然顺序,因此在训练期间会使用邻居的随机排列。这种聚合器表达能力更强,但实现和训练也更复杂。
池化聚合器通常效果最好。每个邻居的特征向量首先通过各自独立的且相同的多层感知机 (MLP)。变换后,应用对称的逐元素池化操作(如最大池化或均值池化)来聚合信息。
这里, 是一个可学习的权重 (weight)矩阵, 是非线性激活函数 (activation function),最大值 指的是逐元素最大池化。使用可训练的 MLP 赋予了这种聚合器极强的表达能力。
在聚合邻居表示 之后,GraphSAGE 将该向量 (vector)与目标节点来自上一层的自身表示 相结合。与 GCN 的一个主要区别是,这两个向量在通过线性层和非线性激活函数 (activation function)之前先进行拼接 (concatenate)。
拼接操作明确保留了节点的上一个状态的表示,类似于残差网络中的“跳跃连接”。事实证明,这可以提升性能。矩阵 包含了第 层的可学习权重 (weight)。
通过学习聚合器的权重(在使用池化聚合器的情况下)和更新函数,GraphSAGE 学习到了一个基于局部邻域结构生成节点嵌入 (embedding)的通用函数。这就是其具备归纳能力的原因,我们将在下一节中详细说明。
这部分内容有帮助吗?
© 2026 ApX Machine LearningAI伦理与透明度•