反欺诈与图谱技术概述

做反欺诈这件事,说白了就是在跟一群高智商对手赛跑。他们手里有海量的虚假身份、团伙设备、层层嵌套的资金链路。我刚开始做风控那两年,靠的是规则引擎加黑名单,后来发现——根本防不住。

为什么?因为单点数据只能看到一个账号、一台设备、一笔交易。可欺诈从来不是一个人干的。于是图谱技术进来了,把散落的点连成网。这一章,咱们先把底层的逻辑理清楚。

欺诈场景分类

你至少得知道敌人长什么样,才能动手。我习惯把欺诈场景分成三大类:

场景典型特征图谱能干什么
身份冒用同一身份证绑定多个手机号、设备、银行卡通过节点聚合发现冒用团伙
团伙欺诈批量注册、虚假交易、多头借贷、资金闭环利用社群发现算法找出团伙
渠道作弊刷单、羊毛党、虚假点击、恶意下单通过时间窗口+共现关系识别

千万别只盯着单点特征。一个账号历史行为没问题,但它注册 IP 和被批量封禁的账号是同一个网段,这就值得怀疑。图谱的价值就是把这种「微妙关联」暴露出来。

举个例子。我记得有个现金贷项目,坏账率突然飙升。单看每个借款人的征信报告,分数都不低。但把设备 ID、紧急联系人、单位电话搭成图之后,发现三个看起来不相关的人共享同一个公司座机——伪造公司。这类结构只有图能捕捉到。

图谱在风控中的价值

你想想看,传统风控像用筛子筛沙子,图谱则是用渔网兜底。四个核心价值:

  1. 关联穿透:从已知坏节点出发,沿着边找到隐性的风险传导路径。
  2. 团伙识别:不用预设规则,图算法自动圈出稠密子图。
  3. 特征衍生:节点自身属性和邻居属性结合,生成强区分度的图特征。
  4. 实时决策:离线图计算+在线图查询,毫秒级返回风险分。

个人经验:不要一上来就跑社区发现。先把最简单的「一度关联数量」「两度关联密度」算出来,效果往往超出预期。

我曾经在一个支付反欺诈项目里,只用了「交易对手的数量」和「设备共享指数」两个图特征,就干掉了 70% 的误报。很多时候,简单就是有效。

常见图数据库与图计算框架

工具选不对,后面全白费。我按使用场景把它们分成了四档:

工具定位适用场景我踩过的坑
Neo4j图数据库在线查询、小规模图 (<1000万节点)大图写入慢,别超过单机内存
JanusGraph分布式图数据库百亿级节点,HBase/Cassandra 后端运维成本高,索引设计要谨慎
Spark GraphX图计算框架离线全量图计算、PageRank/联通分量RDD 接口臃肿,早期版本稳定性差
GraphFrames基于 DataFrame 的图库与 Spark SQL 无缝集成对于超大图性能不如 GraphX

嗯,这里要注意:很多团队上来就上 Neo4j,结果数据一膨胀就崩。我的建议是:离线用 Spark GraphX 或 GraphFrames,在线用 Neo4j 或 JanusGraph 做点查。 各司其职。

避坑指南:我曾经在一个百万节点、千万边的项目里,用 Neo4j 直接跑全图标签传播。结果跑了三天没出结果。后来换成 GraphX 的 Pregel 实现,两小时跑完。选工具之前,先问自己:这是在线查询还是离线计算?

另外,图计算框架里还有一个隐藏选项——NetworkX,虽然单机 Python 库,但做原型验证和特征调试特别顺手。我经常用它验证新特征公式,确认无误再迁移到 Spark 上生产。

反欺诈图谱技术概览 身份数据 交易数据 设备 & 行为数据 实体对齐 → 关系抽取 → 图谱构建 社区发现 路径分析 中心度 / 传播 图特征衍生(度数、模体、邻居熵等) 风险评分 / 团伙预警 / 拦截 离线:Spark/GraphX 在线:Neo4j/JanusGraph

上面这张图把整个链条串起来了。从原始数据到图谱构建,再到图计算和特征产出,最后落到决策。每个环节都有对应的工具,后面几章咱们会详细拆开讲。

反欺诈图谱的落地,不是单点突破,而是系统工程。先把思维从「单点特征」切换到「关系特征」,再用合适的工具把想法变成代码。这一章的点就到这里。