type
Post
status
Published
date
Jan 25, 2026
slug
summary
tags
思考
文字
category
学习分享
icon
password
comment
建议阅读时间:8min
写作初衷
写这篇文章的初衷,一方面是对过去四年经历的系统总结。在即将跨入新领域之际,我希望将这些行业认知记录下来,以免它们被新工作中的海量信息迅速覆盖。
另一方面,是想为后来者提供一份具体的职业画像。如果你对信用风险模型(Credit Risk Modeling)感兴趣,希望通过这篇文章,你能更具象地了解这个领域:它服务于谁,你能学到什么,以及你必须忍受什么样的职业挑战。
当然这些也都是从我的个人视角出发看到的,一定是有所偏颇的,但我尽量以客观的角度去分享其中的观察和思考。
工作背景
我的职业生涯起始于两段截然不同却有和Credit Risk Modeling密切相关的经历。
- Buy now pay later模式的电商平台 —— Bluestem Brands (以下简称BLST)
BLST是我毕业后加入的第一家公司,彼时我对Data Scientist这个岗位无比痴迷,莫名就觉得能做模型很厉害(当然那是GPT横空出世前的时代了)。不少同学应该在学校也尝试建过credit risk model用来预测用户的违约率(default rate)或者欺诈率(fraud rate),这也是我对此类模型的入门接触。在第一份工作中也确实在做这件事 —— 那就是预测客户的违约率来决定要不要给客户发信用卡(BLST并不是银行或信用卡公司,而是一家电商,所以发放的是只能在自家商城使用的购物金)。
- 大型金融公司的商业贷款部门 —— Capital One(以下简称C1)
一年后我跳槽到C1,做的内容和之前非常不同。我们大组负责公司内商业贷款的投资组合分析,所以第一个不同就是数据类型,商业贷款每一笔都数字庞大动辄上亿,但是数量很少,每个类别下少则几十,多则上千比,与之前接触的用户数据截然不同。再来我们小组是负责预测损失(loss forecasting)并且这些预测的主要用途是用于压力测试(stress testing),所以它不再是关心个体,而是整体的投资组合是否能帮助银行在风暴来临时撑过去。
如果有些词已经听起来很模糊让人发晕,没关系,后面会有更清楚的解释:)
什么是信用风险模型(Credit Risk Model)
在深究技术细节前,我们需要理解它的底层逻辑。原谅我找不到比官方更好的解释,所以摘抄一下:
在金融和风控领域,信用风险模型(Credit Risk Model) 是指一套用于量化和预测借款人(个人、企业或国家)无法履行债务义务(即违约)的可能性及潜在损失的数学工具或统计框架。简单来说,它回答了三个核心问题:他会不会违约?(违约概率:PD, Probability of Default))如果违约,我还有多少钱在外面?(违约风险暴露:EAD, Exposure at Default)如果违约,我最后会损失多少?(违约损失率:LGD, Loss Given Default)这三个变量共同构成了银行计算损失的核心公式:
只要涉及到借钱和还钱的机构,基本都需要回答以上三个问题,但在不同的金融机构,这三个问题的侧重点完全不同:
- 信用卡/小额贷款(Customer Loan): 极度关心 PD(准入评分卡)。因为样本量巨大,哪怕 PD 预测准度提升 0.1%,都能直接省下数百万美元。
- 商业银行/组合分析(Commerical Loan): 更关心 LGD 和 EAD。因为大企业一旦违约,损失往往是灾难性的,我们必须看清抵押品的价值(LGD)以及在危机时刻对方可能突然提款的额度(EAD)。
其他类型的模型:
除了这三大核心模型,还有许多更底层的模型。如果说 通过PD/LGD/EAD计算出的EL是最后端上桌的菜,那么这些底层模型就是自制酱料。你需要花大量时间钻研贷款之间的关系,才能保证最终损失预测的味道是准的。因为与本文相关性不大,就在此不详谈了。
为什么需要信用卡风险模型
1. 内部视角:生存与获利的平衡感
从公司内部经营的角度看,模型是回答那三个核心问题的“准绳”。只有通过模型准确识别借款人的还款能力,才能确保信用产品发放给合适的人。这不仅是为了获取稳定的现金流,更是为了确保收益能覆盖成本,维持公司这台机器的平稳运行。
2. 外部视角:2008 年后监管的诞生
然而,2008 年金融危机的导火索——次贷危机,给所有人都上了一课:人性都是贪婪的。 在没有约束的情况下,银行为了追求更高的收益,天生倾向于将杠杆拉满,恨不得把每一分钱都借出去。但由此引发的连锁反应是致命的:
- 信用崩塌: 钱借给了缺乏偿还能力的人。
- 流动性危机: 当大面积违约发生,银行自身的现金流断裂。
- 信心危机与挤兑: 民众对银行产生恐慌,蜂拥而至提取存款。
这种事件对金融界无疑是10级大地震,也是政府最不想看到的画面。为了避免悲剧重演,2008 年后全球出台了一系列极其严苛的监管要求,强制要求像 JP Morgan、Citi 或 Capital One 这样规模的金融机构,必须通过模型来回答两个核心命题:
- 资本要求(Capital Requirement): 基于巴塞尔协议(Basel III)或 IFRS 9/CECL 准则,银行必须每个季度计算:面对潜在损失,我兜里需要预留多少“准备金”?这就像是强制储蓄,确保银行在极端情况下也不会因为没钱给储户而破产。
- 压力测试(Stress Testing): 如果说资本要求是日常体检,那么压力测试就是极端模拟。政府(如美联储)每年会派发一次大考试卷:给出一组未来两年的宏观指标预测——比如 GDP 暴跌、失业率飙升至 10%、CPI 剧烈波动。银行必须通过预测模型算出,在经济“良好”、“普通”以及“严重恶化”的三种情景下,自己的资产组合会亏多少钱?能不能挺过去?
我的角色转变
在 C1,我经历了这种每季小考、每年大考的洗礼。由于身处资产组合分析组,我们极其看重第三个问题:“如果违约发生,我们到底会损失多少钱?” 这关系到银行的生死存亡。
相比之下,BLST因为不属于银行机构,受到的监管压力微乎其微。虽然我们也会为每个模型做压力测试,但那更多是在模型层面观察其稳健性(Robustness),看模型在极端数据下会不会失效。这属于模型质量的自我要求,而 C1 的压力测试则是上升到了资本安全和国家金融稳定的层面。
如果没有这些模型,现有的银行机构一定会更加激进;而监管的本质,就是通过这些冷冰冰的数学模型,强行让贪婪的人性变得保守一些。
怎么建信用风险模型
核心维度的横向对比
从模型视角看,这两份工作的差异可以概括为以下这些维度的对比:
维度 | Bluestem (零售端决策) | Capital One (对公压力测试) |
侧重参数 | PD (违约概率):决定发不发卡。 | PD, LGD, EAD 全量:计算预期损失EL。 |
数据形态 | 庞大且稠密:海量行为、信用分。 | 庞大且稀疏:宏观指标与异构的信贷合同。 |
算法选择 | XGBoost:追求预测精度,处理非线性。 | Regression:追求可解释性,应对样本稀疏。 |
团队协作 | DS 个人承包制,与分析师合作。 | 兵团作战:DE、宏观组、Scorecard组、MV组。 |
开发周期 | 快节奏:约 3 个月完成迭代。 | 慢打磨:以年为单位,常需“从 0 到 1”开荒。 |
评价指标 | AUC, KS值, F1-Score。 | 预测值与实际损失的偏离度、敏感性分析(Sensitivity/Impact analysis)。 |
流程概览—— BLST快速迭代
在BLST往往是一名DS就能负责多个模型的开发,因为开发模型的流程已经相对固定,所以可以量产。后续模型的安装和部署都和下游的Credit Analyst合作完成。负责从数据清洗到文档撰写的全流程。一个完整的周期大概12周:
- 数据探索与清洗 (1-2周): 从第三方(FICO, Transunion等)获取 用户行为数据,进行 EDA(探索性分析),了解数据质量。
- 目标定义与窗口切分 (1-2周): 确定 Target Variable(如预测 6/9/12 个月违约率),此处需要有详细的分析来支持选择的原因。基于此圈定数据范围,将历史数据按 6 个月的窗口进行切分。
- 样本均衡与时间分片 (1周): 划分 Training/Testing/Validation 集。通常按月拆分,确保样本覆盖圣诞节等节假日,保证模型对季节性波动的捕捉。但这一步时常反复,可能模型建好了发现数取的不好会回头来调整。
- 特征工程 (1周): 构建能够解释用户行为的 Feature(如信用分数的变动趋势、用户的持卡量等),这一步很取决于第一步处理的数据质量。
- 建模与迭代调优 (2-4周): 使用 XGBoost 建模。这是最耗时的步骤,需反复回到第 3 & 4 步调整切分方式和特征的选取。数据处理的好且特征选取的好是会给模型带来比较大的提升,比如performance增长3%,而调参能提升的空间有限,比如增长0.5%。
- 模型效果衡量(几个月): 利用 AUC、ROC、F1-score 和 KS 值衡量性能,将结果分享给Credit Analysit,他们会用新旧模型并行跑数,进行长期效果追踪,确认新模型效果更好之后再上线。
- 模型部署 (1-2周): 使用公司自有的部署应用将模型上线。
- 撰写文档 (1周): 按模版完成文档,涵盖 Reject Inference(拒绝推断)和模型压力测试分析。
- 模型审核: 提交领导&有关部门,会有类似答辩一样的过程。在BLST,这个流程通常比较顺畅,极少被驳回。
流程概览—— C1以年为单位的体系化运作
在 C1,建模是一个庞大的工程,建模前需要多方基建的就绪。
- 前置准备 (Pre-requisites):
- DE 团队搭建数据基建,能获取与贷款相关的所有信息
- 宏观团队提供 GDP、CPI 等指标长达十年内的预测(这是模型最重要的 Input)
- Scorecard 小组提供企业申请时的初始 PD
- 其他数据源:第三方公司提供的金融数据,有时候是买有时候自己扒😓
我在团队中的角色是模型部署/安装者(Model Implementation),一般只参与把模型从理论变成现实,至于模型的设计和开发是模型开发者Model Developer(以下简称MD)们干的活儿。可以理解为MD负责设计开发乐高的各个模块,而我负责把每个模块拼接起来,下游的分析师Business Analyst(以下简称BA)们则负责用拼接好的模块跑数据做分析。
所以从模型部署和安装者的视角来说,我参与的模型生命周期有:
- 开发阶段 (3-6个月): MD构建模型的方法论。如果是个全新的模型,则是从 0 到 1 的过程,涉及频繁的逻辑推翻重来,如果是模型的更新则相对简单些。
- 介入与初步测试 (1-2周): 模型完成度达到 80% 时,且MD们在本地环境进行了测试后,我会介入将模型写进组内自研的专门用来承载模型运算的Python Package。然后会发布测试版给BA们试用。
- 校对与调优(依据模型复杂度1-4周不等,特别大的模型会持续1个季度): 收集 BA 反馈,比如结果是否与预期的一致(e.g. 新模型加入后在xx经济环境下对xx类别的资产的EAD的预估会增长xx%)。MD 负责调优模型逻辑,我负责校对代码实现是否与 MD 写的模型白皮书完全一致。
- 白皮书撰写与封装(依据模型复杂度1-4周不等): MD 完成涵盖所有构建逻辑的白皮书,我完成最终版本的代码封装。这里最困难的事如果一个季度有4,5个模型同时要部署,模型之间会互相影响结果的情况下如何考虑各自测试结果的独立性,以及之后合并是的兼容性,所以会花不少时间做测试。
- 模型验证Model Validation (数月): 这是最难的一关。公司独立的Validator会挑战每一个细节。审核结果包括整改建议,需要在对定时间内完成整改,大纰漏会直接延缓上线。过了这关以后还有第三方审计公司的审核,以及来自政府的季度小考和年度大考。
- 模型正式投入使用: 由于模型会有滞后性,没法融入最新一季度的突发性事件(例如xx银行的破产会对行业带来冲击)。所以最终,BA 在用模型跑出结果后,还会根据所谓的专家经验对数字进行人为微调,例如对某个特定领域的贷款添加一些系数以此来看多预估的风险等。而我们要做的就是根据他们的需求去修改模型和代码并做好测试,确保代码的准确性(Regression test + Unit test)。
两份工作里的个人感受
BLST Pros(+):
- 方法论的快速学习和内化:作为毕业后的第一站,Bluestem 带我走出了学校项目的温室,见识了工业级建模的复杂性。 这里的建模有非常成熟且标准的路径,让我能迅速完成从学生到 DS 的职业转换,掌握了如何在真实数据中提取信号。
- 真实世界的复杂性: 我意识到,一个能落地的模型,其考虑的维度(如拒绝推断、时间窗口切分)远比学校里的 Project 要多得多。
BLST Cons(-):
- 模型不是救世主: 作为模型开发者,我们总追求模型表现的提升,但现实是:即便模型预测再准,也无法逆转商业模式的脆弱。 当宏观环境恶化、违约率飙升,公司最终倒闭了。这让我明白,模型只是精准的“温度计”,它能预警严冬,却无法阻止冬天的到来。
- 创新的天花板: 业界成熟的信用卡分类模型大多停留在 XGBoost 阶段。方法论的成熟也意味着创新的空间有限,很难在技术上玩出更多花样。
C1 Pros(+):
- 中后台的稳定性更强: Credit Risk Modeling所在的风险部门具有极强的稳定性。尤其在经济下行期更显重要,这种部门或者岗位属性使得它相比前台work life balance和job security都更好。
- 分分钟上百万的错觉:每个deal/loan都金额庞大,且与宏观经济息息相关,当你调整模型里的系数反馈出上千万甚至上亿美元的波动时,会有种“操纵市场”的错觉。
- 领域深度: 作为模型开发者,你有机会深耕某一垂直领域的模型,建立起对该行业极深的技术与业务认知。
C1 Pros(-):
- 周期性大考:稳定的代价是每逢CECL/CCAR周期都非常忙碌,得确保每一行代码都可以解释清楚为什么,被规则压的死死的。
- 与前沿技术的鸿沟: 金融模型极度强调可解释性。这意味着你必须忍受与前沿算法的脱节(甚至机器学习都用不上)。有种说法是一旦入职Risk部门,终身就只能做Risk,可以想像在这岗位上的可迁移性技能较少。
- 数字背后的意义感缺失:长期面对冷冰冰的损失预测,会有种在玩Number Game的倦怠。每天处理的只是概率和期望,为的是通过周期性的考核,难免产生无意义感。
总结
最近这段时间,新工作的挑战确实带给我不小的冲击,甚至有那么几天,会焦虑到睡不着觉。
在这个节点上决定回头把这篇文章写完,不仅是为了给过去的四年画上句号,也是想给自己一点鼓励:这四年走过的路,没有一步是白费的。
现在的陌生感和焦虑,是因为我进入了一个全新的、暂时缺乏“历史数据”参考的环境。正如一个新模型需要时间去收集样本、迭代参数一样,我也需要给时间一点时间。
相信时间的力量,这种焦虑终会随着认知的建立而消散。我很期待过一段时间后,当我再次回看这段新工作的起点时,能像今天总结过去四年一样,沉淀出新的观察与思考。
- Author:Xinyuan
- URL:https://tangly1024.com/article/2f34c8e8-8c54-80e9-be3f-fe591852828b
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!







