4. 聚合函数详解:Mean、Pooling、LSTM 与 GCN 聚合器
聚合函数(Aggregator)是 GraphSAGE 的核心组件,它决定了如何将邻居节点的信息融合到目标节点中。不同的聚合函数在表达能力、计算效率和泛化能力上存在显著差异。本章将深入剖析四种经典聚合器的原理、数学形式与适用场景。
4.1 聚合函数概览与对比
GraphSAGE 的通用更新公式为:
h_v^(k) = σ( W^(k) · AGG( { h_v^(k-1) } ∪ { h_u^(k-1), ∀u ∈ N(v) } ) )
其中 AGG 代表聚合操作。下表从核心思想、对称性、参数数量和适用图类型四个维度对比四种聚合器:
| 聚合器 | 核心思想 | 对称性 | 参数数量 | 适用图类型 |
|---|---|---|---|---|
| Mean 聚合器 | 对邻居特征逐元素取平均 | 强对称 | 无额外参数 | 同质图、节点度分布均匀 |
| Pooling 聚合器 | 先经 MLP 映射,再取 Max/Mean | 强对称 | 1 个 MLP 共享层 | 异质图、需捕捉极端特征 |
| LSTM 聚合器 | 将邻居视为序列,LSTM 处理 | 弱对称(需随机排序) | LSTM 单元参数 | 序列化邻居、时序图 |
| GCN 聚合器 | 归一化求和 + 自环连接 | 强对称 | 无额外参数 | 全图监督、直推式学习 |
对称性要点: 图邻居是无序集合,理想的聚合器应具有置换不变性(Permutation Invariance)。Mean 和 Pooling 天然满足,LSTM 需要通过随机邻居排序来近似实现。
4.2 Mean 聚合器
Mean 聚合器是最简单、最稳定的聚合方式。它直接对目标节点及其邻居的特征向量逐元素求平均,然后与当前节点特征拼接。
数学形式:
h_N(v)^(k) = mean( { h_v^(k-1) } ∪ { h_u^(k-1), ∀u ∈ N(v) } )
h_v^(k) = σ( W^(k) · CONCAT( h_v^(k-1), h_N(v)^(k) ) )
特点:
- 计算效率: 无额外可学习参数,仅需一次平均运算,速度最快。
- 平滑效果: 平均操作会弱化极端值,适合特征分布较均匀的场景。
- 局限性: 无法区分不同邻居的重要性,所有邻居贡献相同权重。
实践建议: 在节点度较高(如社交网络)且特征噪声较小时,Mean 聚合器通常作为基线模型的首选。
4.3 Pooling 聚合器(Max / Mean)
Pooling 聚合器引入了一个共享的 MLP 层,先将每个邻居特征映射到高维空间,再在邻居维度上执行逐元素 Max 或 Mean 操作。这种方式增强了模型的表达能力。
数学形式:
h_N(v)^(k) = max( { σ( W_pool · h_u^(k-1) + b ), ∀u ∈ N(v) } )
# 或使用 mean 替代 max
h_v^(k) = σ( W^(k) · CONCAT( h_v^(k-1), h_N(v)^(k) ) )
Max vs Mean Pooling 对比:
| 对比维度 | Max Pooling | Mean Pooling |
|---|---|---|
| 捕捉特征 | 突出最显著的特征维度 | 保留整体分布信息 |
| 对噪声敏感度 | 对异常值较敏感 | 对异常值鲁棒 |
| 适用场景 | 图分类、关键节点检测 | 节点回归、平滑表示 |
参数共享陷阱: Pooling 聚合器中的 MLP 层在所有邻居间共享权重,这保证了置换不变性。但若 MLP 层数过深(>2层),容易导致过拟合,建议在邻居采样数较大时使用 Dropout。
4.4 LSTM 聚合器
LSTM 聚合器将邻居节点视为一个序列,利用 LSTM 的序列建模能力来聚合信息。由于图邻居天然无序,需要在输入前对邻居进行随机排序,以近似实现置换不变性。
数学形式:
# 随机打乱邻居顺序
shuffled_neighbors = shuffle( { h_u^(k-1), ∀u ∈ N(v) } )
# 输入 LSTM 处理
h_N(v)^(k) = LSTM( [h_u1, h_u2, ..., h_u|N(v)|] ) # 取最后隐藏状态
h_v^(k) = σ( W^(k) · CONCAT( h_v^(k-1), h_N(v)^(k) ) )
关键特性:
- 表达能力: LSTM 的门控机制可以学习邻居间的长距离依赖和交互模式。
- 计算开销: 参数数量随 LSTM 隐藏层维度增长,训练速度较慢。
- 排序依赖: 理论上不满足置换不变性,实践中通过多次随机排序取平均来缓解。
效率优化: 当邻居数量较大(如 >50)时,LSTM 聚合器的训练时间会显著增加。建议先对邻居进行二次采样(如固定采样 25 个),再输入 LSTM。
4.5 GCN 聚合器
GCN 聚合器借鉴了图卷积网络(GCN)的思想,在聚合时加入归一化系数和自环连接。它本质上是 Mean 聚合器的一种变体,但更强调度归一化的重要性。
数学形式:
h_v^(k) = σ( W^(k) · Σ( (1 / sqrt(|N(v)|·|N(u)|)) · h_u^(k-1), ∀u ∈ N(v) ∪ {v} ) )
与 Mean 聚合器的区别:
| 对比维度 | Mean 聚合器 | GCN 聚合器 |
|---|---|---|
| 归一化方式 | 简单平均(1/|N(v)|) | 对称归一化(1/√(d_v·d_u)) |
| 自环处理 | 拼接当前节点特征 | 将当前节点加入邻居集合 |
| 更新方式 | 先聚合再拼接 | 直接聚合(含自环) |
| 适用场景 | 归纳式学习 | 直推式学习 |
数学直觉: GCN 聚合器的对称归一化系数 1/√(d_v·d_u) 可以防止高节点度的特征值过大,同时保持低节点度节点的信息不被淹没。这在异质度图中尤为重要。
4.6 聚合器选择决策流程
下图展示了在实际项目中如何根据数据特征和任务需求选择最合适的聚合器:
4.7 聚合器组合策略
在实际的 GraphSAGE 多层架构中,不同层可以使用不同的聚合器,形成混合策略:
- 浅层 + 深层: 第一层使用 Mean 聚合器快速捕捉局部结构,第二层使用 Pooling 聚合器提取高阶语义特征。
- 同层混合: 对不同类型的邻居(如社交关系 vs 兴趣标签)使用不同的聚合器,最后拼接结果。
- 注意力加权: 在 Mean 聚合器基础上引入注意力系数(类似 GAT),为不同邻居分配不同权重。
过平滑风险: 当网络层数超过 3 层时,所有聚合器都会面临过平滑问题(节点表示趋于一致)。此时应结合跳跃连接(Skip Connection)或阈值分层策略来缓解。