Learning to rank总结

Learning to rank,LTR是一种有监督的排序学习,广泛应用于搜索,推荐等领域。

排序学习是一个有监督的机器学习过程,对每一个给定的query-doc对,抽取特征,通过日志挖掘或者人工标注的方法获得真实数据标注。然后通过排序模型,使得输出能够和实际的数据相似。

常用的排序学习分为三种类型:PointWise,PairWise和ListWise。

1 Pointwise

Pointwise 将问题转化为多分类或回归问题。

如果归结为多分类问题,对于某个 Query,对文档与此 Query 的相关程度打标签,标签分为有限的类别,这样就将问题转为多分类问题;

如果归结为回归问题,对于某个 Query,则对文档与此 Query 的相关程度计算相关度 Score,这样就将问题归结为回归问题。

应用 Pointwise 模型有 Subset Ranking、OC SVM、McRank、Prank 等。
Learning to rank总结_第1张图片

Pointwise 算法实现简单,易于理解,但它只对给定 Query 单个文档的相关度进行建模,仅仅考虑了单个文档的绝对相关度,可以学习到很好的query全局性,但是没有考虑样本之间的偏序关系,如对于同一个Query的两个相关结果DocA和DocB,Pointwise模型只能判断出两者都与Query相关,无法区分DocA和DocB相关性程度。

在某一些场景下,排在最前面的几个文档对排序结果的影响非常重要,如搜索引擎的第一页的内容非常重要,而 Pointwise 没有考虑这方面的影响,不对排序的先后顺序优劣做惩罚。

2 Pairwise

Pairwise 考虑的是两个文档之间的相对相关度,比较不同文档的先后顺序。
Pairwise ,它将整个排序问题转为二元分类问题,即构建的是一个二分类器,对一个文档对 做二分类,一类是 Doc1 排序前于 Doc2,另一类则相反,通过两两比较,模型可以学习到不同文档之间的先后顺序。应用 Pairwise 的模型有 Ranking SVM、RankBoost、RankNet、GBRank、IR SVM 等。
Learning to rank总结_第2张图片

也存在以下问题:

  1. 考虑了两个文档对的相对先后顺序,却没有考虑文档出现在搜索列表中的位置,排在搜索结果前面的文档更为重要,如果靠前的文档出现判断错误,代价明显高于排在后面的文档。

  2. 同时不同的査询,其相关文档数量差异很大,所以转换为文档对之后, 有的查询对能有几百个对应的文档对,而有的查询只有十几个对应的文档对,这对机器学习系统的效果评价造成困难

3 Listwise

Listwise 算法相对于 Pointwise 和 Pairwise 方法来说,它不再将排序问题转化为一个分类问题或者回归问题,而是直接针对评价指标对文档的排序结果进行优化,如常用的 MAP、NDCG 等。应用 Listwise 的模型有 ListNet、ListMLE、SVM MAP、AdaRank、SoftRank、LambdaRank、LambdaMART。其中 LambdaMART(对 RankNet 和 LambdaRank 的改进)在 Yahoo Learning to Rank Challenge 表现出最好的性能。
Learning to rank总结_第3张图片

该方法特定Query,文档集合,输出所有文档的打分或者排列顺序。评价指标如 NDCG、MAP 等。由于此种方法是针对评价指标直接进行优化,所以它往往表现出不错的效果。

你可能感兴趣的:(搜索算法,LTR,排序学习)