引言:借钱这件事,工程上到底难在哪
前面第 20 篇讲反欺诈、第 21 篇讲反洗钱与 KYC,它们回答的是”这个人是不是坏人、这笔交易是不是脏钱”。本篇进入另一个维度:这个人借了钱之后,到底会不会还。
这是整个金融业最古老的命题。2500 年前巴比伦的《汉谟拉比法典》里已经有对借贷利率的规定(谷物年息 33.3%、白银 20%);1956 年费埃哲(Fair Isaac Corporation)在斯坦福研究所写出第一版信用评分卡的时候,他们还在用打孔卡做逻辑回归。到了 2026 年,信用风险决策的形态已经完全不同:
- 美国:三大征信局(Equifax、Experian、TransUnion)汇总数十亿条贷记账户历史,FICO 8/9/10T 和 VantageScore 4.0 在零售银行、信用卡、按揭、车贷、BNPL(Buy Now Pay Later,先买后付)之间共用同一把尺子;
- 中国:人民银行征信中心二代格式 2020 年全面切换,覆盖 11.6 亿自然人和 1.1 亿企业;百行征信、朴道征信作为市场化个人征信机构补充互联网场景;芝麻信用、京东小白、度小满则在各自生态内做”平台信用”;
- BNPL:Klarna、Affirm、Afterpay、PayPal Pay in 4 在西方市场爆发式增长,花呗分期、分期乐、白条在中国消费金融链路上承载每年万亿级交易;
- 监管:美国 CFPB(Consumer Financial Protection Bureau,消费者金融保护局)2024 年将 BNPL 纳入信用卡规则;欧盟 CCD2(Consumer Credit Directive 2)2026 年全面落地;中国 24%/36% 利率红线、互联网贷款管理办法、APR(Annual Percentage Rate,年化利率)明示要求重塑了整个消费金融定价逻辑。
工程上难在三件事。
第一,样本偏差。 你训练模型只能用”已放款并且有还款表现”的样本,但决策时要给”还没放款的人”打分——这就是经典的拒绝推断(Reject Inference)问题。一个线上跑了两年的模型,它看到的世界是被上一代模型筛选过的,越跑越窄。
第二,表现周期长。 一笔 12 期分期,你真正知道客户好坏要等 6–12 个月(所谓 MOB 6/MOB 12,Months On Book)。模型发布到观测到效果有半年以上的时间滞后,而经济周期、黑产策略、业务规则每周都在变。
第三,合规约束硬。 风控模型必须可解释(欧盟 GDPR 第 22 条、中国《个保法》第 24 条自动化决策条款)、不歧视(美国 ECOA Equal Credit Opportunity Act、Fair Housing Act)、利率不超红线(中国 LPR 4 倍 / 24%/36% 三线、美国各州 Usury Law)。一个在 AUC(Area Under Curve)上赢 2 个点的黑盒深度模型,可能因为拒绝解释不过合规评审。
本篇的目标读者:
- 风控算法工程师:想看 A/B/C 卡建模、WOE/IV 分箱、LightGBM 训练、KS/AUC 评估的完整代码;
- 风控产品与架构师:想理解从申请到催收的端到端决策链路、贷后策略、ABS 与资金端联动;
- 监管科技与合规:关心 ECOA、个保法、互联网贷款管理办法、BNPL 监管在工程上怎么落;
- 出海团队:准备做 BNPL、海外消费分期、Neobank 贷款产品,需要理解 CFPB/CCD2 框架。
本篇是系列第 22 篇,是继反欺诈(第 20 篇)、反洗钱(第 21 篇)之后的风控三部曲收官。之后第 23 篇进入对账系统,那是把本篇”资金-账本-催收”闭环落到账务口径的下游。
本篇阅读路径
- §1–§2 是全景:决策链路与评分体系;
- §3 是模型侧的主干:从 LR+WOE 到 GBDT、到 A/B/C 卡、到稳定性监控;
- §4 是数据工程和合规边界;
- §5 是额度/定价/会计减值;
- §6 是贷后闭环;
- §7–§8 是资金端(ABS、联合贷)与场景端(BNPL);
- §9–§10 是监管与公平性;
- §11 是完整可运行的代码实战;
- §12–§14 是案例、坑点、落地清单。
新接触风控的读者建议顺序读;有风控经验、主要想看工程与合规的读者可以直接跳到 §4–§10。
一、授信全链路:从一次申请看清楚一切
先把图画出来。一笔消费贷款从用户点”立即申请”到贷后回收,要经过十几个节点。
1.1 全链路拓扑图
flowchart TB
A[用户发起申请<br/>APP/H5/商户收银台] --> B[反欺诈<br/>设备指纹/IP/黑名单]
B --> C[身份核验<br/>实名四要素/活体/OCR]
C --> D[数据采集<br/>征信/运营商/电商/社保]
D --> E[特征工程<br/>派生变量/WOE 编码]
E --> F[A 卡评分<br/>申请评分模型]
F --> G{决策引擎}
G -->|拒绝| R1[拒绝理由/挽回]
G -->|人工| R2[人工审核队列]
G -->|通过| H[额度模型]
H --> I[定价引擎<br/>基于 PD/LGD/EAD]
I --> J[合同签约/电子签名]
J --> K[资金方匹配<br/>自营/助贷/联合贷]
K --> L[放款指令<br/>支付通道]
L --> M[贷后监控<br/>B 卡行为评分]
M --> N{还款}
N -->|按时| O[正常结清/循环授信]
N -->|逾期| P[催收<br/>C 卡催收评分]
P --> Q1[M1 短信/IVR]
P --> Q2[M2 人工外呼]
P --> Q3[M3+ 委外/诉讼]
P --> S[展期/减免/核销]
S --> T[不良处置<br/>ABS/AMC/转让]
1.2 每个节点在做什么、耗时多少
以一笔典型消费贷(额度 1–20 万元,期限 3–24 期)为例:
| 节点 | 耗时 | 核心工作 | 通过率 |
|---|---|---|---|
| 反欺诈 | 50ms | 设备指纹、代理 IP、黑名单、GPS 异常、申请频次 | 85–95% |
| 身份核验 | 1–5s | 公安四要素、运营商三要素、银行卡核身、活体+OCR | 90–97% |
| 征信拉取 | 200ms–2s | 人行征信、百行征信、三方数据并行 | 近 100% |
| 特征加工 | 50–200ms | 200–2000 个派生变量 | — |
| A 卡评分 | 10ms | LR/XGBoost 推理 | 20–60%(新户) |
| 额度定价 | 20ms | 规则 + 回归模型 | — |
| 合同/签约 | 用户侧 | 电子签名、利率明示、合规披露 | 80–95% |
| 放款 | 秒级–分钟 | 对接资金方、支付通道 | 近 100% |
端到端,纯线上流程目标是 30 秒内给结果、5 分钟内放款到账。这个体验是 2015 年之后才真正工程化下来的。
1.3 决策引擎:规则、策略、模型三位一体
风控决策不是一个模型输出一个分数就完了,而是一棵决策树 + 规则集 + 模型集成的组合:
# 伪代码:一次授信决策
def credit_decision(application):
# 第一层:硬规则(Hard Rule)直接拒绝
if application.age < 18 or application.age > 65:
return reject("REJECT_AGE")
if application.id in blacklist:
return reject("REJECT_BLACKLIST")
if pboc_query(application.id).overdue_90d_count > 0:
return reject("REJECT_PBOC_OVERDUE")
# 第二层:反欺诈模型
fraud_score = fraud_model.predict(application)
if fraud_score > 0.85:
return reject("REJECT_FRAUD")
# 第三层:A 卡评分
credit_score = credit_a_card.predict(application)
if credit_score < 550:
return reject("REJECT_LOW_SCORE")
# 第四层:额度+定价
credit_limit = limit_model.predict(application, credit_score)
apr = pricing_engine.price(application, credit_score, credit_limit)
if apr > 24.0: # 红线
return reject("REJECT_APR_CEILING")
# 第五层:灰度/冠军挑战者(Champion/Challenger)
if ab_bucket(application) == "challenger":
credit_limit *= 1.2 # 挑战新策略
return approve(credit_limit, apr)真实生产环境里,这棵决策树有 50–200 个节点,每个节点都有独立的效果监控(通过率、坏账率、用户分布)。决策引擎框架常见选择:开源的 Drools、URule;自研的规则 DSL + 特征服务;大厂(蚂蚁 MYbank、微众 WeBank)内部有基于 Flink/Storm 的实时决策流。
1.4 决策全链路的数据契约
下面给出一个接近生产的决策请求与响应契约(简化版),便于后续团队接入:
// 授信决策请求
message CreditDecisionRequest {
string request_id = 1; // 幂等键
string user_id = 2; // 去标识化 user id
string product_code = 3; // 产品:consumer_loan / card / bnpl_pay4
int64 apply_amount_cent = 4; // 申请金额(分)
int32 term_months = 5; // 期限
string scenario = 6; // 场景:shopping / cash / merchant_id
ApplicantInfo applicant = 7; // 申请人基础信息(已脱敏)
DeviceInfo device = 8; // 设备指纹、IP、GPS
repeated ConsentRecord consents = 9; // 数据授权记录
string channel = 10; // APP / H5 / 商户 SDK
}
message CreditDecisionResponse {
string request_id = 1;
Decision decision = 2; // APPROVE / REJECT / MANUAL / PENDING
int64 credit_limit_cent = 3;
double apr_bps = 4; // APR,基点
int32 credit_score = 5; // 300–900
repeated string reason_codes = 6; // 拒绝/降额原因码
string model_version = 7; // 模型指纹,用于审计回放
string policy_version = 8;
int64 decide_ts = 9;
}
message ConsentRecord {
string scope = 1; // pboc / telco / ecommerce / location
string grant_id = 2; // 唯一授权 ID
int64 granted_at = 3;
int64 expires_at = 4;
}三条工程要点:
request_id必须是幂等键,同一次申请被网络重试时决策结果不变;model_version+policy_version必须回写到数据仓库,任何一次决策都可以在半年后复现(合规审计硬要求);reason_codes是结构化代码而非自由文本,下游用户界面、客诉、监管报送都统一读取。
1.5 灰度与冠军挑战者(Champion/Challenger)
风控上线绝不能一把切。标准做法是冠军挑战者:
- 冠军(Champion):当前全量策略;
- 挑战者(Challenger):新策略分得 5–10% 流量;
- 观察 1–3 个月的坏账、通过率、用户分层后决定是否升级。
挑战者流量切分的关键:按 user_id 哈希稳定,同一用户每次申请走同一桶,避免同一用户两次申请分配到不同策略造成体验割裂。流量控制要做到按分层(例如”按 FICO 段分别切 10%“),否则挑战者可能只吃到了某一段人群。
二、信用评分体系:全球与中国的双轨
2.1 美国:FICO 与 VantageScore 双寡头
FICO 评分(1989 年首次商用)是美国零售信贷的事实标准。FICO 8 长期占据贷款决策 90% 市场份额,2014 年推出 FICO 9(医疗欠账降权、接入租房数据),2020 年推出 FICO 10 和 FICO 10T(T 代表 Trended Data,轨迹数据,使用 24 个月余额变化序列而非截面快照)。
FICO 分数区间 300–850,五维权重:
| 维度 | 权重 | 含义 |
|---|---|---|
| Payment History | 35% | 还款历史、逾期记录、破产 |
| Amounts Owed | 30% | 当前负债、信用利用率(Utilization) |
| Length of Credit History | 15% | 账户平均年龄、最老账户 |
| Credit Mix | 10% | 信用卡、按揭、分期组合 |
| New Credit | 10% | 近期硬查询(Hard Inquiry)、新开户 |
VantageScore(2006 年三大征信局联合推出以对抗 FICO)。VantageScore 4.0 同样 300–850,2024 年 FHFA(Federal Housing Finance Agency)宣布房利美/房地美接受 VantageScore 4.0 替代 Classic FICO,这是美国信贷基础设施的重要变化。
2.2 中国:央行征信为主、市场化机构补充
人民银行征信中心(PBOC Credit Reference Center)二代格式于 2020 年 1 月 19 日全面上线,相对一代主要变化:
- 展示”共同借款”信息(多人联合贷款)
- 采集”还款记录”的 5 年窗口改为”逾期记录”的 5 年窗口
- 增加个人为企业担保的明细
- 反映结清后继续展示 5 年
- 支持水电煤、公积金、社保等”替代数据”(逐步接入)
二代征信没有直接输出一个分数,只提供报告字段。大多数银行在二代数据之上自建评分(俗称”央行分”衍生模型)。
百行征信(2018 年成立,央行牌照)和朴道征信(2020 年获牌)是中国仅有的两家市场化个人征信机构,主要覆盖 PBOC 没有覆盖的互联网小贷、消费金融场景。2021 年”断直连”后,互联网平台不得直接向金融机构传送用户信用数据,必须经由持牌征信机构。
芝麻信用(蚂蚁集团,2015 年)分值 350–950,涵盖身份特质、履约能力、信用历史、人脉关系、行为偏好五维。芝麻信用不是征信,而是一种场景化的”信用评估”,不能用于金融机构授信决策(监管要求),但在租房、酒店免押、共享单车等 2000+ 场景广泛使用。
腾讯信用分(2015 年小范围测试,2018 年 1 月 30 日全面公测仅 24 小时后下线)是一个标志性事件:在”断直连”监管基调明确后,互联网公司自建征信业务被叫停,后续只能通过持牌机构做。
京东小白信用(2015 年上线)主要服务京东白条、京东金条场景,形态与芝麻信用类似。
2.3 评分分数的工程含义
分数不是随便给的。经典评分卡设计里,分数与 PD(Probability of Default,违约概率)有严格映射:
\[\text{Score} = A - B \cdot \ln\left(\frac{\text{PD}}{1-\text{PD}}\right)\]
其中 A、B 是校准常数,通常令”每加 20 分,坏好比翻一倍”(PDO=20,Points to Double the Odds)。例如基础点 600 分对应坏好比 1:20,620 分对应 1:40、640 分对应 1:80。
这个线性映射让业务方好理解:分数就是几何级数的 PD。这也是为什么传统评分卡依然不可替代——即便深度模型 AUC 更高,它输出的概率如果没有做同样的单调校准,业务上没法直接用来划段定价。
三、模型演进:从逻辑回归到图神经网络
3.1 逻辑回归 + WOE/IV:依然是主流
尽管学术界不断出新模型,银行、消费金融公司生产线上 60% 以上的申请评分(A 卡)依然是逻辑回归(Logistic Regression)+ WOE(Weight of Evidence,证据权重)分箱。原因:可解释、可拆分贡献、可审计、稳定。
WOE 定义(对第 i 个分箱):
\[\text{WOE}_i = \ln\left(\frac{\text{good}_i / \text{total\_good}}{\text{bad}_i / \text{total\_bad}}\right)\]
IV(Information Value,信息值)衡量一个变量的区分能力:
\[\text{IV} = \sum_i \left(\frac{\text{good}_i}{\text{total\_good}} - \frac{\text{bad}_i}{\text{total\_bad}}\right) \cdot \text{WOE}_i\]
IV 的经验解读:
| IV | 预测力 |
|---|---|
| < 0.02 | 无效 |
| 0.02–0.1 | 弱 |
| 0.1–0.3 | 中 |
| 0.3–0.5 | 强 |
| > 0.5 | 强到要怀疑是穿越变量 |
分箱(Binning)方法:等频、等距、卡方(ChiMerge)、决策树(最常用)。单调性约束是工程惯例——WOE 随分箱排序应单调或 U 型,避免”收入越高越容易违约”这种反业务直觉的结果。
3.2 GBDT:XGBoost 与 LightGBM
GBDT(Gradient Boosting Decision Tree,梯度提升决策树)在 2014–2017 年从 Kaggle 比赛扩散到工业界,现在是消费金融风控的第二选择。XGBoost(陈天奇,2014)和 LightGBM(微软,2017)的核心差异:
| 维度 | XGBoost | LightGBM |
|---|---|---|
| 树生长 | Level-wise(同层分裂) | Leaf-wise(按增益分裂) |
| 速度 | 基线 | 5–10x 更快 |
| 类别特征 | 需要独热编码 | 原生支持 |
| 内存 | 较高 | 更低(直方图) |
LightGBM 在中国消费金融公司几乎是默认选择。一个典型 A 卡:300–800 个特征、100–500 万样本、训练 10–30 分钟、线上 P99 推理 5ms 以内。
3.3 深度模型与图神经网络
DNN(深度神经网络)在风控的应用场景有限——特征多为结构化表格数据,DNN 对比 GBDT 优势不明显;但在序列场景(APP 行为序列、交易流水序列)上 LSTM/Transformer 有用武之地。
图神经网络(GNN)是近年热点。信贷欺诈与违约往往呈”团伙”特征:同一设备、同一 WiFi、同一紧急联系人出现多次。把用户-设备-商户-联系人建成异构图,用 GraphSAGE、GAT 做节点分类,能捕捉 GBDT 难以表达的关系特征。蚂蚁的 AGL(Ant Graph Learning)、腾讯的 Plato、阿里达摩院的 GraphScope 是这个方向的代表工业系统。
3.4 A 卡、B 卡、C 卡
消费金融风控模型按生命周期阶段分类:
- A 卡(Application Scorecard,申请评分卡):申请时决定”是否给贷、给多少”。典型特征:征信变量、三方数据、基本信息、反欺诈分。目标变量:首 6/12 期中是否出现 30+/60+/90+ 天逾期(“FPD30/FPD60/FPD90”)。
- B 卡(Behavior Scorecard,行为评分卡):贷后每月重新评估,用于额度调整、循环授信、交叉销售。典型特征:账龄(MOB)、历史还款记录、近期使用率、消费行为变化。观察期(Observation Window)通常 3–6 个月,表现期(Performance Window)3 个月。
- C 卡(Collection Scorecard,催收评分卡):对已逾期账户预测”催回概率”,决定催收强度、催收方式、外包与否。典型特征:逾期天数、历史逾期、接听率、联系人活跃度。
三张卡彼此独立训练、独立部署,但通过特征平台共享特征。
3.5 模型开发流程
一个工业级 A 卡从立项到上线的标准流程,通常 2–4 个月:
flowchart LR
A[1. 样本定义] --> B[2. 观察期+表现期]
B --> C[3. 特征工程]
C --> D[4. 变量筛选<br/>IV/相关性/稳定性]
D --> E[5. 模型训练<br/>LR/GBDT]
E --> F[6. 模型评估<br/>AUC/KS/PSI]
F --> G[7. 模型解释<br/>SHAP/权重卡]
G --> H[8. 公平性测试]
H --> I[9. 独立验证]
I --> J[10. 冠军挑战者灰度]
J --> K[11. 全量上线]
K --> L[12. 持续监控]
L --> M{衰减?}
M -->|是| A
M -->|否| L
样本定义的关键是时间窗口对齐:
- 观察期(Observation Window):用于构造特征的时间窗口,例如 T-6M 到 T-0;
- 表现期(Performance Window):用于观测 y 标签的窗口,例如 T+0 到 T+6M;
- 观察点(Snapshot Date):T+0,即申请时点。
所有特征必须是观察点之前可得的信息;所有标签必须在表现期结束后才打。这一铁律如果违反,就是经典的 Target Leakage。
3.6 稳定性:PSI 与特征漂移
模型发布后最常见的衰减原因是总体稳定性偏移(Population Stability)。PSI 定义:
\[\text{PSI} = \sum_i (p_i^{\text{new}} - p_i^{\text{old}}) \cdot \ln\frac{p_i^{\text{new}}}{p_i^{\text{old}}}\]
其中 \(p_i\) 是第 i 分箱的样本占比。经验阈值:
| PSI | 含义 | 动作 |
|---|---|---|
| < 0.1 | 稳定 | 继续观察 |
| 0.1–0.25 | 轻度漂移 | 排查原因 |
| > 0.25 | 显著漂移 | 考虑重训 |
不仅模型输出要监控 PSI,核心特征也要逐个监控。一个常见场景:某运营商数据源停服 3 天,某特征缺失率从 2% 飙升到 40%,PSI 瞬间超标——这是特征层面的事故,不是模型本身的问题。
四、数据源:合法性是第一红线
4.1 数据清单
中国消费金融风控一张标准数据清单(2026 年合规边界下):
| 类别 | 数据项 | 来源 | 合规要点 |
|---|---|---|---|
| 征信 | 人行二代征信 | PBOC 征信中心 | 每次查询需用户授权、接入需银保监许可 |
| 征信 | 百行/朴道征信 | 持牌机构 | 互联网场景”断直连”必经通道 |
| 公共 | 社保、公积金、税务 | 政府数据平台 | 需用户授权”查询本人数据” |
| 运营商 | 通话详单、在网时长 | 三大运营商 | 用户授权 + 运营商返回脱敏字段 |
| 电商 | 下单金额、收货地址稳定性 | 平台内部(自营场景) | 不得跨主体传输明细 |
| 银行 | 代发工资、流水 | 开放银行 API | PSD2 式授权(中国有限开放) |
| 设备 | 设备指纹、IP、GPS | 客户端 SDK | 《个保法》明示、最小必要 |
| 关系 | 紧急联系人、通讯录 | 客户端授权 | 2019 年后禁止批量读取通讯录 |
4.2 授权与合规边界
关键法规:
- 《中华人民共和国个人信息保护法》(2021 年 11 月 1 日施行):第 13 条”同意”基础、第 24 条自动化决策权、第 28 条敏感个人信息(含金融账户)单独同意、第 62 条跨境提供限制。
- 《征信业管理条例》(2013 年施行、2021 年《征信业务管理办法》细化):从事个人征信业务须许可;信息使用”最小、必要”。
- 《商业银行互联网贷款管理办法》(2020 年 7 月 17 日银保监发布、2022 年过渡期结束):出资比例(联合贷单笔出资比例不低于 30%)、集中度(对单一合作机构出资余额不超过一级资本 25%)、地方性银行属地限制(原则上不得跨注册地辖区开展互联网贷款)。
- 2021 年”断直连”:银行不得直接从非持牌数据源接受个人信用信息,必须经由两家持牌个人征信机构(百行、朴道)中转。
工程上的直接后果:2021 年之后,所有外部数据源接入合同 + 用户授权链路 + 审计日志都要落地。任何一次”我们偷偷加了一个数据源上线”的操作,都可能导致罚单(2023 年某消金公司因违规收集通讯录被罚 2000 万元)。
4.3 数据血缘与特征平台
现代风控系统的底座是特征平台(Feature Store):Tecton、Feast、阿里 MaxCompute + 自研 FeatureStore、蚂蚁 AntFeatureStore。一个特征从原始数据到模型输入经过:
数据源 → 接入层(授权检查、脱敏) → 离线计算(Spark/Flink)
→ 特征表(Hive/HBase/TiDB) → 在线服务(Redis/自研 KV)
→ 模型推理 → 决策
每个特征必须带血缘(Lineage)和授权标签:来自哪个数据源、是否个人敏感信息、最大保留期、允许用途。审计时要能在 5 分钟内回答”某用户的某次拒绝使用了哪 27 个特征,每个特征的出处是什么”。
4.4 在线/离线一致性
特征平台的头号工程难题是在线-离线一致性(Online-Offline Consistency)。同一个特征”用户最近 30 天还款次数”:
- 训练时:用离线 Hive/MaxCompute 跑 Spark 作业,基于某个快照日计算;
- 推理时:要在 < 10ms 内从 Redis 拿到最新结果,由 Flink/Kafka 流式更新。
两条路径的口径必须一致,否则出现训练-服务偏差(Training-Serving Skew)。治理手段:
- 双写校验:同一天同一用户,离线值与在线值做 diff,超过阈值告警;
- 影子流量(Shadow Traffic):新特征上线前先跑影子流量,不进入决策;
- 统一代码(Unified Codebase):同一份特征逻辑跨 Spark/Flink 编译,典型如 Feast FeatureView + Spark + Flink SQL。
4.5 数据接入审计与权限管控
生产上一份典型的风控数据访问权限矩阵:
| 角色 | 征信明细 | 运营商 | 设备 | 放款/还款 |
|---|---|---|---|---|
| 风控建模 | 脱敏样本 | 脱敏样本 | 脱敏样本 | 脱敏样本 |
| 在线决策 | 只读 API | 只读 API | 只读 API | 写入 |
| 客服/催收 | 摘要 | 无 | 无 | 摘要 |
| 审计 | 全量只读(留痕) | 全量只读 | 全量只读 | 全量只读 |
所有访问必须留审计日志(who、when、what、why),保留不少于 5 年。大型消金公司每天产生亿级风控决策日志,存储栈:Kafka → ClickHouse / Iceberg + Trino,冷数据归档到对象存储。
五、额度、定价与 PD/LGD/EAD
5.1 三大风险参数
巴塞尔协议 III(Basel III)内部评级法(IRB,Internal Ratings-Based Approach)定义三个核心风险参数:
- PD(Probability of Default,违约概率):未来 12 个月违约的概率,范围 0–1。
- LGD(Loss Given Default,违约损失率):违约发生后,损失占暴露的比例。例如有担保贷款 LGD 可能 20–40%,信用卡无担保 LGD 通常 60–80%。
- EAD(Exposure at Default,违约暴露):违约时点的风险暴露。对一次性放款的分期贷款,EAD ≈ 当前本金余额;对信用卡/循环贷,EAD 需考虑未使用额度的 CCF(Credit Conversion Factor,信用转换系数)。
预期损失(Expected Loss,EL):
\[\text{EL} = \text{PD} \times \text{LGD} \times \text{EAD}\]
5.2 风险定价:不是利润最大化,是”覆盖损失+达到目标 ROE”
一笔贷款的利率分解:
\[\text{APR} = r_{\text{fund}} + r_{\text{ops}} + r_{\text{risk}} + r_{\text{profit}} + r_{\text{capital}}\]
- 资金成本(Fund Cost):银行存款利率、同业拆借、ABS 发行票面。消费金融公司资金成本典型 4–6%。
- 运营成本(Operating Cost):获客(CAC,Customer Acquisition Cost,消金新户 CAC 200–800 元)、IT、人力。摊到 APR 通常 2–4%。
- 风险成本(Risk Cost):EL = PD × LGD × EAD,摊到 APR 通常 2–8%。
- 利润(Profit Margin):2–5%。
- 资本成本(Capital Charge):监管资本要求对应的股东期望回报,1–3%。
举例:一个 PD=8%、LGD=70% 的客群,年化风险成本 ≈ 5.6%;加资金 5%、运营 3%、利润 3%、资本 2%,最终 APR 约 18.6%。如果这是首贷客群、LGD 上升到 80%、PD 上升到 12%,风险成本到 9.6%,APR 容易撞 24% 红线——这也解释了为什么利率红线卡死后,低分段客户直接被市场拒之门外。
5.3 差异化定价与公平借贷
差异化定价(Risk-Based Pricing):同一产品对不同客户给不同利率,这是市场化金融的基本逻辑。但在美国要受 ECOA(Equal Credit Opportunity Act,1974)和 FCRA(Fair Credit Reporting Act)约束:不得基于种族、肤色、宗教、国籍、性别、婚姻状况、年龄等受保护类别(Protected Classes)定价。
工程上的表现:
- 敏感特征不直接入模:种族、性别不能作为特征。
- 代理特征检测(Proxy Detection):邮编、姓氏、学校可能间接反映种族,要做 Disparate Impact(差异影响)分析。
- 拒绝理由披露(Adverse Action Notice):FCRA 要求拒绝时告知主要原因(Top 4 Reasons),这直接影响模型可解释性设计。
中国 2026 年还没有完全对标 ECOA 的立法,但《个保法》第 24 条的”自动化决策透明、不得对个人在价格等交易条件上实行不合理的差别待遇”已经埋下了伏笔。
5.4 额度模型与循环授信
额度模型不是简单地根据评分映射一个数字,而是一个优化问题:
\[\max_{L} \ \text{Expected Profit}(L) = L \cdot \text{Usage}(L) \cdot (r - \text{EL}(L)) - \text{Cost}(L)\]
其中 Usage(L) 是给定额度 L 下的预期动用率。一个关键观察:额度给太低,用户不用;额度给太高,坏客户套现走人。典型做法:
- 分段调额:首次授信保守(3000–10000 元),观察 3 个月表现后按 B 卡上调 30–100%;
- 循环授信(Revolving Credit):信用卡、花呗类产品每月重新评估剩余可用额度;
- 提额触发:还款按时 + 使用活跃 + 消费升级 + 外部征信无恶化。
5.5 IFRS 9 预期信用损失
会计层面,国际财务报告准则 IFRS 9(中国对应”新金融工具准则”CAS 22,2019 年起分阶段实施)要求按三阶段模型计提减值:
| 阶段 | 定义 | 减值 |
|---|---|---|
| Stage 1 | 正常/低风险 | 12 个月预期损失 |
| Stage 2 | 信用风险显著增加(SICR) | 整个存续期预期损失 |
| Stage 3 | 已减值 | 整个存续期预期损失,按净额计息 |
SICR(Significant Increase in Credit Risk,信用风险显著增加)的判定是工程落地的难点:通常以 PD 相对初始增幅(如翻倍)、DPD > 30 天、或内评级下调 2 档为触发条件。风控系统必须把 PD 实时下推给财务系统,否则财报不准确。
六、贷后管理:还款、逾期、催收、核销
6.1 还款提醒与智能外呼
还款日前 3 天、当天、逾期 D+1 是三个关键触达时点。传统短信 + APP Push 之外,AI Voicebot(智能外呼)是 2020 年后的主力:
- 基于 ASR(Automatic Speech Recognition,语音识别)+ NLU(Natural Language Understanding)+ TTS(Text to Speech,语音合成)。
- 接通率 60–80%,识别”我没钱”“我忘了”“这不是我”等意图。
- 平均通话 45 秒,替代 80% 的 M1 早期人工外呼。
- 合规要求:录音保存、开场必须说明身份、每日呼叫不超过 3 次(各地监管细则不同)、夜间 21:00 后禁拨。
代表厂商:腾讯云智能外呼、阿里云语音服务、科大讯飞、竹间智能;银行自建平台如招行掌上逾期机器人。
6.2 催收分阶段
| 阶段 | 逾期天数 | 手段 | 回收率 |
|---|---|---|---|
| M0 | 0–30 天 | 短信、IVR、AI 外呼、APP 消息 | 70–90% |
| M1 | 31–60 天 | 人工外呼、信函 | 20–40% |
| M2 | 61–90 天 | 加强催收、上征信警告 | 10–25% |
| M3 | 91–180 天 | 委外催收、调解 | 5–15% |
| M3+ | 181 天+ | 诉讼、仲裁、核销 | 1–5% |
| 坏账 | — | 核销后仍可追偿 | 残值处置 |
委外催收(Collection Outsourcing)在 2020–2022 年经过大规模整顿。暴力催收、爆通讯录、骚扰联系人被监管重点打击;合规催收要求:每日通话不超 3 次、不得威胁、不得向无关第三人透露债务信息。
6.3 展期、减免、核销
- 展期(Extension):延长还款期限、调整分期计划。审慎使用(会掩盖真实逾期)。
- 减免(Waiver):减免利息、违约金甚至本金。用于极端困难案例(病、灾、失业),走合规审批。
- 核销(Write-off):逾期 180 天以上且穷尽追索手段,从资产负债表上转到表外,但追索权保留。核销不等于免除债务。
- 转让(Debt Sale):将不良资产打包卖给 AMC(Asset Management Company,资产管理公司)或专业处置机构,典型折扣 2–10 分(即每 1 元本金卖 0.02–0.10 元)。
6.4 贷后关键指标:滚动率与迁徙率
贷后风险的两套核心指标:
Vintage 曲线(账龄分析):按放款月份聚合,观察不同月份放款资产在 MOB 1、2、3、6、12 的累计逾期率。Vintage 曲线是消金公司最重要的资产质量监控工具,任何一代模型/产品/客群的好坏一眼就能从 Vintage 看出。
迁徙率(Roll Rate):相邻两个月逾期阶段之间的迁移概率。典型矩阵:
| 本月 下月 | 正常 | M1 | M2 | M3 | M4+ |
|---|---|---|---|---|---|
| 正常 | 97% | 3% | 0 | 0 | 0 |
| M1 | 50% | — | 50% | 0 | 0 |
| M2 | 20% | — | — | 80% | 0 |
| M3 | 10% | — | — | — | 90% |
| M4+ | 5% | — | — | — | 95% |
迁徙率反映催收效果和客群质量,比单一时点逾期率更稳定。典型消金公司:M1 回到正常的概率 40–60%、M2 到 M3 的概率 70–85%、M3+ 的资产基本视为不良。
6.5 贷后决策案例:增益模型用于催收
传统 C 卡预测”未来 30 天是否催回”,按分数排序分配催收资源。但这种做法忽略了干预效应——高分客户本来就会自己还,花精力在他们身上是浪费。
增益模型(Uplift Model) 预测”干预带来的增量回收概率”,即:
\[\tau(x) = P(\text{回收} \mid x, \text{干预}) - P(\text{回收} \mid x, \text{不干预})\]
通过随机对照实验(RCT):对一批逾期账户随机不催收(Control)、轻催收、重催收,观察回收差异,训练 T-Learner / X-Learner 预测 uplift。催收资源优先分配给 uplift 最高的账户(所谓 “Persuadables”,可被说服者),而非单纯分数最高的。蚂蚁、招联、马上消费等内部 2022 年后均已将 uplift 模型用于 C 卡策略。
七、资产证券化(ABS)与联合贷
消费金融公司不是银行,自有资本有限。要扩表必须借用资本市场。主要方式:
7.1 消费贷与信用卡 ABS
ABS(Asset-Backed Securities,资产支持证券)将一批未来现金流(应收贷款)打包成证券,在交易所或银行间市场发行。典型结构:
发起人(消金公司)
│ 转让底层资产
▼
SPV(特殊目的载体)
│ 发行
▼
优先级 A 档(AAA,70–80%,低息)
优先级 B 档(AA,5–15%,中息)
次级档(发起人自持,5–15%,吸损)
增信方式:超额覆盖(Over-Collateralization)、现金储备账户、流动性支持、原始权益人风险自留 5%(证监会要求)。
7.2 蚂蚁花呗 / 借呗 ABS 停发事件
2020 年 11 月 2 日、11 月 10 日,银保监会、央行等四部门先后发布《网络小额贷款业务管理暂行办法(征求意见稿)》和约谈蚂蚁集团,IPO 被暂缓。关键背景:花呗、借呗的主体是两家重庆网络小贷公司,通过循环发行 ABS 把 30 多亿注册资本放大到了 3000 多亿贷款余额(约 100 倍杠杆)。意见稿要求:
- 网络小贷跨省经营需银保监直接批准;
- 单笔联合贷款中小贷公司出资比例不低于 30%;
- 通过发行 ABS 等形式融资的余额不得超过净资产 4 倍;
- 对自然人单户贷款余额不超 30 万、企业 100 万。
直接后果:2020 年底花呗、借呗 ABS 集中停发,蚂蚁集团启动整改,2021 年 6 月重庆蚂蚁消费金融有限公司(注册资本后扩至 230 亿元)成立,原小贷业务迁入消金牌照主体,杠杆限制从网络小贷的 4 倍升至消金公司的 10 倍左右,但仍远低于整改前的实际杠杆。这是中国消费金融监管史上最标志性的事件,直接改写了整个行业的资金结构。
7.3 联合贷与助贷
- 联合贷款:持牌机构与银行按比例共同出资、共担风险(互联网贷款办法要求 ≥30% 出资比例)。
- 助贷:平台只做获客、初筛、代运营,资金 100% 来自银行,风险也由银行承担。助贷模式下平台不承担信用风险,但要防”隐性增信”(如保证金账户、回购承诺)。
2023 年后监管明确:实质重于形式,隐性增信视为联合贷。不少平台被要求补充资本金或退出。
7.4 资金端工程:对接银行的技术账本
平台对接一家资金方银行,典型工程链路:
平台风控通过 → 资金路由 → 资金方审批 API → 放款指令
↓
银行核心系统出账 → 通知平台 → 用户到账
↓
每日对账(余额、放款、还款)→ 差错处理
几个痛点:
- 双系统实时同步:用户在平台看到的还款金额和银行核心账本必须一致,每笔还款需要同日回流。工程上用幂等对账任务,T+0 结束前必须核对。
- 多资金方调度:平台同时对接 10+ 家银行,按成本、风险偏好、剩余额度动态路由。需要资金运营系统实时监控每家银行剩余可贷额度。
- 单户集中度:互联网贷款办法对单一资金方对本平台授信余额有 25% 一级资本的限制,平台需主动分散,不能把所有订单送给”最便宜的那家”。
八、BNPL:西方 Klarna、Affirm、Afterpay 与中国花呗分期
8.1 BNPL 形态
BNPL(Buy Now Pay Later,先买后付)的核心产品结构:
- Pay in 4:4 期、双周,首期下单时支付 25%,后 3 期每两周扣款;对消费者零利息;商户承担 MDR(Merchant Discount Rate,商户贴现率)3–6%。代表:Klarna Pay in 4、Afterpay、Affirm Pay in 4、PayPal Pay in 4。
- Long-term Installment:3–36 期,有息,APR 0–36% 不等。Affirm 是典型代表,APR 按订单透明披露。
- Pay in 30:一个月内一次性付清,零息。Klarna 的招牌产品。
全球主要玩家(2025 年末数据):
| 公司 | 总部 | 年交易额 | 用户规模 | 上市 |
|---|---|---|---|---|
| Klarna | 瑞典 | 约 1000 亿美元 | 1.5 亿 | 2025 年 NYSE |
| Affirm | 美国 | 约 300 亿美元 | 2000 万活跃 | 2021 Nasdaq |
| Afterpay | 澳洲 | — | — | 2021 被 Block 以 290 亿美元收购 |
| PayPal Pay in 4 | 美国 | 嵌入 PayPal | 亿级 | 母公司 Nasdaq |
| Zip | 澳洲 | 百亿美元级 | — | ASX |
8.2 中国 BNPL 的另一条路
中国没有”BNPL”这个原生品类,功能被切成:
- 花呗/白条/分期乐:其实就是消费信用 + 分期,本质是小贷/消金产品。
- 商户分期:电商平台内嵌,资金来自银行信用卡分期或持牌消金。
- 信用卡分期:传统银行产品。
监管上直接纳入消费信贷体系,APR 必须明示,不存在”零息误导”——2022 年后所有分期页面必须同时展示综合年化成本(APR)和手续费率(IRR),这是和 BNPL 西方玩法最大的制度差异。
8.3 BNPL 工程差异
BNPL vs 传统消费信贷的工程差异:
| 维度 | 传统消费贷 | BNPL |
|---|---|---|
| 接入场景 | 独立 APP | 商户收银台 SDK/API |
| 决策时延 | 5–30 秒 | < 2 秒(不能卡结账) |
| 额度粒度 | 单笔/整体额度 | 每笔独立审批 |
| 征信上报 | 全部上报 | 部分上报(各国分歧大) |
| 商户接入 | 线下为主 | Shopify/Stripe 插件、Web SDK |
| 对商户收益 | 提成 2–5% | MDR 3–6% |
8.4 Affirm 的架构亮点
Affirm 公开披露的技术栈是一个典型的现代 BNPL:
- 商户 SDK:JavaScript + Mobile SDK,一次集成后按订单调用;
- 实时决策:每笔订单独立审批,端到端 < 1.5 秒;
- 数据团队使用 Snowflake + dbt 做特征与模型训练;
- 风控:首笔基于申请信息+软查询 FICO+设备数据;后续基于历史 Affirm 账户表现 B 卡;
- 利率:按订单和用户信用动态定价 0–36% APR,在结算页透明展示月供。
8.5 BNPL 的结构性风险
BNPL 模式在 2022–2024 年全球高利率环境下暴露了几个结构性问题:
- 资产质量周期性衰减:零息分期吸引的客户往往本就流动性紧张,一旦宏观利率上行、商户退款纠纷增多、消费者多头借贷,坏账率会迅速走高。Klarna 2022 年净亏损 10 亿美元,Affirm 2023 财年净亏损 9.8 亿美元,到 2024 年才逐步扭亏。
- 多头借贷(Loan Stacking):消费者可能同时在 Klarna、Affirm、Afterpay 四个平台各借一笔 Pay-in-4,总负担远超单一平台风控能判断。美国三大征信局 2022–2024 年陆续开始接收 BNPL 数据(Equifax 2022、Experian 2022、TransUnion 2023),形成行业共享;
- 商户信用风险:BNPL 提前预付商户、待消费者分期还款。若商户破产、大规模退款未实现,BNPL 承受损失(典型案例:若商户倒闭,尚未发货的订单必须全额退款给消费者,损失由 BNPL 承担)。
九、监管与合规
9.1 美国:CFPB 将 BNPL 纳入信用卡规则
2024 年 5 月 22 日,CFPB 发布解释规则(Interpretive Rule),明确 BNPL 的 Pay-in-4 产品属于 TILA(Truth in Lending Act)下的”信用卡”(Credit Card),需履行:
- 争议处理(Billing Error Resolution):消费者对一笔交易有争议时的标准流程;
- 退款处理:商品退款要对应调整分期计划;
- 周期账单披露:向消费者提供标准账单。
这一规则把 BNPL 从”灰色地带”拉入传统信用卡监管框架,Klarna、Affirm 等必须在 60 天内合规。
FCRA 则要求:拉取征信需”许可目的(Permissible Purpose)“、拒绝需出 Adverse Action Notice、消费者有争议权。
9.2 欧盟:CCD2
欧盟消费者信贷指令 2(Consumer Credit Directive 2,2023/2225)2023 年通过、2026 年 11 月全面适用,相比 CCD1(2008)主要变化:
- 覆盖范围扩展到 BNPL、P2P 消费贷、< 200 欧元小额贷款;
- 强制预合同信息披露(Pre-Contractual Information)包含 APR、总成本、违约后果;
- 加强偿付能力评估(Creditworthiness Assessment)要求;
- 对”持续信用购买(Continuous Credit Purchases)“的营销做限制。
9.3 中国:网络小贷、互联网贷款办法、利率红线
《最高人民法院关于审理民间借贷案件适用法律若干问题的规定》(2020 年 8 月修订):民间借贷利率上限调整为”一年期贷款市场报价利率(LPR)的 4 倍”,2026 年 LPR ≈ 3.45% 对应 13.8%——但此规则仅适用民间借贷,不适用持牌金融机构。
持牌金融机构(银行、消金、信托):监管从未明文规定统一利率红线,但 2021 年监管指导”利率从严控制在 24% 以内”,24% 是事实上的红线。超过 24% 不等于违法,但超过 36% 部分在司法实践中不予保护。
APR 明示(2021 年 3 月 31 日央行公告):所有贷款产品、分期产品必须以年化利率(IRR 或 APR)形式展示,禁止只展示”月费率”。
互联网贷款管理办法(2020 年、2022 年过渡期结束)核心条款:
- 联合贷单笔出资比例不低于 30%;
- 对单一合作机构出资余额不超一级资本 25%;
- 地方法人银行原则上不得跨注册地辖区开展互联网贷款;
- 风控核心环节不得外包。
9.4 征信数据的跨境与合规
跨境开展消费金融业务(如中资背景的东南亚、拉美 BNPL/消金平台)必须同时满足:
- 出境端:中国《个保法》第 38 条个人信息出境安全评估、第 39 条单独同意、第 40 条关键信息基础设施数据本地化;
- 入境端:目标国征信法(印尼 OJK、巴西 LGPD、墨西哥 INAI 等)。
常见合规架构:
- 境外数据不回传:目标国用户数据在当地数据中心处理,只把脱敏模型结果和聚合指标回传国内;
- 模型参数出境审查:训练权重如果隐含境外用户信息,在部分司法辖区被视为”个人信息加工结果”,需单独审批;
- 本地化合资主体:与目标国持牌机构合资,由合资主体持有征信数据,中方提供技术服务(Tech Licensing)。
2023–2025 年多家中资背景 BNPL 因数据合规争议(如菲律宾 NPC 对中资现金贷调查)被罚或退出市场,合规与技术是一体两面。
十、公平性:代理变量、差异影响、模型审计
10.1 敏感特征与代理变量
即便不把性别、种族直接入模,模型仍可能通过代理变量(Proxy Variable)间接学到:
- 邮编 → 种族/收入分布;
- 姓氏 → 族裔;
- 学校 → 社会经济背景;
- 上网设备型号 → 消费能力。
美国 ECOA/Fair Housing Act 下的差异影响测试(Disparate Impact Test):
\[\text{DI} = \frac{\text{approval rate}_{\text{protected}}}{\text{approval rate}_{\text{majority}}}\]
经验阈值 0.8(80% Rule,也称 Four-Fifths Rule):若小于 0.8,监管推定存在差异影响,需要”业务必要性”辩护。
10.2 公平性算法
常见技术路线:
- Pre-processing:样本重加权、重采样消除分布偏差;
- In-processing:训练时加入公平性约束(Demographic Parity、Equalized Odds);
- Post-processing:阈值调整、分群校准;
- 对抗训练:主模型预测违约,对抗模型预测敏感属性,梯度对抗压低敏感信号。
工具库:IBM AIF360、Google Fairness Indicators、Microsoft Fairlearn。
10.3 模型审计
美国 OCC(Office of the Comptroller of the Currency)SR 11-7(Model Risk Management)和美联储 SR 11-7 要求金融机构建立模型风险管理框架:
- 模型清单(Model Inventory);
- 独立验证(Independent Validation);
- 持续监控(PSI、KS 稳定性、业务指标漂移);
- 变更管理与文档。
中国银保监 2022 年《银行保险机构信息科技外包风险监管办法》和 2023 年”模型风险管理”专项检查把这套机制往国内拉齐。
十一、代码实战:LightGBM A 卡 + WOE 分箱 + KS/AUC
下面给一个完整、可运行的 A 卡建模骨架,使用
scikit-learn + lightgbm + 手写
WOE。生产环境里通常会用
scorecardpy、toad
等风控专用库(国内 toad 最流行)。
import numpy as np
import pandas as pd
import lightgbm as lgb
from sklearn.model_selection import train_test_split
from sklearn.metrics import roc_auc_score
# -------- 1. 模拟数据:10 万申请,20 个特征,目标 y=1 表示首半年 90+ 逾期 --------
rng = np.random.RandomState(42)
N = 100_000
df = pd.DataFrame({
"age": rng.randint(18, 65, N),
"income": rng.lognormal(10.5, 0.6, N),
"pboc_overdue_12m": rng.poisson(0.3, N),
"credit_util": rng.beta(2, 5, N),
"query_cnt_3m": rng.poisson(1.2, N),
"account_age_m": rng.randint(0, 240, N),
"device_risk": rng.beta(2, 8, N),
"city_tier": rng.choice([1,2,3,4,5], N),
# ... 省略 12 个特征
})
# 构造带噪声的目标变量
logit = (-3.0
+ 0.8 * df["pboc_overdue_12m"]
+ 2.5 * df["credit_util"]
+ 0.3 * df["query_cnt_3m"]
- 0.00001 * df["income"]
+ 3.0 * df["device_risk"]
+ rng.normal(0, 0.5, N))
p = 1 / (1 + np.exp(-logit))
df["y"] = (rng.uniform(size=N) < p).astype(int)
print("坏样本率:", df["y"].mean()) # ~4%
# -------- 2. WOE 分箱(简化版:等频 + 计算 WOE/IV)--------
def woe_iv(x: pd.Series, y: pd.Series, n_bins=10):
bins = pd.qcut(x, n_bins, duplicates="drop")
tab = pd.crosstab(bins, y).rename(columns={0: "good", 1: "bad"})
tab["good_rate"] = tab["good"] / tab["good"].sum()
tab["bad_rate"] = tab["bad"] / tab["bad"].sum()
tab["woe"] = np.log((tab["good_rate"] + 1e-6) / (tab["bad_rate"] + 1e-6))
tab["iv_bin"] = (tab["good_rate"] - tab["bad_rate"]) * tab["woe"]
return tab, tab["iv_bin"].sum()
iv_summary = {}
for col in ["age","income","pboc_overdue_12m","credit_util",
"query_cnt_3m","account_age_m","device_risk"]:
_, iv = woe_iv(df[col], df["y"])
iv_summary[col] = iv
iv_df = pd.Series(iv_summary).sort_values(ascending=False)
print("IV 排序:\n", iv_df)
# -------- 3. 训练 LightGBM --------
features = [c for c in df.columns if c != "y"]
X_tr, X_te, y_tr, y_te = train_test_split(
df[features], df["y"], test_size=0.3, stratify=df["y"], random_state=1)
params = dict(
objective="binary", metric="auc",
learning_rate=0.05, num_leaves=31, min_data_in_leaf=200,
feature_fraction=0.9, bagging_fraction=0.8, bagging_freq=5,
verbose=-1,
)
dtr = lgb.Dataset(X_tr, y_tr)
dte = lgb.Dataset(X_te, y_te, reference=dtr)
model = lgb.train(params, dtr, num_boost_round=500, valid_sets=[dte],
callbacks=[lgb.early_stopping(30)])
# -------- 4. 评估:AUC、KS --------
pred = model.predict(X_te)
auc = roc_auc_score(y_te, pred)
def ks(y_true, y_score):
df_ = pd.DataFrame({"y": y_true, "s": y_score}).sort_values("s")
cum_bad = (df_["y"] == 1).cumsum() / (df_["y"] == 1).sum()
cum_good = (df_["y"] == 0).cumsum() / (df_["y"] == 0).sum()
return float((cum_good - cum_bad).abs().max())
print(f"AUC = {auc:.4f}, KS = {ks(y_te.values, pred):.4f}")
# -------- 5. 概率转分数(FICO 风格)--------
def prob_to_score(p, base=600, pdo=20, base_odds=1/20):
# Score = A - B * ln(p/(1-p))
B = pdo / np.log(2)
A = base + B * np.log(base_odds)
odds = p / (1 - p + 1e-12)
return A - B * np.log(odds)
scores = prob_to_score(pred)
print("分数分布:")
print(pd.Series(scores).describe())工业标准的评估指标:
- AUC:0.7 起步,消金 A 卡优秀线 0.78–0.82,传统信用卡可到 0.85+。
- KS(Kolmogorov-Smirnov):0.3 起步,优秀 0.4+,0.5+ 要怀疑穿越。
- PSI(Population Stability Index):跨时间、跨批次分布稳定性,< 0.1 稳定,0.1–0.25 关注,> 0.25 需重训。
- Lift / Gain:Top 10% 高分段坏账率 vs 整体坏账率的比率。
生产模型上线前还要做反事实仿真(Counterfactual Simulation):用历史通过+历史拒绝样本,估算新模型的通过率、坏账率、规模曲线,交叉验证后才敢切量。
十二、中国消费金融公司案例
12.1 蚂蚁消金
2021 年 6 月正式开业的重庆蚂蚁消费金融有限公司承接了原花呗、借呗业务。2022–2024 年经历三轮增资,注册资本从 80 亿提高到 230 亿元人民币,是国内注册资本最大的消金公司。股东结构经调整后:蚂蚁集团 50%、南洋商业银行 15.01%、国泰世华银行(中国)10%、舜宇光学 6%、博冠科技 4.99%、重庆渝富资本 6%、鱼跃医疗 3%、传化智联 5%。2024 年总资产超 3000 亿元,年化净利润十亿级。
工程上的典型能力:花呗、借呗的决策链路构建在阿里集团风控平台之上,每秒处理百万级决策,端到端 P99 < 200ms,特征规模据公开资料十万级。
12.2 招联消费金融
招联消费金融股份有限公司(2015 年成立)股东为招商银行和中国联通各 50%。2023 年末资产超 1700 亿元,贷款余额超 1500 亿元,线上新一贷、信用付产品覆盖亿级用户。招联的特色是强依赖招商银行风控体系 + 联通运营商数据——后者在 2017 年前是其核心差异化优势,2021 年断直连后这一优势弱化。
12.3 马上消费金融
马上消费金融股份有限公司(2015 年重庆百货发起)是少数较早布局 AI 风控、NLP 智能外呼的消金公司,自研”天启”反欺诈系统、“天镜”智能风控平台。2024 年资产规模约 700 亿。2021 年因数据合规问题被人行、银保监罚款 750 万元,是行业典型合规教训案例。
12.4 度小满金融
从百度金融独立出来(2018 年),定位助贷+联合贷+自营消金混合模式。度小满没有消金牌照,主要通过旗下重庆百度小贷公司和合作银行运作。其 AI 风控基于百度搜索、地图、输入法的脱敏信号——这也是 2021 年断直连后被挑战最多的部分。
12.5 一个国际对照:Discover 与 Capital One
放眼国际,同样是”数据驱动信用卡/消费贷”的代表:
- Capital One(1994 年独立上市)奠定了美国信息化信用卡业务的范式,通过 Test-and-Learn(测试-学习)把授信、调额、交叉销售做成了工程化的 A/B 流水线。其内部每年运行数万次营销与风控实验。
- Discover Financial:2007 年从摩根士丹利拆分,自建收单网络 + 发卡 + 消费贷。2024 年与 Capital One 宣布合并(2025 年获批)——这是美国自 2008 年以来最大的金融并购,合并后在美国形成第三大信用卡发卡机构 + 独立收单网络的组合。对比之下,中国由于银联单一收单网络体制,不会出现类似的”发卡+收单”一体化玩家。
这类对比提示一个工程取向:中国消费金融的技术栈深度不输国际同行,但产业结构差异决定了模型目标函数和业务拼图完全不同。
十三、工程坑点清单
- 拒绝推断(Reject Inference)没做,模型越跑越窄。 线上模型只见得到被通过的样本,训练集分布与决策集分布系统性偏离,AUC 看起来稳,通过率却持续下降。应对:拒绝样本外推(强制通过小比例随机样本做探索)、外部替代模型打分、Heckman 两阶段校正。
- 表现期未到就加特征。 新加的行为特征还没观察到违约结果,就训练到模型里,结果上线发现根本没预测能力。应对:固定表现期(如 MOB 6)、只用表现期结束前可得的特征。
- 穿越变量(Target Leakage)。 常见错误:把”贷后还款次数”“最后一次逾期天数”等事后特征当成”申请时刻”的特征。IV > 0.8 的变量都应该人肉审查。
- WOE 分箱业务不可解释。 自动分箱出来”收入越高越坏”,别强行上线,可能是样本问题或特征工程错误。应对:单调性约束、业务 Review。
- 模型部署特征漂移。 训练用 Hive 特征,线上用 Redis 特征,两边计算口径差一个小时窗口,AUC 线下 0.78、线上 0.70。应对:离线在线同源(同一段 Spark 代码双跑)、在线特征回放。
- 催收策略盲目使用 C 卡分。 C 卡预测”催回概率”,高分不代表应该少催——高分客户是最应该被轻度提醒就能回来的人,低分才真需要重度干预。策略设计要用增益模型(Uplift Model)而非预测模型。
- 资金方审批口径与模型不同。 联合贷资金方用他们自己的审批模型再筛一遍,平台过的 30% 被资金方拒掉,实际通过率远低于预期。应对:与资金方联调模型口径、双模型并行的”共同决策”。
- 利率定价撞红线后的逆向选择。 24% 红线卡死后,原本 APR 28% 能服务的客户被一刀切到 24%,实际 EL 不匹配、业务亏损;这部分客户反而更积极申请,造成逆向选择(Adverse Selection)。应对:严格准入而非降价迁就。
- 个保法授权链路断裂。 用户勾选了”同意征信查询”但没有单独勾选”同意三方数据查询”,被审计查出属于未授权处理,罚款+整改。应对:分类目授权、每类数据独立弹窗。
- 贷后数据不回流模型。 还款、逾期、催收结果没有打标回训练集,模型一年不迭代,PSI 早就超标。应对:标签管道自动化、季度迭代机制。
- APR 计算口径错误。 手续费、会员费、保险费算不算 APR?2021 年明示要求”所有融资成本”都要算入。用 IRR 而非简单日息 × 365。
- ABS 发行与业务节奏不同步。 资金端 ABS 排期三个月一次,业务端扩量超过资金到位速度,出现流动性缺口;反之资金到位但业务不达量,资金闲置成本高。
- 黑产画像反被模型”优选”。 黑产有意养号养征信,表现特征看起来像”优质新户”,被模型高分通过后一次性套现。应对:反欺诈与信用模型联动、新户小额试探、异常高分段人工 Review。
- 模型可解释不到位导致合规补材料爆炸。 监管一次检查要还原几万条决策拒绝理由,靠事后脚本跑。应对:决策时就结构化记录 reason_codes,审计时只做聚合查询。
- 跨平台多头借贷。 同一用户同时在三家消金公司借款,任一家单独看通过率都没问题,总负担超限。应对:经由百行/朴道接入共享的多头查询、设置多头触发规则。
十四、选型与落地清单
从零搭建消费金融风控系统,建议的最小可行栈:
| 层 | 选型 | 说明 |
|---|---|---|
| 决策编排 | Drools / URule / 自研 DSL | 规则+模型组合 |
| 特征平台 | Feast / Tecton / 自研 | 离线在线同源 |
| 模型训练 | Python + LightGBM + toad | 评分卡标配 |
| 模型服务 | Triton / 自研 gRPC | P99 < 20ms |
| 数据仓库 | Hive / MaxCompute / Snowflake | 离线特征 |
| 在线存储 | Redis / Aerospike / TiKV | 在线特征 |
| 流处理 | Flink | 实时行为特征、贷后监控 |
| 风控日志 | Kafka + ClickHouse | 决策审计 |
| 催收 | 智能外呼平台 + CRM | 分层执行 |
| 合规 | 模型文档 + 特征血缘 + 审计日志 | SR 11-7 等价框架 |
上线前 Checklist:
十五、本系列交叉引用
- 第 19 篇《实时风控引擎》:规则、特征、模型、Flink 决策流的通用工程框架,本篇 A/B/C 卡是其上层应用。
- 第 20 篇《反欺诈》:设备指纹、关系图谱、黑产对抗,是授信链路”反欺诈”节点的专题展开。
- 第 21 篇《反洗钱与 KYC》:客户身份核验与反洗钱监测,与本篇共享 KYC 基础能力。
- 第 23 篇《对账系统工程》:贷款放款、还款、核销都需要严格的资金账务对账,是本篇的下游。
- 第 10 篇《订阅与计费系统》:BNPL 分期计划本质是一种特殊的订阅账单调度。
- 第 4 篇《账务数据库设计》:贷款本金、利息、罚息、还款流水的账本底座。
- 第 5 篇《幂等、事务与一致性》:决策请求幂等键、放款与账务的 SAGA/TCC 模式。
- 第 24 篇《金融级可靠性》:风控系统如何做两地三中心和灰度发布。
十六、参考资料
- 中国人民银行征信中心,《二代格式个人信用报告查询样本》,https://www.pbccrc.org.cn/
- 银保监会,《商业银行互联网贷款管理办法》(银保监发〔2020〕9 号)
- 中国人民银行,《关于推动明示贷款年化利率的公告》(2021 年 3 月 31 日)
- 全国人大,《中华人民共和国个人信息保护法》(2021 年 8 月 20 日)
- CFPB, “Truth in Lending (Regulation Z); Use of Digital User Accounts to Access Buy Now, Pay Later Loans”, 2024-05-22, https://www.consumerfinance.gov/
- Basel Committee on Banking Supervision, “Basel III: Finalising post-crisis reforms”, BIS, 2017
- FICO, “Introducing FICO Score 10 Suite”, https://www.fico.com/en/products/fico-score
- VantageScore, “VantageScore 4.0 Model Overview”, https://vantagescore.com/
- European Parliament, “Directive (EU) 2023/2225 on credit agreements for consumers (CCD2)”
- Affirm Holdings Inc., Form 10-K, SEC Filing
- Klarna Group plc, Annual Report 2024
- toad: A scorecard toolkit, https://github.com/amphibian-dev/toad
- scorecardpy, https://github.com/ShichenXie/scorecardpy
- Bank for International Settlements, “IFRS 9 and expected loss provisioning”, 2017
- CFPB, “Buy Now, Pay Later: Market trends and consumer impacts”, Sep 2022
- Affirm Holdings, “Investor Day Presentation”, 2024
- 中国银保监会,《关于进一步规范商业银行互联网贷款业务的通知》(2022 年第 14 号)
- 中国人民银行,《征信业务管理办法》,2021 年 9 月 30 日
- OCC, Supervisory Guidance on Model Risk Management (SR 11-7 / OCC Bulletin 2011-12)
- FFIEC, “Interagency Fair Lending Examination Procedures”, 2009 (as updated)
- Fannie Mae & Freddie Mac, “Credit Score Model Transition Timeline”, FHFA announcement, 2024-03
上一篇:《反洗钱与 KYC:客户尽调、交易监测、STR/SAR、FATF》
同主题继续阅读
把当前热点继续串成多页阅读,而不是停在单篇消费。
【金融科技工程】金融科技工程全景:从支付到交易所的系统分类与读图
金融科技(FinTech)不是普通后端加一张账户表。钱的原子性、监管的硬边界、一个小数点的代价,把这个领域推进到工程强度最高的那一档。本文是【金融科技工程】25 篇的总目录与阅读地图:先交代为什么它比一般业务系统更难,再给出对账体、支付体、交易体、风控合规体四维分类,把后续 24 篇挂到骨架上,最后给出一份绿地项目的落地顺序建议。
【金融科技工程】钱的建模:金额精度、币种、会计单位、多语言金额
在代码里正确地表示"一笔钱"远比看起来难。本文系统梳理金额的数值建模(浮点、定点、Decimal、最小单位)、币种标准(ISO 4217)、本地化显示、汇率换算与数据库存储,并给出 Go、Python、Java、Rust 的工程化示例。
【金融科技工程】复式记账工程化:科目、分录、余额、对账
把 500 年历史的复式记账翻译成工程师可以落地的数据模型、SQL 表结构与余额计算策略,覆盖充值、下单、退款、分润、红包、多币种与冲销的真实场景,并对比 TigerBeetle、beancount、Ledger CLI、Square LedgerDB、Stripe Ledger 等开源与工业实现。
【金融科技工程】账务数据库设计:TiDB/OceanBase/Postgres 下的分片、索引、热点账户
账务(Ledger)数据库是金融系统最硬的那块骨头。本文从 RPO/RTO 目标出发,对比 PostgreSQL、MySQL、OceanBase、TiDB、CockroachDB、Oracle、TigerBeetle 等主流选型,讲分片维度、热点账户拆解、索引设计、冷热归档、MVCC 并发控制与审计合规,辅以蚂蚁、Stripe、PayPal、Square 的真实演进路径。