2、反欺诈场景分析:常见欺诈类型、特征工程挑战、分箱技术概述
做反欺诈这么多年,我见过太多花样翻新的攻击手法。说实话,面对每天千万级的交易流水,光靠规则引擎早就扛不住了。这一节咱们重点聊聊反欺诈的几种典型场景、特征工程里那些坑,以及分箱技术为什么能成为调优的利器。
2.1 常见欺诈类型——你碰到的多半是这几类
我整理了三类出现频率最高的欺诈场景,每一类我都踩过坑。
核心观点:理解欺诈类型是特征工程的前提。你连对手怎么出招都不知道,还调什么特征?
- 账户盗用(Account Takeover,简称 ATO)
黑客通过撞库或钓鱼拿到用户密码,然后批量登录、改绑手机、疯狂消费。我记得有个项目上线第一天就被 ATO 团伙盯上,特征全被绕过了。后来我们加上了登录设备指纹 + 行为时序特征,才勉强拦住。 - 申请欺诈(Application Fraud)
用假身份、盗用他人证件申请贷款或信用卡。这类欺诈的特征极度稀疏——正常用户几百个字段都是真实的,欺诈者只有几个字段是伪造的。说白了就是长尾中的长尾。 - 交易欺诈(Transaction Fraud)
已盗用的账户进行虚假交易,比如分多笔小额刷单、跨境套利、虚假退货。这类场景最大的麻烦是时间窗口短,通常几秒内就得决策,来不及跑复杂的图算法。
2.2 特征工程挑战——为什么你调了半天分箱效果还是差
很多同学问我:“为什么我做了几十个特征,AUC 就是上不去?” 我通常先反问一句:你做过分箱吗?对方往往一脸懵。其实特征工程在反欺诈场景下面临三个硬骨头:
避坑指南:我曾经在一个信贷项目里,一口气生成了 200 多个衍生特征,结果分箱后所有特征都是“等宽分箱”——把一个长尾分布的特征硬切成 10 段,除了第一段,其他段全是空的。整整浪费了两周。
| 挑战 | 说明 | 我的处理思路 |
|---|---|---|
| 数据极度不平衡 | 欺诈样本通常不到万分之五 | 分箱时不能用全局等频,得结合 WOE 或卡方离散化 |
| 特征稀疏 / 大量缺失 | 几十个特征里超过 80% 是空值或常数 | 用分箱把缺失值单独作为一箱,保留信息 |
| 时序漂移 + 概念漂移 | 欺诈手法会变化,今天有效的分箱窗口明天就废了 | 分箱边界要做动态更新,不能一劳永逸 |
2.3 分箱技术概述——从粗放到精细,怎么选
分箱说白了就是把连续数值切段,或者把一大堆离散值合并成几组。但具体用哪种,我建议你先问自己三个问题:
- 特征分布是否长尾? → 选 等频分箱 或 卡方分箱
- 业务上是否有硬边界? → 用 自定义分箱(比如金额 1000 以上是高风险)
- 分箱后要不要解释性? → 优先 最优分箱(决策树锚点)
我把常用的分箱方法对比整理在下面,你自己看:
| 方法 | 核心思想 | 优点 | 缺点 |
|---|---|---|---|
| 等宽分箱 | 将特征值等间隔分段 | 实现简单,计算快 | 长尾分布下大多数箱子为空 |
| 等频分箱 | 每箱包含相同数量样本 | 箱子不空,对异常值鲁棒 | 无法区分正负样本的分布差异 |
| 卡方分箱 | 基于卡方检验合并相邻区间 | 自动寻找最佳分裂点,减少过拟合 | 需要预分箱,计算成本稍高 |
| 最优分箱(决策树) | 用单棵决策树学习分裂点 | 通常 AUC 提升最明显 | 容易过拟合,需要剪枝或交叉验证 |
注意:千万别在训练集上做完分箱后直接用同一套边界去预测线上数据。我踩过这个坑——测试集分布变了,分箱边界完全失效,模型 AUC 直接掉了 0.15。解决方案是:用滑动窗口做分箱,或者至少每个月重新校准一次边界。
我个人习惯的做法是:先用等频分箱做雏形,然后结合 WOE 和 IV 筛选出重要特征,最后对 top K 特征做卡方或最优分箱。这样既快又稳。
看到这个流程你可能会问:为什么特征衍生之后不直接进模型,非要插一个分箱?我自己在几个项目里的实测是——分箱能大幅降低特征稀疏度,尤其是当特征取值多达几万种时,直接 one-hot 会导致内存爆炸,而分箱后可能只有几十个 bin。另外,分箱后的特征对 GraphSAGE 的邻居采样也更友好,因为离散化后的特征可以直接用于聚合运算,不需要嵌入层做额外的映射。
一句话总结: 反欺诈的特征工程里,分箱不是“可选项”,而是“加速器”。它帮你在不牺牲太多信息的前提下,把原始特征压缩成适合图神经网络输入的离散化特征。后面几节我们会具体拿 GraphSAGE 跑一遍,你就能感受到效果了。