2. 图神经网络基础回顾:图的基本概念、邻居聚合、归纳式学习原理
在构建 GraphSAGE 团伙识别模型之前,必须牢固掌握图神经网络(GNN)的三大支柱:图的基本概念、邻居聚合机制以及归纳式学习原理。本节将系统梳理这些基础,为后续的模型部署与优化铺平道路。
2.1 图的基本概念
图(Graph)是描述实体及其关系的通用数据结构。在团伙识别场景中,实体(如用户、设备、账号)表示为节点,实体间的交互(如转账、通话、同设备登录)表示为边。
| 概念 | 符号 | 团伙识别示例 |
|---|---|---|
| 节点 (Node) | \( v \in V \) | 用户账号、手机号、设备ID |
| 边 (Edge) | \( e \in E \) | 转账交易、通话记录、同IP登录 |
| 邻域 (Neighborhood) | \( \mathcal{N}(v) \) | 与目标用户直接交互的账号集合 |
| 节点特征 | \( \mathbf{x}_v \) | 注册时长、交易频次、设备型号 |
| 边特征 | \( \mathbf{e}_{uv} \) | 交易金额、通话时长、登录时间戳 |
| 图结构 | \( G = (V, E) \) | 用户-设备二部图、交易网络图 |
实战要点:团伙识别通常构建异构图(多种节点类型)或时序图(边带时间戳)。GraphSAGE 原生支持同构图,但可通过特征拼接或元路径扩展处理异构场景。
2.2 邻居聚合机制
GraphSAGE 的核心创新在于邻居聚合:通过采样固定数量的邻居节点,并聚合其特征来更新目标节点的表示。这一过程避免了传统 GCN 的全图拉普拉斯计算,使模型能够扩展到大规模图数据。
聚合过程分为三个步骤:
- 邻居采样:对每个节点,从其邻域中均匀采样固定数量(如 \( K=3 \))的邻居节点。
- 特征聚合:使用聚合函数(Mean、LSTM、Pooling)将采样到的邻居特征合并为一个向量。
- 节点更新:将聚合后的邻居向量与目标节点自身特征拼接,通过全连接层和激活函数生成新表示。
聚合函数对比:
- Mean 聚合:对邻居特征取均值,计算快、稳定性高,适合稠密图。
- LSTM 聚合:对邻居序列建模,表达能力更强,但需要随机排序,计算开销大。
- Pooling 聚合:对每个邻居特征过 MLP 后取 max/mean,兼顾表达与效率。
2.3 归纳式学习原理
GraphSAGE 最关键的突破是归纳式学习(Inductive Learning),它区别于传统 GCN 的直推式学习(Transductive Learning)。直推式模型在训练时依赖全图结构,无法泛化到未见过的节点;而归纳式模型仅学习“如何聚合邻居”的函数,可以应用于全新的图或节点。
| 对比维度 | 直推式学习 (Transductive) | 归纳式学习 (Inductive) |
|---|---|---|
| 训练依赖 | 需要全图结构(包含测试节点) | 仅需训练子图,测试节点可完全未知 |
| 泛化能力 | 无法泛化到新节点 | 可泛化到任意新节点或新图 |
| 计算开销 | 每次新增节点需重新训练 | 训练一次,无限次推理 |
| 团伙识别场景 | 仅适用于静态已知网络 | 适用于实时新增用户/设备的动态网络 |
| 代表模型 | GCN、GAT(原始版本) | GraphSAGE、FastGCN、ClusterGCN |
部署陷阱:如果团伙识别系统需要每天处理数百万新增用户,直推式模型将导致每天重新训练全图,成本不可接受。GraphSAGE 的归纳式特性使其成为生产环境的首选——模型部署后,新用户只需执行一次前向传播即可获得嵌入。
2.4 本章小结
- 图结构是团伙识别的基础,节点代表实体,边代表交互关系。
- 邻居聚合通过采样+聚合+更新的三步流程,将局部结构信息编码到节点表示中。
- 归纳式学习使 GraphSAGE 能够泛化到未见节点,是支撑大规模实时推理的关键设计。
- 在部署阶段,Mean 聚合因其计算效率和稳定性,通常作为默认聚合函数。