3. 图神经网络入门

在金融风控、反欺诈、关联交易识别等场景中,数据天然以图的形式存在:账户是节点,转账是边,担保关系是边,股权控制也是边。传统神经网络要求输入是规则网格(如图像)或序列(如文本),无法直接处理这种不规则、邻居数量不固定的结构。图神经网络(GNN)正是为解决这一问题而生。本节围绕图卷积、消息传递、聚合更新三条主线,讲清GCN、GraphSAGE、GAT的核心思想,为后续节点分类与关系预测实战打基础。

一、核心原理:图卷积与消息传递

图卷积的本质,是让每个节点从它的邻居那里“收集信息”,再与自身信息融合,从而学到包含局部结构语义的表示。这一过程被统一抽象为消息传递(Message Passing)框架,可拆成三步:

  1. 消息生成:对每条边,把源节点特征经过一个变换函数,生成要发送的消息。
  2. 消息聚合:目标节点把来自所有邻居的消息,用某种置换不变的操作(求和、均值、最大池化)合并成一个向量。
  3. 更新:把聚合结果与目标节点自身表示结合,经非线性激活,得到该节点的新表示。

用公式表达,第 k 层节点 v 的更新为:

m_v^(k) = AGGREGATE( { MESSAGE(h_u^(k-1), h_v^(k-1), e_uv) | u ∈ N(v) } )
h_v^(k) = UPDATE( h_v^(k-1), m_v^(k) )

其中 N(v) 是 v 的邻居集合,e_uv 是边特征。堆叠 K 层,节点就能感知到 K 跳范围内的结构信息。这正是GNN能捕捉“资金经过多层账户流转”这类多跳关系的原理。

消息传递:邻居 → 聚合 → 更新 u1 u2 u3 消息 AGGREGATE sum / mean / max UPDATE + 自身特征 v 新表示 h_v

二、方法流程:三类经典GNN的差异

不同GNN的差别,主要在于“消息怎么算、聚合怎么做、权重是否随邻居变化”。下表对比三种核心模型:

模型聚合方式权重特点核心思想
GCN归一化加权求和固定,由度矩阵决定谱图卷积一阶近似,全图统一卷积核
GraphSAGE采样后聚合(mean/pool/LSTM)可学习,与邻居无关归纳式学习,支持新节点
GAT注意力加权求和注意力系数,逐边动态邻居重要性自适应分配

GCN把图卷积简化为对邻居特征的加权平均,权重由节点度数归一化得到,公式为 H^(k) = σ(D̃^(-1/2) Ã D̃^(-1/2) H^(k-1) W^(k))。它简单高效,但要求训练时整张图可见,属于直推式学习。

GraphSAGE的关键创新是“采样+聚合”:对每个节点只随机采样固定数量的邻居,再聚合。这样既降低计算量,又让模型学到的是“如何聚合”的函数,而非绑定具体节点,因此能泛化到训练时没见过的新节点,适合金融场景中不断新增的账户。

GAT引入注意力机制,为每条边学习一个权重 α_uv,表示邻居 u 对 v 的重要程度。在反欺诈中,这意味着模型可以自动给“大额高频转账”的邻居更高权重,而忽略噪声邻居。

三、金融场景案例:账户节点分类

假设我们要判断一批企业账户是否为高风险账户。每个节点特征包括:注册资本、近30天交易笔数、平均交易金额、行业类别等;边表示转账关系。流程如下:

  1. 构建图:账户为节点,转账为边,边权可用交易金额或频次。
  2. 特征工程:节点特征标准化,边特征归一化。
  3. 模型选择:若图规模大且持续新增节点,优先GraphSAGE;若需解释邻居重要性,选GAT。
  4. 训练:用已知标签账户做监督,损失函数用交叉熵。
  5. 推理:输出每个账户的风险概率,用于人工复核或自动拦截。
在金融图中,边往往带有方向和时间戳。建议把“转账方向”和“时间衰减”编码进边特征,否则会丢失关键的风控信号。

四、误区与复盘

  • 误区一:层数越多越好。堆叠过多层会导致过平滑,所有节点表示趋同。金融图通常2~3层足够,因为风险传播往往在有限跳数内。
  • 误区二:忽略邻居采样。在超大图上直接全邻居聚合会显存爆炸,GraphSAGE的采样策略是必备工程手段。
  • 误区三:把GNN当万能。如果图中孤立节点多、边稀疏,GNN效果可能不如XGBoost。应先做图结构诊断。
  • 复盘要点:检查度分布是否长尾、是否存在大量自环、标签是否泄漏。这些都会直接影响节点分类与关系预测的可靠性。
掌握消息传递这一统一视角后,GCN、GraphSAGE、GAT只是聚合函数与权重策略的不同组合。理解这一点,后续实战中无论换用哪种模型,都能快速定位其适用边界与调参重点。