持续创作,加快成长!这是我参加「日新方案 10 月更文应战」的第29天,点击查看活动概况

数据漂移检测(二):NLP 和 CV 中的非结构化数据(Arthur)

留意:这是咱们深入探讨数据漂移检测问题的系列文章的第二部分。 假如您还不熟悉数据漂移检测,请查看咱们在表格数据的上下文中评论数据漂移的第一部分!

介绍

数据漂移检测是机器学习监控体系的关键组成部分。 到目前为止,咱们已经评论了表格数据中数据漂移的姿态,以及一些丈量漂移的办法。 回忆一下,让咱们重温一个单一特征中数据漂移的简单示例:

数据漂移检测(二):NLP 和 CV 中的非结构化数据(Arthur)

比较散布。 在此图中,咱们查看单个输入特征(年纪)并查看该变量在两个时刻点[在练习数据(绿色散布)和今日的出产数据(紫色散布)中]的散布。

在这种情况下,练习数据会集的年纪散布不同于其在出产环境中的散布。跟着时刻的推移,运用年纪作为输入特征的模型的性能会跟着模型布置环境的变化而衰减。咱们能够运用多种方针来衡量这两种散布的差异,但是,咱们如何在没有结构化特征的情况下丈量漂移呢?

非结构化数据(如文本或图画)上练习的体系在布置到出产环境时面对同样的危险。然而,在这些场景中检测漂移愈加奇妙,由于咱们不能在原始数据上运用常见的散度度量(divergence metrics)。在这篇文章中,咱们将介绍运用非结构化数据进行数据漂移检测的通用结构,并重点介绍 NLP 和计算机视觉的两个示例用例。

具体来说,咱们的方针是识别反常的数据点,或许属于不同于练习数据的散布。形式上,咱们希望显现可能来自不同于练习散布 p(x) 的散布 q(x) 的传入数据点。咱们将依托两个常见用例来说明散布外检测问题并评价咱们的解决方案。

咱们的第一个示例是一个计算机视觉用例,其方针是依据图画中描绘的方针对图画进行分类。关于这个设置,咱们运用了来自斯坦福的 STL-10 数据集,它提供了来自十种不同可能类别的高分辨率图画,包括飞机、鸟、狗、货车等。

数据漂移检测(二):NLP 和 CV 中的非结构化数据(Arthur)

来自 STL-10 数据集的示例图画。 咱们看到轿车、飞机、货车、狗等的图画。STL-10 数据集包括 8,000 张图画。

咱们的第二个用例将在 NLP 中运用,咱们运用新闻标题数据集,其间包括新闻标题及其各自的主题,例如:违法、文娱、世界新闻、喜剧等。在这里,咱们的方针是将标题文本分类到正确的类别。

数据漂移检测(二):NLP 和 CV 中的非结构化数据(Arthur)

来自新闻标题数据集的示例数据点。 咱们看到咱们收到有关新闻类别、新闻标题、作者等的信息。新闻标题数据集包括 200,000 多条记录。

算法/办法

与丈量表格数据中的多变量漂移相同,该办法的中心动机是对参阅数据集的密度或散布进行建模。

概述

在非结构化数据中发现反常有几种不同的办法。关于任何给定的办法,确定未见数据反常的三个首要方面要求:

  1. 向量表明:将非结构化数据转换为向量 embedding。
  2. 密度模型:界说参阅数据集的密度模型。
  3. 评分:创立一种针对参阅密度模型对新数据点进行评分的办法。

在本节中,咱们将评论用于这三个不同组件的各种不同技能。此外,咱们将重点介绍 NLP 和计算机视觉数据集的示例成果。

向量表明

咱们有必要将咱们的图画或文本数据转换为有意义的向量表明,以便了解参阅数据集的基本散布。这些向量表明是一种特征提取,能够捕获咱们非结构化数据的有用表明。

迁移学习是一种经过从大型预练习模型中提取每个图画或文本序列的embeddings来创立这些表明的办法。这些大规模模型一般在数百万个不同的数据点进步行练习,并运用最先进的架构(用于图画数据的 CNN 或用于文本数据的 Transformer)能够获取看不见的数据点并发生有意义的向量表明。

关于图画,ResNet、VGG 或类似的预练习模型是合适的。关于 NLP 数据,咱们需求提取文档embeddings并转向预练习(或微调)的大型言语模型。

尽管这些只是大规模预练习模型的几个示例,但还有其他几个在不同的神经网络架构和不同的数据集进步行了练习。只要对机器学习使命的上下文有意义,这种办法就能够与任何类型的向量embedding一起运用。

密度模型

一旦咱们对参阅数据会集的每个点都进行了有意义的向量笼统,咱们现在有必要创立一个能够对根底散布进行建模的密度模型。

咱们能够为这些embedding向量练习一个灵敏的密度模型。

这能够经过许多可能的技能来完成,例如:自编码器(auto-encoder、AE)、变分自编码器(VAE,Variational Autoencoders), 标准化流(Normalizing Flow), GAN 等。在每种情况下,该密度模型都会学习参阅集图画或文本的结构和散布(如嵌入空间)。

数据漂移检测(二):NLP 和 CV 中的非结构化数据(Arthur)

主动编码器架构示例

例如,自编码器常常用于无监督反常检测。自编码器经过将向量编码为较低维向量,然后将该表明解码回其原始维度来学习参阅集的潜在表明(由向量embedding组成)。

咱们将原始输入向量和输出向量之间的差错丈量称为重建丢失。与参阅散布中的点相似的数据点将比与参阅散布非常不同的点具有更低的重建差错。

此属性关于查找反常值很有用,由于在参阅集散布之外的点将具有很高的重构差错

看看咱们的新闻标题示例,咱们能够查看咱们的自编码器学习到的空间。咱们首先在分类为 CRIME 的新闻标题上练习模型,咱们将其视为咱们的散布内(in-distribution)的数据。下面是违法头条以及文娱头条的可视化。

数据漂移检测(二):NLP 和 CV 中的非结构化数据(Arthur)

由主动编码器编码的散布内(in-distribution)违法标题(蓝色)和散布外(out-of-distribution)文娱标题(赤色)的 UMAP 可视化。

评分

一旦咱们在参阅集上练习了密度模型,咱们有必要找到一种办法将模型中的重建丢失值转换为可操作的反常分数。咱们的办法概述如下:

  1. 练习模型后,咱们计算保存集(参阅集的子集)的重建差错以用作代理散布。
  2. 关于每个看不见的数据点,经过咱们练习的密度模型,咱们在输入后计算重建差错。
  3. 咱们找到了咱们的重建差错相关于坚持集的重建差错的百分位数。

咱们的办法的动机是两层的:

  1. 较低的重建差错意味着该点不太可能是反常的(由于自编码器已经看到了许多类似的比如)。因而,假如一个看不见的数据点发生一个高重建差错(大于坚持会集的任何东西),它很可能是反常的。
  2. 由于咱们依据百分位数进行排名,所以咱们一切的分数都在 0 和 1 之间进行了标准化。这使得它易于运用且易于解释。挨近 1 的点比挨近 0 的点更简单出现反常。

评价/成果

很少有开源数据集具有标注数据来衡量非结构化数据类型的反常检测

因而,咱们运用本文前面介绍的示例数据集构建了几个不同的测验用例,以衡量咱们的反常检测算法对非结构化数据的有效性。

关于每个数据集(News Headlines 和 STL-10),咱们将测验用例分解如下:

  1. 咱们依据符号的类将咱们的数据点切割成散布内和散布外集(例如,一切飞机图画将是参阅集,一切轿车图画将是散布外测验集)。
  2. 咱们进一步将散布内的数据集切割成 80% 作为练习集,20% 作为保存集。咱们运用它来确定咱们的模型是否会依据图画方针将曾经看不见的数据点分类为“反常”或“非反常”。例如,咱们希望来自类内集的图画应该具有低反常分数(挨近 0),而来自类外集的图画应该具有高反常分数(挨近 1)。
  3. 咱们对数据会集可用的不同类别对运行此测验。咱们依据每个数据点的“分类”为反常或非反常(根据咱们的评分办法)计算 AUC 分数。

咱们在下面杰出显现了两个图表,展现了咱们的试验成果。

数据漂移检测(二):NLP 和 CV 中的非结构化数据(Arthur)

CV OOD:STL-10 数据的 ROC 曲线,其间散布内数据集是飞机,左侧的散布外的类是船只,右侧的散布外的类是鸟类。

上图展现了咱们运用 STL-10 数据集进行的两个特定试验的 ROC 曲线。

左图显现了 AUC 曲线,丈量的散布内数据集(非反常)取自一组船只图画,而散布外数据集(反常)取自一组飞机图画。

同样,右图显现了 ROC 曲线,其间散布内数据集取自一组鸟类图画,散布外数据集取自一组飞机图画。

咱们留意到,关于这两个试验,反常检测器在区分散布内和散布外数据点方面做得非常好(AUC 得分为 0.804 和 0.996)。

数据漂移检测(二):NLP 和 CV 中的非结构化数据(Arthur)

NLP OOD:新闻头条数据集除以每个类别作为参阅集。 比较跨类反常准确度(另一个类全是“反常”)。

上面的热力图报告了新闻标题数据会集可能类别(例如:违法、文娱等)之间一切可能的成对试验的 AUC 分数。关于热力图中的任何给定单元格,咱们报告 AUC 分数,其间 x 轴上的类别是散布内(非反常)数据集,而 y 轴上的类别是散布外(反常) 数据集。咱们报告的平均 AUC 分数(在一切交叉对中)为 0.83,这非常令人印象深刻,由于即便对人类来说这项使命也很困难。

定论

这种散布外检测办法特别强壮,由于它完全是无监督的。在出产环境中,咱们一般不知道预期会发生什么样的散布变化或许拜访已符号的数据。

此外,尽管咱们在这篇文章中只考虑了两个分类问题,但这种技能能够应用于任何类型的机器学习使命,由于它只考虑输入数据,因而,独立于根底 ML 使命。

检测散布外样本只是维护强壮的机器学习体系的第一步。在 Arthur,咱们正在协助数据科学家和机器学习工程师检测、理解和呼应不行预见的出产环境。

原文链接:Data Drift Detection Part II: Unstructured Data in NLP and CV