文档章节

让天下没有难用的搜索:阿里搜索如何成长为贴心“暖男”?

阿里云官方博客
 阿里云官方博客
发布于 11/19 13:33
字数 4956
阅读 10
收藏 0

摘要: 阿里搜索技术体系演进至今天,基本形成了由offline、nearline、online三层体系,分工协作,保证电商平台上,既能适应日常平稳流量下稳定有效的个性化搜索及推荐,也能够去满足电商平台对促销活动的技术支持,实现在短时高并发流量下的平台收益最大化。

阿里搜索技术体系演进至今天,基本形成了由offlinenearlineonline三层体系,分工协作,保证电商平台上,既能适应日常平稳流量下稳定有效的个性化搜索及推荐,也能够去满足电商平台对促销活动的技术支持,实现在短时高并发流量下的平台收益最大化。

可以看到,十年双11的考验后,搜索智能化体系逐渐打造成型,已经成为电商平台稳定健康发展的核动力,主要分为四个阶段:自主研发的流式计算引擎Pora初露锋芒;双链路实时体系大放异彩;深度学习+强化学习初步探路;全面进入深度学习时代。下面我们就来一起看一下。

四大演进阶段:业务、算法、系统同步发展

阶段一:初露锋芒——自主研发的流式计算引擎Pora

技术的演进是伴随解决实际业务问题和痛点发展和进化的。2014年双11,通过BI团队针对往年双11的数据分析,发现即将售罄的商品仍然获得了大量流量,剩余库存无法支撑短时间内的大用户量。主售款(热销sku)卖完的商品获得了流量,用户无法买到商品热销的sku,转化率低;与之相对,一些在双11当天才突然展露出来的热销商品却因为历史成交一般没有得到足够的流量。

针对以上问题,通过搜索技术团队自主研发的流式计算引擎Pora,收集预热期和双11当天全网用户的所有点击、加购、成交行为日志,按商品维度累计相关行为数量,并实时关联查询商品库存信息,提供给算法插件进行实时售罄率和实时转化率的计算分析,并将计算结果实时更新同步给搜索和推荐引擎,影响排序结果。第一次在双11大促场景下实现了大规模的实时计算。算法效果上,也第一次让大家感受到了实时计算的威力,PC端和移动端金额也得到显著提升。

阶段二:大放异彩——双链路实时体系

2014年双11,实时技术在大促场景上,实现了商品和用户的特征实时,表现不俗。

2015年搜索技术和算法团队继续推动在线计算的技术升级,基本确立了构筑基于实时计算体系的【在线学习+决策】搜索智能化的演进路线。

早先的搜索学习能力,是基于批处理的离线机器学习。在每次迭代计算过程中,需要把全部的训练数据加载到内存中计算。虽然有分布式大规模的机器学习平台,在某种程度上批处理方法对训练样本的数量还是有限制的。在线学习不需要缓存所有数据,以流式的处理方式可以处理任意数量的样本,做到数据的实时消费。

接下来,我们要明确两个问题:为什么需要在线学习呢?以及为什么实现秒级的模型更新?

在批量学习中,一般会假设样本独立服从一个未知的分布,但如果分布变化,模型效果会明显降低。而在实际业务中,很多情况下,一个模型生效后,样本的分布会发生大幅变化,因此学到的模型并不能很好地匹配线上数据。实时模型,能通过不断地拟合最近的线上数据,解决这一问题,因此效果会较离线模型有较大提升。那么为什么实现秒级分钟级的模型更新?在双11这种成交爆发力强、变化剧烈的场景,秒级实时模型相比小时级实时模型时效性的优势会更加明显。根据2015年双11实时成交额情况,前面1小时已经完成了大概总成交的1/3,小时模型就无法很好地捕获这段时间里面的变化。

基于此,搜索技术团队基于Pora开发了基于parameter server的在线学习框架,如下图所示,实现了在线训练,开发了基于pointwise的实时转化率预估模型,以及基于pairwise的在线矩阵分解模型。并通过swift输送模型到引擎,结合实时特征,实现了特征和模型双实时的预测能力。

在线学习框架

但是,无论是离线训练还是在线学习,核心能力是尽可能提高针对单一问题的算法方案的准确度,却忽视了人机交互的时间性和系统性,从而很难对变幻莫测的用户行为以及瞬息万变的外部环境进行完整的建模。典型问题是在个性化搜索系统中容易出现反复给消费者展现已经看过的商品。

如何避免系统过度个性化,通过高效的探索来增加结果的丰富性?我们开始探索机器智能技术的另一方向——强化学习,运用强化学习技术来实现决策引擎。我们可以把系统和用户的交互过程当成是在时间维度上的【stateactionreward】序列,决策引擎的目标就是最优化这个过程。

在线决策方面,我们首次尝试了运用MABzero-order优化技术实现多个排序因子的最优融合策略,取代以前依靠离线Learningto rank学到的排序融合参数。其结果是显著的,在双11当天我们也观察到,通过实时策略寻优,一天中不同时间段的最优策略是不同的,这相比全天使用离线学习得到的一套固定排序权重是一个大的进步。

2015年双11双链路实时计算体系如下图所示:

2015年双11的实时计算体系

阶段三:初步探路——“深度学习+强化学习

2015年双11,在线学习被证明效果显著,然而回顾当天观察到的实时效果,也暴露出一些问题。

 ●   问题一:在线学习模型方面,该模型过度依赖从 0 点开始的累积统计信号,导致后场大部分热销商品都无法在累积统计信号得到有效的差异化表示,模型缺少针对数据的自适应能力。
 ●   问题二:在线决策方面。 2015 年双 11 ,宏观实时体系中的 MAB( Multi-ArmedBandit) 实时策略寻优发挥了重要作用,通过算法工程师丰富经验制定的离散排序策略集合, MAB 能在双 11 当天实时选择出最优策略进行投放;然而,同时暴露出 MAB 基于离散策略空间寻优的一些问题,离散策略空间仍然是拍脑袋的智慧。同时为了保证 MAB 策略寻优的统计稳定性,几十分钟的迭代周期仍然无法匹配双 11 当天流量变化的脉搏。

针对第一个问题,我们在2016年双11中也进行了优化和改进。对于从0点的累积统计信号到后场饱和以及统计值离散化缺少合理的抓手的问题,我们参考FacebookAD-KDD的工作,在此基础上,结合在线学习,我们研发了Streaming FTRL stacking on DeltaGBDT模型,如下图所示。

Streaming FTRL stacking on DeltaGBDT模型

分时段GBDT模型会持续为实时样本产出其在双11当天不同时段的有效特征,并由onlineFTRL去学习这些时效性特征的相关性。

对于在线决策方面的问题,我们进行了策略空间的最优化探索,分别尝试了引入delay reward的强化学习技术,即在搜索中采用强化学习(ReinforcementLearning)方法对商品排序进行实时调控优化。我们把搜索引擎看作智能体(Agent)、把用户看做环境(Environment),则商品的搜索问题可以被视为典型的顺序决策问题(Sequential Decision-making Problem)。我们的目标就是要实现用平台长期累积收益的最大化。

系统方面,2016年双11我们的实时计算引擎从istream时代平稳升级到到 Blink/Flink 时代,实现24小时不间断无延迟运转,机器学习任务从几个扩大到上百个job。为算法实现大规模在线深度学习和强化学习等前沿技术打下了坚实的基础。

阶段四:全面进入——深度学习时代

由于在线深度学习需要强大的计算资源来支持,2017年系统上我们重构了流式计算平台、机器学习平台和支持CPU/GPU的异构在线服务平台,能够支持更大规模的流式数据计算,超大规模深度模型在线学习和在线预估。

依托强大的计算能力,实现了深度学习在搜索的全面落地,包括语义搜索,深度用户兴趣感知,商品多模表示学习,在线深度机制模型,多场景协同智能决等技术创新:

a) 深度用户感知模型:搜索或推荐中个性化的重点是用户的理解与表达,基于淘宝的用户画像静态特征和用户行为动态特征,我们提出基于multi-modals learningmulti-task representation learning以及LSTM的相关技术,从海量用户行为日志中直接学习用户的通用表达,该学习方法善于总结经验触类旁通,使得到的用户表达更基础且更全面,能够直接用于用户行为识别、偏好预估、个性化召回、个性化排序等任务,在搜索、推荐和广告等个性化业务中有广泛的应用场景。(相关成果的论文已被KDD 2018 录用)

b)大规模商品多模表示学习:淘宝商品有文本、图像、标签、id 、品牌、类目、店铺,统计特征等多模态信息,这些特征彼此有一定程度的冗余和互补,我们利用多模学习将多维度特征融合在一起学习一个统一的商品向量,并通过attention机制实现不同特征维度在不同场景下的差异,比如女装下图片特征比较重要,3C下价格,销量比较重要等。

c)在线深度机制模型:由于不同用户和不同场景的优化目标不一样,我们把用户状态,场景相关特征加入到了机制模型中,实现了千人千面的排序机制模型。同时由于各种基础实时日志的qps和延迟都不太一样,为了保证在线学习的稳定性,我们构建了实时样本pool来维护一个稳定的样本集合供在线学习使用。

d) 全局排序:传统的排序模型只对单个文档打分,然后按照分数从高到底排序。这样方法无法考虑到商品之间相互的影响;传统的针对单个商品ctrcvr都基于这样一个假设:商品的ctrcvr不会受到同时展示出来的其他商品(我们称为展示context)的影响。而实际上一个商品的展示context可以影响到用户的点击或者购买决策:假如同一个商品周边的商品都和它比较类似,而且价格都比它便宜,那么用户买它的概率不会高;反之如果周边差不多的商品都比它贵,那么用户买它的概率就会大增。而全局排序就要解决这个问题,考虑商品之间的相互影响,实现整页效率的最大化。(相关成果的论文已被IJCAI2018 录用)

e) 多场景协同智能决策:搜索多个不同的产品都是依托个性化来实现GMV最大化,导致的问题是不同产品的搜索结果趋同。而导致这个问题的根本原因是不同场景的算法各自为战,缺乏合作和关联。今年做的一个重要工作是利用多智能体协同学习技术,实现了搜索多个异构场景间的环境感知、场景通信、单独决策和联合学习,实现联合收益最大化,而不是此消彼长(相关成果的论文已被 www 2018录用)。

驱动搜索智能化体系的演进的三点

我们再回过头来看,是什么驱动了搜索智能化体系的演进?

目前,各大互联网公司的主流技术路线主要是运用机器学习技术来提升搜索/推荐平台的流量投放效率,随着计算力和数据的规模增长,大家都在持续地优化和深入。是什么驱动我们推动搜索的智能化体系从离线建模、在线预测向在线学习和实时决策方向演进呢?概括来说,主要有以下三点。

首先,众所周知,淘宝搜索具有很强的动态性,宝贝的循环搁置,新卖家加入,卖家新商品的推出,价格的调整,标题的更新,旧商品的下架,换季商品的促销,宝贝图片的更新,销量的变化,卖家等级的提升等等,都需要搜索引擎在第一时间捕捉到这些变化,并在最终的排序环节,把这些变化及时地融入匹配和排序,带来结果的动态调整。

其次,从2013年起,淘宝搜索就进入千人千面的个性化时代,搜索框背后的查询逻辑,已经从基于原始Query演变为【Query+用户上下文+地域+时间】,搜索不仅仅是一个简单根据输入而返回内容的不聪明的机器,而是一个能够自动理解、甚至提前猜测用户意图(比如用户浏览了一些女士牛仔裤商品,然后进入搜索输入查询词衬衫,系统分析用户当前的意图是找女性相关的商品,所以会展现更多的女士衬衫,而不是男生衬衫),并能将这种意图准确地体现在返回结果中的聪明系统,这个系统在面对不同的用户输入相同的查询词时,能够根据用户的差异,展现用户最希望看到的结果。变化是时刻发生的,商品在变化,用户个体在变化,群体、环境在变化。在搜索的个性化体系中合理地捕捉变化,正是实时个性化要去解决的课题。

最后,电商平台也完成了从PC时代到移动时代的转变,随着移动时代的到来,人机交互的便捷、碎片化使用的普遍性、业务切换的串行化,要求我们的系统能够对变化莫测的用户行为以及瞬息万变的外部环境进行完整的建模。基于监督学习时代的搜索和推荐,缺少有效的探索能力,系统倾向于给消费者推送曾经发生过行为的商品或店铺。

真正的智能化搜索和推荐,需要作为投放引擎的agent有决策能力,这个决策不是基于单一节点的直接收益来确定,而是当作一个人机交互的过程,消费者与平台的互动看成是一个马尔可夫决策过程,运用强化学习框架,建立一个消费者与系统互动的回路系统,而系统的决策是建立在最大化过程收益基础上。

未来展望——让淘宝搜索拥有智慧化的体验

经过这么十年双11大促的技术锤炼后,围绕在线AI技术的智能框架初具规模,基本形成了在线学习加智能决策的智能搜索系统,为电商平台实现消费者、卖家、平台三方利益最大化奠定了坚实的基础。这套具备学习加决策能力的智能系统也让搜索从一个简单的找商品的机器,慢慢变成一个会学习会成长,懂用户,体贴用户的

但在这个过程中,搜索排序学习到的知识更多都是通过已有的商品标签数据和用户行为数据来获取的,还缺少对商品和用户更深层次的认知,还无法完全理解用户的多元意图表达的真实需求。

比如,用户搜索了性感连衣裙,可能是想找去参加晚场party的低胸晚装裙,也可能是想找去海边度假的露肩沙滩裙;用户收藏了登山鞋拐杖,可能有登山装备的需求,需要发现更多的和登山装备相关的其它品类商品。一个有孩子的爸爸,在暑假刚开始时,挑选转换接头,查看大英博物馆门票,可能是想带着家人一起暑期英国亲子游,需要发现更多相关的其它品类商品。

究其原因,目前机器智能技术特别是以深度学习为代表的模型,在现实应用中快速发展,最主要受益于海量大数据以及大规模计算能力,通过对物理世界的数字化抽象和程式化学习,使得机器智能具备很强的限定知识的获取能力,而很难获得数据之外的知识,就更不用说知识的类比、迁移和推理了。

而机器的认知智能,比如自主学习和发现,甚至创造能力才是人工智能的更高境界。当然通用的机器智能还有很多工作要做,在这个过程中,怎么样首先结合人类知识和机器智能做到初步的认知智能,让淘宝搜索拥有智慧化的体验是未来值得探索的方向。

原文链接 

© 著作权归作者所有

共有 人打赏支持
阿里云官方博客
粉丝 130
博文 410
码字总数 865028
作品 0
杭州
程序员
私信 提问
【云周刊】第167期:如何将深度学习应用在广告、推荐及搜索业务?阿里妈妈实践案例解读!

本期头条 如何将深度学习应用在广告、推荐及搜索业务?阿里妈妈实践案例解读! 互联网数据的特点是规模大,转化成机器学习的语言就是维度特别高,样本特别多,另外互联网数据内部也有丰富的内...

场景研读
04/19
0
0
通过应用平台加速 AI 普惠,这三家企业如何快人一步?| CCF-GAIR 2018

雷锋网(公众号:雷锋网)AI掘金志消息,在6月29日的CCF-GAIR 2018全球人工智能与机器人峰会上,CCF-GAIR的承办方雷锋网联合近30家创投与资本机构、资深学者与产业界代表一起,共同为12个领域共...

刘伟
07/09
0
0
有没有女朋友都看过来,云栖大会送你一份暖男宝典

终日混迹在最大的同性交友平台,看到大部分程序员都还没找到女朋友,你真的放心地一个人在出租屋玩游戏了?作为过来人说一句,撩妹是要技巧的。最近智能家居越来越火,各种电子产品也层出不穷...

大大大大风车
2017/09/16
156
0
马云最新演讲:真正的强者,是在最孤立无援的时刻,依然坚持到底

作者:叶超群 来源:插坐学院(ID:chazuomba) 10 月 19 日,2018 世界 VR 产业大会在南昌开幕,阿里巴巴创始人马云在演讲中说: “在人人都相信一个产业的时候,其实你已经没有机会了。在没...

程序员之家_
10/27
0
0
阿里技术大牛最爱的“闲书”,你看过多少?

在忙碌的写代码、修bug生活里,你有多久没有闲下来,读读“闲书”,取悦自己了呢? 正如梁文道所说,“读一些无用的书,做一些无用的事,花一些无用的时间,都是为了在一切已知之外,保留一个...

阿里云科技快讯
08/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

错误: 找不到或无法加载主类

在IDEA的使用过程中,经常断掉服务或者重启服务,最近断掉服务重启时突然遇到了一个启动报错: 错误:找不到或无法加载主类 猜测:1,未能成功编译; 尝试:菜单---》Build---》Rebuild Pro...

安小乐
16分钟前
1
0
vue路由传参,刷新页面,引发的bug

最近遇到一个bug 通过vue路由跳转到页面, 然后接参控制(v-if ),成功显示 而刷新页面,显示失败。 苦苦地找了半天原因,打印参数发现正确,再打印下类型......,路由跳过来会保持传参时的...

hanbb
17分钟前
0
0
【58沈剑 架构师之路】InnoDB,select为啥会阻塞insert?

MySQL的InnoDB的细粒度行锁,是它最吸引人的特性之一。 但是,如《InnoDB,5项最佳实践》所述,如果查询没有命中索引,也将退化为表锁。 InnoDB的细粒度锁,是实现在索引记录上的。 一,Inn...

张锦飞
20分钟前
0
0
冒泡,选择和插入排序比较

/** * 冒泡排序,两层嵌套循环,内层局部比较后,找出最大或者最小数据并交换数据,使其局部有序,外层用于比较剩余元素,相较于选择排序,选择排序相当于是冒泡的一个优化版本(减少了交换...

strict_nerd
21分钟前
0
0
html内联(行内)元素、块级(块状)元素和行内块元素分类

HTML可以将元素分类方式分为内联(行内)元素、块级(块状)元素和行内块元素三种。 注:HTML是标签语言,那么既然是标签,就可以自己定义一些自己元素(如<wode>自定义的元素</wode>等),自...

NB-One
27分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部