4. 图神经网络基础:从传统图算法到GNN、消息传递机制、GNN的聚合与更新

在反欺诈图谱中,节点(用户、设备、IP)和边(交易、登录、社交关系)构成了复杂的拓扑结构。传统图算法(如PageRank、社区发现)虽然能挖掘局部结构,但无法有效融合节点自身的特征(如年龄、交易金额)。图神经网络(GNN)的出现,通过消息传递机制,让每个节点能够“看见”邻居的特征并更新自身表示,从而在欺诈检测中实现更精准的异常识别。

4.1 从传统图算法到GNN:能力跃迁

传统图算法与GNN的核心差异在于特征学习能力。下表对比了它们在反欺诈场景中的适用性:

算法类型 代表方法 输入依赖 输出能力 反欺诈局限
传统图算法 PageRank、Louvain、Node2Vec 仅图结构(邻接矩阵) 节点重要性、社区划分、嵌入向量 无法利用节点自身属性(如交易金额、设备指纹)
图神经网络(GNN) GCN、GraphSAGE、GAT 图结构 + 节点特征矩阵 融合邻居信息的节点表示 可同时建模结构异常与属性异常
关键洞察: 欺诈团伙往往通过“结构隐蔽”(如少量高权重边)和“属性伪装”(如模拟正常交易金额)来逃避检测。GNN通过同时学习结构和特征,能有效打破这种伪装。

4.2 消息传递机制:GNN的核心范式

消息传递机制(Message Passing)是GNN的通用计算范式。它模拟了图中节点之间“信息交换”的过程,通常包含三个步骤:消息生成、消息聚合、节点更新。

下图展示了单层消息传递的完整流程:

消息传递机制流程图 消息传递机制:单层GNN计算流程 目标节点 v 邻居 u₁ 邻居 u₂ 邻居 u₃ 邻居 u₄ m₁ = msg(h_u₁) m₂ = msg(h_u₂) m₃ = msg(h_u₃) m₄ = msg(h_u₄) 聚合 更新 h_v' 消息生成:m = W · h_u 聚合:a_v = SUM/MEAN/MAX(m)
记忆口诀: “邻居发消息,中心收消息,聚合再更新,特征传下去。” 每一层GNN都执行一次这样的消息传递,层数越多,节点能感知的“视野”越广(感受野越大)。

4.3 GNN的聚合与更新:核心操作详解

聚合(Aggregation)和更新(Update)是消息传递中决定模型性能的关键步骤。不同的GNN变体在这两个步骤上采用了不同的策略。

4.3.1 聚合函数:如何融合邻居信息

聚合函数将邻居节点传来的消息合并成一个固定长度的向量。常见的聚合方式包括:

  • 均值聚合(Mean): 对邻居消息取平均,适合邻居数量稳定、噪声较小的场景。
  • 求和聚合(Sum): 直接累加邻居消息,能保留邻居的“数量”信息,对度数敏感的欺诈模式(如大量虚假注册)有效。
  • 最大池化聚合(Max-pooling): 取每个维度上的最大值,能捕捉最显著的异常信号。
  • 注意力聚合(Attention): 为每个邻居学习一个权重,让模型关注更重要的邻居(如GAT)。
聚合方式 数学表达 反欺诈适用场景 优点 缺点
均值聚合 a_v = (1/|N(v)|) Σ m_u 正常交易模式识别 平滑、稳定 弱化极端异常值
求和聚合 a_v = Σ m_u 团伙规模检测(大量同IP注册) 保留数量信息 对度数敏感,可能被高噪节点淹没
最大池化聚合 a_v = max(m_u) 捕捉单笔异常大额交易 对异常值敏感 丢失多数邻居信息
注意力聚合 a_v = Σ α_u · m_u 区分正常与欺诈邻居 可解释性强 计算复杂度较高

4.3.2 更新函数:如何生成新节点表示

更新函数将聚合后的邻居信息与节点自身特征结合,生成新的节点嵌入。典型的更新公式为:

h_v' = σ( W_self · h_v + W_neigh · a_v + b )

其中:
- h_v:节点v的当前特征
- a_v:聚合后的邻居消息
- W_self, W_neigh:可学习的权重矩阵
- b:偏置项
- σ:非线性激活函数(如ReLU)

在GraphSAGE中,更新函数还支持拼接(Concat)操作,将自身特征和聚合特征拼接后再进行线性变换,增强模型的表达能力:

h_v' = σ( W · CONCAT(h_v, a_v) + b )
实战注意: 在反欺诈场景中,如果欺诈样本极度稀疏(如正负比1:1000),建议在更新函数中保留较强的自身特征权重(即W_self初始化较大),避免模型被大量正常邻居“平均化”而忽略节点自身的异常信号。

4.4 从单层到多层:感受野与过平滑

堆叠多层GNN可以扩大节点的感受野,让节点融合更多跳邻居的信息。但层数过多会导致过平滑(Over-smoothing)问题——所有节点的表示趋于一致,失去区分度。

下图展示了不同层数对节点表示的影响:

GNN层数与感受野关系图 GNN层数与感受野:从局部到全局 1层GNN v 感受野:1跳邻居 2层GNN v 感受野:2跳邻居 3层+(过平滑) v ⚠ 所有节点表示趋同 反欺诈建议:通常使用2~3层GNN,配合残差连接或跳跃连接缓解过平滑
反欺诈实战经验: 在金融反欺诈图谱中,2层GNN通常是最优选择。1层只能看到直接交易对手,3层以上容易引入大量无关节点(如正常用户的远亲),导致模型对欺诈信号的敏感度下降。对于需要检测长距离团伙关联的场景(如洗钱链条),建议使用GraphSAGE的LSTM聚合器或GAT的注意力机制来选择性保留重要路径信息。

4.5 本章小结

  • 传统图算法 vs GNN: 传统方法只利用结构,GNN同时利用结构和节点特征,更适合反欺诈中的属性异常检测。
  • 消息传递三步骤: 消息生成(邻居特征变换)→ 消息聚合(融合邻居信息)→ 节点更新(结合自身特征)。
  • 聚合函数选择: 求和聚合适合团伙规模检测,最大池化适合捕捉极端异常,注意力聚合适合区分正常与欺诈邻居。
  • 层数控制: 2~3层为反欺诈黄金层数,过深会导致过平滑,降低模型区分度。