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