英语原文共 10 页,剩余内容已隐藏,支付完成后下载完整资料
基于嵌入的个性化实时搜索排序在Airbnb的应用
Real-time Personalization using Embeddings for Search Ranking at Airbnb
摘要
搜索排序和推荐是主流因特网公司感兴趣技术的重中之重,包括网络搜索引擎,内容发布网站以及在线电商。但是,并不存在一个可以解决所有场景的方法。给定一大堆需要被排序,个性化以及推荐的不同的内容,每一个在线市场都面临着不同的问题。正因如此,在爱彼迎这样的短期租房市场平台上,搜索和推荐问题是非常独特的。在一个用户很少光顾相同物品两次的,以及一次预定仅能在一些确定时间上接受一位客人的场景下,需要去同时优化客人和顾客的表现。在这篇论文中,我们描述了我们开发以及部署用于实时个性化搜索排序以及相似订单推荐的技术——订单以及客户的嵌入技术,在这两个场景下,驱动了99%的客户转化。为爱彼迎市场高度定制化的嵌入模型可以捕捉用户的短期以及长期兴趣,达成有效的订单推荐。我们对于嵌入模型做了严格的离线实验,同时在将他们部署至全部的流量前做了有成功的线上测试。
1. 引言
在最近十年的研究体系结构中,通常是基于分类信息检索,在其各种组件中,机器学习的出现率都在增加,特别是在搜索过程中,根据正在搜索的内容选择了一个集合对象。此趋势背后的主要原因是可以收集和分析的一些搜索数据。收集到的大量数据为使用机器学习个性化搜索结果开辟了可能性,特别是针对以前的搜索和推荐类似的内容。
任何搜索算法的目标都着重于平台的需求。有些平台的旨在正在网页的活跃度(例如在搜索的新闻文章上的点击率以及花费时间),其它一些平台旨在最大的转化率(例如购买商品或者被搜索的服务),由于在双边市场中,我们经常需要对两个市场地点(即卖方和买方)的搜索结果进行优化。双边市场地点在任何现实应用程序中都出现了可行的商业模式。特别是,我们已经从社会网络模式转移到了有两种不同类型的参与者的网络,即持续供给和需求。例如,行业包括消费(Airbnb)、共享(Uber、Lyft)、在线商店(Etsy)等,可以说,这些类型市场的内容发现和搜索排序需要同时满足供需双方的需求,以便共同发展和繁荣。
在Airbnb的情况下,显然需要优化主机和客人的搜索结果,这意味着给定一个包含位置和行程日期的输入查询,我们需要对位置、价格、风格、评论等在同一时间出现在同一地点的高物品进行排名,区域很好地匹配了乘客对行程时间和提前天数的偏好。此外,我们还需要检测是否有可能将客人、宠物、行程长度、组别大小或其他因素以及行程延迟的情况。为了实现这一目标,我们使用LearningToBank。具体来说,我们为预订制定了一个带有正效用的回归模型,为拒绝制定了一个负效用的回归模型,我们使用Lambda Rank模型的修改版本对该模型进行了优化,该模型对市场的两个方面进行了联合优化。
由于客户通常在重新启动前执行多个搜索,即在搜索会话期间单击一个或多个列表和联系人,因此我们可以使用这些会话信号,即单击、房主联系记录,等等。为了实现实时个性化,目的是向客户展示与我们认为需要不断搜索的列表相似的列表。我们可以在此时使用否定信号,例如跳过高排名列表,为了向客人展示列表的相似性和不相似性,我们建议使用会话嵌入来显示与客人交互的列表和需要排名的候选列表之间的相似性,从搜索会话中学习到的低维矢量表示。我们将这些相似性应用到为搜索引擎模型创建个性化功能和为我们提供类似的列表建议,这两个平台将驱动99%的预订。
除了使用可以用作短期用户兴趣的代理信号的即时用户操作(如单击)进行时间个性化之外,我们还引入了另一种类型的嵌入以获取用户的长期兴趣。由于旅行商业的特性,用户每年都会有1-2次平均预订,预订区域都是信号区,并且有一个单独预订的用户。为了解决这个问题,我们建议在一个用户类型级别上训练嵌入,而不是在一个特定的用户id级别上,在这个级别上,使用多对一的基于规则的映射来确定类型,该映射利用已知的用户属性。同时,我们还学习了与用户类型嵌入在同一向量空间中的列表类型嵌入,这使得我们能够计算正在执行搜索的用户的用户类型嵌入与需要注册的候选列表的列表类型嵌入之间的相似性。
与之前在互联网上发布的关于嵌入式个性化的工作相比,本文的新贡献如下:
实时个性化-大部分以前的工作:关于使用嵌入的个性化和项目建议[8,11]通过形成用户项目和项目建议脱机,然后推荐时阅读。我们实现了一个解决方案,其中嵌入用户最多的项最近与的交互以联机方式组合计算与需要排名的项目的相似性。
适应集合搜索的训练-不同于网络搜索,旅游平台上的搜索经常是聚集的,用户经常只在某个特定的市场,如巴黎,很少跨越不同的市场。我们采用嵌入训练算法在进行负抽样时进行说明,这将有助于更好地捕捉市场内上市公司的相似之处。
利用转换作为全局上下文-我们认识到在我们的案例预订中,最终转换的点击会话的重要性。学习列表嵌入时我们将预订的列表视为始终当窗口在会话中移动时被预测。
用户类型嵌入-之前培训用户的工作嵌入以获取他们的长期兴趣[6,27]培训为每个用户单独嵌入。当目标信号为稀疏,没有足够的数据来训练良好的嵌入每个用户的表示。更不用说储存每个用户执行联机计算的嵌入需要很多记忆。因此我们提议在用户类型级别上训练嵌入,其中具有相同类型的用户将具有相同的嵌入。
拒绝作为明确的否定-为了减少导致拒绝的建议,我们对主机偏好进行编码处理主机的用户和列表类型嵌入中的信号在训练中作为明确否定的拒绝
对于短期兴趣个性化,我们使用超过8亿次的搜索点击会话来训练列表嵌入,从而产生高质量的列表表示。我们对真实的搜索流量进行了广泛的离线和在线评估,结果表明,在排名模型中加入嵌入特征会带来显著的预订收益。除了搜索排名算法之外,还成功地测试了列表嵌入,并启动了类似的列表推荐,它们优于现有的。算法点击率(CTR)提高20%。
为了长期的兴趣个性化,我们使用5000万用户预订的列表序列来训练用户类型和列表类型嵌入。用户和列表类型的嵌入都是在同一个向量空间中学习的,这样我们就可以计算出用户类型和需要排序的列表类型之间的相似性。相似性被用作搜索排名模型的附加特征,并被成功地测试和启动。
2. 相关工作
在许多自然语言处理(NLP)应用中,通过使用神经网络学习单词嵌入(即单词的低维表示)的神经语言模型取代了将单词表示为高维的经典语言建模方法。在假设句子中经常出现在一起的词也具有更多的统计依赖性的基础上,通过直接考虑词序及其共现来训练网络。随着用于单词表示学习的高可扩展连续包(CBOW)和skip-gram(SG)语言模型的发展[17],嵌入模型在对大量文本数据进行训练后,在许多传统语言任务上获得了最先进的性能。
最近,嵌入的概念已经扩展到了NLP域之外的其他应用程序中,而不仅仅是单词表示。来自网络搜索、电子商务和市场领域的研究人员很快意识到,就像一个人可以通过将句子中的一系列单词作为上下文来训练单词嵌入一样,同样可以训练用户操作的嵌入,例如点击或购买的项目[11,18],点击的查询和广告[8,9],将用户操作序列视为上下文。从那时起,我们就看到嵌入式技术被用于各种类型的网络推荐,包括音乐推荐[26]、求职推荐[13]、应用推荐[21]、电影推荐[3,7]等等,已经表明,可以利用用户交互的项直接将用户嵌入倾斜到与项嵌入相同的功能空间中,从而可以直接提出用户项建议[6、10、11、24、27]。对于冷启动建议特别有用的另一种方法是,仍然使用文本嵌入(例如,在https://code.google.com/p/word2vec上公开提供的文本嵌入),并利用项和/或用户元数据(例如,标题和描述)计算它们的嵌入[5、14、19、28]。最后,对于社会网络分析,我们提出了嵌入方法的类似扩展,图上的随机游动可以用来学习图结构中节点的嵌入[12,20]。
嵌入方法在学术界和工业界都产生了重大影响。最近的行业会议出版物和会谈显示,它们已经成功地部署在主要网络公司的各种个性化、推荐和排名引擎中,如雅虎[8、11、29]、Etsy[1]、Criteo[18]、Linkedin[15、23]、Tinder[16]、Tumblr[10]、Instacart[22]、Facebook[28]。
3. 方法
下面我们将介绍在Airbnb搜索中列出推荐和列出排名的方法。我们分别描述了两种不同的方法,即用于短期实时个性化的列表嵌入和用于长期个性化的用户类型和列表类型嵌入。
3.1 预定嵌入
假设我们得到了一组从N个用户获得的S click会话,其中每个会话被定义为用户单击的M个列表id的不间断序列。每当连续两次用户单击之间的时间间隔超过30分钟时,就会启动新会话。在给定这个数据集的情况下,我们的目标是学习每个唯一列表li的一个d维实值表示vliisin;rd,使得相似列表位于嵌入空间的附近。
更正式地,该模型的目标是通过使用Skip-Gram模型(17)学习列表表示,通过在整个会话集合S上最大化目标函数L,定义如下:
使用soft-max定义点击列表li的上下文邻域中观察li j的概率P(li j | li)
其中v l和v′l是列表l的输入和输出向量表示,超参数m定义为单击列表的相关向前和向后查看上下文(邻域)的长度,v是定义为数据集中的一组唯一列表id的词汇。从(1)和(2)我们可以看出,所提出的方法模拟了列表点击序列的时间上下文,其中具有相似上下文(即在搜索会话中具有相似相邻列表)的列表将具有相似的表示。
计算(1)中目标函数的梯度L所需的时间与词汇表的大小成正比,对于大型词汇表,例如几百万个id列表,这是一项不可行的任务。作为替代方案,我们使用了在17中提出的负采样方法,这显著地降低了计算复杂度。负采样可表述如下。我们生成一组点击列表l及其上下文c的正对(l,c)Dp(即,在长度为m的窗口中点击列表l之前和之后同一用户点击其他列表),以及一组负对Dn(l,c) 从整个词汇表中随机抽取n个列表,然后优化目标变成
其中要学习的参数theta;是V l和V c,l,cisin;V通过随机梯度上升进行优化。
预定表单作为全局信息我们可以将点击会话集细分为1)预定会话,即以用户预订要保留的列表为结束的点击会话,2)探索会话,即不以预订为结束的点击会话,即用户只是浏览。从获取上下文相似性的角度来看,这两种方法都很有用,但是预订会话可以用于调整优化,以便在每个步骤中,我们不仅可以预测邻居点击了列表,但最终也预订了列表。这种适应可以通过将预定的列表添加为全局上下文来实现,这样无论它是否在上下文窗口中,都将始终被预测。因此,对于预订的会话,嵌入更新规则变为:
其中vlbis嵌入预定的列表lb。对于探索性会话,仍然通过优化目标(3)进行更新。图1显示了如何使用大小为2n 1的滑动窗口从预订会话中学习列表嵌入的图形表示,该窗口从第一个单击的列表滑动到预订的列表。在每个步骤中,中心列表vl的嵌入都会被更新,以便它从Dp和预订的列表vlb预测上下文列表vc的嵌入。当窗口滑动时,一些列表会在上下文集中出现或消失,而预订的列表始终作为全局上下文(虚线)保留在其中。适应集合搜索训练。在线旅游预订网站的用户通常只在一个市场内搜索,即他们想要停留的地点。因此,Dp很可能包含来自同一市场的上市公司。另一方面,由于随机抽样的否定,这是非常有可能的Dn包含的上市公司大多不是来自同一个市场的上市公司在Dp。在每一步中,对于一个给定的中央上市公司l,积极的背景主要是来自与l相同市场的上市公司,而消极的背景主要是来自与l不同市场的上市公司。我们发现,这种不平衡导致在市场相似性内学习次优。为了解决这个问题,我们建议添加一组随机否定的Dmn,从中央上市公司l的市场中取样。
冷启动列表嵌入。每天都有新的列表由主机创建并在Airbnb上提供。此时,这些列表没有嵌入,因为它们不在单击会话的培训数据中。为了创建新列表的嵌入,我们建议利用其他列表的现有嵌入。创建列表时,主机需要提供有关列表的信息,如位置、价格、列表类型等。我们使用提供的有关列表的元数据查找3个地理位置最近的列表(半径10英里内),这些列表具有嵌入项,与新列表具有相同的列表类型(例如,私人房间),属于与新上市的价格相同(如每晚20-25美元)。接下来,我们使用3个已标识列表的嵌入来计算平均向量,以形成新的列表嵌入。使用这项技术,我们能够覆盖超过98%的新上市公司。
检查列表嵌入。为了评估通过嵌入捕获列表的哪些特征,我们检查了在8亿次
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[254196],资料为PDF文档或Word文档,PDF文档可免费转换为Word
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。