编者按在Airbnb搜寻:广度自学次序演算法怎样变异?该文里,我们如是说了Airbnb精排期次序数学模型的变异。责任编辑将如前所述Airbnb KDD 2020年的学术论文,如是说Airbnb搜寻次序中在重次序期怎样解决多元性的难题,对产业界搜寻所推荐控制系统强化多元性,具有较好的辅导先进经验意义。
1. 搜寻所推荐控制系统中的多元性难题
在网络APP中,比如B2C(淘宝网、天猫、拼喔)、资金流(头条新闻、博客、看看)、短音频(抖音、快手简单强化数学模型代码、QQ音频号)等,搜寻所推荐的多元性对强化点选转化工作效率、使用者新体验、下载广度、逗留时数、家访、存留等目标非常重要。比如,在淘宝网"猜你喜欢”资金流所推荐中,会为使用者所推荐多个类目的小精灵、短音频、现场直播、该文等,来吸引使用者逗留:在Airbnb中搜寻控制系统中,搜寻结论的多元性,主要体现在卧室类型、边线、产品价格重要信息等。广度自学精排期的次序数学模型,普遍化能力较为好,通常相近的贵重物品精排平均分也较为接近,如果直接用精排平均分次序展简单强化数学模型代码示结论,会导致名列靠前的结论十分类似,容易造成听觉烦躁,对浓厚兴趣笼统、偏逛、需求不明确等使用者新体验极差。右图展现了,Airbnb实际的搜寻结论中,次序靠前的listing(即item,农园卧室),价格、边线差异通常十分小。所以,产业界的搜寻所推荐控制系统,通常主要包括停售、粗排(较旧)、精排、异构化组件。在停售期,透过分路停售(item2item, 矢量停售等)方式,停售和使用者最近点选相近相关的贵重物品、炙手可热贵重物品等简单强化数学模型代码,通常有几百到几十万,保证工作效率、丰富、多元性。粗排期,透过精简的精排数学模型,对大量停售贵重物品评分,回到几百个贵重物品。在精排期,用更复杂的广度次序数学模型等对这些贵重物品评分。最终,在重次序期,对综合考虑点选率、转换率、产品价格、多元性等重要信息,对贵重物品计算捷伊次序平均分,最终展现给使用者。重次序期,多元性的强化方面,产业界搜寻所推荐控制系统新颖的指标性方法,主要包括 MRR (Maximal Marginal Relevanc简单强化数学模型代码e) [2], Google Youtube和Hulu音频所推荐中的DPP(Determinantal Point Process)[3,4],阿里B2C所推荐中如前所述Transformer的PRM [5],Google Youtube如前所述强化自学的数学模型SlateQ [6]等。Airbnb的搜寻控制系统,主要主要包括:停售、精排(Base Ranking Model)、异构化(Second Stage Ranker简单强化数学模型代码),这篇学术论文主要如是说Airbnb搜寻在重次序期怎样强化多元性难题。2. 多元性指标
在多元性难题中,最基础的难题是定义衡量多元性的指标。2.1 MRR:Maximal Marginal Relevance经典的MRR方法,定义如下:其中Q是搜寻查询query, D是候选的相关贵重物品(比如精排后的结论),S是MRR演算法已经选取的贵重物品,Sim1用来衡量贵重物品Di和query Q的相近度,Sim2用来衡量物简单强化数学模型代码品间的相近度, 是平衡相关度(比如CTR)和多元性的超参数(在Aribnb中透过实验分析,值设定为0.15)。公式中 建模了当前候选的贵重物品 和搜寻query 的相近度, 表示当前候选的贵重物品 和搜寻已经选取的贵重物品的最大相近度。MRR演算法的思想是:采取贪心策略,生成top K结论列表。第一次,先选取相关度最高的贵重物品。然后,每次选取和查询query匹配度高、和已经选取的贵重物品最大相近度低的贵重物品。相近度函数 和 可以不同,简单强化数学模型代码根据业务需求来定。比如,在Airbnb中,函数可以如前所述listing间产品价格、边线、类型等重要信息来计算。2.2 MLR:Mean Listing Relevance这篇学术论文里,作者提出了MLR指标,用来衡量一个top N列表结论的相关性、多元性综合得分,定义如下:可以看到MLR和MRR方法中定义的指标相比,把MRR指标中的最大值函数替换成了平均值函数,距离函数 取代了相近度函数 (所以没有了负号)。这样做简单强化数学模型代码的动机是:MMR中的最大值函数,隐藏假设使用者仅对每个类目中的一个item感浓厚兴趣;MLR中使用平均值函数,更加平滑,能更好地建模Airbnb中使用者的广泛偏好。2.3 Listing的矢量表示责任编辑中,作者使用的是将listing人工定义为一个可解释的矢量,由listing的属性来表示,比如产品价格,边线(经度,纬度),容纳人数,卧室类型等。对于实数值属性,如前所述query结论集合中的数据(而非全部数据)计算简单强化数学模型代码均值、方差,做normlization。对于类别属性,使用one-hot encoding。对处理后的listing矢量透过TSNE聚类,结论如右图所示,可以看到:这种表示聚类效果较好,对卧室类型、产品价格、边线等重要信息有较为好的区分度。2.4 多元性好坏衡量指标:如前所述多元性分布的距离计算学术论文作者,透过计算生成的top K结论的多元性分布和理想的多元性分布之间的Hellinger距离,来衡量top K结简单强化数学模型代码果多元性的好坏。其中Hellinger距离的定义如右图所示,反映了矢量每个维度值的差异。关键的难题是,对于每个query,理想的多元性分布怎样计算呢?学术论文作者巧妙了利用了使用者的反馈(user engagement, 比如点选、预定等)来计算。下面透过边线、产品价格两个例子来说明。边线多元性:
对于边线多元性,对于每个query,理想的多元性矢量分布,如前所述这个query下使用者的反馈重要信息来计算。学术论文作者用经简单强化数学模型代码典的KD-Tree结构来将每个地理边线,然后计算每个地理边线下使用者反馈的分布,从而得到对于这个query,理想的地理边线多元性分布。右图是一个使用者反馈在边线上分布的例子:产品价格多元性:
对于产品价格多元性,作者选用了多个产品价格bucket的正态分布,如右图所示。基本的思想是:对于每个query, 回到多个产品价格区间的结论,让使用者有更多的选择;同时,让结论以这个query的expected price (期望价简单强化数学模型代码格)为中心。那么,每个query下的expected price怎样计算呢?作者采用的方法是使用简单的回归数学模型,特质:如前所述query中的特征,比如客户人数、住几夜、地点等,标签数据:如前所述历史预定的实际产品价格来计算。3. Airbnb搜寻重次序:强化多元性方法
在Airbnb重次序控制系统中,采用过几种解决方案,从精排后的N个结论,来生成top T的重次序结论,展现给使用者。3.1 如前所述Greedy Rank简单强化数学模型代码er的重次序最大化Mean Listing Relevance指标,是一个NP-Hard难题。所以Airbnb首先使用了贪心的方法,如前所述Maximal Marginal Relevance(MMR)演算法,利用的是学术论文中定义的Mean Listing Relevance指标,每次选取能使添加这个item后整个结论列表得分最高的那个item (即Airbnb中的listing)。3.2 如前所述Locat简单强化数学模型代码ion Diversity Ranker的重次序然后,学术论文作者提出,如前所述模拟退火的强化强化边线多元性的重次序方法。作者定义同时考虑多元性和相关性的损失函数为:其中, 以精排期平均分作为ground truth label, 来衡量重次序结论和精排结论的偏差,表示异构化结论的相关性得分; 用重次序结论和理想地理分布的距离,表示异构化结论的多元性得分。然而标准的强化方法(如SGD)并不能直接强化这个定义的损失简单强化数学模型代码函数,因为地理边线表示的映射是固定的。所以,作者采用了如前所述模拟退火的方法:多次迭代,每次迭代透过交换重次序结论列表中两个item的边线生成捷伊结论,如果指标增加,选取这个捷伊结论,否则以一定的概率来接受新结论。3.3 如前所述Combined Loss Function的重次序前面两种方法,计算relevance和diversity相分离,限制了重次序的效果。为了更好的建模listing特征, que简单强化数学模型代码ry特征, diversity目标间的复杂交互关系,作者提出了将多个目标融合到一个可以用SGD强化的损失函数的方法。像所有的机器数学模型一样,对于重次序数学模型,需要定义清楚损失函数和数学模型结构。对于重次序数学模型 ,总体损失函数定义为为相关性loss (标准的pairwise loss) 、 多元性loss (边线分布多元性loss、产品价格分布多元性loss)的和:其中,相关性 loss 保证了重次序结论的相关性,简单强化数学模型代码边线分布多元性loss 、产品价格分布loss 保证了重次序结论的多元性。如前所述重次序数学模型训练时得到listing的重次序得分,分别计算多元性损失、pair-wise多元性损失,如果每部分loss都能用梯度下降来强化,那么就可以直接自学重次序网络的参数了。其中相关性Loss 和精排数学模型类似,如前所述正负样本,计算pair-wise loss,可以用梯度下降来强化。多元性loss, 是根据重次序生成结论的分布和理想简单强化数学模型代码的分布来计算的。关键难题是可以怎样设计能用SGD强化的多元性loss function呢?作者首先如前所述一下假设,将重次序强化难题,转化为强化生成结论和目标结论多元性分布的Hellinger距离:但是,直接使用Hellinger距离作为loss function是不可行的:因为每个listing对应的bucket是常数,和DNN的权重没有直接依赖,所以无法用SGD强化。因此,作者提出了一个巧妙的su简单强化数学模型代码rrogate cross entropy loss function来解决这个难题。如前所述的insight是,对于每个bucket,可以用一个binary label来表示这个bucket的分布值是否低于目标值。对于每个listing, cross entropy loss的权重和这个bucket的分布值与目标值的差值成正比。如果一个listing对应到某个bucket, 这个bucket上的值超简单强化数学模型代码过了理想值,重次序网络权重就会调整来减少这个listing的得分,使得这个listing名列到top T以外,bucket上的值进而就会接近理想值。3.4 Contextual features使用者实际的反馈有时会与上下文(context)相关,作者加入了一些上下文特征,比如目标边线空闲房子数量,query对应的top K结论的产品价格、边线、卧室类型、可容纳客人数的平均值和方差等重要信息。3.5 如前所述Q简单强化数学模型代码uery Context Embedding的重次序为了使用广度自学更好地建模query context重要信息,作者先进经验 DLCM [7]中的方法,使用RNN来建模当前query对应的精排结论的top结论,表示为listwise context,用这个重要信息来异构化所有的item。具体方法如下:对于listing L, query Q, user U, 首先使用精排次序数学模型评分,生成top T结论;然后简单强化数学模型代码选取精排的top N结论输入到LSTM中,得到Query Context Embedding;接着用重次序DNN数学模型H,如前所述Query Context Embedding对精排的top K个listing评分,生成异构化结论。重次序数学模型H的结构,是如前所述RNN+Two Tower数学模型 [8]。首先,作者如前所述下面的网络,计算Query Context Embedding: 左下方的LSTM,输入精排的t简单强化数学模型代码op N结论;右下方的DNN,输入user和query特征;然后将LSTM的最终输出和query/user侧DNN输出拼接后,经过投影层变换,输出为Query Context Embedding,用来表示理想的listing embedding。然后,作者用下面的网络结构对listing进行重次序评分。相关性loss function : 作者用Query Context Embedding (即理简单强化数学模型代码想listing embedding)和 待次序的listing embedding间的euclidean距离来衡量待次序listing的好坏,进而计算总体loss中pair-wise loss,即相关性损失。重次序数学模型的结构、损失函数都已经定义清楚了,接下来就可以使用梯度下降强化重次序数学模型了。4. Airbnb搜寻重次序:实验结论
4.1 Offline A/B test不同方法在offline 简单强化数学模型代码A/B test上的结论如右图所示,其中,baseline为只使用精排数学模型直接展现结论。可以看到如前所述RNN+Two Tower的重次序数学模型,取得了最好的效果。其中MLR指标为作者定义的综合考虑相关性、多元性得分,对top N结论整体评分的指标。4.2 Online A/B test线上实验的结论如下:Combined Loss Function方法:多元性较好,但是存在的难题是,结论中同时包含过低简单强化数学模型代码、过高产品价格的比例大幅提升,对使用者新体验不好。人工加入Contextual features方法:线上效果不好,说明人工添加的上下文特征无法实现同时强化多元性、相关性的目的。Query Context Embedding方法:在线NDCG增加1.2%,预定量增加0.44%,新使用者预定量增加0.61%,说明多元性对新使用者很重要。学术论文里给出了重次序组件,对搜寻结论边线、产品价格多元性强化的效果:右图表明:多样简单强化数学模型代码性组件,使得搜寻结论的边线分布更加多样了。右图表明:多元性组件,使得搜寻结论的产品价格分布更加接近期望产品价格、减少极端的产品价格。后记
搜寻所推荐重次序,生成的结论直接展现给使用者,对使用者新体验和工作效率都非常重要。和精排、停售数学模型相比,因为需要和线上控制系统交互才能验证效果,相关的研究少很多,期待产业界、学术界一起在重次序方向上做出更优秀的落地应用!由于本人水平有限,难免有疏漏错误之处,该文中存在的难题,欢迎大家指正!参简单强化数学模型代码考学术论文:Managing Diversity in Airbnb Search,KDD 20
The Use of MMR, Diversity-Based Reranking for Reordering Documents and Producing Summaries, SIGIR 18.
Practical Diversified Recommendations on YouTube with简单强化数学模型代码 Determinantal Point Processes, CIKM 2018.
Fast Greedy MAP Inference for Determinantal Point Process to Improve Recommendation Diversity, NIPS 2018.
Personalized Re-ranking for Recommendation, Recsys 20简单强化数学模型代码19
SLATEQ:A Tractable Decomposition for Reinforcement Learning with Recommendation Sets, IJCAI 2019.
Learning a deep listwise context model for ranking refinement, SIGIR 2018.
Improving Deep Learning For简单强化数学模型代码 Airbnb Search,KDD 20
关于广度传送门
广度传送门是一个专注于广度所推荐控制系统与CTR预估的交流社区,传送所推荐、广告以及NLP等相关领域产业界第一手的学术论文、资源等相关技术分享,欢迎关注!加技术交流群请添加小助手deepdeliver,备注姓名+学校/公司+方向。
你点的每个“在看”,我都认真当成了喜欢