风控是金融行业里AI最硬的战场。欺诈团伙专业分工、迭代极快今天上线的规则下月就可能被绕过。传统风控靠规则评分卡打天下但面对团伙作案——几十台设备共用几个WiFi、批量注册的账号互相转账——单点特征看不出问题必须把视角拉到关系网络上这正是图神经网络GNN的主场。本文结合实战经验聊聊GNN反欺诈的建模思路和系统架构。为什么反欺诈需要图看两个真实场景。场景一羊毛党集群。一批账号注册时间集中在凌晨2~4点设备指纹相似绑定的银行卡开户行相同。单看每个账号行为都正常连成图之后它们构成高密度子图一眼可辨。场景二洗钱链路。资金A→B→C→D快速流转每一跳金额都低于大额监控线。单点模型看每笔交易都没问题图算法看整条路径就是分层转移。图建模的核心是把实体用户、设备、银行卡、IP、手机号、商户作为节点把关系登录、绑定、转账、收货地址相同作为边。欺诈信号往往藏在邻居的结构里而不是节点自身的属性里。GNN模型选型工业界常用的几类GNN各有适用场景| 模型 | 核心机制 | 优势 | 局限 | |------|----------|------|------| | GCN | 邻居平均聚合 | 简单稳定 | 邻居权重不可学 | | GraphSAGE | 采样聚合函数 | 归纳式推理、新节点友好 | 异构图需改造 | | GAT | 注意力加权邻居 | 重要邻居权重大 | 大图训练显存吃紧 | | R-GCN / HGT | 关系类型感知 | 天然适合异构图 | 实现复杂度高 |反欺诈场景基本都是异构图多种节点、多种边实践里常用两个方案一是GraphSAGE边类型embedding做轻量化改造二是直接上HGTHeterogeneous Graph Transformer。数据量小于千万级边时前者性价比更高。类别不平衡是另一个硬问题欺诈样本占比通常不到0.1%。常用组合拳是Focal Loss加欺诈类过采样评估指标看AUC-PR而不是AUC-ROC业务上更关心Top千分之一风险分的召回率。代码示例PyG版GraphSAGE欺诈检测import torch import torch.nn.functional as F from torch_geometric.nn import SAGEConv class FraudSAGE(torch.nn.Module): def __init__(self, in_dim, hidden64): super().__init__() self.conv1 SAGEConv(in_dim, hidden) self.conv2 SAGEConv(hidden, hidden) self.head torch.nn.Linear(hidden, 2) def forward(self, x, edge_index): h F.relu(self.conv1(x, edge_index)) h F.dropout(h, p0.3, trainingself.training) h self.conv2(h, edge_index) return self.head(h) # focal loss缓解正负样本 1:1000 的极端不平衡 def focal_loss(logits, y, gamma2.0, alpha0.95): ce F.cross_entropy(logits, y, reductionnone) pt torch.exp(-ce) w torch.where(y 1, alpha, 1 - alpha) return (w * (1 - pt) ** gamma * ce).mean() model FraudSAGE(in_dim128) opt torch.optim.Adam(model.parameters(), lr1e-3, weight_decay5e-4) # data: PyG Data 对象含 x / edge_index / y / train_mask for epoch in range(100): model.train() opt.zero_grad() out model(data.x, data.edge_index) loss focal_loss(out[data.train_mask], data.y[data.train_mask]) loss.backward() opt.step()两个落地细节一邻居采样要限制fan-out比如每层采25个否则超级节点大商户、公共WiFi会让计算爆炸二图中的标签泄漏很常见——把交易发生后才知道的信息编码进特征离线AUC漂亮上线就废。实时反欺诈系统架构模型再好批处理跑T1也拦不住正在发生的盗刷。一套实时系统的典型分层流计算层Kafka接交易事件Flink做窗口聚合算出近10分钟同IP注册数该卡近1小时交易金额这类流式特征特征平台离线特征T1和实时特征秒级统一走Feature Store保证训练/推理一致性这是线上事故的高发区图服务层图数据库Neo4j、NebulaGraph或自研维护实时关系提供k度邻居查询延迟要求毫秒级决策层规则引擎做硬拦截黑名单直接拒GNN模型给风险分风险分再进策略路由——高分拒绝、中分走人审或短信验证、低分放行。实时场景下GNN推理有个取巧做法不全图跑模型只对交易相关的ego subgraph2~3跳邻居做前向计算配合GPU批量推理P99延迟可以压到50ms以内。总结与展望G