这套系统只干两件事:机器先判一遍,判不准的派给人看,人看完的结论回流成下一轮规则的依据。下面分四部分——谁在操作、产品由哪些模块构成、评分卡怎么配怎么算、我方复刻还缺什么。
第一部分
四条流构成一个闭环:机器判 → 人补判 → 争议兜底 → 策略回调。
| 类别 | 打分? | 干什么 |
|---|---|---|
| 评分类 | 打分 | 命中加减分,组成评分卡(见第三部分) |
| 一票定案类 | 不打分 | 命中直接出结论;自带测试 / 生产开关 |
| 数据加工类 | 不打分 | 打分前准备数据 |
| 动作类 | 不打分 | 派队列、写名单、发邮件、出文书、发起扣款 |
| 流程控制类 | 不打分 | 调用另一张评分卡、中途结算分数 |
跨客户共享的黑名单(ARID)被刻意限定为只能加分、不能一票定案:别家客户标记的数据,误判率不受自己控制。
对照我方:我们现在人工下载材料、去 Provider 端手动提交,等于 Accertify 三种投递方式中的「人工上传」,这一步不落后。差距在投递之前的自动填充与组装,这是最小增量的演进方向。
第二部分
十二个模块,分四层。前三层是业务链路,第四层横切支撑。
把不同来源、不同格式的交易统一成一张可供判断的宽表。两条通道:实时同步返回、批量事后处理。
虚拟表 · 掩码 · 导入器补充本方没有的信息。地理位置校验、信用卡验证、设备指纹、邮箱画像、高危地址库。按调用计费。
Service 规则 · Billing Event记住已知的坏人与好人。负面表拦截、正面表放行;另有跨客户共享的情报库,但只影响分数,不单独定生死。
负面表 · 正面表 · ARID 共享库系统的心脏。三类能力平级存在:判断(比大小、查名单、算频次)、加工(补字段、拼派生列)、动作(派队列、写名单、发信、出文书、发起支付)。
规则 · 规则集把一堆命中结果压成一个可排序的数字,再切成三档:自动通过、人工复核、自动拒绝。
分值 · 阈值 · 建议某些结论不需要算分。白名单会员直接放、命中某条硬规则直接拒。命中即定案,绕过评分,且自带测试/生产开关。
Policy 规则 · Test/Production用跨商户的正负样本训练出的概率分,作为一列数据参与规则判断——模型不直接做决定,只提供输入。
Accertify Index · 模型概率决定哪些单给谁看、按什么顺序。支持按业务维度分组、自定义筛选并保存视图、认领与归还、跟进队列。
队列 · 认领 · followup坐席看单和下结论的地方。面板化组织,布局按团队可配——不同角色看到的字段可以不同。
交易详情 · Rules Tripped 面板争议的全生命周期。独立的表与队列、与原始订单关联、批量处理关联争议、应诉文书自动填充与组装投递。
拒付表 · 原单关联 · 文书三件套每条规则命中了多少次、误杀多少、漏放多少。这是权重能被科学调整的前提。
规则命中报表 · 误杀/漏放上线前用真实交易验、沙箱跑、历史数据回溯;改动要审批、留版本;所有对象挂在租户层级树上,决定作用范围、权限与计费。
沙箱 · 审批流 · 层级树第三部分
打个比方:给一笔交易打「可疑分」,就像老师批卷子。因子是一道道题,评分卡是试卷,分数线决定放行、人工还是拒绝。
| 类别 | 问的是什么 | 例子 |
|---|---|---|
| 比大小 | 某个值是否越界 | 金额 > $500;账单国 ≠ 收货国 |
| 查名单 | 在不在黑 / 白名单里 | 这个 IP 在黑名单里;这个会员在白名单里 |
| 算频次 | 一段时间内发生了几次、累计多少 | 同一张卡 24 小时刷了几次;同一 IP 一天换了几张卡 |
| 查表 | 按取值落在哪一档 | 国家属于哪个风险等级;金额落在哪个区间 |
「算频次」最值钱:单看一笔看不出问题,放到时间线上才露馅。比如同一个手机号注册了 5 个账户,每个账户单独看都正常。
名单里每条记录都带一个 1–9 的置信度,表示有多确定它是坏的:人工确认的欺诈者标 9,系统自动拉黑、还没人核实的标低一点。置信度不参与乘法,每个档位算一个独立因子,各配各的分(例如「黑名单 · 置信度 9」+3,000,「黑名单 · 置信度 5」+1,000)。这样系统自己猜的和人确认过的,不会被同等对待。
| 顺序 | 因子 | 命中加减分 | 命中后 |
|---|---|---|---|
| 10 | 白名单会员 | — | 直接放行,后面不再检查 |
| 20 | 高风险国家 | +500 | 继续 |
| 30 | IP 在黑名单(置信度 9) | +3,000 | 跳到第 60 项 |
| 40 | 同卡 24 小时刷超 3 次 | +800 | 继续 |
| 50 | 老客户(注册超 2 年) | −1,000 | 继续 |
| 60 | 结束 | — | — |
顺序号按 10 递增,方便以后往中间插新因子。
如果只是加减,先算后算结果一样。顺序起作用,是因为每一项可以决定后面还要不要继续检查:
因为同一个风险点,在不同业务里严重程度不一样。「账单国 ≠ 收货国」在跨境电商里很常见,给 100 分就够;在本地钱包充值里就很可疑,该给 2,000 分。一个因子可以放进多张评分卡,每张配不同的分。调分数只动评分卡。
| 起步分 | 35,000 | 每笔都有。定得高,是为了减分再多也不会变负数 |
| 高风险国家 | +500 | 固定分:命中就加这么多 |
| IP 在黑名单 | +3,000 | 固定分 |
| 同卡刷了很多次 | +2,766 | 变量分:次数越多,分越高 |
| 金额档 | +3,000 | 按档给分:$2,000 落在最高档 |
| 合计 | 44,266 | → 自动拒绝 |
想表达「两个因子同时出现才特别危险」(比如大额 + 高风险国家)?加减做不到相乘,只能把两个因子合成一个新因子 AU|大额 单独配分,或者写脚本。
好比「作弊直接零分」,卷面得多少分都不看。这类因子还带一个测试 / 生产开关:先在测试状态下观察,确认没问题再切到生产才真正生效。
所以系统里同时有三种判断方式:模型给概率、评分卡给分数、一票定案的因子直接给结论,各管各的场景。
| 想做的事 | 能不能做 | 怎么做 |
|---|---|---|
| 单个因子配分 | 直接能做 | 国家 → 分数,查表即可 |
| 一段时间内的次数、金额 | 直接能做 | 频次因子,时间窗从分钟到天可配 |
| 金额分 10 档 | 能,但麻烦 | 每档算一个因子,要配 10 个 |
| 两个因子交叉 | 能,但要绕 | 先合成一个新因子,再配分 |
| 更复杂的组合逻辑 | 要写代码 | 写脚本(Groovy / SQL) |
| 一键批量调所有分数 | 不能 | 每个因子在各自的评分卡里单独改 |
这也解释了为什么只做加减:统计模型算出来的本来就是「每个因子各占多少分」,和银行信贷的评分卡是同一个思路。
第四部分
以 Accertify 为标尺对照我方:因子库和回溯验证已有,其余六块需要新建。
| # | 模块 | 干什么 | 我方现状 |
|---|---|---|---|
| ① | 因子库 | 定义要检查的风险点 | ✅ 已有,部分上线,后续补齐 |
| ② | 评分卡配置 | 把因子组装成评分卡 | ❌ 没有 |
| ③ | 执行与分档 | 算总分、按分数线出结果 | ❌ 没有 |
| ④ | 命中明细留痕 | 每笔交易记下命中了什么、各几分 | ❌ 没有 |
| ⑤ | 好坏标签回流 | 交易最终是好单还是坏单 | ❌ 没有 |
| ⑥ | 定分支持 | 给策略同学算分值的数据和工具 | ❌ 没有 |
| ⑦ | 回溯验证 | 改动上线前看效果 | ✅ 已有,复用灰度平台 |
| ⑧ | 变更治理 | 版本、审批、回滚 | ❌ 没有 |
| 阶段 | 做什么 | 目标 |
|---|---|---|
| P0 | ② 评分卡配置、③ 执行与分档、④ 命中明细留痕 | 先跑起来,用专家拍的分 |
| P1 | ⑤ 标签回流;评分卡接入 ⑦ 灰度平台 | 能验证分值好不好 |
| P2 | ⑥ 定分支持 | 分值从拍脑袋变成统计得出 |
| P3 | ⑧ 变更治理;③ 的二期能力 | 规模化后的可维护性 |