George Panchuk

返回数据探索

·

2022年7月18日

如今,人们创建了大量不同类型的应用程序,并解决了不同领域的问题。尽管存在这种多样性,但它们有一个共同点——它们需要处理数据。现实世界的数据是一个活生生的结构,它日益增长,变化很大,变得越来越难以处理。

Finding errors in datasets with Similarity Search

在某些情况下,您需要对数据进行分类或标记,考虑到其规模,这可能是一个棘手的问题。分割或标记的过程容易出错,而这些错误可能会付出高昂的代价。想象一下,由于不准确的标签,您未能达到预期的模型质量。更糟糕的是,您的用户面临大量不相关的项目,无法找到他们需要的东西并对此感到恼火。因此,您的用户留存率很低,这直接影响公司的收入。避免数据中出现此类错误确实非常重要。

家具网络商城

假设您在一个在线家具商城工作。

家具商城

Furniture marketplace

在这种情况下,为确保良好的用户体验,您需要将商品分成不同的类别:桌子、椅子、床等。您可以手动安排所有商品,但这需要花费大量金钱和时间。还有另一种方法:训练分类或相似性模型并依赖它。这两种方法都难以避免错误。手动标记是一项繁琐的任务,但它需要集中注意力。一旦您分心或眼睛模糊,错误就会接踵而至。模型也可能出错。您可以分析最不确定的预测并进行修正,但其他错误仍然会泄露到网站上。没有万能药。您应该彻底验证您的数据集,并且您需要工具来完成这项工作。

当您确定放置在错误类别的对象不多时,可以将它们视为异常值或离群点。因此,您可以训练一个或一组能够查找异常的模型,例如自编码器和其上的分类器。然而,这再次是一项资源密集型任务,无论是时间还是人工劳动,因为必须为分类提供标签。相反,如果放错位置的元素比例足够高,离群点搜索方法可能就会失效。

相似性搜索

我们不能直接比较文本和图像数据。为此,我们需要一个中间表示——嵌入。嵌入只是包含语义信息的数值向量。我们可以将预训练模型应用于我们的数据以生成这些向量。创建嵌入后,我们可以衡量它们之间的距离。

假设我们想在“单人床”类别中搜索单人床以外的东西。

一种可能的流程如下所示:

Similarity search

相似性搜索背后的思想是衡量数据相关部分之间的语义相似性。例如,类别标题和商品图片之间。假设是不合适的商品相似性较低。

将类别名称作为锚点并计算锚点嵌入。

  • 计算放置在此类别中的每个对象的图像嵌入。
  • 比较获得的锚点和对象嵌入。
  • 找到最远的。
  • 例如,我们可以使用 CLIP 模型来实现。

类别 vs. 图像

Category vs. Image

我们也可以计算标题而非图像的嵌入,或者甚至同时计算两者以查找更多错误。

类别 vs. 标题和图像

Category vs. Title and Image

正如您所看到的,不同的方法可以找到新的错误或相同的错误。叠加几种技术或甚至使用不同模型应用相同的技术可以提供更好的覆盖范围。提示:缓存相同模型的嵌入并在不同方法中重复使用它们可以显著加快您的查找速度。

多样性搜索

多样性搜索是一种查找数据中最具代表性示例的方法。与相似性搜索一样,它也在嵌入上操作并测量它们之间的距离。区别在于决定下一个提取哪个点。

让我们想象一下如何使用相似性搜索获取3个点,然后使用多样性搜索。

相似性

计算距离矩阵

  1. 选择您的锚点
  2. 从距离矩阵中获取对应于所选锚点距离的向量
  3. 对获取的向量进行排序
  4. 获取前3个嵌入
  5. 多样性

初始化起点(随机或根据特定条件)

  1. 选择您的锚点
  2. 从距离矩阵中获取所选起点的距离向量
  3. 找到最远的点
  4. 获取新点的距离向量
  5. 找到与所有已获取点距离最远的点
  6. 多样性搜索使用相同的嵌入,并且您可以重复使用它们。如果您的数据庞大且无法放入内存,Qdrant 等向量搜索引擎可能会有所帮助。
Diversity search

由于预训练模型只具有对数据的通用知识,它们仍然可能遗漏一些错位的项目。您可能会发现模型专注于不重要的特征,选择了大量不相关的元素,并且未能找到真正的错误。为了缓解这个问题,您可以执行多样性搜索。

尽管所述方法可以独立使用。但它们易于组合并提高检测能力。如果质量仍然不足,您可以使用相似性学习方法(例如使用 Quaterion)对模型进行微调,以提供更好的数据表示并在空间中将不相似的对象拉开。

结论

在本文中,我们阐述了基于距离的方法来查找分类数据集中的错误。展示了如何在家具网上商店中找到错误放置的物品。我希望这些方法能帮助您捕获潜入数据中错误类别的“偷偷摸摸”的样本,让您的用户体验更愉快。

体验 演示

敬请关注 :)

此页面有用吗?

点赞图标

我们很抱歉听到这个消息。😔 您可以在 GitHub 上编辑此页面,或创建一个 GitHub issue。

本页内容