4. GraphSAGE 原理(下):节点特征更新、损失函数与训练方式

上一节我们学习了 GraphSAGE 的采样与聚合机制。本节将深入其核心:节点特征如何逐层更新、无监督与有监督损失函数如何设计,以及与 GCN 的本质差异。这些是理解 GraphSAGE 可扩展性与灵活性的关键。

4.1 节点特征更新公式:从邻居到目标节点

GraphSAGE 的核心思想是:每个节点的特征由其自身特征与采样邻居的聚合特征共同决定。第 k 层的更新公式如下:

h_v^(k) = σ( W^(k) · CONCAT( h_v^(k-1), AGG_k( { h_u^(k-1), ∀u ∈ N(v) } ) ) )

其中:

  • h_v^(k):节点 v 在第 k 层的特征向量。
  • h_v^(k-1):节点 v 在上层的特征(自身记忆)。
  • N(v):对节点 v 采样得到的固定大小邻居集合。
  • AGG_k:第 k 层的聚合函数(Mean / LSTM / Pooling)。
  • CONCAT:将自身特征与邻居聚合特征拼接,保留自身信息。
  • W^(k):可训练的权重矩阵。
  • σ:非线性激活函数(如 ReLU)。
关键设计:拼接操作是 GraphSAGE 区别于 GCN 的重要特征。它确保节点自身的原始信息不会在多层聚合中被“稀释”,尤其适合欺诈团伙中“孤立节点”与“团伙节点”的区分。

4.2 聚合函数对比:Mean / LSTM / Pooling

GraphSAGE 支持三种可替换的聚合器,不同聚合器对欺诈团伙识别的效果差异显著:

聚合器 公式/原理 特点 欺诈场景适用性
Mean 聚合器 对邻居特征逐元素取平均 计算最快,平滑邻居信息 适合均匀团伙,但易被噪声淹没
LSTM 聚合器 将邻居特征排序后输入 LSTM 表达能力更强,但非对称(需排序) 适合时序行为数据(如交易序列)
Pooling 聚合器 对每个邻居特征做 MLP + 逐元素 max 池化 对称、可学习、鲁棒 推荐:抗噪声,能捕捉团伙内极端特征
实战建议:在反欺诈场景中,Pooling 聚合器通常表现最优。因为它通过 MLP 先变换每个邻居,再用 max 池化保留最“异常”的信号——这正是欺诈团伙中“头目节点”的典型特征。

4.3 无监督损失函数:保持图结构邻近性

当缺乏节点标签时,GraphSAGE 通过无监督损失学习节点嵌入,使得图中邻近节点的嵌入相似,远距离节点的嵌入不同。损失函数基于负采样:

J_G(z_u) = -log( σ( z_u^T z_v ) ) - Q · E_{v_n ~ P_n(v)} [ log( σ( -z_u^T z_{v_n} ) ) ]

其中:

  • z_u:节点 u 的最终嵌入。
  • v:与 u 在固定长度随机游走中同时出现的邻居(正样本)。
  • v_n:从噪声分布 P_n 中采样的负样本节点。
  • Q:负样本数量(通常 5~20)。
  • σ:sigmoid 函数。

该损失函数鼓励正样本对的内积大,负样本对的内积小。在反欺诈中,无监督预训练可以快速发现密集连接的可疑子图,即使没有标注数据也能生成有区分度的嵌入。

4.4 有监督训练方式:端到端分类

当拥有部分标注数据(如已知欺诈/正常节点)时,GraphSAGE 支持端到端有监督训练。流程如下:

  1. 前向传播:通过采样-聚合-拼接得到每个节点的嵌入 z_v。
  2. 分类层:在最终嵌入后接一个全连接层 + softmax,输出类别概率。
  3. 损失函数:使用交叉熵损失:
L = - Σ_{v ∈ labeled} y_v · log( p_v )

其中 y_v 是真实标签(one-hot),p_v 是预测概率。

  1. 反向传播:梯度通过全连接层、聚合函数、采样操作回传,更新所有 W^(k) 和分类层参数。
注意:有监督训练时,采样图是动态的——每个 batch 重新采样邻居。这导致计算图每次不同,但正是这种随机性让 GraphSAGE 能泛化到未见节点(归纳学习)。

4.5 与 GCN 的对比:核心差异

GraphSAGE 与 GCN 虽然都是图神经网络,但设计哲学差异明显。下表总结了关键区别:

对比维度 GCN GraphSAGE
学习范式 直推式(Transductive) 归纳式(Inductive)
邻居使用 使用全部邻居(全图计算) 采样固定数量邻居
特征更新 自身特征与邻居特征加权平均 自身特征与邻居聚合特征拼接
聚合函数 固定为归一化平均 可学习(Mean/LSTM/Pooling)
可扩展性 低(需全图拉普拉斯矩阵) 高(可 batch 训练,适合大图)
泛化能力 不能泛化到新节点 可泛化到未见节点

在反欺诈场景中,GraphSAGE 的归纳能力至关重要:新注册的账号、新发起的交易可以立即通过其邻居特征生成嵌入,无需重新训练整个模型。

GraphSAGE 节点特征更新与 GCN 对比 GraphSAGE 节点更新 h_v^(k-1) u1 u2 u3 AGG (Pooling) CONCAT h_v^(k) 自身特征保留 GCN 节点更新 h_v u1 u2 u3 归一化平均 h_v' GCN:自身与邻居加权平均 无拼接,无采样,全图计算 直推式,无法泛化新节点

4.6 本章小结

  • 特征更新公式:拼接自身特征与邻居聚合特征,保留个体信息。
  • 聚合函数:Mean 快但平滑,LSTM 适合序列,Pooling 抗噪声推荐用于反欺诈。
  • 无监督损失:基于负采样,保持图结构邻近性,适合无标签场景。
  • 有监督训练:端到端交叉熵,支持归纳学习,可泛化到新节点。
  • 与 GCN 对比:GraphSAGE 采样+拼接+可学习聚合,GCN 全图+平均+直推式。