设计原则

设计风控系统时踩过的坑,让我总结出几条可以复用到其他系统的原则。

1. 证据优先

原则

没有证据的判断都是猜测。

实践

风控判断依赖数据采集层。没有统一风险事件模型,规则和模型都只是猜测。先采集用户、设备、网络、行为和业务事件,再谈判断。证据要结构化、可关联、可追踪,让规则、模型、审计和回放共用同一份数据。

2. 分级处置

原则

处置动作要分级,而不是只有"放行"和"拒绝"。

实践

风控动作包括放行、二次验证、限速、冻结权益、人工审核、拒绝。动作越重,误伤成本越高。规则设计应该按风险等级分级处置,而不是所有命中都一刀切。同样的风险分在不同场景(登录 vs 支付)含义不同,阈值要按场景配置。

3. 规则与模型协同

原则

规则和模型不是替代关系,是互补关系。

实践

规则擅长处理已知、可解释、需要快速响应的风险;模型擅长发现隐蔽、低频、绕规则的异常。成熟系统同时使用两者:规则负责强确定性风险,模型负责综合评分,名单负责快速命中,人工审核负责边界样本。

4. 名单要过期

原则

黑名单不是永久判刑,要能恢复。

实践

IP、设备、地址这类实体可能被正常用户复用,永久黑名单非常危险。名单必须记录来源、风险等级、生效和过期时间,支持申诉和撤销。关系扩散要控制边界(关联层数限制、风险衰减),否则一个共享网络会牵连大量正常用户。

5. 误伤要回流

原则

误伤和漏放都要进入反馈闭环。

实践

如果误杀用户没有回流到训练数据,模型会越来越偏;如果攻击样本没有及时标注,模型会对新作弊方式反应迟钝。申诉、人工审核、退款、投诉都要成为训练标签来源。只看拦截率会诱导系统变得过于激进,真正好的风控是降低损失、控制误伤。

6. 在线离线分离

原则

实时判断要快,复杂分析放离线。

实践

在线链路关注毫秒级延迟和稳定性,只做特征查询、规则命中和轻量模型打分,不能塞入过重逻辑。离线链路关注数据完整性和可回溯性,负责训练模型、分析攻击、评估策略。在线要有超时降级,离线要做完整回溯。

7. 可解释与可追踪

原则

每一次处置都要能解释、能追踪、能复盘。

实践

风控服务返回的不只是 true/false,而是动作 + 原因 + decision_id。用户申诉、客服查询、策略复盘都要靠 decision_id 追踪命中了哪些规则、模型分是多少、使用了哪些特征。可解释性同时服务于用户体验(申诉)和策略治理(灰度与回滚)。

8. 故障时按场景降级

原则

风控故障时的默认动作,由业务风险等级决定。

实践

登录、浏览等低风险场景倾向故障放行,保证用户体验;支付、提现等高风险场景可以转人工或降级限额;大促活动领券可临时收紧。不能全局一刀切”全放行”或”全拦截”。

风控系统设计 checklist

证据与数据:
✓ 核心风险场景的事件全覆盖
✓ 统一风险事件模型
✓ 敏感字段脱敏和权限控制

策略与判断:
✓ 规则支持版本、灰度、回滚
✓ 模型经过影子模式和小流量验证
✓ 黑白灰名单分级管理

处置与追踪:
✓ 决策动作可解释、可追踪(decision_id)
✓ 名单有来源、过期、申诉机制
✓ 高风险业务定义故障降级策略

反馈与运营:
✓ 误伤申诉回流
✓ 攻击样本回流训练
✓ 拦截率 / 误杀率 / 漏放率监控

记住:

  • 风控是持续对抗,不是一次上线
  • 先有证据,再有判断,再有处置,最后回流
  • 拦截率不是唯一指标,误杀和漏放同样重要
  • 每一次处置都要能解释,才能赢得用户和业务信任