4、校验指标体系:PSI、KS统计量、KL散度、JS散度、余弦相似度
样本偏差校验的核心在于构建一套可量化的指标体系,用于衡量训练数据与线上服务数据之间的分布差异。本章详细解析五种最常用的校验指标:PSI(群体稳定性指标)、KS统计量、KL散度、JS散度以及余弦相似度。每种指标从数学定义、业务含义、阈值标准与适用场景四个维度进行拆解。
4.1 指标全景对比
下表从核心思想、输出范围、对称性与敏感性四个关键维度,对五种指标进行横向对比,帮助快速建立选型直觉。
| 指标 | 核心思想 | 输出范围 | 对称性 | 敏感性 |
|---|---|---|---|---|
| PSI | 分箱后实际占比 vs 预期占比的差异 | [0, +∞) | 对称 | 对分箱方式敏感 |
| KS统计量 | 两组累积分布的最大垂直距离 | [0, 1] | 对称 | 对分布中心位置敏感 |
| KL散度 | 用Q近似P时的信息损失 | [0, +∞) | 非对称 | 对P的尾部敏感 |
| JS散度 | KL散度的对称平滑版本 | [0, 1](对数底为2) | 对称 | 对分布重叠区域敏感 |
| 余弦相似度 | 向量夹角的余弦值 | [-1, 1] | 对称 | 对向量方向敏感,对模长不敏感 |
4.2 PSI(群体稳定性指标)
PSI 是金融风控领域最常用的分布稳定性监控指标,用于衡量特征或模型分数在时间维度上的偏移程度。
- 计算步骤:将预期分布(通常为训练集)按分位数分为K个等宽或等频箱;计算每个箱中实际样本占比(Ai)与预期样本占比(Ei);代入公式:
PSI = Σ (Aᵢ - Eᵢ) * ln(Aᵢ / Eᵢ) - 阈值标准:PSI < 0.1 表示无显著偏移;0.1 ≤ PSI < 0.25 需关注;PSI ≥ 0.25 表示发生重大偏移,需立即排查。
- 适用场景:连续型特征的分箱稳定性监控、模型分数(score)的周/月级漂移检测。
工程避坑:分箱数量通常取10~20箱。箱数过少会掩盖局部偏移,箱数过多会导致空箱或占比为0,使ln(0)无定义。建议对空箱做平滑处理(如加极小值ε)。
4.3 KS统计量
KS统计量基于经验累积分布函数(ECDF),衡量两组样本分布的最大差异位置与幅度。
- 数学定义:
其中 F₁ 和 F₂ 分别为训练集与线上数据的累积分布函数。KS = max |F₁(x) - F₂(x)| - 阈值标准:KS < 0.1 分布一致;0.1 ≤ KS < 0.2 轻度偏移;KS ≥ 0.2 显著偏移。
- 适用场景:连续型特征分布对比、模型分数区分能力评估(与AUC配合使用)。
提示:KS统计量对分布的中心位置变化非常敏感。如果线上数据整体向右平移,KS值会迅速增大。建议与PSI联合使用,PSI反映整体偏移量,KS反映最大偏移位置。
4.4 KL散度与JS散度
KL散度与JS散度均来自信息论,用于量化两个概率分布之间的差异程度。
- KL散度:
非对称,即 KL(P||Q) ≠ KL(Q||P)。当Q(x)=0且P(x)>0时发散到无穷大。KL(P||Q) = Σ P(x) * log(P(x) / Q(x)) - JS散度:
对称且有界,取值范围[0, 1](以2为底的对数)。JS(P||Q) = 0.5 * KL(P||M) + 0.5 * KL(Q||M),其中 M = (P+Q)/2 - 阈值标准:KL散度无通用阈值,通常与基线对比相对变化;JS散度 < 0.1 分布相似,0.1~0.3 中度偏移,> 0.3 严重偏移。
- 适用场景:离散型特征(如类别特征、embedding分布)的分布差异度量;KL散度适合检测尾部差异,JS散度适合检测整体重叠度。
注意:KL散度对P分布中概率极小的区域非常敏感。在特征服务中,如果某个特征值在训练集中出现概率极低(如0.001),但在线上变为0.01,KL散度会给出很大的值。此时建议优先使用JS散度或对概率做截断处理。
4.5 余弦相似度
余弦相似度从向量空间角度衡量分布或特征向量的方向一致性,常用于高维稀疏特征(如one-hot编码、embedding向量)的偏差校验。
- 数学定义:
cos(A, B) = (A · B) / (||A|| * ||B||) - 阈值标准:cos > 0.9 高度相似;0.7 ≤ cos ≤ 0.9 轻度偏移;cos < 0.7 显著偏移。
- 适用场景:高维稀疏特征(如用户画像tag、商品类目)、embedding向量的分布对比、模型中间层表征的漂移检测。
选型建议:对于连续型数值特征,优先使用PSI + KS组合;对于离散型类别特征,优先使用JS散度 + 余弦相似度组合;对于模型分数或概率输出,PSI是行业标准。
4.6 指标体系选择流程
下图展示了在特征服务中如何根据特征类型与业务场景,快速选择最合适的校验指标组合。
4.7 多指标联合判据
单一指标存在盲区,实际工程中建议采用多指标联合判据,降低误报与漏报率。下表给出一个典型的联合判据矩阵。
| PSI | KS | JS散度 | 余弦相似度 | 综合判定 | 建议动作 |
|---|---|---|---|---|---|
| < 0.1 | < 0.1 | < 0.1 | > 0.95 | 分布一致 | 无需处理 |
| 0.1~0.25 | 0.1~0.2 | 0.1~0.2 | 0.85~0.95 | 轻度偏移 | 标记监控,触发告警 |
| ≥ 0.25 | ≥ 0.2 | ≥ 0.2 | < 0.85 | 显著偏移 | 立即阻断,启动重训练 |
| ≥ 0.25 | < 0.1 | ≥ 0.3 | > 0.9 | 尾部偏移 | 排查长尾特征,局部修正 |
最佳实践:在特征服务中,建议对每个特征同时计算PSI与JS散度,对模型分数计算PSI与KS统计量。设置三级告警阈值:黄色(关注)、橙色(告警)、红色(阻断)。每次模型上线前,自动对比线上实时分布与训练集分布,生成偏差报告。