鲁棒机器学习系统:漂移检测全攻略
创始人
2026-01-20 14:20:42
0

引言

机器学习(ML)模型旨在根据历史数据中的模式做出准确预测。但是,如果这些模型一夜之间发生变化,情况会怎么样呢?例如,在信用卡欺诈检测中,今天合法的交易模式明天可能就会显得可疑,因为犯罪分子会不断改进他们的策略,而诚实的消费者也会改变他们的消费习惯。再比如,想象一下电子商务推荐系统:夏季购物者适用的策略可能在冬季假期带来新趋势时突然失效。这种微妙却持续的数据变化,被称为数据漂移,会悄无声息地削弱模型的性能,使昨天的准确预测变成今天代价高昂的错误。

本文将为理解漂移奠定基础:漂移是什么,为什么它很重要,以及它如何悄无声息地侵蚀即使是最好的机器学习系统。我们将详细分析两种主要的漂移类型:数据漂移和概念漂移。然后,我们将理论与实践相结合,概述一些强大的框架和统计工具,用于在漂移破坏模型之前检测到它。最后,你将了解如何应对漂移,从而使你的机器学习系统在不断变化的世界中保持稳健性。

什么是漂移?

漂移是指数据分布随时间发生的意外变化,这会对预测模型的性能产生负面影响。机器学习模型通过应用从历史数据中学习到的模式来解决预测任务。更正式地说,在监督式机器学习中,模型从时间t0的所有可用数据中学习一组特征向量X和目标值y的联合分布:

经过训练和部署后,模型将应用于新数据Xt以预测yt,前提是新数据服从相同的联合分布。然而,如果该假设不成立,则模型的预测可能不再可靠,因为训练数据中的模式可能已经失效。这种假设的违反,即联合分布的变化,被称为漂移。形式上,如果出现以下情况,则称发生了漂移:

注:对于某些t>t0

漂移的主要类型:数据漂移和概念漂移

通常,当联合概率P(X,y)随时间变化时,就会发生漂移。但仔细观察,我们会发现漂移的来源各不相同,对机器学习系统的影响也各有不同。本节将介绍数据漂移和概念漂移的概念。

回想一下,联合概率可以分解如下:

根据联合分布的哪一部分发生变化,我们称之为数据漂移或概念漂移。

数据漂移

如果特征的分布发生变化,我们就称之为数据漂移:

需要注意的是,数据漂移并不一定意味着目标值y与特征X之间的关系发生了改变。因此,即使出现数据漂移,机器学习模型仍有可能保持可靠的性能。

然而,通常情况下,数据漂移往往与概念漂移同时发生,并且可以作为模型性能下降的早期预警指标。尤其是在无法(立即)获取真实标签的情况下,检测数据漂移是漂移预警系统的重要组成部分。例如,在新冠疫情期间,用于预测临床结果的模型所依赖的患者输入数据分布(例如症状)发生了变化。这种临床结果的变化属于概念漂移,需要一段时间才能观察到。为了避免基于过时模型预测而导致的错误治疗,及时检测并发出可立即观察到的数据漂移信号至关重要。

此外,即使在完全不关注目标值y的无监督机器学习系统中,也可能出现漂移。在这样的无监督系统中,仅定义了数据漂移。

数据漂移是指分布的变化(图由作者创建,灵感来自Evidently AI)。

概念漂移

概念漂移是指目标值与特征之间关系随时间发生的变化:

通常情况下,如果出现概念漂移,性能会受到负面影响。

在实践中,真实标签y通常需要一段时间才能获得(甚至根本无法获得)。因此,观察Pt(y|X)也可能存在延迟。所以,在许多情况下,及时可靠地检测概念漂移会变得更加复杂,甚至是不可能的。在这种情况下,我们可能需要依赖数据漂移作为概念漂移的指标。

漂移如何随时间演变

漂移随时间演变的模式(图来自《基于模糊聚类的联邦学习中无监督突发数据漂移检测》)。

概念漂移和数据漂移可以采取不同的形式,这些形式可能会对漂移检测和漂移处理策略产生不同的影响。

漂移可能随着分销渠道的突然变化而突然发生。例如,新产品或促销活动的推出可能导致购买行为在一夜之间发生改变。

在其他情况下,用户行为的转变可能在较长时间内逐渐发生。例如,如果一个数字平台推出一项新功能,这可能会影响用户在该平台上的行为。虽然最初只有少数用户采用这项新功能,但随着时间的推移,越来越多的用户可能会采用它。最后,用户行为的转变也可能是周期性的,并受季节性因素驱动。想象一下一家服装公司。虽然该公司夏季最畅销的产品可能是T恤和短裤,但到了冬季,这些产品的销量可能就没那么好了,因为顾客可能更倾向于购买外套和其他保暖的服装。

如何识别漂移

识别漂移的思维框架(此图由作者创建)。

在处理概念漂移之前,必须先检测到它。为了有效地讨论概念漂移检测,我们引入了一个借鉴自优秀文献《概念漂移下的学习:综述》(见文后的参考文献)的思维框架。概念漂移检测框架可以分为三个阶段:

  1. 数据收集与建模:数据检索逻辑指定要比较的数据和时间段。此外,通过应用数据模型,为后续步骤准备数据。该模型可以是机器学习模型、直方图,甚至可以不使用任何模型。我们将在后续章节中看到示例。
  2. 检验统计量计算:检验统计量定义了我们如何衡量历史数据和新数据之间的(不)相似性。例如,通过比较模型在历史数据和新数据上的性能,或者通过衡量数据块直方图的差异程度。
  3. 假设检验:最后,我们应用假设检验来决定是否希望系统发出漂移信号。我们制定零假设和决策标准(例如定义p值)。

数据收集与建模

在这个阶段,我们需要精确定义后续步骤中要比较的数据块。首先,需要定义参考数据和比较数据(即新数据)的时间窗口。参考数据可以是历史训练数据(见下图),也可以是随时间变化的滑动窗口数据。类似地,比较数据可以是最新的数据批次,也可以是历史数据的延伸,这两个时间窗口都可以是滑动的。

数据获取完成后,需要进行预处理以计算检验统计量。根据统计量的不同,可能需要将其输入机器学习模型(例如,计算性能指标时)、转换为直方图,或者根本不需要进行任何处理。

数据收集技术(本图来引文“概念漂移下的学习:综述”)。

漂移检测方法

我们可以通过应用特定的检测方法来识别模型漂移。这些方法可以监控模型的性能(概念漂移检测),也可以直接分析输入数据(数据漂移检测)。通过应用各种统计检验或监控指标,漂移检测方法有助于保持模型的可靠性。无论是采用简单的基于阈值的方法,还是运用更高级的技术,这些方法都能确保机器学习系统的鲁棒性和适应性。

通过绩效指标观察概念漂移

由于漂移导致的ML模型性能明显下降(本图由作者绘制)。

发现概念漂移(或其后果)最直接的方法是跟踪模型随时间的性能。给定两个时间窗口[t0,t1]和[t2,t3],我们计算性能p[t0,t1]和p[t2,t3]。然后,检验统计量可以定义为性能的差异(或相异性):

性能可以是任何感兴趣的指标,例如准确率、精确率、召回率、F1分数(在分类任务中),或者均方误差、平均绝对百分比误差、R平方等(在回归问题中)。

计算性能指标通常需要真实标签,但这些标签可能要过一段时间才能获得,或者可能永远不会获得。

即使在这种情况下,为了及时发现偏差,有时也可以导出代理性能指标。例如,在垃圾邮件检测系统中,我们可能永远无法确定一封电子邮件是否真的是垃圾邮件,因此我们无法计算模型在实时数据上的准确率。但是,我们可以观察一个代理指标:被移至垃圾邮件文件夹的电子邮件百分比。如果该百分比随时间发生显著变化,则可能表明概念发生了偏差。

如果此类代理指标也无法获得,我们可以基于数据分布指标构建检测框架,我们将在下一节中介绍这些指标。

基于数据分布的方法

此类方法量化了参考数据X[t0,t1]和新数据X[t2,t3]的数据分布之间的差异程度,而无需真实标签。

如何量化两个分布之间的差异?在接下来的小节中,我们将介绍一些常用的单变量和多变量度量方法。

单变量指标

让我们从一个非常简单的单变量方法开始:

首先,计算参考数据和新数据中第i个特征的均值。然后,将均值之差定义为差异性度量。

最后,如果disi异常大,则发出漂移信号。每当我们观察到某个特征的均值随时间发生异常变化时,我们都会发出漂移信号。其他类似的简单统计量包括最小值、最大值、分位数以及列中空值的比例。这些统计量计算简单,是构建漂移检测系统的绝佳起点。

然而,这些方法可能过于简单。例如,计算平均漏报率的变化会像其他简单的统计方法一样,影响分布尾部的变化。这就是为什么我们需要更复杂的数据漂移检测方法。

柯尔莫戈罗夫-斯米尔诺夫(KS)检验

Kolmogorov-Smirnov(KS)检验统计量(本图来自维基百科)。

另一种常用的单变量方法是Kolmogorov-Smirnov(KS)检验。KS检验考察单个特征的整体分布,并计算X(i)[t0,t1]和X(i)[t2,t3]的累积分布函数(CDF)。然后,检验统计量计算为两个分布之间的最大差值:

并且可以检测分布的均值和尾部的差异。

零假设是所有样本均来自同一分布。因此,如果p值小于预设的临界值ɑ(例如0.05),则拒绝零假设并得出漂移的结论。要确定给定ɑ的临界值,我们需要查阅双样本KS分布表。或者,如果样本量n(参考样本数)和m(新样本数)较大,则临界值cvɑ可根据以下公式计算:

其中,c(ɑ)的常用值可以在维基百科上找到。

KS检验广泛应用于漂移检测,并且对极端值具有较强的鲁棒性。然而,需要注意的是,即使少量极端异常值也可能对差异性度量产生不成比例的影响,并导致误报。

人口稳定性指数

流行度稳定性指数检验统计量计算的箱分布(图由作者创建)。

灵敏度更低的替代方法(或补充方法)是人口稳定性指数(PSI)。PSI不使用累积分布函数,而是将观测值范围划分为若干区间b,并计算每个区间的频率,从而有效地生成参考数据和新数据的直方图。我们比较这些直方图,如果它们出现异常变化,则表明系统存在漂移。形式上,差异性计算如下:

其中,ratio(bnew)表示新数据集中落入区间b的数据点比例,ratio(bref)表示参考数据集中落入区间b的数据点比例,B为所有区间的集合。ratio(bnew)与ratio(bref)之差越小,PSI值越小。因此,如果观察到较大的PSI值,则漂移检测系统会发出漂移信号。在实践中,通常采用0.2或0.25作为经验阈值。也就是说,如果PSI>0.25,则系统发出漂移信号。

卡方检验

最后,我们提出了一种可应用于类别特征的单变量漂移检测方法。以往的方法都仅适用于数值特征。

设x为一个具有n个类别的分类特征。计算卡方检验统计量与上一节中计算PSI有些类似。我们现在考虑的是每个类别i的(相对)计数,而不是计算连续特征的直方图。利用这些计数,我们将差异性定义为参考数据和新数据中频率差异平方和的(归一化)和:

请注意,在实践中,如果新数据和参考数据的基数不同,你可能需要采用相对计数。

为了确定观察到的差异是否显著(具有一些预先定义的p值),需要查阅自由度为1的卡方值表,例如维基百科。

多变量检验

在许多情况下,根据上一节的单变量检验,每个特征的单独分布可能不受漂移的影响,但整体分布X仍可能受到影响。例如,x1和x2之间的相关性可能会发生变化,而两者的直方图(以及由此得出的单变量PSI)看起来却很稳定。显然,特征交互作用的这种变化会严重影响机器学习模型的性能,必须加以检测。因此,我们引入了一种多变量检验方法,以补充前几节的单变量检验。

基于重构误差的测试

自编码器架构示意图(图来自维基百科)

这种方法基于无需标签即可训练的自监督自编码器。此类模型由编码器和解码器两部分组成;其中,编码器将数据映射到通常为低维的潜在空间,解码器则学习如何从潜在空间表示中重构原始数据。学习目标是最小化重构误差,即原始数据与重构数据之间的差异。

如何利用这种自编码器进行漂移检测?首先,我们在参考数据集上训练自编码器,并存储平均重构误差。然后,使用相同的模型,我们计算新数据的重构误差,并将两者的差异作为相异性度量:

直观地说,如果新数据和参考数据相似,原始模型应该能够顺利地重建数据。因此,如果差异大于预设阈值,系统就会发出漂移信号。

这种方法可以发现更细微的多变量漂移。需要注意的是,主成分分析可以看作是自编码器的一个特例。NannyML展示了PCA重建如何识别单变量方法无法发现的特征相关性变化。

常用漂移检测方法概述

本节最后,我们想将漂移检测方法总结如下表:

如何应对漂移

尽管本文的重点是检测漂移,但我们也想提出一些对抗漂移的方法。

总的来说,尽可能地自动化漂移检测和缓解以及明确职责对于确保机器学习系统保持相关性至关重要。

第一道防线:稳健建模技术

第一道防线甚至在模型部署之前就已经启动。训练数据和模型工程决策直接影响模型对漂移的敏感性,因此模型开发者应专注于稳健的建模技术或稳健的机器学习方法。例如,依赖大量特征的机器学习模型可能更容易受到漂移的影响。当然,特征越多,意味着“攻击面”越大,而且某些特征可能比其他特征更容易受到漂移的影响(例如,传感器测量数据容易受到噪声干扰,而社会人口统计数据可能更稳定)。从长远来看,投资于稳健的特征选择很可能会带来回报。

此外,在训练数据集中加入噪声或恶意数据可以增强模型对较小分布变化的鲁棒性。对抗性机器学习领域致力于教会机器学习模型如何处理对抗性输入。

第二道防线:制定备用策略

即使是最精心设计的模型,也可能在某个时候出现漂移。一旦发生这种情况,务必准备好备用方案。要制定这样的方案,首先必须了解失败的后果。在电子邮件简报中推荐错误的鞋子与自动驾驶系统中物体分类错误的影响截然不同。在前一种情况下,如果检测到漂移,可以等待人工反馈后再发送电子邮件。而在后一种情况下,则需要更迅速的反应。例如,可以启用基于规则的系统或其他不受漂移影响的系统来接管控制。

反击:模型更新

在解决概念漂移的直接影响后,你可以着手恢复模型的性能。最直接的方法是使用最新数据重新训练模型或更新模型权重。重新训练的挑战之一是定义新的训练数据集。它是否应该包含所有可用数据?如果是概念漂移,这可能会影响收敛,因为数据集可能包含不一致的训练样本。如果数据集太小,则可能导致模型灾难性地遗忘先前学习到的模式,因为模型可能没有接触到足够的训练样本。

为了防止灾难性的遗忘,可以应用持续主动学习的方法,例如引入记忆系统。

权衡不同的选择,了解利弊,并根据对用例的影响做出决定,这一点很重要。

结论

本文阐述了如果你关心机器学习系统的长期成功和稳健性,那么漂移检测为何至关重要。如果出现漂移且未得到妥善处理,机器学习模型的性能将会下降,这可能会损害收入、削弱信任和声誉,甚至引发法律纠纷。

我们正式引入概念漂移和数据漂移的概念,将其定义为训练数据和推理数据之间意料之外的差异。这类意料之外的变化可以通过应用单变量检验(例如Kolmogorov-Smirnov检验、总体稳定性指数检验和卡方检验)或多变量检验(例如基于重构误差的检验)来检测。最后,我们简要介绍了几种应对漂移的策略。

未来,我们计划推出一份实践指南,进一步阐述本文介绍的概念。最后,还有一点需要说明:虽然本文介绍了一些越来越复杂的方法和概念,但请记住,任何漂移检测都比没有漂移检测要好。根据具体应用场景,一个非常简单的检测系统也可能非常有效。

相关内容

热门资讯

原创 苹... 有不少朋友疑惑苹果iPhone 16 Pro和16 Pro Max有什么区别?该选择哪一款更好?各自...
2024年OPPO手机全攻略:... 手机已不仅仅是通讯工具,它更是我们记录生活、享受娱乐、提升工作效率的重要伙伴。随着科技的飞速发展,O...
2025年值得入手的2款智能手... 在科技飞速发展的今天,智能手表已成为我们生活中不可或缺的伙伴。无论是健康监测、信息提醒,还是时尚搭配...
原创 2... 从去年华为用上了麒麟芯片开始,华为的市场份额就蹭蹭的往上涨,当时抢购的人特别多,一时间还买不到现货,...
第五轮学科评估对比:西安交大突... 在之前的文章中,我们已经提及西安交通大学第五轮学科评估的表现可圈可点,新晋的3个A+学科:机械工程、...
vivo手机5g开关在哪里打开 vivo手机5G开关的打开方式可能因手机型号、系统版本及运营商网络支持情况的不同而有所差异。但总体来...
解决FaceTime无法使用的... FaceTime是苹果公司推出的一款视频通话应用,广泛应用于iPhone、iPad和Mac等设备上。...
原创 麒... 为了普及原生鸿蒙(鸿蒙5.0),抢占更多的中端手机市场份额,华为nova系列今年开始计划一年两更,n...
steam官网无法访问?这个办... 对于广大游戏爱好者而言,Steam平台无疑是获取最新游戏资讯、购买游戏、与全球玩家互动的重要阵地。然...
原创 直... #热点周际赛# 随着科技的进步,儿童智能穿戴设备逐渐成为了家庭中的新宠。华为作为智能穿戴领域的领军者...