什么是数据漂移?
也许这两种模型漂移中更常见的是数据漂移,它简单地指的是训练模型后数据分布的任何变化。换句话说,当模型在生产中呈现的输入与训练期间提供的分布不对应时,通常会发生数据漂移。这通常表现为特征分布的变化,即给定特征的某些值可能在生产中变得更常见,而其他值可能会出现流行度下降。
例如,考虑一家为优化营销工作提供 LTV 预测模型的电子商务公司。这种模型的一个合理特征是客户的年龄。现在,假设这家公司改变了他们的营销策略,也许是通过发起针对特定年龄组的新活动。在这种情况下,输入模型的年龄分布可能会发生变化,从而导致年龄特征的分布发生变化,并可能导致模型的预测能力下降。这将被视为数据漂移。
什么是概念漂移?
概念漂移是指模型的数据输入和目标变量之间关系的变化。
当市场动态、客户行为或人口统计的变化导致输入和目标之间的新关系降低模型的预测时,就会发生这种情况。
区分概念漂移和数据漂移的关键是对目标的考虑——数据漂移仅适用于您的模型遇到新的、看不见的或变化的数据时,而概念漂移发生在输入和输出之间的基本关系发生变化时,包括模型已经看到的数据。
回到我们的 LTV 预测模型示例,假设发生了全国范围内的经济转变,其中某个年龄段的客户突然有更多的钱可以花,导致在这个人群中购买更多的企业产品。事实上,这在 Covid-19 大流行期间发生得相当剧烈,当时美国政府发放的刺激支票落入了全国数百万就业不足的千禧一代手中。在这种情况下,与您的模型互动的千禧一代的数量不一定会改变,但他们在购买上的花费会改变。检测这种概念漂移并重新训练模型对于保持其性能至关重要。
什么时候应该关注 ML 模型中的概念漂移?
从某种意义上说,您应该始终关心概念漂移,至少在意识到它已经发生的程度上。因为概念漂移是指目标和输出之间关系的潜在转变,所以总是需要重新训练模型来捕捉这些新的对应关系。也就是说,如果您要捕获的关系仍能代表您的下游业务 KPI,则您只想重新训练模型。虽然这种情况经常发生,但这并不总是一种保证。
例如,您的商业模式可能会发生转变,您决定更关心客户在您的网站上花费的时间(以便您可以增加广告收入),而不是他们在您的实际产品上花费的金额(可能有,开始时很小)。在这种情况下,您可能想要训练一个完全不同的模型,因此原始模型中的概念漂移将不再是一个问题。
监控数据漂移和概念漂移的建议
什么不能做
正如我们之前的示例所说明的那样,仅仅提醒数据或概念漂移的存在是不够的。深入了解数据分布的变化或输入与目标之间的关系如何影响模型性能和下游业务 KPI 对于在适当的环境中解决漂移问题至关重要。许多工具之所以失败,是因为它们只会提醒数据科学家注意整体数据分布的变化,而事实上,更小、特定数据段的变化往往预示着更剧烈的分布变化。
成功解决漂移的关键是对这些更微妙、更早的变化发出警报并及时处理它们,因为当漂移发生到足以在整体分布中检测到时,问题通常已经在多个领域显着表现出来在大量数据上降低模型性能。在这一点上,解决问题变成了一场追赶游戏,在这个游戏中你总是落后一步,让数据流过你的模型,训练不当的系统。
你应该做什么
解决数据和概念漂移的正确方法是在您的业务流程中创建一个反馈循环,并在它所服务的业务功能的上下文中监控您的模型。您希望确定实际的、可量化的性能指标,这些指标可让您快速评估模型在任何时刻的性能,从而使您能够了解数据分布的变化是否与性能下降相关。最终,这将允许您将输入特征与实际业务成果联系起来,并了解基本概念何时发生变化。如果有,您可以在上下文中理解它并决定是否值得采取措施解决它。
最后,您希望确保在粒度级别上测量数据的更改。 在机器学习中,为了森林而放弃树木实际上会以有问题的方式表现出错误。 充分了解模型的性能需要适应数据的特定部分,因为这些通常在问题传播到整个分布之前,首先显示问题。
继续我们的 LTV 模型示例,如果罗德岛等较小州的客户是第一个接受刺激支票的监视,那么这可能不是一个足够大的转变,那么不足以在整个分布中提出。然而,了解这一变化可能会提醒您数据分布的更多全面的变化即将到来(即其他州将很快发布刺激支票的监视)。
因此,在粒度级别检测数据变化对于早期识别数据和概念漂移以及从 ML 模型中获得最佳性能非常重要。
结论
当模型由于数据变化而不再按预期执行时,就会发生数据和概念漂移;
但是,它们每个都出于不同的原因而表现出来。当训练和生产模型服务之间的输入数据分布发生变化时,就会出现数据漂移。在这些情况下,这种转变可能无关紧要,或者可能需要重新训练模型,这取决于模型对新分布的泛化程度。
另一方面,当底层函数映射输入到目标发生变化时,就会发生概念漂移。在这些情况下,几乎总是需要模型再训练来捕获新关系,假设这些关系与您的下游业务 KPI 相关。
最终,为了检测数据和概念漂移,您希望在业务成果和数据特征之间建立反馈循环。您还应该根据这些结果定义强大的性能指标,以评估您的模型的表现并将其与特定功能相关联。
最后,您希望确保在粒度级别监控数据的更改,以便在分布变化传播并影响整个数据集之前收到警报。