wanghui-garcia

 

 Visual Search at Alibaba

ABSTRACT

介绍了阿里巴巴的大规模可视化搜索算法和系统架构。如下面临的挑战将在阿里巴巴电子商务环境下讨论:(a)如何处理异构的图像数据,并减小用户查询的实拍图像与在线图像之间的差距。(b)如何处理海量更新数据的大规模索引。(c)如何训练深度模型,在没有大量人工标注的情况下得到有效地特征表征。(d)如何通过考虑内容的质量来提高用户的参与度。我们利用阿里巴巴收集的大量图像和最先进的深度学习技术进行大规模的视觉搜索。我们提供解决方案和实现细节来克服这些问题,并分享我们从构建如此大规模的商业视觉搜索引擎的经验教训。引入基于模型和搜索的融合方法,有效地预测类别。同时,我们提出了一个深度CNN模型,通过挖掘用户点击行为来进行联合检测和特征学习。二进制索引引擎的设计目的是在不影响召回率和精度的情况下扩大索引。最后,我们将所有的阶段应用到一个端到端的系统架构中,可以同时实现高效率和可扩展的性能,适应于真实拍摄的图像。大量的实验证明了系统各模块的先进性。我们希望阿里巴巴的视觉搜索能更广泛地融入到今天的商业应用中。

 

1 INTRODUCTION

随着网络图片在搜索引擎和社交媒体上的日益普及,视觉搜索或基于内容的图像检索(CBIR)成为近年来的热门研究课题。因此,因为其明显的优势,开发电子商务系统中的视觉搜索势在必行:1)更方便的交互,2)搜索条目优于文本的细粒度描述,3)在线和离线场景之间的良好连接。考虑到现实世界中视觉搜索系统的算法和工程复杂性,很少有出版物详细描述在商业应用上部署的端到端系统。一般来说,一些可视化搜索系统,如Ebay [22], Pinterest[7]发布他们的部署产品来描述架构,算法和部署。

在阿里巴巴,我们在视觉搜索技术的实际应用中也遇到了很多挑战。通过与阿里巴巴的算法和搜索团队的合作,我们成功开发了智能电商应用“Pailitao”。“Pailitao”,就是用相机购物。它是以深度学习和大规模机器学习技术为核心的创新图像智能产品,利用视觉搜索服务实现“图像搜索”功能,如图1所示。自2014年推出以来,在业界引起了高度的关注和广泛的认可,并经历了快速的增长,2017年日均活跃用户(Daily Active User,DAU)超过1700万。2017年中国双十一购物节,Pailitao成功突破3000万DAU。在这篇文章中,我们想分享一些视觉搜索技术的关键进展,这些进展明确地解决了阿里巴巴目前面临的挑战。这款产品极具挑战性,与其他产品的区别主要体现在以下四个方面:

Heterogeneous images matching: 不像标准的搜索引擎,Pailitao的用户搜索通常是实景图片,这意味着我们允许用户从真实生活中拍摄图片,也可以上传任何来源的查询图片。我们很容易注意到,实拍图像的质量并不像库存图像那样完美,总是存在语义和视觉上的差距。

Billions of data with fine-grained categories: 大多数视觉搜索解决方案都无法达到阿里巴巴的规模。阿里巴巴拥有庞大且持续增长的图片收藏,其中的标签有noise,也可能是错误的。此外,该集合涵盖了许多容易相互混淆的细粒度类别。我们的系统需要具有可扩展性和成本效益,采用分布式架构来处理大量数据。

Huge expense for maintaining training data: 在阿里巴巴这样的动态市场中,由于图像的多样性,数据总是会有噪声。对于深度模型的训练,这些图像往往包含复杂的背景,来自多个数据源,这使得特征学习难以实现高搜索相关性和低延迟。维护训练数据非常辛苦,从数据的收集和清理到标注注释,通常需要巨大的成本。

Improving the user engagement: 一个商业应用程序的成功是通过它给用户带来的好处来衡量的。如何吸引更多的用户尝试视觉搜索服务是关键问题。现在迫切需要鼓励用户购买这些产品并进行可能的转化。

 

 

尽管有挑战,但我们也有机会,1)库存中的每一件商品都有自己的图片,2)图片是由卖家或客户提供的带有自然标签的数据,3)自然的购物场景为视觉搜索提供了很大的空间。

抓住现有的机会,我们描述如何缓解上述问题和应对挑战。总体来说,我们详细介绍了阿里巴巴视觉搜索系统的构建和运营方法。我们举例说明了我们的系统架构,并进一步挖掘有效数据供深度学习模型使用。具体来说,我们描述了如何依据精度和速度来利用深度学习方法进行分类预测、联合检测和特征学习,并讨论了大规模索引和图像重新排序。我们在自己构建的测试集上进行实验,以评估每个模块的有效性。我们还展示了我们的索引引擎在无损召回和重新排序策略方面的效率。

 

2 RELATED WORK

在语义特征表示和图像分类方面,深度学习已经被证明是极其强大和广泛发展的。随着深度卷积神经网络呈指数级增长,视觉搜索引起了人们的极大兴趣[4,7,22]。在实际的视觉搜索场景中,针对含有细粒度分类的大尺度图像,包含复杂背景和带噪声标签的问题,如何根据查询图像找到相同或相似的项仍然是一个非常具有挑战性的问题。考虑到所应用的技术,之前的视觉搜索深度学习大致有三个方面。

例如用于实例检索的CNN:最近,CNN[8,12]在视觉问题方面表现出了良好的性能。已有多篇文章尝试将CNN应用于图像和实例检索(image and instance retrival)[1,19,23]。通过将CNN作为NeuralCode进行图像检索,如Babenko等[2]将全连接层的输出作为图像特征进行检索。Ng等人[10]对CNN特征进行编码,卷积特征全局映射到VLAD中。在[18]中,Tolias等人通过简单地在卷积特征图的所有位置上应用空间max-pooling来生成有效的可视化描述符。在我们的场景中,实例检索(instance retrieval)与图像检索(image retrieval)略有不同,因为它关注的是包含目标对象(不包括背景)的图像区域,而不是整个图像。

Deep metric embedding: 深度度量学习在测量图像之间的相似性方面有很好的效果。Siamese网络或triplet loss在实践中更难训练。为了学习更有效和高效的表示方法,设计了一些针对难样本挖掘的工作,这些工作针对的是一批被认为难的样本。利用FaceNet[15],提出了一种在线策略,将小批处理中的每一对正对与一个semi-hard反例关联。Sohn[16]通过在每次迭代中共同排除多个负例子,进一步将triplet损失扩展为N-pair损失,从而提高triplet损失。像阿里巴巴的大量库存,新产品更新频繁的问题使其计算效率低下和在所有类别中收集triplet数据的不可行性,我们在检索过程和用户点击行为中设计了在线难样本挖掘,效果令人印象深刻,尤其是当图像的细粒度高和且样式多样时。

Weakly supervised object localization: 最近的许多工作都在探索使用CNNs的弱监督对象定位[3,5,11]。为了定位对象,Bergamo等[3]提出了一种自学习的目标定位技术,该技术涉及屏蔽图像区域,以识别导致最大激活的区域。Cinbis等[5]和Pinheiro等[11]将多实例学习与CNN特性相结合,对对象进行定位。然而,这些方法仍处于未经过端到端训练的多阶段,取得了良好的效果。有些工作需要多次网络转发来进行定位,这使得实际数据难以扩展。我们的方法是端到端的训练,以学习没有强注解图像的目标位置和特征。

尽管上述工作取得了成功,但如何将真实的产品落地,找到与用户意图最相关的产品,仍然存在着挑战和问题。考虑到阿里巴巴规模庞大的数据集,要处理数十亿的数据并实现令人满意的性能和延迟是一项挑战和艰巨的任务。

考虑到这些现实的挑战,我们提出了一个可扩展和资源高效的混合视觉搜索系统。我们的贡献如下:

1)引入了一种有效的类别预测方法,利用基于模型和基于搜索方法的融合来减少搜索空间。与传统的仅基于模型的方法相比,该方法具有更好的可扩展性,在混淆类别和领域限制方面取得了更好的性能。

2)我们提出了一个带分支的深度CNN模型,用于联合检测和特征学习。与完全监督这种训练在需要巨大花费的人力标注数据上的检测方法不同,我们提出在不受背景干扰的情况下,同时发现检测mask和精确识别特征。我们直接以一种弱监督的方式应用用户点击行为来训练模型,而不需要额外的注释。

3)作为已部署的移动应用,我们使用二进制索引引擎完成检索过程,并重新排序以提高参与度。我们允许用户自由拍照,在毫秒级响应和无损召回的情况下,以一个高可用性和可扩展的解决方案来寻找相同的项目。大量的实验证明了Pailitao的端到端架构能够有效地为数百万用户提供视觉搜索。

 

3 VISUAL SEARCH ARCHITECTURE

视觉搜索的目的是通过视觉特征搜索图像,为用户提供相关的图像列表。作为专业图像搜索引擎中的检索服务,Pailitao于2014年首次上线,通过对产品技术的不断打磨,已成为数百万用户的应用。随着业务的增长,我们也建立了稳定的、可扩展的视觉搜索架构。

图2给出了Pailitao的整体视觉搜索流程,分为离线和在线流程。离线过程:主要是指每天构建文档索引的整个过程,包括条目选择、离线特征提取、索引构建(即将图像和其对应特征一一对应起来)。执行完成后,在线库存将每天在指定的时间内更新。在线过程:主要是指用户上传查询图像时返回过程最终结果的关键步骤。这与离线的过程相似,包括在线类别预测、在线检测和特征提取。最后,我们通过索引和重新排序来检索结果列表。

 

3.1 Category Prediction

3.1.1 Item inventory selection. 有大量的产品类别和图片,包括PC主图片,SKU图片,unboxing图片和LOG图片,涵盖了电子商务的各个方面。我们需要从这些海量的图片中选择用户相对感兴趣的图片作为条目库存进行索引。我们首先根据购物偏好和图像质量过滤整个gallery。由于淘宝上相同或高度相似的商品太多,最终的搜索结果会出现大量相同的商品,不经过过滤,导致用户体验差。在此之后,我们添加了重复图像删除模块,其目的是删除相同或高度相似的项,并优化索引文档

3.1.2 Model and search-based fusion. 淘宝类别是一个叶子类别的层次系统,同时考虑了一定的视觉和语义相似性。类别系统不仅是一个技术问题,也是一个有利于消费者意识的业务问题。目前,为了适应用户偏好,缩小搜索空间,我们在Pailitao中预测了14个集合类别,涵盖了所有的叶子类别,如鞋、衣服、包等。对于基于模型的部分,我们在高精度和低延迟之间进行权衡,部署了最先进的GoogLeNet V1[17]网络。利用带有类别标签的商品库存子集对网络进行训练,其中包含多种产品类别。作为输入,按照标准设置[17],将每个图像的大小调整为256×256,随机裁剪为227×227。为了训练网络,我们使用标准的softmax-loss来完成分类任务(基于模型的方法得到查询图像的类别其实就是直接将查询图像x输入到分类模型中,然后直接得到类别结果)。在基于搜索的部分,我们利用了深度网络输出特征的识别能力。具体地说,我们收集2亿张图片作为带有ground-truth类别的参考组作为一对(

分类:

技术点:

相关文章: