4. 图神经网络入门

在欺诈节点分类任务中,节点并非孤立样本:一个账户是否可疑,往往取决于它与哪些账户发生转账、共享设备或共用IP。图神经网络(GNN)之所以有效,正是因为它把这种“邻居证据”编码进节点表示。理解GNN,关键不是记住某个公式,而是抓住一条主线:消息传递。本节围绕消息传递、聚合更新,以及GCN、GraphSAGE、GAT三种经典模型展开,帮助你建立可落地的直觉。

一、核心原理:消息传递与聚合更新

GNN的每一层都可以拆成两个动作:消息生成与聚合更新。对目标节点v,它的每个邻居u先产生一条消息,通常由邻居特征与边特征共同决定;随后v把所有邻居消息聚合为一个向量;最后将聚合结果与v自身上一层的表示结合,经过线性变换和非线性激活,得到v的新表示。

用统一形式可写为:

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

其中N(v)是v的邻居集合,e_uv为边特征。AGGREGATE必须对邻居顺序不敏感,因为图中邻居没有天然次序;UPDATE则决定保留多少自身信息、吸收多少邻居信息。堆叠L层后,节点表示可感知L跳邻域,这正是GNN能捕捉欺诈团伙、资金环路等结构信号的原因。

关键直觉:一层GNN让节点“听到”直接邻居;两层让邻居的邻居也间接传入。欺诈检测中,两到三层通常已能覆盖多数团伙结构,层数过深反而会引入过平滑与噪声。

二、方法流程:从GCN到GraphSAGE再到GAT

三种模型共享消息传递框架,差异集中在“如何聚合”和“如何加权”。

  • GCN:使用对称归一化的邻接矩阵进行加权平均,聚合权重由节点度决定。它简单高效,适合同配性强的图,即欺诈节点倾向连接欺诈节点。
  • GraphSAGE:不依赖全图拉普拉斯,而是对每个节点采样固定数量邻居,再选择均值、池化或LSTM等聚合器。它支持归纳学习,新账户加入后无需重新训练即可推理。
  • GAT:引入注意力机制,为不同邻居学习不同权重。对于欺诈场景,这意味着“高风险的强关联邻居”比“偶然同设备的正常邻居”获得更大影响。

以GraphSAGE的均值聚合为例,单层前向可简化为:

h_N(v) = mean({ ReLU(W · h_u) | u ∈ sample(N(v), k) })
h_v' = ReLU( W_self · h_v + W_neigh · h_N(v) )

训练时通常采用小批量节点采样与负采样,损失函数可用交叉熵。欺诈标签往往极度不平衡,因此评估不能只看准确率,应重点关注召回率、F1与AUC。

模型聚合方式是否归纳适用场景主要风险
GCN度归一化加权平均否(全图训练)同配性强、图规模适中新节点需重训,深层层间平滑
GraphSAGE采样后均值/池化/LSTM是动态增长、大图、新账户多采样方差大,邻居数需调参
GAT注意力加权求和是邻居重要性差异明显注意力易过拟合,计算开销较高

三、案例场景:欺诈节点分类中的消息传递

假设我们要判断一个支付账户是否为欺诈节点。它的邻居包括:频繁转账的可疑账户、共享设备的正常账户、以及少量已确认欺诈账户。GCN会把所有邻居按度平均,可能稀释高风险信号;GraphSAGE通过采样和聚合器,能在新账户出现时快速给出表示;GAT则可为已确认欺诈邻居分配更高注意力权重,从而放大风险证据。

一个典型的训练配置如下:

模型: GraphSAGE
隐藏维度: 64
层数: 2
邻居采样: [10, 5]
聚合器: mean
学习率: 0.005
dropout: 0.3
损失: BCEWithLogitsLoss(带类别权重)
评估: AUC, Recall@TopK, F1

在真实系统中,通常先用GCN或GraphSAGE快速建立基线,再尝试GAT提升对关键邻居的区分能力。若图规模很大,可先做子图采样或采用邻居采样训练,避免全图前向带来的显存压力。

四、误区与复盘

常见误区一:层数越多越好。层数增加会扩大感受野,但也可能把无关远邻信息混入,导致过平滑。欺诈检测中,2至3层往往足够,需通过验证集确定。
常见误区二:忽略边方向与时间。资金流、登录行为具有方向性和时序性。若把有向边当无向边处理,会丢失“谁向谁转账”的关键证据。可引入有向消息传递或时间编码。
复盘建议:先检查图构建是否合理(节点定义、边定义、特征归一化),再比较GCN、GraphSAGE、GAT在验证集上的AUC与召回率。若GAT提升不明显,优先排查标签泄漏、邻居采样偏差与类别不平衡,而不是盲目加深网络。

掌握消息传递与聚合更新后,你已经具备阅读和实现主流GNN的基础。后续在欺诈节点分类中,还需结合阈值优化,把模型输出的概率转化为可执行的业务决策。