内容简介:我们很荣幸于 2018 年 11 月 2 日参加假设你在一个看起来像一个大仓库的商店中,有许多用正整数标记的通道。eBay 在任何特定时间都有超过 1B 的活跃商品列表。所以,如果 eBay 是这样一家商店,它看起来就像 1999 年的电影如果这些零件看起来非常相似,这个比较任务就会变得非常复杂。在这种情况下,你需要注意每个细节,如颜色、形状、大小、品牌、包装等。如果通道是按商品的类型组织的,那么你可以从每个通道中大致查看一些商品,然后在相关的通道上花更多的时间去寻找。这是一项非常复杂的任务,如果你错过了感
我们很荣幸于 2018 年 11 月 2 日参加 ODSC West 2018 的视觉搜索分会讨论,这篇文章是我们对发表在 KDD2017 上的论文“eBay 视觉搜索(Visual Search at eBay)”的总结。
假设你在一个看起来像一个大仓库的商店中,有许多用正整数标记的通道。eBay 在任何特定时间都有超过 1B 的活跃商品列表。所以,如果 eBay 是这样一家商店,它看起来就像 1999 年的电影 《黑客帝国》 中的无限储藏室。假设你有一张打印出来的管道零件目录,而你不知道你所寻找的零件的型号。你找到店员,指着纸上的零件图片。店员给你说了几个通道,比如说 183, 5276, 14098 号通道。如果没有这个信息,你必须经过每个通道,然后将管道的图片与通道上的每个项目进行比较才能找到你所要的零件。
如果这些零件看起来非常相似,这个比较任务就会变得非常复杂。在这种情况下,你需要注意每个细节,如颜色、形状、大小、品牌、包装等。如果通道是按商品的类型组织的,那么你可以从每个通道中大致查看一些商品,然后在相关的通道上花更多的时间去寻找。这是一项非常复杂的任务,如果你错过了感兴趣的项目,你可能需要把所有通道查找很多遍才能找到它。对于大规模搜索情况,算法搜索从本质上简化了这个过程。
正如我们的 KDD 论文中提到的,我们训练一个神经网络,从给定的图像中预测叶子类别(如图 1 所示)。这些叶子类别很像我们的“仓库”中不同的通道。这个基于神经网络的分类器就像我们的店员识别商品可能处在的通道位置。我们使用神经网络中 Softmax 层预测的概率,选择前几个预测概率最高的叶子类别。
一旦我们找到了通道,我们需要知道如何比较两个图像(查询项目和货架上的项目)。我们用一个紧凑的签名来表示每幅图像,这个签名由一组数字组成的 矢量 表示。这个签名由相同的弱监督神经网络来提取。我们通过训练带有 Sigmoid 层的网络来预测叶子类别,提取二进制失量(由 1 和 0 组成)。我们发现最好在所有的步骤中尽可能多地使用监督信息。由于对于每一个叶子类别,我们有许多多样的数据,所以我们训练网络来预测叶子类别。
你可以看下 ECCV2018 的“ 探索弱监督预训练的极限(Exploring the Limits of Weakly Supervised Pretraining) ”论文,以了解预训练大型网络并迁移到其他任务的强大能力。这种弱监督以及训练期间的数据扩充(如裁剪、翻转、旋转)能够帮助网络忽略图像背景,并更多地关注图像的关键部分,从而产生紧凑的语义签名。这些签名容易进行对比。在二进制表示的情况下,例如本文的情况,我们可以基于 汉明距离 来计算匹配的比特位数。汉明距离相似性可以用来 排序 叶子类别中匹配的项目。匹配的比特位越多,匹配程度越高。
在大规模的商业视觉搜索中我们面临的主要挑战包括:
- 图像质量和构成不统一
- 商品存货清单比较大
- 商品存货清单严重细粒度
- 需要简单的架构和模型,便于维护
建立大规模视觉搜索系统的建议
下面,我们总结了一些构建大规模的视觉搜索系统的建议。这些建议也适用于非视觉或多模态系统。
1. 理解数据,并使用分层抽样
数据是确定整个过程策略的核心。图像质量可能会引入复杂性,需要谨慎处理。了解目录中的图像以及用户在视觉搜索期间上传的图像非常重要。图 2 给出了 eBay 手提包存货的一个子集的可视化结果。背景的复杂性以及手提包属性的复杂性混合在一起。图 3 表明了另一种情况:当引入相机姿态时,相同的对象可以有许多不同的视角。当我们训练神经网络时,使用多样性的、有代表性的图像集是非常关键的,以使神经网络能够处理数据集中出现的各种情况。
训练集的大小由诸如我们想要预测的标签数量、每个标签内数据的多样性、训练结构带来的内存和计算约束,以及训练这种系统的时间预算等因素共同决定。当我们为神经网络创建训练集时,我们对叶子类别、销售商、商品状态、品牌等使用分层抽样,最后去除重复样本,以确保数据丰富的多样性。
2. 数据增强是关键,特别是图像旋转。
当训练数据不能包含真实场景中可能发生的所有变化时,数据扩充是训练神经网络的关键步骤。当用户使用手机拍摄对象时,很可能图像出现被裁剪、旋转、变得模糊或者没有被缩放到合适的尺寸等情况。数据增强 (图 4) 生成数据中的各种变化,尤其是当这些变化容易出现在真实场景中,但是往往不会出现在 eBay 商品列表训练集中时。举个例子,eBay 商品列表中的图像不太可能旋转。然而,这种情况在用户上传的图像中经常出现。因此,我们发现图像旋转是数据增强中的一个重要操作。图像旋转在数据增强中经常被忽略,但是对于视觉搜索来说是十分重要的。
3. 提取语义签名时尽可能多地使用监督信息
正如上文中提到的,尽可能多地使用监督信息是非常重要的。这有助于训练分类器关注信息性内容而忽略其他非信息性区域。当实际任务(测量图像对之间的相似性)没有可用标签时,最好利用低采集成本、数量庞大且多样的数据进行强监督(例如叶子类别的预测结果)。
4. 签名的熵分析
这一步通常会被大型信息检索系统的系统设计所忽略。评估给定的签名容量内是否包括了足够的有效信息是至关重要的。例如,如果我们使用 8 位数字来表示二进制签名,我们可以表示多达 28 个独特的概念。在最佳情况下,每个数位值为 1 的频率为 50%。我们可以通过计算系统的熵,得到系统的有效比特长度,并与实际比特长度进行比较。有些情况下允许系统松弛来包容系统中的冗余不失为一个好办法(图 5),防止某些数位受到噪声和扰动的影响。
5. 当标签为粗粒度标签时,类内方差是很重要的。
我们使用粗粒度叶子类别标签代替产品 ID 来训练神经网络。部分原因是由于叶子类别虽然是粗粒度的,但是更容易获得。并且在服装和家具等类别中,有些商品没有产品 ID。典型分类系统的目标是最小化类内方差。理想情况是类内方差为 0。此时,一个类的所有样本都会坍塌成一个点(见图 6)。
例如,运动鞋的所有样本都会坍塌到一个点。但是,有很多独特的产品也属于“运动鞋”叶子类别,我们希望能够通过签名相似性找到它们。因此,我们认为,当标签为粗粒度但是需要进行细粒度搜索时,类间方差应该很高,但是类内方差也应该很高。这可以通过计算签名的熵来衡量,正如前面一条建议中所讨论的。
6. 用排除法提高搜索速度和精度
专为高速度和高精度而设计的排除法具有强大的能力。例如,如果输入图像包含运动鞋,那么没有必要搜索裙子、桌子、计算机的库存清单。我们在 KDD 论文中提出,通过使用强分类器来预测前几个可能的叶子类别(通道)来减少搜索空间和提高精度(裙子的签名与鞋的签名不会混淆)是非常有效的。
7. 绝对 vs. 累积 top-k 划分
我们使用强分类器,一个使用强叶子类别标签训练的深度神经网络,来预测首选叶子类别(通道)。当首选预测的置信度较高时,则不需要搜索其他分区。然而,当首选预测不确定时,最好包括其他竞争分区。因此,我们建议使用累计 top-k 类别来获得更好的搜索精度,并且只在要求精确匹配的情况下使用绝对 top-k,即使这样做的成本较高。详情请参阅图 7。
结论
在这篇文章中,我们介绍了七条构建大规模视觉搜索的建议。此外,我们也建议最小化人工的作用(包括用于评估),周期性地重新训练模型以应对数据分布的变化,并且为了便于维护,将模型的数量保持在最小值。
想了解更多细节,请阅读我们发表在 KDD2017 的论文:“ eBay 视觉搜索(Visual Search at eBay) ”。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。