查看原文
其他

KDD2018 阿里巴巴论文揭示自家大规模视觉搜索算法

52CV 我爱计算机视觉 2019-06-22

视觉搜索方向工业界的最佳实践,极具参考价值。
使用手机一键拍照网上购物具有独特的商业价值,是一种更加直观和方便的购物体验,也是移动互联网时代连接线上线下的重要渠道。
请看该文在KDD2018的视频:

https://v.qq.com/txp/iframe/player.html?vid=o0752flh9l8&width=500&height=375&auto=0
本文来自于即将召开的数据挖掘顶级会议KDD2018上阿里巴巴录用的论文《Visual Search at Alibaba 》,作者信息

文章首先介绍了在阿里巴巴这种超级庞大体量的电子商务场景下视觉搜索面临的主要挑战
1.异构图像匹配。用户拍照上传的图像往往带有复杂的背景,并不完全是感兴趣的商品,且含有噪声图像质量较差,而商家展示的图片往往商品更加凸显,且图像质量较好,这导致查询图像和数据库图像在语义和感官上有巨大差异。
2.数十亿级的商品细粒度品类,规模巨大。一般的图像搜索算法无法处理,而且品类不断更新,品类的自然标签往往带有噪声甚至是错误的。
3.标注训练数据的成本极高。如果使用监督学习的方法,海量数据清洗、标注都是极其昂贵的,所以要解决如何在没有大量人类注释的情况下训练深度模型以进行有效的特征表示。
4.不仅仅要使用视觉搜索技术返回商品。还要连同商品其他属性,考虑商品的质量和购买意愿来改进用户体验。
拍立淘视觉搜索购物示

阿里巴巴视觉搜索研发团队结合目前最先进的深度学习技术和自身的业务特点,经过4年的迭代研发,其目前视觉搜索系统的主要技术特点
1.结合分类建模与近邻搜索技术的精准有效的类别预测方法;
2.通过弱监督学习实现目标检测和特征表示的CNN架构的联合学习;
3.通过二值特征索引和重排序技术改进用户体验,实现移动端应用的毫秒级响应。

视觉搜索总体架构

离线部分涉及到商品类目选择、特征提取、索引构建,模型构建后每日指定时间更新模型。
在线部分与此相仿,在一个超大的分布式系统中,完成类别预测、在线检测和特征提取,最终返回给用户重排序后的与查询图像相关的商品类目。

下面逐步分解其重要的技术细节。
1.商品类别预测
淘宝目前将商品分成14个大类,视觉搜索系统根据用户上传的图像要精确预测用户此刻感兴趣的是哪个类别,比如鞋子、裤子、背包还是帽子等。
研究团队使用模型融合方法精确预测商品类目。
1.1 从商品库图像中选择商品类目的图像。
淘宝有大量的商品,首先通过购物偏好和图像质量选择那些用户在拍照购物场景中经常购买的商品,建立索引,并进行图像去重。
1.2 基于分类模型和图像搜索融合技术的图像类别预测。
基于分类模型的商品类别预测,即训练GoogLeNet V1网络预测查询图像的类别,使用softmax分类函数,得到每一种可能的类别都有一个所属的概率;
基于图像搜索技术的商品类别预测,即使用GoogLeNet V1网络输出的特征在整个图像库中检索最相似的Top30图像,对这30幅图像所在的类别进行加权排序,同样得到每一种可能的类别都有一个所属的概率;
融合方法,将分类模型得到的每类的概率和图像搜索得到的每类的概率加权平均,得到最终的最可能的商品类别。
通过上述简单的融合方法,取得了2%的Top1精度的改进。
2.联合目标检测和特征学习
用户拍摄图像往往含有大面积嘈杂背景,通过检测到用户真正感兴趣的目标可以大幅提高检索精度。
2.1 为了精确地度量查询图像和数据库每一种商品的图像的相似性,采用triplet ranking loss 作为距离度量的损失函数。

这里存在一个很大的问题是,负样本的构造,直觉上使用其他类目的库图像,但其实并不是一个最优的选择,阿里的工程师通过挖掘海量用户的点击行为,直接使用用户的点击图像和非点击图像作为正负样本,使用这样的弱监督信息训练模型。


2.2  统一的联合检测与特征学习的深度排序架构


如上图所示,去除目标的背景,将目标检测出来,裁剪出目标区域再Feed进深度模型进行检索可以得到更佳的检索精度。直观上,可以使用一个目标检测模型(比如SSD、Faster RCNN),但这势必会造成时间开销增大。阿里的工程师选择一种联合学习的方法。如下图:


将原始图像Feed进网络,网络有一个目标定位的分支,预测目标的位置坐标mask,然后将此mask和原始图像求与,将得到的去除背景的图像Feed进检索的特征学习网络。值得一提的是,标注大量的目标框是极其昂贵的,其实这里并没有标注目标框的监督信息被引入,检测分支完全是为了诱导网络去学习一个更有利于后续鉴别特征学习的目标框的坐标。事实证明,这种框架非常有效而且节省大量的标注人力。

3.图像索引和检索
为提高响应速度,使用大规模二值索引引擎进行查询和排序。

3.1 十亿级的大规模图像检索
Multi-shards :因为单机内存无法存储这么大的特征数据,特征被存储到多个节点,对于单次查询,每个节点检索出的Top K结果被合并起来得到最终的结果。
Multi-replications :单个数据库特征存储无法应对大量的查询流量,特征数据库被复制多份,将查询流量分流的不同的服务器集群上,以降低用户的平均查询时间。
3.2 质量感知的结果重排序
对于视觉搜索返回的商品列表结果,研究发现即是是精准的结果但并不总是最能激发用户商品点击购买的商品,所以最后会根据商品列表里每个商品的价格、好评度、用户画像等其他信息重排序。

实验
实验部分对该大规模视觉搜索系统的各个部分进行了分别评估。具体构造数据集的方法请查看原论文,本文仅展示评估结果。


类别预测评估
如上图中Table 1所示,单纯基于分类模型的方法Top1精度是88.86%,单纯基于图像搜索的方法Top1精度85.51%,但在一些类上,基于图像搜索的方法精度更高,比如shirt, pants, bags ,最终通过模型融合,得到最终的精度91.01%。
搜索相关性性能评估
评估了主流的图像分类网络架构和使用上述方法训练的GoogLeNet V1的搜索结果的召回率性能。如下图:

可以看到通过本文方法训练的兼具模型小、速度快特点的GoogLeNet V1网络取得了最好的结果。

为验证学习到的特征既保留了语义信息又保持了局部近邻,作者对少量样本进行了可视化:

并展示了部分检索示例:

联合检测和特征学习架构的评估
如上图Table 1所示,通过返回K(1,4,20)个检索的目标,计算召回率。发现随着K的增加,召回率逐步提高,说明这种联合训练方法没有引入更多不相关的信息,证明了方法的有效性。

用户点击数据和库目录数据构建 triplets的性能影响评估

可以发现使用用户点击数据的弱监督信息,在召回率和MAP上都有性能的优势。

目标定位的评估
通过在与标注数据上训练的SSD的比较,如下图所示,可以看到定位的精度稍逊于SSD,但召回率相差无几,计算延迟大幅下降。

本文介绍了阿里巴巴视觉搜索应用拍立淘的核心技术,可以总结出在设计实现这套系统的过程中,工程师们关心的问题和解决方案:
1.提高检索召回率——算法融合;
2.提高响应速度——二值索引;
3.降低标注成本——弱监督学习;
4.结合业务的推荐——最终还是要对用户体验和鼓励购买负责!

在“我爱计算机视觉”公众号后台回复alivs,即可收到论文原文百度云下载地址。
点击阅读原文可以在www.52cv.net查看本文。
喜欢52CV的文章就点个赞吧

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存