业界动态
技术实现 | 图像检索及其在淘宝的应用
2024-11-01 00:45

作者:韩信子@ShowMeAI,Frank@淘宝
专栏:计算机视觉 http://www.showmeai.tech/tutorials/51
地址:ShowMeAI知识社区
声明:版权所有,转载请联系平台与作者并注明出处
收藏 ShowMeAI 查看更多精彩内容
 

技术实现 | 图像检索及其在淘宝的应用

 图像检索任务指的是,给定查询图像,从图像数据库中找到包含相同或相似实例的图像。典型应用之一就是电商商品检索,如淘宝拍立淘,只需要用户随手拍照即可精准检索,提高了电商购物的体验。本篇我们来看看淘宝拍立淘背后的实现方案和依托的计算机视觉技术。

图像检索任务指的是,给定一个包含特定实例(例如特定目标、建筑、场景等)的查询图像,从图像数据库中找到包含相同/相似实例的图像

因为不同图像的拍摄视角、光照、遮挡情况等不同,完成精准检索需要很多算法技术支撑,同时对于图像数据库庞大的各大互联网公司而言,查询效率也是需要考虑的核心问题之一。

淘宝·拍立淘 | 图像检索提升了电商购物体验; 4-2

以电商为例,淘宝拍立淘于2014年首次在APP中上线,现已经成为拥有数千万日活用户的应用。与传统的基于文字搜索的电商搜索相比,拍立淘只需要用户随手拍一张照片,即可精准检索,省去了繁琐的文字描述,简化了用户的购物流程,大大提高了电商购物的体验。

拍立淘的图像搜索架构如下图所示,架构整体分为离线和在线处理流程两个部分。

图像检索离线流程(Visual Search Offline Process); 4-3

图像检索在线流程(Visual Search o<em></em>nline Process); 4-4

2.1 离线流程

离线处理的过程主要是定期对图像抽取特征构建索引。完整的离线流程包括

图像检索离线流程 | 关键步骤; 4-5

① 检测与特征学习:构建离线图像选品,通过目标检测在选品图像上提取感兴趣的商品

② 特征抽取:对商品进行特征提取,构建大规模索引库,放入图像搜索引擎等待查询

③ 构建索引:以一定频率保持索引库更新。

2.2 在线流程

在线处理的过程主要是对用户上传的查询图片进行检索返回库内检索结果。具体的步骤包括

图像检索在线流程 | 关键步骤; 4-6

① 品类识别:对查询图像进行分类处理,识别商品类目

② 目标定位 & CNN特征抽取:提取图像目标区域的特征,基于相似性度量在索引引擎中搜索产生候选

③ 图像索引与重排:可以通过重排序进行结果商品重排并返回搜索结果。

3.1 图像选品处理

之所以做淘宝选品,是因为淘宝平台存在非常多相同或高度相似的商品图像,直接使用会导致最终的搜索结果出现大量相同的商品宝贝,影响用户体验。

淘宝包含大量不同来源的商品图像,例如和商品对应的『主图』、『SKU图』、『拆箱图』等。首先,需要对这些海量图像做一个筛选,选出用户相对感兴趣的图像作为商品图像构建索引。

品类识别模块 | 图像选品过滤的原理; 4-7

这个过程相当于『根据图像附带的属性和图像质量等对整个图像库进行过滤』。添加图像选品过滤模块后,会每天定时选择和删除重复或高度相似的商品图像,进而优化索引文件。

3.2 基于模型&搜索结合的类目预测

淘宝的类目体系是基于叶子类目的层次化结构,这样可以兼顾视觉和语义相似性。 淘宝在拍立淘中先图像进行预测,得到 14 个大类目之一的结果,如服饰、鞋、包等,这个处理可以缩小图像库的搜索空间。具体实现采用基于模型与搜索结合的方式,如下

品类识别模块 | 基于模型&搜索的类目预测; 4-8

1)基于模型的预测模块

① 采用 GoogLeNet V1 网络结构来权衡高精度和低延迟,使用包含不同商品类目标签的图像集进行训练

② 将输入图像的大小 resize 为 256*256,随机裁剪到 227*227 ,使用 Softmax(交叉熵)损失函数作为分类任务的损失函数。

2)基于搜索的预测模块

该模块不直接训练分类模型,而是基于相似度与匹配思想,使用特征模型和待检索数据库完成基于搜索的加权 KNN 分类。具体的预测流程为

① 获取用户输入的待分类图片

② 应用基于搜索的分类方法:对图片特征提取,并在待检索的数据库中找出 Top-K 个和它相似的图片,根据这些图片的类目标签对输入图片进行预测。

3)淘宝·拍立淘应用实践

  • 离线部分。淘宝收集了2亿张附带『真实类别标签』的图像作为参考图像库,训练一个通用类目的特征模型对参考图像库离线提取通用特征并构建索引。
  • 在线部分。实际预测时,对查询图像提取通用特征,并在图像参考集中检索Top 30的结果。通过查询图像的Top 30个邻居,再根据每个的类目标签加权投票,以预测待查询图像的标签 。其中,加权函数为查询图像与邻居图片的距离函数。

淘宝·拍立淘实践 | 基于模型&搜索的类目预测; 4-9

品类识别的效果提升。 淘宝将『基于模型的预测结果』和『基于搜索的结果』再一次加权融合,以进一步提高类目预测的准确性。 相比于单方法,两者融合的方式,使得淘宝最终类目预测的精度提高了 2% 以上

淘宝场景下,应用拍立淘进行图像搜索,有一个大挑战用户和商家图像之间存在巨大差异。商家的商品图片通常质量都非常高,拍摄环境和设备也非常好。而用户查询的图像,通常是用手机摄像头拍摄的,伴随着光照、模糊和复杂的背景等一系列问题。

为了减少复杂的背景影响,系统需要具备在图像中『定位主体目标』并『提取主体特征』的能力。淘宝提出了基于度量学习的分支网络CNN框架,来联合学习主体检测框和特征表示,以实现在没有背景干扰的情况下使用户实拍图像和商家的索引图像特征保持一致。

目标检测 & 特征联合学习 & 度量学习模块; 4-10

图例显示了,是否进行目标主体检测与针对性检索的效果差别

  • 第1行没有进行主体检测,检索结果明显受到了背景干扰
  • 第2行采用主体检测,检索结果有非常显著的效果提升。

基于度量学习的分支网络CNN框架 | 主体检测; 4-11

4.1 三元组挖掘

1)原理简介

在度量学习中,利用三元组样本,构建『三元组损失函数(Triplet Loss Function』是当前比较常见和有效的一种处理方式。

这个方法最早由Google研究团队在论文《 FaceNet:A Unified Embedding for Face Recognition》中提出,常用于人脸识别任务,目的是做到非同类极相似样本的区分(如对兄弟二人的区分)。

它的基本思想是:对于设定的三元组(Anchor , Positive , Negative,Triplet Loss 试图学习到一个特征空间,使得在该空间中相同类别的基准样本(Anchor)与 正样本(Positive)距离更近,不同类别的 Anchor 与负样本(Negative)距离更远。

三元组学习建模原理; 4-12

说明:Anchor 和 Positive 为同类的不同样本;Anchor 与 Negative 为异类样本。举例:在图像检索场景下,与检索图片同样的主体内容是Positive,不一样的是Negative。

2)方法优缺点

  • 优点1:基于 Triplet Loss 的神经网络模型,可以对细节进行很好地区分。 尤其是在图像分类任务中,当两个输入很相似的时候,Triplet Loss 对这两个差异性较小的输入向量,可以学习到更好的、细微的特征 Feature,从而在分类任务中表现出色。
  • 优点2:相比其他分类损失函数,Triplet Loss 能够根据模型训练的需要设定一定的阈值。 带 Triplet Loss 的网络结构,在进行训练的时候一般都会设置一个阈值 margin,设计者可以通过改变 margin 的值来控制正负样本的距离。

虽然 Triplet Loss 很有效,但也有缺点

  • 缺点1:三元组的选取,导致数据的分布并不一定均匀,所以在模型训练过程表现很不稳定且收敛慢,需要根据结果不断调节参数。
  • 缺点2:Triplet Loss 比分类损失更容易过拟合。

三元组样本挖掘优缺点总结; 4-13

 3)淘宝拍立淘应用实践

在淘宝拍立淘的场景中,给定一张输入图像,核心问题是利用图像特征可靠地匹配来自用户和卖家的不同源图像。 对应到三元组场景,我们需要拉近『查询图像』与其『同款商品图像』之间的距离,并拉远『查询图像』与『不同款商品图像』之间的距离。

4)三元组样本挖掘

方法思路如上,但模型训练需要依靠大量样本,这里的核心是『挖掘较难的三元组样本』。 简单的处理方式是,从与查询图像相同的类目中选择正样本图像,从其他类目中选择负样本图像。这种方式存在的问题是:负样本图像与查询图像存在较大的视觉差异,导致训练过程中三元组排序损失函数很容易为零,没有贡献任何损失。

实际上,淘宝应用『用户点击数据』来『挖掘较难的三元组样本』,具体流程如下图

淘宝·拍立淘实践 | 以用户点击数据来挖掘三元组样本; 4-14

  • 基本思路

在图像检索场景下很大一部分用户会在返回列表中点击同款的商品图像,这意味着『点击的图像』可以被视为『查询图像的正样本图像』,『未点击图像』可以作为『难负样本图像』,它们类似于查询图像但属于非同款商品图像。

  • 问题点&解决方式

上述的思路中,『未点击的图像』仍然可能是『与查询图像具有同款商品的图像』,因为当许多同款的宝贝图像被返回时,用户只会点击结果中的一个或两个,我们需要过滤『未点击且与查询图像具有同款商品的图像』。

三元组样本挖掘 | 负样本构建 & 正样本构建; 4-15

  • 负样本构建

最终『查询图像的负样本图像』计算如下

  • 正样本构建

类似的思路,更精确的『查询图片正样本』选取方式如下公式所示

  • 数据扩增

拍立淘的样本构建时,在小批量中获取的三元组之间,共享所有负样本图像。这样可以扩展小批量中的所有可用三元组数据,增加更多训练数据。不采用共享机制,生成 m 个三元组,通过共享负样本,可以在进入损失层之前生成m平方个三元组。

  • 损失函数优化

为进一步减少训练图像中的噪声,对原始三元组排序损失函数进行改进

 改进的思路,是针对同一查询图像的所有三元组样本计算平均损失,这样可以最大程度地减少噪声三元组的影响。 通过查询图像层面的三元组损失函数,学习CNN 特征,从而将用户的实拍图像和商家的高质量图像映射到同一特征空间,使得不同来源的图像能够更可靠地匹配。

Triplet Loss 的简单代码实现示例


	

4.2 Deep Ranking 网络

1)网络结构

整个流程中重要的一个环节是『剔除背景噪声,检测出主体对象』。计算机视觉中,目标检测的方法是部署现成的主体检测算法(如 Faster R-CNN 或 SSD,但这类方法时延较长而且需要大量边界框的标注。

淘宝拍立淘提出『两个分支的联合网络模型,来同时学习检测和特征表示。分支网络模型结构如下图所示

Deep Ranking | 两个分支的深度联合网络模型; 4-16

2)参数学习与训练

以上个步骤中挖掘的三元组为监督信息,在Deep Ranking 框架下学习该联合模型。这种方式下,可以通过三元组正负样本度量关系来学习出判别特征,同时,根据分支结构回归出对特征判别起到重要作用的对象主体掩膜。在不需要边界框标注的情况下,主体掩膜通过分支结构以类似注意力的机制被学习出来。 总体来说,Deep Ranking 框架如下图所示。

Deep Ranking | 以三元组为输入的三个深度联合网络模型; 4-17

5.1 十亿级大规模图像检索引擎

实际引擎端为了最大程度加快响应速度,淘宝拍立淘使用大规模二值引擎进行查询和排序,整体采用 Multi-shards 和 Multi-replications 引擎架构。

图像索引与重排模块 | 能快速响应的引擎架构; 4-18

1)结构框架

结构如下图所示,它保证了大量用户查询下的快速响应,同时又具有非常好的可扩展性。

Multi-shards和Multi-replications 引擎架构 | 原理; 4-19

  • Multi-shards。单机内存无法存储庞大的特征数据,因此特征被存储到多个节点上。每次查询,将从每个节点检索出 Top-K 结果,将其合并得到最终的结果。

  • Multi-replications。单个特征数据库无法应对大量的查询流量,特征数据库被复制多份,从而将查询流量分流至不同的服务器集群上,以降低用户的平均查询时间。

2)粗筛选和精排序

在每个节点,使用两种类型的索引:粗筛选和精排序,解释如下

Multi-shards和Multi-replications 引擎架构 | 节点; 4-20

粗筛选:采用改进的基于二值特征(CNN 特征二值化)的二值倒排索引检索。

① 以图像ID为关键字、二值特征为值,通过汉明距离计算,快速滤除大量不匹配数据。
② 根据返回的图像数据的二进制编码,对最近邻进行精排序。

精排序:根据附加元数据(如视觉属性和特征)对粗筛选出的候选项进行更精确的排序。精排过程较慢

① 元数据以非二进制形式存储
② 元数据的存储开销太大,无法将其全部载入内存中。这里缓存命中率是影响性能的关键因素。

通过粗筛选精排序(这个过程和推荐系统中的召回+排序非常类似,基本可以满足达到无损精度的召回结果,且检索效率大幅提升。

5.2 结合多信息维度的结果重排

1)存在的问题

上面的图像检索结果,基于计算机视觉与深度学习排序,尽量精准地检索回图片商品。但回归到电商的本质,同款商品可能有很多不同的配图。匹配最接近检索图片形态的同款商品结果,并不能保证它们是最能激发用户点击和购买的商品

淘宝·拍立淘实践 | 结合多信息维度的结果重排; 4-21

2)淘宝·拍立淘的解决方案

业务目标调整变更之后,变成了1个综合排序问题,最后要根据结果列表里的商品的价格、好评度、销量、用户画像等综合信息重排序。 经过上述图像检索的过程,淘宝拍立淘得到的初步结果列表包含 Top 60 图像相似度的同款结果,进一步利用语义信息对 Top 60 的结果进行重新排序,包括使用销量、转化率、点击率、用户画像等。

  • 简单的处理方式可以是利用 GBDT+LR 这种传统模型,对不同维度的相关描述特征进行集成,将最终得分归一化到0,1,以保证外观相似度的同时,综合考虑其他属性维度的重要性。
  • 更精准的排序方式,可以考虑 CTR 预估模型与多目标优化的复杂网络方法,参考『多目标排序』 『爱奇艺多目标』等过往文章。结合多信息维度的结果重排序阶段,使得最终结果在保持整体外观相似性的同时,对质量差的图像进行降权与过滤,获得更符合用户意图的商品图像
    以上就是本篇文章【技术实现 | 图像检索及其在淘宝的应用】的全部内容了,欢迎阅览 ! 文章地址:http://dfvalve.xrbh.cn/news/8280.html 
     资讯      企业新闻      行情      企业黄页      同类资讯      首页      网站地图      返回首页 迅博思语资讯移动站 http://keant.xrbh.cn/ , 查看更多   
最新新闻
“撒旦”人血鞋?碰瓷新疆棉花的耐克,又开始喊冤了?
继主动碰瓷新疆棉花把自己搞得股价大跌之后耐克秉承着“no zuo no die”的精神又开始暗搓搓搞“阴间操作”限量发售含人血的“撒
tiktok怎么搭建外网 详细教程及步骤
TikTok怎么搭建外网(详细教程及步骤)TikTok是一款非常流行的短视频社交应用程序,它在全球范围内拥有数亿用户。在使用TikTok的
《以案释法》步数越多,收益越高?别被“走路也能赚钱”的理财广告忽悠了
  走路也能赚到钱的理财  “丑的人还在睡觉,美的人已经跑出一杯星巴克了。”2016年的一天,一个女孩晒出的朋友圈截图引起了
如何用生意参谋算出同行店铺真实销售额
怎么经过生意顾问算出同行店肆实在销售额?大多数在淘宝天猫工作过的人都知道,他们的背景显现了同行商铺的买卖数据,这被称为买
一款最近比较火的网站统计分析系统,易分析具有什么样的功能呢?
一、产品简介北京普艾斯科技有限公司成立于2009年,服务客户1000+,包括电商、金融、保险、政务服务等行业。私有化部署,全渠道
向佐快乐大本营2024年精彩回顾:四年时光共欢笑
张大大谢娜力捧下的综艺新星张大大一位在娱乐圈中颇具人气的主持人他的成名之路离不开谢娜的提携回顾张大大的成名之路可以说谢娜
PingTools app
《PingTools app》是一款非常好用的实用工具软件,软件内拥有丰富的功能,包含了包括浏览器扫描等。使用非常简单,直接下载安装
抖音能看到谁搜索过自己吗?
尊敬的用户,您好。针对抖音平台是否能够查看谁搜索过自己的问题,我们需要做一些详细说明。首先,根据我们了解到的情况,在抖音
什么是人工智能“语料库”?为什么每个人都在谈论它?
编者按:比尔盖茨(Bill Gates)、Reddit 首席执行官和其他科技领袖越来越多地谈论“语料库”,现在是时候了解它是“何方神圣”
LED行业词语中英对应
1、led 灯具构成英文led 球泡灯:led bulbLed 贴片灯珠:SMD LEDLed驱动电源:led driver隔离电源:isolated driver非隔离电源:
本企业新闻

点击拨打: