首次披露!拍立淘技术框架及核心算法,日均UV超千万

2023-10-31 13:40

本文主要是介绍首次披露!拍立淘技术框架及核心算法,日均UV超千万,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


image


近期,谷歌工程师为何疯狂迷上阿里郎的鞋?一文引发关注,以“拍立淘”为代表的计算机图像技术让业内人士称赞不已。以图搜图,是通过搜索图像内容或者视觉特征,为用户提供互联网上相关图像资料检索服务的专业搜索引擎,是搜索引擎的一种细分。

移动端的以图搜图是一代又一代的图像人,搜索人的梦想。从90年代开始,学术界,工业界做了很多的努力和尝试。拍立淘从2014年首次上线之后,通过产品技术的不断打磨,已经成为淘宝每天超过千万UV的应用。在业务指标的增长的同时,沉淀下来了业界领先的图搜算法。

我们的目标不仅仅是满足用户以图搜图的好奇心,更是要让用户通过拍照,搜索到淘宝同款或者相似宝贝,简化用户的购物流程,让以图搜图发挥真正的商业价值。


拍立淘目前业务状况

拍立淘从2014年上线以来,从最初的每天几百UV到如今的每天超过千万UV。拍立淘的稳定增长标志着消费者对以图搜图电商搜索的认可。与传统的基于文字搜索的电商搜索相比,拍立淘只需要用户随手拍一张照片,省去了繁琐的文字描述,简化了用户的购物流程,大大提高了电商购物的体验。

拍立淘的入口和体验如下:

image


拍立淘目前覆盖几乎淘宝所有的实体类目:比如衣服,鞋,箱包,瓶饮,配饰,家具,电子,零食,美妆,水果等。

image


拍立淘的图像搜索和识别技术已经走出阿里集团,向集团外的公司输出,比如三星旗舰手机S8在系统层面集成了拍立淘,用于相机和相册。

image


位于海外的客户,也可以通过AliExpress中集成的拍照购物功能,来享受拍照购物的便捷。

image


拍立淘的技术框架

拍立淘存在典型的技术驱动,在过去的三年多时间,我们不断得通过技术的突破,来实验了业务的增长。

image


拍立淘流程主要分为离线流程和在线流程,主要步骤如下:

image


离线流程:主要是指拍立淘每天离线构建索引库的整个流程,涉及选品、离线抠图、离线抽取特征、构建索引等环节。执行完毕之后,每天会在规定时间完成线上图库的更新。

在线流程:主要是指用户一张query图上传之后,到最后返回结果的整个中间过程,包含在线类目识别,在线抠图,在线特征提取和在线索引查询等关键步骤。

宝贝选品

阿里集团内有海量的商品类目和图片,包含宝贝的主图、SKU、副图、晒单图和详情图等,涵盖电商领域的各个方面。如何从这些海量图片中选出用户最喜欢,最想买的宝贝是一件很有意思的工作。

我们首先会根据购物偏好和品质进行全淘图片库的过滤;由于淘宝上相同或者高度相似的宝贝太多,如果不处理的话,最后的搜索结果中就会出现大量一模一样的宝贝,用户体验很差。因此在做完过滤之后,我们增加了图片去重模块,目的是把一模一样或者高度相似的宝贝去重,优化最后的展示;最后,我们会结合运营需求,给最近一段时间做活动的宝贝打上运营标记。

类目预测

拍立淘类目是对淘宝叶子类目的一种划分,既需考虑一定的视觉相似性,又需考虑一定的语义相似性。类目体系不仅仅是个技术问题,也是个业务问题(有利于消费者认知)。目前拍立淘有14个大类,涵盖全淘所有叶子类目

image

抠图

因为商品的背景复杂,主体常常较小,所以为了减少大量背景干扰和多主体的影响,因此需要将搜索目标从图像中提取出来。下面两幅图反应了对于用户的query,进行主体检测和不进行主体检测的搜索结果差异。

image


第一幅图没有由于进行抠图,搜索结果中背景干扰比较明显,都出现了绿色的背景,而用户真正关心的主体衣服的搜索质量则很差。第二幅图进行抠图之后,搜索结果有了非常显著的提高,主体衣服的匹配程度非常高。

图像特征

拍立淘的图像特征包括深度特征和局部特征。

深度特征:基于深度学习框架学习出来的图像表示。目前深度学习在图像、语音等领域取得了重大突破,基于深度学习的图像表示在很多任务上已经完胜传统图像特征。拍立淘从立项之初就开始研究深度特征,在这方面积累了大量的经验,这也使得特征成为拍立淘核心竞争力之一,具体细节详见后续章节。

局部特征:局部特征是图像特征的局部表达,它反应的是图像具有的局部特殊性。拍立淘在常见的局部特征基础上进行改进,不仅进行维度压缩,还优化提取速度,同时保证匹配精度不下降。

检索索引

索引的流程可以分成离线和在线两部分。离线过程对商品图像特征构建索引,在线过程对用户query进行分布式的快速查询。

在线查询流程主要分为:粗召回 -> 积召回-> 欧式排序 -> 精排。

拍立淘目前的索引数据量有几十亿,如何高效的构建索引,同时保证在线查询的精度是一个非常具有挑战性的任务,拍立淘在这方面做了很多工作,详见后续章节。

排序

深度特征从高层提取信息,关注语义鸿沟;局部特征关注图像的局部信息。如果将两者有效的结合起来,相辅相成,既能保证语义上的相似性,又能保证局部细节的匹配,因此我们在索引召回之后,会再进行一次排序,将深度特征和局部特征结合在一起。我们会学习一个ranking function,给深度特征和局部特征分配不同的比重,基于最后的score对索引返回结果做二次排序。

上述是拍立淘的各个模块的介绍,下面我们会就拍立淘的三个核心技术:实拍图精度提升;超大规模的向量检索索引;移动端DL进行进一步的描述。

拍立淘核心技术


范例

实拍图的突破

非实拍图主要是指拍摄清晰,背景简单的图片,其中大部分来自淘宝宝贝的原图。对于这种图片,拍立淘的精度已经做的很高。但是对于一个以图搜图商业应用,真正的挑战来自占比用户query大量的实拍图,这类图和非实拍图差距很大,具有光照,角度,多主体等各种问题。

image


为了把实拍图做好,拍立淘不断突破,在各个类目上都有非常显著的提升。

1.数据“掘地三尺”

数据方面,我们利用了拍立淘log数据,晒单数据和主搜i2i数据。并构建相应的深度学习模型进行特征训练。

在拍立淘的场景,我们发现用户的点击等有效行为大多是针对于同款,因此我们对PVLOG进行挖掘,噪声过滤,形成triplet来进行特征的训练。拍立淘每天产生海量的图像数据,通过构建基于实拍图的deep pairwise ranking特征学习框架,大幅度提高了实拍图的搜索效果。

晒单图可以作为一个用户真实实拍图的近似。目前淘宝上有大量用户上传的晒单图,但晒单图中含有大量的噪声数据。我们先会通过相似度矩阵滤除那些相似度较低的噪声数据。接着我们训练一个同款分类的分类器,由此得到的特征能提高实拍图的精度。

由于同一用户在同一时间段内点击的宝贝具有一定的相似度。通过挖掘主搜的i2i点击数据,形成虚拟label进行深度学习得到的中间层表达也可以作为一种特征表示,用于相似度排序。

除了通过提高特征本身的效果来提高实拍图的精度外,提高实拍图效果的另外一个途径是利用实拍图片来扩充我们的data space,使得整个图搜系统越来越智能。通过下图所示,通过主图+晒单图+LOG图扩充data space,加以distance度量,可以使得同款率提升。

2.升级深度学习

深度学习方面,我们通过Loss函数,网络结构和特征排序框架继续进行创新和突破。

  1. 首先我们采用了deeppairwise ranking特征学习框架来学习我们的深度特征:


image

最大化正/负样本与query之间的距离差来保证特征的效果。

其次我们采用了属性label和虚拟label训练框架来训练精排的深度特征:

image


另外,在类目识别方面,为了进一步提高分类精度,我们采用层次化的类目识别:


image


除了拍立淘的大类目之外,还多任务训练一级类目和叶子类目。这种多任务层次化的结构可以进一步提高拍立淘类目预测的精度。

超大规模的向量检索索引

为了涵盖更多更广的数据源,我们要打造一个容纳百亿级别数据量的拍立淘,面临的挑战包括:特征抽取的提速和特征降维;和离线构建索引的提速与查询召回的保证。

  • 特征抽取的提速和特征降维

当数据量达到百亿级别时,如果特征抽取效率不高的话,离线抽取特征的时间就会变成非常长;其次,在线引擎中硬盘和内存的存储也是一个问题。
为了解决这一问题,在保证特征精度的情况下,通过对深度学习网络框架的调整,我们将拍立淘的特征的维度,压缩到了原来的1/4,并通过卷积加速、并行计算等策略实现了一倍的提速。

  • 离线构建索引的提速与查询召回的保证

数据量爆炸式的增长,对离线构建索引也是一个挑战。拍立淘最初对6KW数据的处理,光聚类就要超过10h以上,而且失败率很高。另外,数据量的增长,会导致引擎召回的不断下降。

在离线构建索引效率方面,我们首先采用图计算框架提速积量化和粗量化,将资源消耗降为原来的1/3;同时用Onepass K-means优化原始的K-means,在保证效果的前提下,大大压缩了聚类的时间。离线构建索引效率整体提速超过10+倍。

对于引擎召回,我们首先将“近似粗量化”优化成真正的粗量化,同时用积中心近似表达粗中心,从而达到增加中心点而不增加召回时间的效果。在拍立淘的大部分类目中,我们的索引召回和线性召回已经基本一致。

除此以外,工程架构的优化也是非常重要的。离线系统的优化对整个拍立淘流程非常重要,包括对各个算法模块调度机制的优化和性能的提升。最新的离线系统已经支持混布集群,最大化资源的利用。

移动端的DL

随着高端手机的日益普及,越来越多的任务可以直接放到移动端执行,这样不仅可以减少图片上传带来的时间延迟,同时还可以降低server端的计算成本。

目前拍立淘已经上线移动端的类目预测和物体检测,后续会有更多的任务放到移动端。采用的核心技术包括卷积的提速,DL网络的裁剪和模型压缩等等。

image
image
image


写在最后的话

拍立淘-以图搜图一路走来,得益于算法/工程/产品的充分配合,得益于算法,数据,计算三位一体和大量的用户使用。目前部分解决了用户的拍照搜索需求,但是距离充分满足用户的需求还有一定的距离。项目组正在不断优化,从各个角度去提高。

image
image
image
image
image
image
image
image
image

核心作者简介

启磐,现任阿里巴巴资深算法专家/技术总监。他是拍立淘以图搜图的算法leader和初创核心之一。他的研究领域包括:深度学习和计算机视觉等。他博士毕业于美国伊利诺伊大学芝加哥分校,加入阿里之前,他先后在美国三菱研究院和北京富士通研发中心从事视觉的研发工作。

来源:阿里技术
原文链接

这篇关于首次披露!拍立淘技术框架及核心算法,日均UV超千万的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/315740

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

康拓展开(hash算法中会用到)

康拓展开是一个全排列到一个自然数的双射(也就是某个全排列与某个自然数一一对应) 公式: X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0! 其中,a[i]为整数,并且0<=a[i]<i,1<=i<=n。(a[i]在不同应用中的含义不同); 典型应用: 计算当前排列在所有由小到大全排列中的顺序,也就是说求当前排列是第

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

【数据结构】——原来排序算法搞懂这些就行,轻松拿捏

前言:快速排序的实现最重要的是找基准值,下面让我们来了解如何实现找基准值 基准值的注释:在快排的过程中,每一次我们要取一个元素作为枢纽值,以这个数字来将序列划分为两部分。 在此我们采用三数取中法,也就是取左端、中间、右端三个数,然后进行排序,将中间数作为枢纽值。 快速排序实现主框架: //快速排序 void QuickSort(int* arr, int left, int rig

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

poj 3974 and hdu 3068 最长回文串的O(n)解法(Manacher算法)

求一段字符串中的最长回文串。 因为数据量比较大,用原来的O(n^2)会爆。 小白上的O(n^2)解法代码:TLE啦~ #include<stdio.h>#include<string.h>const int Maxn = 1000000;char s[Maxn];int main(){char e[] = {"END"};while(scanf("%s", s) != EO

秋招最新大模型算法面试,熬夜都要肝完它

💥大家在面试大模型LLM这个板块的时候,不知道面试完会不会复盘、总结,做笔记的习惯,这份大模型算法岗面试八股笔记也帮助不少人拿到过offer ✨对于面试大模型算法工程师会有一定的帮助,都附有完整答案,熬夜也要看完,祝大家一臂之力 这份《大模型算法工程师面试题》已经上传CSDN,还有完整版的大模型 AI 学习资料,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。