数据漂移、概念漂移以及如何监控它们(mona)

简介: 在机器学习模型监控的上下文中经常提到数据和概念漂移,但它们到底是什么以及如何检测到它们?此外,考虑到围绕它们的常见误解,是不惜一切代价避免数据和概念漂移的事情,还是在生产中训练模型的自然和可接受的后果?请仔细阅读,找出答案。在本文中,我们将提供模型漂移的细粒度细分,以及检测它们的方法以及处理它们时的最佳实践。

什么是数据漂移?

也许这两种模型漂移中更常见的是数据漂移,它简单地指的是训练模型后数据分布的任何变化。换句话说,当模型在生产中呈现的输入与训练期间提供的分布不对应时,通常会发生数据漂移。这通常表现为特征分布的变化,即给定特征的某些值可能在生产中变得更常见,而其他值可能会出现流行度下降。

例如,考虑一家为优化营销工作提供 LTV 预测模型的电子商务公司。这种模型的一个合理特征是客户的年龄。现在,假设这家公司改变了他们的营销策略,也许是通过发起针对特定年龄组的新活动。在这种情况下,输入模型的年龄分布可能会发生变化,从而导致年龄特征的分布发生变化,并可能导致模型的预测能力下降。这将被视为数据漂移。

网络异常,图片无法展示
|


什么是概念漂移?

概念漂移是指模型的数据输入和目标变量之间关系的变化

当市场动态、客户行为或人口统计的变化导致输入和目标之间的新关系降低模型的预测时,就会发生这种情况。

区分概念漂移和数据漂移的关键是对目标的考虑——数据漂移仅适用于您的模型遇到新的、看不见的或变化的数据时,而概念漂移发生在输入和输出之间的基本关系发生变化时,包括模型已经看到的数据。

回到我们的 LTV 预测模型示例,假设发生了全国范围内的经济转变,其中某个年龄段的客户突然有更多的钱可以花,导致在这个人群中购买更多的企业产品。事实上,这在 Covid-19 大流行期间发生得相当剧烈,当时美国政府发放的刺激支票落入了全国数百万就业不足的千禧一代手中。在这种情况下,与您的模型互动的千禧一代的数量不一定会改变,但他们在购买上的花费会改变。检测这种概念漂移并重新训练模型对于保持其性能至关重要。


什么时候应该关注 ML 模型中的概念漂移?

从某种意义上说,您应该始终关心概念漂移,至少在意识到它已经发生的程度上。因为概念漂移是指目标和输出之间关系的潜在转变,所以总是需要重新训练模型来捕捉这些新的对应关系。也就是说,如果您要捕获的关系仍能代表您的下游业务 KPI,则您只想重新训练模型。虽然这种情况经常发生,但这并不总是一种保证。

例如,您的商业模式可能会发生转变,您决定更关心客户在您的网站上花费的时间(以便您可以增加广告收入),而不是他们在您的实际产品上花费的金额(可能有,开始时很小)。在这种情况下,您可能想要训练一个完全不同的模型,因此原始模型中的概念漂移将不再是一个问题。


监控数据漂移和概念漂移的建议

什么不能做

正如我们之前的示例所说明的那样,仅仅提醒数据或概念漂移的存在是不够的。深入了解数据分布的变化或输入与目标之间的关系如何影响模型性能和下游业务 KPI 对于在适当的环境中解决漂移问题至关重要。许多工具之所以失败,是因为它们只会提醒数据科学家注意整体数据分布的变化,而事实上,更小、特定数据段的变化往往预示着更剧烈的分布变化。

成功解决漂移的关键是对这些更微妙、更早的变化发出警报并及时处理它们,因为当漂移发生到足以在整体分布中检测到时,问题通常已经在多个领域显着表现出来在大量数据上降低模型性能。在这一点上,解决问题变成了一场追赶游戏,在这个游戏中你总是落后一步,让数据流过你的模型,训练不当的系统。


你应该做什么

解决数据和概念漂移的正确方法是在您的业务流程中创建一个反馈循环,并在它所服务的业务功能的上下文中监控您的模型。您希望确定实际的、可量化的性能指标,这些指标可让您快速评估模型在任何时刻的性能,从而使您能够了解数据分布的变化是否与性能下降相关。最终,这将允许您将输入特征与实际业务成果联系起来,并了解基本概念何时发生变化。如果有,您可以在上下文中理解它并决定是否值得采取措施解决它。

最后,您希望确保在粒度级别上测量数据的更改。 在机器学习中,为了森林而放弃树木实际上会以有问题的方式表现出错误。 充分了解模型的性能需要适应数据的特定部分,因为这些通常在问题传播到整个分布之前,首先显示问题。

继续我们的 LTV 模型示例,如果罗德岛等较小州的客户是第一个接受刺激支票的监视,那么这可能不是一个足够大的转变,那么不足以在整个分布中提出。然而,了解这一变化可能会提醒您数据分布的更多全面的变化即将到来(即其他州将很快发布刺激支票的监视)。

因此,在粒度级别检测数据变化对于早期识别数据和概念漂移以及从 ML 模型中获得最佳性能非常重要。


结论

当模型由于数据变化而不再按预期执行时,就会发生数据和概念漂移;

但是,它们每个都出于不同的原因而表现出来。当训练和生产模型服务之间的输入数据分布发生变化时,就会出现数据漂移。在这些情况下,这种转变可能无关紧要,或者可能需要重新训练模型,这取决于模型对新分布的泛化程度。

另一方面,当底层函数映射输入到目标发生变化时,就会发生概念漂移。在这些情况下,几乎总是需要模型再训练来捕获新关系,假设这些关系与您的下游业务 KPI 相关。

最终,为了检测数据和概念漂移,您希望在业务成果和数据特征之间建立反馈循环。您还应该根据这些结果定义强大的性能指标,以评估您的模型的表现并将其与特定功能相关联。

最后,您希望确保在粒度级别监控数据的更改,以便在分布变化传播并影响整个数据集之前收到警报。


相关文章
|
29天前
|
网络协议 网络架构
|
6月前
|
NoSQL Redis
透视Redis集群:心跳检测如何维护高可用性
Redis心跳检测保障集群可靠性,通过PING命令检测主从连接状态,预防数据丢失。当连接异常时,自动触发主从切换。此外,心跳检测辅助实现`min-slaves-to-write`和`min-slaves-max-lag`策略,避免不安全写操作。还有重传机制,确保命令无丢失,维持数据一致性。合理配置心跳检测,能有效防止数据问题,提升Redis集群的高可用性。关注“软件求生”获取更多Redis知识!
453 10
透视Redis集群:心跳检测如何维护高可用性
主动配电网故障恢复与孤岛划分模型-多时段
主动配电网故障恢复与孤岛划分模型-多时段
|
6月前
|
运维 监控 网络虚拟化
|
6月前
|
监控 Go
【机组】时序与启停实验的解密与实战
【机组】时序与启停实验的解密与实战
65 0
|
算法
主动配电网故障恢复的重构与孤岛划分统一模型(Matlab代码实现)
主动配电网故障恢复的重构与孤岛划分统一模型(Matlab代码实现)
148 0
|
运维 监控 算法
【状态估计】用于描述符 LTI 和 LPV 系统的分析、状态估计和故障检测的算法(Matlab代码实现)
【状态估计】用于描述符 LTI 和 LPV 系统的分析、状态估计和故障检测的算法(Matlab代码实现)
127 0
|
数据采集 监控 定位技术
【状态估计】基于增强数值稳定性的无迹卡尔曼滤波多机电力系统动态状态估计(Matlab代码实现)
【状态估计】基于增强数值稳定性的无迹卡尔曼滤波多机电力系统动态状态估计(Matlab代码实现)
110 0
|
运维 监控 算法
基于典型相关分析的故障检测和过程监控算法研究(Matlab代码实现)
基于典型相关分析的故障检测和过程监控算法研究(Matlab代码实现)
127 0
|
机器学习/深度学习 自然语言处理 监控
数据漂移检测(一):使用表格数据的多变量漂移(Arthur)
:这是我们深入探讨数据漂移检测问题的系列文章中的第一篇。我们不仅探讨了为什么它是模型监控的重要组成部分,而且我们还讨论了要牢记的制度和方法。在本系列的第一部分中,我们讨论了表格数据上下文中的漂移,并描述了解决这些问题的单变量和多变量技术。在后续文章中,我们将深入研究图像和文档等非结构化数据,并讨论如何在这些更具挑战性的情况下构建数据漂移检测系统。