春风十里,不如淘宝遇见你——浸润深度学习的淘宝智能搜索

简介: 阿里高级算法专家刘士琛在2017云栖大会·北京峰会中做了题为《海量数据场景下的淘宝搜索智能——算法及实践》的分享,就淘宝搜索的特点,大数据、机器学习技术在淘宝搜索应用的历程,最新的技术以及取得的成果等方面的内容做了深入的分析。
以下内容根据演讲PPT及现场分享整理。

d6e3c9e385c85fa4091dba0503fe0d08fe4632b4

淘宝搜索相当于带有Query的推荐系统,不同于网页搜索,每天都会面临大量的数据信息,想要从上千万的相关商品中挑出与用户更匹配的商品,提高流量效率(点击率、转化率相关指标),解决更加重要更加复杂的排序问题,需要利用个性化的技术。这些年里,淘宝在电商搜索领域里做了许多尝试,对大数据和机器学习进行了探索。

探索期:质的转变

eb4571518df9a4647b92ad0cfd1e0cb861275791

早期,淘宝排序是基于销量、下架时间等规则的排序,需要人工进行排序,这种排序很大程度上依赖人的经验,有时会出现人为性错误,因此需要应用机器学习的技术来代替人工。一开始淘宝搜索采用了MPI和 Hadoop,MPI是一种基于分布式算法的跨语言通讯协议,Hadoop是一种离线存储数据、处理数据的平台。通过使用线性回归模型和非线性的GDBT基础模型等模型,预测每一个商品的效率,即每个商品的点击率和转化率,把效率高的商品提到前面,从而提升整个平台的效率。在得到很多模型之后,会根据Learning to Rank的算法,把这些模型最终融合成一个分数,表示为商品的综合效率分,最后将分数从上到下进行排序。

发展期:由内而外

ad8e5545fea971b321b5a9a46f936d66ff3ca4b4

用户的兴趣在不同时段可能发生变化,商品由于上架、下架、流行或不流行等因素会产生更大的变化,之前的离线模型从产生到被使用需要一定的时间差,因此不能达到一定的时效性,无法满足用户的需求。淘宝的智能搜索需要在线学习,将用户的每一个数据实时地流入到训练系统当中,因而采用了Porsche和Igraph两个框架。Porsche是一种分布式的在线参数服务器,将用户数据流入然后对模型进行更新,Igraph是一种分布式的图计算平台,能够比较好地处理用户与商品的关系数据。使用在线学习,需要一些新的模型,例如FTRL、Online MF等,收益往往来自于大促场景。

突破期:由浅入深

c09bfbc3a4d37b3f18a5f40665d40c2fb808bf58

随着排序的要求更加复杂,模型的发展遇到瓶颈,浅层模型对离线、在线的指标提升形成阻碍,从而引入了深度模型。Blink平台支持TensorFlow的大多数操作,在TensorFlow的基础上做出了很多底层优化,AI4B是基于java开发的平台,有助于更方便的代码编辑和开发。

深度用户认知网络的原理机制
运用个性化技术需要考虑怎样认识一个用户和怎样根据用户进行相关的推荐或排序两个问题,在认识用户方面,传统的两个方法是用户画像(根据用户基本信息进行推荐)和协同过滤(根据点击的商品来表示用户),往往两种方法的准确性比较低。淘宝采用了深度用户认知网络,通过多任务学习得到一个用户的通用表达。

47299c716b62484967c4c2747714276f6dbaaea6

深度用户认知网络从整体上看,分为根据用户的行为得到用户的表达和根据用户的表达对用户以后的行为进行预估两个部分,具体的网络结构分为商品embedding、Session-based RNN、Query attention、User representaion和Multi-task learning五层。输入是用户在淘宝上的所有行为,包括搜索、点击、成交等行为。

38f3b4581a922dc12df18520cfda51ebb0091826

用户在淘宝上的每一个行为都对应一个商品,如何认识一个商品成为最基础的部分。商品embedding将商品的ID、图片、文本、卖家标签等多种异构属性进行融合成为一个信息。

在得到一个商品的表达之后,用Session-based RNN将商品的各种表达串联起来,即把用户的各种行为串联起来去表现一个用户。

33b1d5eb57e6f0178f82a9d3a93926e9b4a365d4

Query attention的目的是确定哪种行为是重要的。在用户输入一个Query时,并不是每一个行为都同等重要,Query attention可以根据用户输入的Query以及用户本身的信息自动识别用户行为序列中重要的行为,再将重要的行为重新整合为当前的用户,此时得到一个真正的用户表达。

4d77756b72e2de0c419d3c0716016c5d758415f0

为了使用户的表达具有基础性和可移植性,需要一个多目标学习结构。多目标学习使得每一个目标学习的效果都比单目标学习的效果好,多目标相互之间不会形成阻碍;各个模型通过共享,无需为每一个模型都提供一个很大的网络,减缓了对在线性能和存储带来压力。

深度学习算法应用

f708f255be73003c20cff9a638f0ff08297ea0df

深度学习应用广泛,不仅仅表现在深度用户认知网络,还可以应用在排序、query理解、强化学习、优化算法、决策与商业化和前沿探索(语音、图像、内容生成)等多种场景。

本文由云栖社区志愿者小组丁匀泰整理。编辑:郭雪梅。
目录
相关文章
|
21天前
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现智能食品消费模式分析的深度学习模型
使用Python实现智能食品消费模式分析的深度学习模型
114 70
|
28天前
|
机器学习/深度学习 数据采集 供应链
使用Python实现智能食品库存管理的深度学习模型
使用Python实现智能食品库存管理的深度学习模型
148 63
|
1月前
|
机器学习/深度学习 数据采集 供应链
使用Python实现智能食品安全追溯系统的深度学习模型
使用Python实现智能食品安全追溯系统的深度学习模型
64 4
|
23天前
|
机器学习/深度学习 数据采集 TensorFlow
使用Python实现智能食品消费习惯分析的深度学习模型
使用Python实现智能食品消费习惯分析的深度学习模型
125 68
|
19天前
|
机器学习/深度学习 数据采集 数据挖掘
使用Python实现智能食品消费市场分析的深度学习模型
使用Python实现智能食品消费市场分析的深度学习模型
96 36
|
13天前
|
机器学习/深度学习 数据采集 供应链
使用Python实现智能食品消费需求分析的深度学习模型
使用Python实现智能食品消费需求分析的深度学习模型
60 21
|
15天前
|
机器学习/深度学习 数据采集 搜索推荐
使用Python实现智能食品消费偏好预测的深度学习模型
使用Python实现智能食品消费偏好预测的深度学习模型
57 23
|
16天前
|
机器学习/深度学习 数据采集 数据挖掘
使用Python实现智能食品消费习惯预测的深度学习模型
使用Python实现智能食品消费习惯预测的深度学习模型
69 19
|
17天前
|
机器学习/深度学习 数据采集 数据挖掘
使用Python实现智能食品消费趋势分析的深度学习模型
使用Python实现智能食品消费趋势分析的深度学习模型
77 18
|
20天前
|
机器学习/深度学习 数据采集 供应链
使用Python实现智能食品消费需求预测的深度学习模型
使用Python实现智能食品消费需求预测的深度学习模型
48 10