Appearance
风控决策架构
风控是信贷的"看门人":授信进件要它批(贷前)、每笔支用要它过(贷中)、逾期了它给催收策略打标(贷后)。这篇讲四块:决策引擎三层、实时特征平台、名单库、决策链路的性能约束与降级。它在上游的位置见信贷业务全景与领域模型。
决策引擎三层:规则、模型、策略编排
┌──────────────────────────────────────┐
请求 ──▶ │ 策略编排层(Decision Flow) │
│ 前置规则 → 模型评分 → 后置规则 → 决策路由 │
│ (拒绝/通过/人工 + 额度 + 定价) │
└──────┬───────────────────┬───────────┘
▼ ▼
┌────────────────┐ ┌────────────────────┐
│ 规则层 │ │ 模型层 │
│ 专家规则/决策表 │ │ 评分卡/A 车型/机器学习 │
│ 硬拒绝/准入/反欺诈 │ │ 输出: 分数/概率/等级 │
│ 毫秒级,可解释 │ │ 输入: 特征向量 │
└────────────────┘ └─────────┬──────────┘
▼
┌──────────────────┐
│ 实时特征平台 │
└──────────────────┘- 规则层:人写的显式逻辑——年龄准入、命中黑名单拒绝、多头借贷 N 家拒绝、月收入负债比。特点是毫秒级、完全可解释、改一条立刻生效(热更新)。承载"合规红线"和"专家经验",任何模型都无权越过它;
- 模型层:统计学/机器学习产物——A 卡(申请评分)、B 卡(行为评分)、C 卡(催收评分)。输入特征向量,输出违约概率,再映射为分数/等级。特点是能吃几百维特征捕捉非线性。但不可解释、迭代要重训重评(监管要求可解释时还要配影子评分/原因码);
- 策略编排层:把规则和模型按流程串起来的人。用 DSL 决策流表达"先反欺诈硬规则 → 通过则查 A 卡 → 分数 < 550 拒绝 → 550~650 人工 → 650+ 按等级给额度定价"。策略与代码分离是这一层的存在意义。策略分析师在后台拖流程图、调阈值、灰度发布,不需要发版。信贷机构一年改几百次策略,每次都发版就是每次都是事故窗口。
一次支用决策的完整时序(谁在链路上、各花多少时间):
支用域 编排层 规则/模型层 特征平台
│ 决策请求 │ │ │
├────────────▶│ 前置规则(准入/黑名单) │ │
│ ├──────────────────▶│ 命中即短路拒绝 │
│ │ ◀─── 3ms ───────┤ │
│ │ 取特征向量 │ │
│ ├──────────────────────────────────▶│ 点查(Redis/KV)
│ │ ◀────────────── 40ms ─────────────┤
│ │ A/B 卡推理 │ │
│ ├──────────────────▶│ 模型服务 │
│ │ ◀─── 25ms ──────┤ │
│ │ 后置规则(额度/定价) │ │
│ ◀─ 决策+快照─┤ │ │
├─ 决策快照落库(版本号: 策略v12/模型v7/特征快照)注意决策快照与决策应答同步落库:快照丢了,这次决策就变成"无法解释的放款/拒绝"。
分层的关键约束是依赖方向:编排层依赖规则与模型的抽象接口,规则和模型互不感知。换模型(评分卡换成深度学习)不动编排,改编排(加一道人工分流)不动模型。这也是领域模型vs数据模型,应该怎么用?里"业务语义内聚在自己的层里演化"的同一原则。
实时特征平台:点查、圈选、穿透
特征是决策的原料("近 30 天申请次数""近 6 个月平均逾期天数"),平台按消费形态分三种读法:
| 形态 | 是什么 | 延迟要求 | 典型用途 |
|---|---|---|---|
| 点查 | 单用户的实时特征向量 | P99 < 50ms | 决策链路在线取数 |
| 圈选 | 按条件筛人群(离线批量) | 小时级 T+1 | 营销名单、策略回溯分析 |
| 穿透 | 从聚合值下钻到明细(哪些单构成逾期次数) | 秒级 | 人工审批、客诉解释、模型归因 |
生产侧 消费侧
行为流水(交易/还款/登录) ──┐
渠道/三方数据(征信/多头) ──┼──▶ Flink 实时聚合 ──▶ 在线KV(Redis) ──▶ 点查(决策)
│ │
离线数仓(T+1 全量) ────────┘ └──▶ Hive/OLAP ──▶ 圈选(名单/分析)
明细日志(事件流) ────────────────────────────────────▶ 穿透(明细下钻)- 线上线下一致性是特征平台第一难题。在线用 Flink 算的"近 30 天申请次数"和离线数仓回溯算的必须逐值相等。否则会"离线评估模型很好、上线效果崩掉"。工程手段是特征双写(同一份特征定义,在线实时算、离线按同口径重算)+ 定期比对;
- 特征可用性降级:某个三方数据源超时,特征取不到。这时按特征重要度配置当缺失值还是当最差值。核心特征(收入)缺失走保守策略。普通特征缺失给默认值并打标。这个配置权在策略分析师手里,不在代码里。
名单库与灰名单
名单是规则层里最古老也最有效的部分,难点在状态管理而非存储:
- 黑名单:确定性拒绝(内控黑、司法失信、欺诈确认)。进入要证据链,退出要审批——误上黑名单是重大客诉与合规风险;
- 白名单:确定性放行或加分(优质存量客户、代发薪客群);
- 灰名单:疑似风险,不自动拒绝、进人工审核(多头申请突增、设备指纹异常、联系人重叠欺诈网络)。灰名单是"缓冲区":直接拒会误伤,直接放会漏。交给人工/延迟决策(挂起 2 小时等更多行为数据)是性价比最高的中间态。
名单生命周期: 证据事件 ──▶ 命中规则 ──▶ 进入名单(黑/灰) ──▶ 定期复审 ──▶ 移出/升级
│
决策链路查询: 点查 RPC + 本地缓存(秒级过期,名单变更发失效消息)名单按来源分三类,管理强度完全不同:
| 来源 | 例子 | 进入方式 | 复审要求 |
|---|---|---|---|
| 内控名单 | 员工关联人、恶意投诉黑 | 审批流进入 | 年度复审 |
| 外部权威名单 | 司法失信、监管处罚 | 数据同步,只进不出 | 跟随源数据 |
| 风险计算名单 | 欺诈网络团伙、多头共债 | 模型/图计算产出,有置信度 | 高频复审(月/周),必须可退出 |
工程要点:名单变更对决策准实时生效(缓存短 TTL + 变更广播失效)。每次决策要落"命中了哪些名单、哪些规则、模型多少分"的决策快照。监管检查、拒绝原因告知(监管要求信贷拒绝要能给出原因码)、策略回溯全靠它。
决策链路的 P99 约束与降级
决策链路的延迟预算是硬约束。授信决策 P99 < 1 s(用户在 App 里等)。支用交易决策 P99 < 200 ms,在支付链路里同步串联,串联方等不起。同款毫秒级逻辑见支付回调的HMAC验签与幂等设计。预算分解:
总预算 200ms: 特征点查 50ms + 模型推理 30ms + 名单/规则 20ms + 编排开销 20ms
+ 重试余量与网络 80ms(两个串行 RPC 的抖动空间)注:节点级细分口径见决策引擎系统设计(本文为业务侧粗粒度口径)。
超时降级按"降级后剩下的东西还够不够安全"分级——风控挂了放不放行没有统一答案,只有分级:
| 场景 | 降级策略 | 理由 |
|---|---|---|
| 授信/开户类(贷前) | fail-close:拒绝受理,引导稍后重试 | 没有风控就放额度 = 敞口无限大;授信不是时效敏感交易,拒了可以再来 |
| 支用类(贷中,有授信在先) | 降级到静态规则:限额(如单日 ≤ 额度 30%)+ 黑名单缓存兜底 | 授信时已做过完整风控,贷中是复检;有额度上限做天花板,静态规则做地板 |
| 支付反欺诈(交易类) | 降级到低风险放行 + 事后异步复核:小额放行、大额挂起 | 与支付可用性权衡:全拒伤支付体验,小额欺诈损失有上限 |
| 模型超时(仅模型不可用) | fallback 评分卡:上一代简单模型或规则评分顶上 | 规则层完好时仅损失模型精度,不损失决策能力 |
| 特征源超时 | 缺失值策略(见上) | 单一数据源故障不该瘫痪决策 |
分级的技术形态:决策编排 DSL 里每个节点声明超时与降级动作(跳过/默认值/短路拒绝)。故障时自动执行预案而非人工拍板。半夜故障时等人工决定"放不放行",每一秒都在积累用户流失或风险敞口。
业界实践参照(样本银行A vs 样本银行B)
样本银行A把"决策引擎 + 实时风控"做成了普惠信贷的公开标杆。310 全链路即"大数据风控 + 决策引擎 + 实时信贷决策" [媒体]。其数据平台以毫秒级实时风控输出支撑在线决策 [官方]。逐层对回本文架构:
| 本文概念 | 样本银行A对应实践 | 事实要点 | 可信度 |
|---|---|---|---|
| 决策引擎三层 + 实时决策 | 310 实时信贷决策 | 进件 3 分钟 / 授信 1 秒 / 0 人工,单笔贷款成本约 2.3 元 | [媒体] |
| 特征平台的另类数据源 | 大山雀(卫星遥感) | 遥感影像+深度学习识别种植面积/种类/长势,融合气候/地理/行业景气建模,准确率 93%+,累计服务约 180 万农户 | [媒体] |
| 贷中交互式风控(灰名单补数据) | 百灵 1.0 → 2.0 | CV 解析合同/发票/门头照等 26 种凭证做提额自证;2.0 转统一 Agent 服务 4200 万小微 | [媒体] |
| 人工缓冲区的人机协同 | 千里眼 / 定海针工作台 | 千里眼(量化风控)误处置 -40%;定海针(人审风控)复杂件处理 ×20 | [媒体] |
| 模型层前沿栈 | 信贷 AI 风控算法团队 | 信用评估/欺诈检测/GNN 图学习/多模态/AutoML 全链路;LLM 栈 SFT/RLHF/DPO/RAG/Agent | [JD推断] |
两点观察。其一,百灵的"26 种凭证 CV"本质是把本文灰名单的"挂起等用户补数据"产品化。用户主动上传凭证、模型实时解析回填特征,挂起等待变成交互式自证。
其二,千里眼/定海针是"人机共生"路线的量化证据 [媒体]。策略分析师与人工审批没有被 AI 取代,而是被工作台放大(误处置 -40%、人效 ×20)。这对应本文"灰名单交给人工是性价比最高的中间态"的 AI 增强形态。
样本银行B: 样本银行B把风控前移到了产品形态本身。它还在企业风控上给出数据密度的公开上限:
| 本文概念 | 样本银行B对应实践 | 事实要点 | 可信度 |
|---|---|---|---|
| 风控即产品形态 | 微粒贷白名单 + 小额分散 | 白名单邀请制(无主动申请入口)+ 小额分散 + 循环授信——"谁能看到入口"与"单笔敞口有限"本身就是第一道风控 | [媒体] |
| 特征/变量规模上限 | 微业贷 30+ 数据源衍生数千参数 | 国内首个线上无抵押企业流贷(2017):0 纸质资料、最高 1000 万、最快 1 分钟到账;工商/税务/征信/交易/物流等 30+ 数据源衍生数千参数 | [官方] |
| 企业风控的数据重心 | 政务/税务数据 | 与样本银行A"经营流水 + 遥感"路线对照,样本银行B企业风控重心在政务/税务数据;企业贷款占比 2020 年 36% → 2024 年 49%,首次超过个人消费贷款 | [媒体] |
| 风控能力对外交付 | 联合贷样本银行B出风控 | 样本银行B出风控、数百家合作银行出资,监管要求平台自主风控——决策快照与可解释不只是内控与监管需求,也是给合作资方的交付物 | [媒体]/[JD推断] |
两点观察。其一,白名单邀请是"授信 fail-close"的产品化前置。本文降级矩阵里"拒绝受理"是故障预案,样本银行B把它做成常态。不邀请即不暴露,进件流量本身被风控圈选控制。
其二,"数千参数"对回本文变量工厂。千参规模下变量的注册/版本化/口径审批不再是工程细节,而是风控资产能否持续迭代的前提。
追问链
Q1:模型和规则冲突听谁的(规则说拒、模型说优质)? 规则是合规红线,一票否决;模型只在没有红线命中时参与排序与定价。反过来"模型分高可以洗白黑名单"是典型的策略漏洞。黑名单命中必须走独立的人工豁免流程并留痕,不能被自动化逻辑绕过。
Q2:决策快照为什么必须落库,落日志不行吗? 拒绝原因告知、监管检查、策略回溯都要按"当时的规则版本、模型版本、特征值"重放当时的决策。日志会被滚动清理且无版本快照语义。决策快照 = 决策请求 + 全部输入快照 + 命中明细 + 版本号,是决策不可抵赖的凭证。它与账务凭证(见账务系统设计-复式记账与日切)同级严肃。
Q3:灰名单挂起等数据,用户等着要额度怎么办? 挂起有 SLA(如 2 小时),到期按现有证据强制决策;挂起期间的新证据事件触发提前重评。挂起队列本身有容量与超时告警——灰名单堆积成"永久等待"等于把 fail-close 伪装成了中间态。
Q4:新策略怎么上线,直接全量切? 冠军/挑战者(Champion/Challenger)分流:新策略按流量比例(如 5%)灰度运行。双跑期对比通过率/违约预测/审批时效。观察窗口覆盖至少一个完整表现周期。信贷的坏账表现要 6~12 个月才充分显现,短窗口看到的"通过率升了"可能只是风险滞后。
模型同理:新模型先影子模式(Shadow)跑——只记分不参与决策,验证线上线下分数分布一致后才切流量。策略与模型的每次切换都以决策快照里的版本号为回溯依据。
Q5:决策链路怎么压测?特征平台扛得住大促吗? 决策链路压测的难点是特征平台的读放大:一次决策点查 N 个特征键,大促峰值是日常 10 倍。做法是特征键预先散热(按用户打散到分片)、热点特征(名单类)走本地缓存。压测流量用影子标记打到真实链路但不落决策快照。容量规划以上一个大促峰值 × 1.5 做水位线——风控挂了支付降级放行,等于大促期间裸奔。
小结
- 决策引擎三层:规则(红线、可解释、热更)、模型(概率、不可解释、要 fallback)、策略编排(DSL 化、策略与代码分离);
- 特征平台三读法:点查(在线决策)、圈选(离线人群)、穿透(明细归因);线上线下一致性是第一难题;
- 名单三分:黑确定性拒、白确定性放、灰进人工缓冲区;名单与决策都要留版本化快照;
- 延迟预算硬分解到节点。降级按场景分级:授信 fail-close、支用降级静态规则、交易反欺诈小额放行大额挂起。预案自动化,不靠人工拍板。
2026-10 新增(金融信贷域系列)。