liluying 2019-04-24
淘宝搜索相当于带有Query的推荐系统,不同于网页搜索,每天都会面临大量的数据信息,想要从上千万的相关商品中挑出与用户更匹配的商品,提高流量效率(点击率、转化率相关指标),解决更加重要更加复杂的排序问题,需要利用个性化的技术。这些年里,淘宝在电商搜索领域里做了许多尝试,对大数据和机器学习进行了探索。
探索期:质的转变
早期,淘宝排序是基于销量、下架时间等规则的排序,需要人工进行排序,这种排序很大程度上依赖人的经验,有时会出现人为性错误,因此需要应用机器学习的技术来代替人工。一开始淘宝搜索采用了MPI和 Hadoop,MPI是一种基于分布式算法的跨语言通讯协议,Hadoop是一种离线存储数据、处理数据的平台。通过使用线性回归模型和非线性的GDBT基础模型等模型,预测每一个商品的效率,即每个商品的点击率和转化率,把效率高的商品提到前面,从而提升整个平台的效率。在得到很多模型之后,会根据Learning to Rank的算法,把这些模型最终融合成一个分数,表示为商品的综合效率分,最后将分数从上到下进行排序。
发展期:由内而外
用户的兴趣在不同时段可能发生变化,商品由于上架、下架、流行或不流行等因素会产生更大的变化,之前的离线模型从产生到被使用需要一定的时间差,因此不能达到一定的时效性,无法满足用户的需求。淘宝的智能搜索需要在线学习,将用户的每一个数据实时地流入到训练系统当中,因而采用了Porsche和Igraph两个框架。Porsche是一种分布式的在线参数服务器,将用户数据流入然后对模型进行更新,Igraph是一种分布式的图计算平台,能够比较好地处理用户与商品的关系数据。使用在线学习,需要一些新的模型,例如FTRL、Online MF等,收益往往来自于大促场景。
突破期:由浅入深
随着排序的要求更加复杂,模型的发展遇到瓶颈,浅层模型对离线、在线的指标提升形成阻碍,从而引入了深度模型。Blink平台支持TensorFlow的大多数操作,在TensorFlow的基础上做出了很多底层优化,AI4B是基于java开发的平台,有助于更方便的代码编辑和开发。
深度用户认知网络的原理机制
运用个性化技术需要考虑怎样认识一个用户和怎样根据用户进行相关的推荐或排序两个问题,在认识用户方面,传统的两个方法是用户画像(根据用户基本信息进行推荐)和协同过滤(根据点击的商品来表示用户),往往两种方法的准确性比较低。淘宝采用了深度用户认知网络,通过多任务学习得到一个用户的通用表达。
深度用户认知网络从整体上看,分为根据用户的行为得到用户的表达和根据用户的表达对用户以后的行为进行预估两个部分,具体的网络结构分为商品embedding、Session-based RNN、Query attention、User representaion和Multi-task learning五层。输入是用户在淘宝上的所有行为,包括搜索、点击、成交等行为。
用户在淘宝上的每一个行为都对应一个商品,如何认识一个商品成为最基础的部分。商品embedding将商品的ID、图片、文本、卖家标签等多种异构属性进行融合成为一个信息。
在得到一个商品的表达之后,用Session-based RNN将商品的各种表达串联起来,即把用户的各种行为串联起来去表现一个用户。
Query attention的目的是确定哪种行为是重要的。在用户输入一个Query时,并不是每一个行为都同等重要,Query attention可以根据用户输入的Query以及用户本身的信息自动识别用户行为序列中重要的行为,再将重要的行为重新整合为当前的用户,此时得到一个真正的用户表达。
为了使用户的表达具有基础性和可移植性,需要一个多目标学习结构。多目标学习使得每一个目标学习的效果都比单目标学习的效果好,多目标相互之间不会形成阻碍;各个模型通过共享,无需为每一个模型都提供一个很大的网络,减缓了对在线性能和存储带来压力。
深度学习算法应用
深度学习应用广泛,不仅仅表现在深度用户认知网络,还可以应用在排序、query理解、强化学习、优化算法、决策与商业化和前沿探索(语音、图像、内容生成)等多种场景。
原文:https://yq.aliyun.com/articles/335739