Press "Enter" to skip to content

谈一谈LTR排序问题

排序问题一直是计算机领域中的一个经典核心的问题,小到针对数值型数据的冒泡排序,快速排序等等,大到app搜索栏中关键字检索得到的结果排序,展示广告,推荐列表中的坑位排序都是十分复杂的实际业务问题。排序结果的好坏很大程度对搜索,推荐,广告业务的用户体验,广告收入产生重要影响。区别于传统排序方法,排序学习LTR可以简单理解为使用机器学习的方法对实例进行排序展示。

 

排序学习的评价指标:

 

 

Precision and Recall(PR),准确率反映的是查准率,召回率反映的是查全率。

 

Mean average precision(MAP),AP可以理解为顺序敏感的recall,MAP在此基础上再取平均。系统检索出的相关文档位置越靠前,MAP值越高。

 

 

normalized Discounted Cumulative Gain(nDCG),累加计算整体的增益值,在MAP中,四个文档和query要幺相关,要幺不相关,也就是相关度非0即1。nDCG中改进了下,相关度分成从0到r的r+1的等级。上图中公式为DCG计算公式,但是不同长度的列表之间DCG可比性不高,nDCG增加了归一化处理。

 

Expected Reciprocal Rank(ERR)。把标准答案在被评价系统给出结果中的排序取倒数作为它的准确度,再对所有的问题取平均。

 

排序学习的模型分类:

 

排序学习的模型通常分为pointwise方法,pairwise方法,listwise方法,三种不同的设计思路主要体现在标注方法和损失函数上。

 

pointwise方法:

 

是最简单易懂的解决方案,将排序问题转化为机器学习中常见的分类或者回归问题,如果最终预测目标是实数值,就是一个回归问题,如果是概率问题,就是分类问题,例如CTR预估。先是对每个处理对象进行人工标注训练样本,使用支持向量机,逻辑回归等机器学习模型调整参数,最后新的实例使用模型的打分函数得到一个新的排序分数。该类方法有一个明显的缺点是没有考虑实例之间的相对关系。

 

pairwise方法:

 

给出每个实例之间的相互排名,根据相互排名情况,也可以给出所有实例的最终排序。主要是因为能很容易计算损失函数梯度,但是很难直接计算损失函数的值。代表方法为Lambda系列,比如LambdaRank,LambdaMart,RankNet。

 

listwise方法:

 

直接给出所有实例的整体排名,直接优化nDGG,ERR等评价指标。但是训练时需要标注好所有的训练实例的排序,比较复杂。

 

排序中的几大挑战:

 

1. 正负样本比例严重不平衡,如何合理采样。例如ctr中曝光很多,但是点击行为却很少,推荐中浏览行为很多,但是购买行为很少。

 

2. 目标数据稀疏,准确性不够高。

 

3. 实时性要求较高,比如能根据最新的点击行为实时改变推荐的列表。

 

4. 多个不同目标的重要性无法量化,广告可能是提高ctr点击率,但是游戏中有时候是留存,购买率,复购率等,如何衡量不同目标推荐的列表实例的重要性也很复杂。

 

工业界常见的LTR排序模型:

 

工业界算法的演进路线:

 

下面介绍几种工业界应用较多的排序模型:

 

1. LR+GBDT(半自动化特征组合),这种组合模型已经在ctr预估中广泛使用了,当然很多公司的推荐系统ranking部分也是部署的该组合模型。LR模型可解释性较好,但是需要比较好的特征工程,且无法有效提取组合的特征。因此可以先使用gbdt模型提取组合特征,加强模型的泛化性能,将新的特征向量输入到LR。

 

2. FM模型(自动化二阶特征组合),即因子分解机模型。线性特征基础上直接引入二阶特征组合,使用对应特征向量的内积来表示,本质上是对这些特征进行embedding化表征。

 

3. Wide & Deep模型(自动化高阶特征组合),首先在google在google play中对app的推荐排序中使用的技术,wide部分是线性模型,deep是将组合的高维稀疏特征利用神经网络embedding到低维稠密的特征向量,将两部分联合训练可以互相弥补特征工程复杂和可解释性不够的劣势。

 

排序学习在推荐中的应用场景:

 

1.多路召回融合排序:

 

 

一个推荐系统的召回阶段可能会用到多种不同召回策略,比如基于内容的召回、基于协同过滤的召回、基于热门物品的召回、基于兴趣标签的召回等等,不同的召回策略召回的物品无法确切地分辨哪个策略召回更重要,所以需要一个排序学习模型,根据用户的行为反馈来对多路召回的物品进行排序推荐,这也是排序模块的一大重要作用。每一路召回可以A/Btest选择合适的数量,用户对每一路内容感兴趣程度不一样,因此召回的topk参数k也可以是个性化的。

 

2.多目标融合排序:

 

 

不仅要提高ctr,cvr,还有留存,加购等多目标。不同的目标训练不同的参数,需要人工调整不同目标模型的参数。另外不同的目标模型重要程度不一样,需要针对每一类人有个性化权重。我们可以对多目标产生的物品构建pair,训练时对不同物品的先后顺序进行训练。另一种方法是采⽤多任务学习,共享参数,融合学习出的分数。典型的算法有谷歌的 MMOE(Multi-gate Mixture-of-Experts)以及阿里的 ESMM(Entire Space Multi-Task Model)。

 

参考文章:

 

https://www.codercto.com/a/88329.html

 

https://zhuanlan.zhihu.com/p/58160982

 

https://tech.meituan.com/2018/12/20/head-in-l2r.html

 

《美团机器学习实践》

 

Be First to Comment

发表评论

电子邮件地址不会被公开。 必填项已用*标注