数据漂移
数据和概念漂移在ML 监测中经常被提及,但它们到底是什么,如何检测它们?此外,鉴于常见的误解,数据和概念漂移是要不惜一切代价避免的事情,还是在生产中训练模型的自然和可接受的后果?请继续阅读以了解详情。
它是什么?
也许两者中更常见的是数据漂移, 它指的是训练模型后数据分布的任何变化。换句话说,数据漂移 通常发生在模型在生产中呈现的输入与训练时提供的分布不一致时。这通常表现为特征分布的变化,即一个给定特征的特定值在生产中可能变得更常见。与此相反,其他的值可能会出现普遍性的下降。例如,考虑一家电子商务公司为优化营销工作而提供的LTV预测模型。对于这样一个模型来说,一个合理的特征是客户的年龄。然而,假设同一家公司改变了它的营销策略,也许是发起了一个针对特定年龄组的新活动。在这种情况下,输入模型的年龄分布可能会发生变化,导致年龄特征的分布变化,也许模型的预测能力会下降。这将被认为是数据漂移。
你什么时候应该关心?
与流行的观点相反,并不是所有的数据漂移都是坏事,或意味着你的模型需要重新训练。例如,你的模型在生产中遇到的50-60岁年龄段的客户可能比它在训练中看到的要多。然而,这并不一定意味着模型在训练期间看到的50-60岁的人数量不足,而是模型所知道的年龄分布只是发生了变化。在这种情况下,重新训练模型可能是不必要的。
然而,其他情况则需要重新训练模型。例如,你的训练数据集可能足够小,以至于你的模型在训练期间没有遇到任何异常值,例如超过100岁的客户。但是,当部署在生产中时,模型可能会看到这样的客户。在这种情况下,数据漂移是有问题的,解决它是至关重要的。因此,拥有一种方法来评估和检测模型可能遇到的不同类型的数据漂移,对于获得最佳性能至关重要。
概念漂移
它是什么?
概念漂移 是指模型的数据输入和目标变量之间关系的变化。当市场动态、客户行为或人口统计学的变化导致输入和目标之间出现新的关系,从而降低模型的预测时,就会发生这种情况。区分概念漂移和数据漂移的关键是对目标的考虑--数据漂移只适用于你的模型遇到新的、看不见的或变化的数据时。相反,当输入和输出之间的基本关系发生变化时,包括模型已经看到的数据,就会发生概念漂移。回到我们的LTV预测模型的例子,假设在全国范围内发生了经济转变,某个年龄段的客户突然有了更多的钱来消费,导致在这个人口群体中更多地购买你的企业的产品。这种情况在Covid-19大流行期间发生得非常明显,当时美国政府发放的刺激性支票落入全国各地数百万未就业的千禧一代手中。与你的模型互动的千禧一代的数量不一定会改变,但他们购买的金额会改变。检测这种概念漂移并重新训练模型对保持其性能至关重要。
你什么时候应该关心?
从某种意义上说,你应该始终关注概念漂移,至少要意识到它已经发生了。因为概念漂移指的是目标和输出之间关系的基本转变,所以总是需要对模型进行重新训练以捕捉这些新的对应关系。只有当你想捕捉的关系仍然代表你的下游业务关键绩效指标时,你才会想要重新训练模型。虽然这往往是事实,但它并不总是一种保证。例如,你的商业模式可能会发生变化,你决定你更关心客户在你的网站上花费的时间(这样你就可以增加广告收入),而不是他们在你的实际产品上花费的金额(可能一开始就很小)。在这种情况下,你可能想训练一个完全不同的模型,所以原始模型的概念漂移将不再是一个问题。
监测两种类型的漂移的提示
不该做什么
正如我们前面的例子所说明的,仅仅提醒我们注意到数据或概念漂移的存在是不够的。深入了解数据分布或输入与目标之间的关系的变化是如何影响模型性能和下游业务关键绩效指标的,对于在适当的背景下解决漂移问题至关重要。不幸的是,许多工具之所以失败,是因为它们只提醒数据科学家注意整体数据分布的变化。较小的、特定的数据段的变化往往预示着更剧烈的分布变化。成功解决漂移问题的关键是提醒人们注意这些更细微、更早期的变化,并及时处理,因为当漂移严重到足以检测到整体分布的时候,问题通常已经在多个领域表现出来,并大大降低了大量数据的模型性能。在这一点上,补救问题变成了一场追赶的游戏,你总是落后一步,让数据流经你的系统,而你的模型却被不适当地训练。
你应该怎么做
解决数据和概念漂移的正确方法是在你的业务流程中创建一个反馈回路,并在它所服务的业务功能范围内监控你的模型。你要决定实际的、可量化的性能指标,使你能够迅速评估你的模型在任何时刻的表现,从而使你能够了解数据分布的变化是否与性能的下降相关。最终,这将使你能够将输入特征与实际业务结果联系起来,并了解基础概念何时发生了转变。如果有,你就可以在背景中理解它,并决定是否值得采取措施来解决它。
最后,你要确保你正在测量你的数据在细微层面的变化。在机器学习中,舍本逐末会以有问题的方式表现出错误。要很好地理解你的模型的性能,需要对特定的数据段进行调整。在传播到整个分布之前,这些数据段往往是最先出现问题的。继续我们的LTV模型的例子,如果一个较小的州的客户,如罗德岛州,最先收到他们的刺激性支票,这可能不是一个重大的变化,不足以在整个分布中登记。然而,了解这一变化可以提醒你,数据分布中更多的全球性变化即将发生(即,其他州将很快发放刺激性支票)。因此,在细化的层面上检测数据的变化对于早期识别数据和概念的漂移以及从你的模型中榨取最佳性能是极其重要的。
结论
当一个模型由于数据的变化而不再像预期的那样运行时,就会发生数据和概念的漂移;然而,它们表现为不同的原因。例如,当输入数据的分布在训练和生产中的模型服务之间发生变化时,数据漂移就会出现。在这些情况下,这种转变可能是无关紧要的,也可能需要对模型进行重新训练,这取决于模型对新分布的概括程度。另一方面,当映射输入到目标的基础函数发生变化时,就会发生概念漂移。在这些情况下,假设这些关系与你的下游业务关键绩效指标相关,几乎总是需要对模型进行重新训练以捕捉新的关系。最终,你想在业务结果和数据特征之间建立一个反馈回路,以检测数据和概念的漂移。如果你还能根据这些结果定义强大的性能指标,评估你的模型做得如何,并将其与特定的功能联系起来,这将会有所帮助。最后,你要保证你在细化的层面上监测数据的变化,以便在传播和影响整个数据集之前提醒你注意分布的转变。
概念(通用编程) 数据(计算) 分布(微分几何) 监控(同步)