1. 风控特征分层概述
1.1 特征分层的定义
在风控建模中,特征分层是指将原始数据按照业务逻辑、数据来源、计算时效与抽象程度划分为多个层级,形成从底层原始数据到高层衍生指标的层次化特征体系。每一层特征在存储、计算、更新频率与模型使用方式上具有显著差异。
核心观点:特征分层不是简单的数据分类,而是为了在 Spark 分布式环境下实现特征的高效复用、增量计算与模型性能优化而设计的架构策略。
1.2 风控特征的四层体系
业界通用的风控特征分层体系通常包含以下四个层级:
| 层级 | 名称 | 数据来源 | 计算时效 | 典型示例 |
|---|---|---|---|---|
| L1 | 原始特征层 | 实时接口、埋点日志 | 毫秒级 | 设备型号、IP 地址、注册时间 |
| L2 | 统计聚合层 | 离线数仓、实时流 | 分钟~小时级 | 近 7 天登录次数、近 30 天交易总额 |
| L3 | 衍生特征层 | L1+L2 计算产出 | 小时~天级 | 登录频率变异系数、交易金额环比增长率 |
| L4 | 模型特征层 | L2+L3 筛选加工 | 天级 | WOE 编码、分箱离散化、特征交叉 |
实践建议:在 Spark 中,L1 层适合使用 DataFrame 的宽表存储;L2 层适合使用窗口函数 + 分组聚合;L3 层需要自定义 UDF 或 Spark SQL 的表达式计算;L4 层则依赖特征工程 Pipeline 进行标准化输出。
1.3 特征分层在风控模型中的重要性
特征分层对风控模型的影响体现在三个关键维度:
- 计算效率:分层后,高频更新的 L1 特征与低频重算的 L4 特征分离,避免全量特征重复计算,Spark 任务执行时间可降低 40%~60%。
- 特征复用:L2 统计聚合特征可被多个模型共享(如申请评分卡、行为评分卡),减少重复开发与存储冗余。
- 模型稳定性:分层体系使得特征监控粒度细化,当某层特征发生数据漂移时,可快速定位并隔离影响,避免模型整体失效。
1.4 分层与模型性能的关系
特征分层直接影响风控模型的三个核心性能指标:
| 性能维度 | 无分层时的表现 | 有分层时的表现 | 提升幅度 |
|---|---|---|---|
| KS 值 | 0.32~0.38 | 0.40~0.45 | +15%~20% |
| AUC | 0.72~0.76 | 0.78~0.83 | +6%~10% |
| 特征稳定性 PSI | 0.15~0.25(不稳定) | 0.05~0.10(稳定) | 降低 50%~70% |
注意:分层不是越细越好。过多的层级会导致 Spark 任务 DAG 深度增加,Shuffle 开销上升。建议控制在 3~4 层,每层特征数量不超过 200 个,以保证计算效率与模型效果的平衡。
1.5 分层对模型训练与推理的影响
从模型全生命周期来看,特征分层在以下阶段产生关键影响:
- 训练阶段:分层后的特征可以直接按层进行并行计算,Spark 可以针对 L2 层做宽表 Join 优化,针对 L3 层做 Map 端聚合,减少 Shuffle 数据量。
- 推理阶段:线上服务只需加载 L4 模型特征层的预计算值,L1~L3 层的计算由离线 Spark 任务提前完成,推理延迟可控制在 10ms 以内。
- 特征监控:每层特征可独立计算 PSI 与数据质量指标,当某层发生漂移时,模型可自动降级到上一层特征,保证业务连续性。
关键结论:特征分层是风控模型从“能用”到“好用”的必经之路。在 Spark 分布式环境下,合理的分层设计可以将特征计算效率提升 3~5 倍,模型 KS 值提升 15%~20%,同时大幅降低特征监控与模型迭代的运维成本。