尽管对固定批次数据进行的基本统计检验可以识别漂移,但它们通常会引入显著的延迟。当批次数据收集并分析完毕时,模型可能已经处理了一段时间的漂移数据,这可能影响业务成果。对于需要更快响应的应用,例如高频交易、实时竞价或关键控制系统,等待完整批次通常是不可接受的。序列分析方法提供了一种替代方案,它在数据点到达时进行分析,旨在更快地检测变化。
核心思想是在每个新数据点或小微批次到达后就做出决策(是否检测到漂移),而不是等待预定的大批量数据。这使得当分布开始发生偏移时,可以更早地发出预警。
序列与批次方法的比较
设想一下,您正在监测用于欺诈检测的平均交易价值。
- 批次方法: 您可以收集一整天的数据,计算平均交易价值,然后使用t检验或KS检验将其与前一天或参考窗口的平均值进行比较。显著差异会触发警报。检测延迟至少为一天(即批次窗口)。
- 序列方法: 您每次有新交易时都更新一个统计量。如果此统计量超过预设阈值,则立即触发警报。漂移开始后几分钟或几小时内即可检测到,具体取决于变化的大小和检验的灵敏度。
这种速度伴随着需要考量的事项。序列检验通常基于对数据分布和预期变化性质的特定假设进行设计。它们通常涉及设置参数 (parameter),以平衡未发生漂移时的误报率与已发生漂移时的检测速度。
序列分析中的要点
用于漂移检测的序列分析实质上是一种序列假设检验。我们持续检验:
- H0:数据生成过程未改变(无漂移)。
- H1:数据生成过程已改变(有漂移)。
经典固定样本检验通常在收集 N 个样本后才做出决策。与此不同,序列检验会在每个样本(或小批组)之后评估证据,并决定是否:1. 接受 H0(暂时得出无漂移结论)。2. 接受 H1(发出漂移信号)。3. 继续采样(证据尚不充分)。
序列检验的两个重要性能指标是:
- 误报平均运行长度 (ARL0):在 H0 为真时,检验错误地发出漂移信号之前处理的平均观测次数。您希望这个值越大越好。
- 检测平均运行长度 (ARL1):在实际发生漂移后,直到检验发出信号为止处理的平均观测次数。您希望这个值越小越好。
序列检验的设计涉及选择参数 (parameter),以实现在保持可接受的高ARL0的同时,达到所需(低)的ARL1。
序列概率比检验 (SPRT)
最早且最基础的方法之一是瓦尔德的序列概率比检验 (SPRT)。当您能够指定零假设 (H0,无漂移) 和备择假设 (H1,有漂移) 下的数据分布时,它尤其有效。
设 f0(x) 为 H0 下的概率密度(或质量)函数,f1(x) 为 H1 下的密度函数。在观测到 n 个数据点 x1,x2,...,xn 后,似然比为:
Ln=∏i=1nf0(xi)∏i=1nf1(xi)
SPRT 使用两个阈值 A 和 B,通常根据所需的第一类错误率 α(误报概率)和第二类错误率 β(漏检概率)来定义:
- A≈(1−β)/α
- B≈β/(1−α)
在步骤 n 的决策规则是:
- 如果 Ln≥A:停止并接受 H1(发出漂移信号)。
- 如果 Ln≤B:停止并接受 H0(得出无漂移结论)。
- 如果 B<Ln<A:继续观察下一个 xn+1。
示例: 假设我们监测正态分布特征 X∼N(μ,σ2) 的均值 μ,其中 σ2 已知。
- H0:μ=μ0(例如,训练期间观测到的均值)
- H1:μ=μ1(例如,我们希望快速检测到的特定偏移均值)
可以计算似然比 Ln,并且通常使用其对数 logLn 以提高计算稳定性,从而实现加法更新而非乘法更新。
SPRT优点: SPRT 在数学上是最佳的,因为它在所有具有相同或更低错误率 (alpha,beta) 的检验中,能最小化预期的样本量(ARL0 和 ARL1)。
SPRT挑战: 其主要缺点是需要精确指定 f0 和 f1。在实践中,定义一个单一的、有代表性的“漂移”分布 f1 可能很困难,因为漂移可能以多种方式出现。
累积和 (CUSUM) 控制图
CUSUM图广泛用于统计过程控制,并很好地适用于漂移检测。它们在检测过程参数 (parameter)(如均值或比例)中微小、持续的偏移方面很有效。
核心思想是累积与目标值的偏差。设 Xi 为时间 i 的观测值,μ0 为目标均值(在 H0 下)。用于检测均值增加的单边CUSUM统计量 Sn 可以递归计算:
Sn=max(0,Sn−1+(Xn−(μ0+k)))
其中 S0=0。
- Xn:步骤 n 的观测值(或迷你批次的平均值等汇总统计量)。
- μ0:H0 下的目标均值。
- k:“松弛”或“容忍”参数,通常选择为希望快速检测到的偏移量的一半(例如,k=∣μ1−μ0∣/2)。它有助于在过程受控时,防止CUSUM累积噪音。
- Sn:步骤 n 的CUSUM统计量。它累积高于调整后目标 (μ0+k) 的偏差。max(0,...) 确保如果偏差低于目标,它会重置为零,从而防止过去的负偏差掩盖当前的积极偏移。
如果 Sn 超过预定义的决策阈值 h,则会发出漂移(向上偏移)信号。参数 k 和 h 的选择是为了平衡 ARL0 和 ARL1。存在用于检测下降或双向变化的类似公式。
随时间变化的CUSUM统计量示例。过程均值在大约时间步50时向上偏移。CUSUM统计量最初保持在零附近,然后在此偏移后开始积极累积,在大约时间步67时超过检测阈值 h=8,发出漂移信号。
CUSUM优点: 通常比SPRT更容易实现,因为它不需要为 H1 指定完整的分布。它在检测微小、持续的偏移方面非常有效。
CUSUM挑战: 需要仔细调整 k 和 h。性能取决于偏移量相对于 k 的大小。如果 k 是为小偏移量优化的,那么对于检测非常大、突然的偏移,它可能比SPRT慢。
优点与权衡
SPRT和CUSUM等序列方法的主要优点是,与固定批次方法相比,它们有潜力显著加快检测速度,特别是对于中等或小的偏移。它们在证据可用时进行审查,最大限度地减少漂移开始到被检测之间的延迟。这种及时性在许多生产ML系统中具有很高的价值。
然而,这种速度伴随着一些复杂性:
- 参数 (parameter)调整: 选择合适的阈值 (A,B,h) 和参数 (k,特定 H1) 需要仔细斟酌,通常涉及模拟或分析以理解 ARL0 和 ARL1 之间的权衡。不当的调整可能导致过多的误报或检测缓慢。
- 假设: SPRT 需要明确定义的假设,而 CUSUM 假定特定类型的偏移(例如,均值偏移)。如果实际的漂移模式与假设存在显著差异,性能可能会下降。
- 多变量数据: 将这些方法直接应用于高维数据通常不切实际。常见方法包括将序列检验应用于:
- 单个特征。
- 从多变量数据导出的单变量汇总统计量(例如,降维技术的输出,或预测概率等指标)。
- 在多变量数据上计算的单变量漂移指标的输出(例如,将 CUSUM 应用于马哈拉诺比斯距离)。
序列分析为快速漂移检测提供了一套强大的工具,在流式处理场景中尤其有价值。它们充当高效的早期预警系统。当序列检验发出潜在漂移信号时,它可以触发使用多变量方法(在其他章节中讨论)进行更全面的、可能计算量更大的调查,或者启动模型再训练等自动化响应。