1. GraphSAGE 模型概述

GraphSAGE(Graph SAmple and aggreGatE)是 Hamilton 等人于 2017 年提出的归纳式图神经网络框架。它通过采样邻居和聚合特征两个核心步骤,将图结构信息编码为节点表示,解决了传统图神经网络在大规模图和动态图场景下的泛化瓶颈。

1.1 核心思想:采样 + 聚合

GraphSAGE 不再为每个节点学习独立的嵌入向量,而是学习一个聚合函数(Aggregator),该函数能够从节点的局部邻居中归纳出表示。其前向传播过程分为三步:

  1. 邻居采样:对每个节点,固定采样 K 层邻居,每层采样固定数量的邻居节点(如 S1=25, S2=10),控制计算复杂度。
  2. 特征聚合:从最外层开始,逐层聚合邻居特征,更新当前节点表示。
  3. 表示输出:将最终层的节点表示用于下游任务(分类、回归等)。
关键公式(聚合层更新):
hv(k) = σ( W(k) · CONCAT( hv(k-1), AGGk( { hu(k-1), ∀u ∈ N(v) } ) ) )

其中 AGG 可以是 Mean、LSTM、Pooling 等聚合器,N(v) 为采样后的邻居集合。

1.2 与 GCN 的核心区别

对比维度 GCN(图卷积网络) GraphSAGE
学习范式 直推式(Transductive) 归纳式(Inductive)
邻居使用 全图所有邻居参与卷积 固定采样部分邻居
训练方式 需要全图拉普拉斯矩阵 基于 mini-batch 训练
泛化能力 无法泛化到未见节点 可泛化到新节点/新图
计算复杂度 O(|V|·d²),随图规模平方增长 O(|V|·S1·S2·d²),可控
适用场景 静态小图、全图已知 大规模图、动态图、跨图迁移
工程启示: GraphSAGE 的 mini-batch 训练方式天然适配分布式部署和 GPU 流水线,而 GCN 的全图计算在节点数超过百万时极易导致显存溢出(OOM)。这是 GraphSAGE 成为工业部署首选的核心原因之一。

1.3 归纳式学习的优势

归纳式学习(Inductive Learning)是 GraphSAGE 区别于早期图神经网络的关键特性。它使得模型能够:

  • 处理动态图:新用户、新商品加入推荐系统时,无需重新训练整个模型,只需运行前向传播即可获得新节点表示。
  • 跨图迁移:在一个图上训练好的聚合函数,可以直接应用于结构相似的其他图(如不同城市的交通网络)。
  • 大规模分布式训练:每个 mini-batch 只涉及局部子图,天然支持数据并行和模型并行。
  • 降低存储成本:不需要存储全图邻接矩阵和所有节点的嵌入向量,仅存储模型参数(通常 MB 级别)。

1.4 GraphSAGE 架构总览

下图展示了 GraphSAGE 从原始图输入到节点表示输出的完整流程,包含采样、聚合、前向传播三个核心阶段:

GraphSAGE 架构总览:采样 → 聚合 → 表示输出 GraphSAGE 架构总览:采样 → 聚合 → 表示输出 原始图输入 节点特征矩阵 X 邻接关系 A 邻居采样 第1层: 采样 S₁ 个邻居 第2层: 采样 S₂ 个邻居 固定采样数,控制扇出 特征聚合 AGG: Mean / LSTM / Pool 逐层更新节点表示 CONCAT + 非线性变换 输出 hv 三种聚合器对比 Mean 聚合器 对邻居特征逐元素取均值 hN(v) = mean({hu, ∀u∈N(v)}) 计算快,适合同质图 LSTM 聚合器 对邻居随机排序后输入 LSTM hN(v) = LSTM([hu1,...,huk]) 表达能力最强,但计算慢 Pool 聚合器 MLP + max-pooling hN(v) = max({σ(Whu+b)}) 平衡表达与效率

1.5 归纳式 vs 直推式:部署视角对比

从系统部署和运维的角度,归纳式学习带来的优势是决定性的:

部署维度 直推式(GCN) 归纳式(GraphSAGE)
模型更新频率 每次新增节点需全图重训 仅需增量前向传播
推理延迟 全图推理,延迟随图规模线性增长 子图推理,延迟仅与采样深度相关
内存占用 需加载全图邻接矩阵(O(|V|²)) 仅加载 mini-batch 子图(O(S₁·S₂))
水平扩展 困难,全图依赖难以分片 天然支持,每个 batch 独立计算
冷启动 不支持新节点 支持,直接推理即可
部署避坑: 虽然 GraphSAGE 支持归纳式学习,但采样策略对推理延迟影响极大。如果采样层数过深(K > 3)或每层采样数过大(S > 50),邻居爆炸会导致推理延迟飙升。生产环境中建议 K=2, S₁=25, S₂=10 作为起点。

1.6 本章小结