4. 图神经网络入门
在链路预测与隐蔽欺诈关系识别任务中,图神经网络(GNN)之所以有效,核心在于它能够把“节点自身的特征”和“邻居节点传递来的信息”结合起来,学习出既包含属性语义、又包含结构语义的节点表示。本章围绕三种最常用的图神经网络——GCN、GraphSAGE、GAT,讲清它们的基本原理、消息传递机制以及在实际建模中的差异。
一、统一视角:消息传递机制
绝大多数GNN都可以用“消息传递”框架来描述。对图中每个节点,每一层更新大致分为三步:
- 消息生成:每个邻居节点根据自身特征生成一条消息,通常形式为
W·h_u。 - 消息聚合:中心节点收集所有邻居的消息,使用求和、平均、最大池化或注意力加权等方式聚合成一个向量。
- 节点更新:将聚合结果与中心节点自身表示结合,经过线性变换与非线性激活,得到新一层的节点表示。
用公式概括,第 l+1 层节点 v 的表示为:
h_v^(l+1) = σ( W · AGG({ h_u^(l) : u ∈ N(v) }) + B · h_v^(l) )
其中 N(v) 是邻居集合,AGG 是聚合函数,σ 是激活函数。不同GNN的差异,本质上就是聚合方式和是否保留自环、是否区分邻居权重的不同。
二、GCN:基于谱图卷积的归一化平均
GCN(Graph Convolutional Network)把图卷积近似为“邻居特征加权平均”。它通常写作:
H^(l+1) = σ( D̃^(-1/2) Ã D̃^(-1/2) H^(l) W^(l) )
其中 Ã = A + I 表示加入自环后的邻接矩阵,D̃ 是 Ã 的度矩阵。加入自环意味着中心节点在聚合时也会保留自身信息;归一化则避免高度数节点在聚合后数值过大。
GCN的优点是结构简单、参数少、训练稳定,适合作为链路预测的强基线。但它有两个明显限制:一是需要知道整张图的邻接矩阵,属于全图训练;二是所有邻居权重由度决定,无法区分“重要邻居”和“噪声邻居”。在欺诈关系识别中,欺诈者常通过大量正常交易伪装自己,GCN的平均聚合容易把异常信号稀释。
三、GraphSAGE:采样与多种聚合器
GraphSAGE的核心思想是“归纳式学习”:不为每个节点学习独立嵌入,而是学习一个聚合函数,因此可以泛化到训练时未见过的新节点。它的流程是:
- 对每个中心节点,随机采样固定数量的邻居,控制计算量。
- 对采样邻居的特征做聚合,常用聚合器包括均值、LSTM、最大池化。
- 将聚合结果与中心节点表示拼接,再经过线性层和激活函数。
- 通过多层堆叠扩大感受野,得到最终节点表示。
# GraphSAGE 单层聚合示意
h_neigh = mean_pool({ ReLU(W_neigh · h_u + b) : u ∈ sample(N(v)) })
h_v = ReLU( W_self · concat(h_v, h_neigh) + b )
在链路预测中,GraphSAGE的采样机制特别适合大规模交易图:不必每次遍历全部邻居,也能通过邻居采样近似完整聚合。对于新注册用户或新出现的商户节点,GraphSAGE可以直接推理,而GCN通常需要重新训练或做额外处理。
四、GAT:用注意力区分邻居重要性
GAT(Graph Attention Network)在聚合时引入注意力机制,为每个邻居学习一个权重。对中心节点 v 和邻居 u,先计算注意力系数:
e_vu = LeakyReLU( a^T · [ W h_v || W h_u ] )
α_vu = softmax_u( e_vu )
h_v' = σ( Σ_{u ∈ N(v) ∪ {v}} α_vu · W h_u )
与GCN的固定权重不同,GAT的权重由节点特征动态决定。这意味着模型可以自动关注与中心节点更相关的邻居。在欺诈识别中,这一点非常关键:一个账户可能同时与正常商户和可疑商户有交易,GAT能够给可疑商户更高的注意力权重,从而放大风险信号。
GAT通常使用多头注意力,即并行计算多组注意力权重并拼接或平均,以提升稳定性和表达能力。
五、三种模型对比与选型清单
| 维度 | GCN | GraphSAGE | GAT |
|---|---|---|---|
| 聚合方式 | 归一化平均 | 采样后均值/池化/LSTM | 注意力加权求和 |
| 是否归纳式 | 否,偏直推式 | 是 | 是 |
| 邻居权重 | 由度决定,固定 | 聚合器决定,较固定 | 由特征动态学习 |
| 计算复杂度 | 低 | 中,可采样控制 | 较高,多头更明显 |
| 链路预测适用场景 | 中小规模、结构均匀 | 大规模、动态新增节点 | 邻居异质、需区分重要性 |
六、案例场景:交易图中的可疑链路
假设我们有一张用户—商户交易图,节点是用户和商户,边表示交易关系。目标是预测“用户与商户之间是否存在隐蔽欺诈关系”。
- GCN视角:把用户和商户的特征(注册时长、交易金额、频次)与邻居平均后更新表示,再对用户—商户节点对做内积或MLP打分。
- GraphSAGE视角:对每个用户采样部分交易邻居,学习聚合函数,使新注册用户也能快速得到表示。
- GAT视角:让用户节点在聚合时自动关注那些交易金额异常、时间集中的商户邻居,从而突出欺诈链路。
在链路预测中,通常把节点表示 h_u 和 h_v 拼接后送入分类器,或直接计算相似度:
score(u, v) = σ( MLP( [h_u || h_v] ) )
# 或
score(u, v) = σ( h_u^T · h_v )
七、常见误区与复盘
复盘时建议检查三点:聚合方式是否匹配邻居异质性;是否处理了自环与度归一化;评估时是否严格隔离了未来边。把这三件事做好,GCN、GraphSAGE、GAT才能在隐蔽欺诈关系识别中稳定发挥作用。