反欺诈与图谱技术概述
做反欺诈这件事,说白了就是在跟一群高智商对手赛跑。他们手里有海量的虚假身份、团伙设备、层层嵌套的资金链路。我刚开始做风控那两年,靠的是规则引擎加黑名单,后来发现——根本防不住。
为什么?因为单点数据只能看到一个账号、一台设备、一笔交易。可欺诈从来不是一个人干的。于是图谱技术进来了,把散落的点连成网。这一章,咱们先把底层的逻辑理清楚。
欺诈场景分类
你至少得知道敌人长什么样,才能动手。我习惯把欺诈场景分成三大类:
| 场景 | 典型特征 | 图谱能干什么 |
|---|---|---|
| 身份冒用 | 同一身份证绑定多个手机号、设备、银行卡 | 通过节点聚合发现冒用团伙 |
| 团伙欺诈 | 批量注册、虚假交易、多头借贷、资金闭环 | 利用社群发现算法找出团伙 |
| 渠道作弊 | 刷单、羊毛党、虚假点击、恶意下单 | 通过时间窗口+共现关系识别 |
千万别只盯着单点特征。一个账号历史行为没问题,但它注册 IP 和被批量封禁的账号是同一个网段,这就值得怀疑。图谱的价值就是把这种「微妙关联」暴露出来。
举个例子。我记得有个现金贷项目,坏账率突然飙升。单看每个借款人的征信报告,分数都不低。但把设备 ID、紧急联系人、单位电话搭成图之后,发现三个看起来不相关的人共享同一个公司座机——伪造公司。这类结构只有图能捕捉到。
图谱在风控中的价值
你想想看,传统风控像用筛子筛沙子,图谱则是用渔网兜底。四个核心价值:
- 关联穿透:从已知坏节点出发,沿着边找到隐性的风险传导路径。
- 团伙识别:不用预设规则,图算法自动圈出稠密子图。
- 特征衍生:节点自身属性和邻居属性结合,生成强区分度的图特征。
- 实时决策:离线图计算+在线图查询,毫秒级返回风险分。
个人经验:不要一上来就跑社区发现。先把最简单的「一度关联数量」「两度关联密度」算出来,效果往往超出预期。
我曾经在一个支付反欺诈项目里,只用了「交易对手的数量」和「设备共享指数」两个图特征,就干掉了 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 上生产。
上面这张图把整个链条串起来了。从原始数据到图谱构建,再到图计算和特征产出,最后落到决策。每个环节都有对应的工具,后面几章咱们会详细拆开讲。
反欺诈图谱的落地,不是单点突破,而是系统工程。先把思维从「单点特征」切换到「关系特征」,再用合适的工具把想法变成代码。这一章的点就到这里。