3、监控指标体系:PSI、KS、KL散度、JS散度、Wasserstein距离的适用场景与计算原理

在低延迟风控特征漂移监控中,选择合适的统计指标是准确预警的前提。不同指标对分布变化的敏感度、计算复杂度及适用场景差异显著。本章从数学原理出发,结合风控业务场景,逐一剖析 PSI、KS、KL 散度、JS 散度与 Wasserstein 距离的核心特性,并给出选型建议。

核心原则: 监控指标的选择需权衡“灵敏度”与“稳定性”。对于高频实时监控,优先选择计算轻量、对微小漂移不敏感的指标(如 PSI);对于深度分析或模型迭代验证,则可采用对分布尾部变化更敏感的指标(如 Wasserstein 距离)。

3.1 指标全景对比

下表从计算原理、输出范围、对称性、对尾部变化的敏感度及典型风控场景五个维度,对五大指标进行横向对比:

指标名称 计算原理 输出范围 对称性 尾部敏感度 典型风控场景
PSI 基于分箱的交叉熵变体 [0, +∞) 对称 低(依赖分箱) 评分卡分数漂移、特征分布周级监控
KS 经验分布函数最大垂直距离 [0, 1] 对称 中(对中心偏移敏感) 模型区分度衰减、拒绝推断分布对齐
KL 散度 相对熵,非对称度量 [0, +∞) 非对称 高(对概率接近0区域敏感) 异常检测、罕见事件分布变化
JS 散度 KL 散度的对称平滑版本 [0, 1] 对称 中高(有界且平滑) 多分布对比、模型蒸馏监控
Wasserstein 距离 最优传输理论,推土机距离 [0, +∞) 对称 极高(对位移和尾部敏感) 高精度数值特征漂移、对抗样本检测

3.2 各指标计算原理与适用场景

3.2.1 PSI(群体稳定性指标)

计算原理: PSI 将连续特征或模型分数进行等频分箱(通常 10~20 箱),然后计算每个分箱中实际占比与预期占比的差异。公式如下:

PSI = Σ (Actual_i - Expected_i) * ln(Actual_i / Expected_i)

其中:
- Expected_i = 基准分布中第 i 个分箱的样本占比
- Actual_i = 当前分布中第 i 个分箱的样本占比

适用场景:

  • 评分卡分数监控: 信贷风控中,模型输出的信用评分分布漂移是业务稳定性的核心指标,PSI < 0.1 表示无显著漂移,0.1~0.25 需关注,> 0.25 表示严重漂移。
  • 特征分布周级/月级监控: 对数值型特征(如收入、负债率)进行分箱后计算 PSI,计算速度快,适合大规模批量监控。
  • 局限性: 分箱数量与边界选择对结果影响较大;对分箱内分布形状变化不敏感。

3.2.2 KS(Kolmogorov-Smirnov 检验统计量)

计算原理: KS 统计量衡量两个经验累积分布函数(ECDF)之间的最大绝对垂直距离。对于基准分布 F(x) 和当前分布 G(x),有:

KS = max |F(x) - G(x)|

其中:
- F(x) = 基准样本中值 ≤ x 的比例
- G(x) = 当前样本中值 ≤ x 的比例

适用场景:

  • 模型区分度衰减监控: 在风控模型上线后,监控模型对好坏样本的排序能力是否下降。KS 值下降通常意味着特征分布重叠加剧。
  • 拒绝推断分布对齐: 验证通过样本与拒绝样本在关键特征上的分布一致性,KS 值过大表示样本选择偏差严重。
  • 局限性: 对分布中心区域的偏移敏感,但对尾部细微变化不敏感;样本量较小时统计波动大。

3.2.3 KL 散度(Kullback-Leibler Divergence)

计算原理: KL 散度衡量用分布 Q 来近似分布 P 时的信息损失。公式为:

KL(P || Q) = Σ P(x) * ln(P(x) / Q(x))

注意:KL 散度是非对称的,即 KL(P||Q) ≠ KL(Q||P)。

适用场景:

  • 异常检测: 当特征分布中出现罕见值或概率接近 0 的事件时,KL 散度会急剧增大,适合捕捉欺诈行为导致的分布突变。
  • 模型输入分布验证: 在模型推理前,快速检测当前 batch 的输入分布是否与训练集分布严重偏离。
  • 局限性: 非对称性导致方向选择需谨慎;当 Q(x)=0 且 P(x)>0 时,KL 散度趋向无穷大,数值不稳定。

3.2.4 JS 散度(Jensen-Shannon Divergence)

计算原理: JS 散度是 KL 散度的对称化与平滑版本,通过引入中间分布 M = (P+Q)/2 来保证有界性和对称性:

JS(P || Q) = 0.5 * KL(P || M) + 0.5 * KL(Q || M)

其中 M = (P + Q) / 2,JS 散度取值范围为 [0, 1](当使用 log base 2 时)。

适用场景:

  • 多分布对比: 在 A/B 测试或多模型版本对比中,JS 散度可同时比较多个特征分布,且结果有界,便于设定统一阈值。
  • 模型蒸馏监控: 监控教师模型与学生模型输出概率分布的一致性,JS 散度比 KL 散度更稳定。
  • 局限性: 计算复杂度略高于 KL 散度;对完全相同的分布,JS 散度为 0,但对微小差异的放大能力不如 Wasserstein 距离。

3.2.5 Wasserstein 距离(Earth Mover's Distance)

计算原理: Wasserstein 距离基于最优传输理论,衡量将一个分布“搬运”成另一个分布所需的最小成本。对于一维分布,有闭式解:

W(P, Q) = ∫ |F⁻¹(t) - G⁻¹(t)| dt

其中 F⁻¹ 和 G⁻¹ 分别为 P 和 Q 的逆累积分布函数(分位数函数)。

适用场景:

  • 高精度数值特征漂移: 对于连续型特征(如交易金额、年龄),Wasserstein 距离能捕捉到分布的整体位移和形状变化,包括尾部细微差异。
  • 对抗样本检测: 在风控模型安全领域,对抗样本通常会导致特征分布发生微小但结构性的偏移,Wasserstein 距离对此类偏移敏感。
  • 局限性: 计算复杂度较高(尤其高维),在低延迟场景中需结合近似算法或降维使用。
工程建议: 在低延迟风控流水线中,建议采用“两级监控”策略——第一级使用 PSI 或 KS 进行快速粗筛(毫秒级),第二级对触发阈值的特征使用 Wasserstein 距离进行精确评估(百微秒级),兼顾效率与精度。

3.3 指标选择决策流程

下图展示了在风控特征漂移监控中,如何根据业务需求与数据特性选择合适的指标:

风控特征漂移监控指标选择决策流程 风控特征漂移监控指标选择决策流程 特征分布漂移检测需求 是否要求毫秒级实时监控? 是 否 PSI 或 KS(粗筛) 是否关注尾部变化? 是 否 Wasserstein 距离 KL 或 JS 散度 两级监控策略:PSI/KS 粗筛 → Wasserstein 精验 兼顾低延迟与高精度,适用于生产环境

3.4 计算复杂度与工程选型

在低延迟场景中,指标的计算复杂度直接影响监控系统的吞吐量。下表对比了各指标在典型实现下的时间复杂度与工程建议:

指标 时间复杂度(n=样本数) 内存占用 工程建议
PSI O(n·bins) 低(仅需分箱计数) 预计算分箱边界,使用直方图近似,适合流式计算
KS O(n log n) 中(需排序) 使用近似分位数算法(如 T-Digest)降低排序开销
KL 散度 O(n·bins) 低 注意概率为 0 的处理(加极小平滑项),避免除零
JS 散度 O(n·bins) 低 与 KL 类似,但数值更稳定,推荐作为 KL 的替代
Wasserstein 距离 O(n log n)(一维) 中(需排序) 一维场景使用排序后积分;高维场景使用 Sinkhorn 近似
避坑提醒: 在实时监控中,避免对全量原始数据直接计算 Wasserstein 距离。建议采用“在线分位数估计”技术(如 Greenwald-Khanna 算法),将计算复杂度从 O(n log n) 降低到 O(log n),同时保持对分布漂移的高灵敏度。

3.5 综合选型建议

基于以上分析,针对不同风控监控层级,给出如下选型建议:

  • L1 快速预警(毫秒级): 使用 PSI(分箱预计算)或 KS(T-Digest 近似),每 5~10 分钟计算一次,阈值触发后进入 L2 分析。
  • L2 精确诊断(秒级): 对触发 L1 的特征,使用 Wasserstein 距离(一维排序积分)或 JS 散度(对称稳定),结合特征重要性进行根因定位。
  • L3 离线复盘(分钟级): 在每日/每周的模型监控报告中,同时计算所有五个指标,形成多维度漂移报告,用于模型迭代决策。

通过合理组合这些指标,风控系统可以在保持低延迟的同时,实现对特征分布漂移的全面感知与精准预警。