Learning to Rank概述

Learning to Rank,即排序学习,简称为 L2R,它是构建排序模型的机器学习方法,在信息检索、天然语言处理、数据挖掘等场景中具备重要的做用。其达到的效果是:给定一组文档,对任意查询请求给出反映文档相关性的文档排序。本文简单介绍一下 L2R 的基本算法及评价指标。
算法

背景

随着互联网的快速发展,L2R 技术也愈来愈受到关注,这是机器学习常见的任务之一。信息检索时,给定一个查询目标,咱们须要算出最符合要求的结果并返回,这里面涉及一些特征计算、匹配等算法,对于海量的数据,若是仅靠人工来干预其中的一些参数来进行排序的话,是远远不能达到要求的,而 L2R 算法就是用来解决这种问题的,L2R 将机器学习的技术很好地应用到了排序中,并提出了一些新的理论和方法,有效解决了排序的问题,并且效率上相比人工干预也有了几个数量级的飞跃。app

L2R 算法

L2R 算法主要包括三种类别:Pointwise、Pairwise、Listwise,下面分别进行介绍。机器学习

1. Pointwise

Pointwise 将问题转化为多分类或回归问题。若是归结为多分类问题,对于某个 Query,对文档与此 Query 的相关程度打标签,标签分为有限的类别,这样就将问题转为多分类问题;若是归结为回归问题,对于某个 Query,则对文档与此 Query 的相关程度计算相关度 Score,这样就将问题归结为回归问题。ide

模型

应用 Pointwise 模型有 Subset Ranking、OC SVM、McRank、Prank 等。函数

输入

特定的 Query,文档的特征向量。性能

输出

文档与 Query 的标签类别或相关性分数。学习

损失函数

回归 Loss、分类 Loss、有序回归 Loss。优化

优缺点

Pointwise 算法实现简单,易于理解,但它只对给定 Query 单个文档的相关度进行建模,仅仅考虑了单个文档的绝对相关度,Pointwise 只学习到了文档和 Query 的全局相关性,对排序前后顺序有必定的影响。在某一些场景下,排在最前面的几个文档对排序结果的影响很是重要,如搜索引擎的第一页的内容很是重要,而 Pointwise 没有考虑这方面的影响,不对排序的前后顺序优劣作惩罚。搜索引擎

2. Pairwise

上文提到 Pointwise 方法只考虑了单个文档和 Query 的绝对相关度,Pairwise 考虑的则是两个文档之间的相对相关度,比较不一样文档的前后顺序。Pairwise 方法是目前比较流行的方法,它将整个排序问题转为二元分类问题,即构建的是一个二分类器,对一个文档对 <Doc1, Doc2> 作二分类,一类是 Doc1 排序前于 Doc2,另外一类则相反,经过两两比较,模型能够学习到不一样文档之间的前后顺序。spa

模型

应用 Pairwise 的模型有 Ranking SVM、RankBoost、RankNet、GBRank、IR SVM 等。

输入

特定 Query,文档对 <Doc1, Doc2>。

输出

文档对偏向得分,{-1, 1}。

损失函数

Pairwise 分类 Loss。

优缺点

Pairwise 方法经过考虑两两文档之间的相关度来进行排序,有必定进步。但 Pairwise 使用的是两文档之间相关相关度的损失函数,而它和真正衡量排序效果的指标之间存在很大不一样,甚至多是负相关的,如可能出现 Pairwise Loss 愈来愈低,但 NDCG 分数也愈来愈低的现象。另外此方法只考虑了两个文档的前后顺序,且没有考虑文档在搜索列表中出现的位置,致使最终排序效果并不理想。

3. Listwise

Listwise 算法相对于 Pointwise 和 Pairwise 方法来讲,它再也不将排序问题转化为一个分类问题或者回归问题,而是直接针对评价指标对文档的排序结果进行优化,如经常使用的 MAP、NDCG 等。

模型

应用 Listwise 的模型有 ListNet、ListMLE、SVM MAP、AdaRank、SoftRank、LambdaRank、LambdaMART。其中 LambdaMART(对 RankNet 和 LambdaRank 的改进)在 Yahoo Learning to Rank Challenge 表现出最好的性能。

输入

特定Query,文档集合

输出

全部文档的打分或者排列顺序

损失函数

评价指标如 NDCG、MAP 等。

优缺点

因为此种方法是针对评价指标直接进行优化,因此它每每表现出不错的效果。

评价指标

L2R 评价指标主要有 NDCG、MAP、WTA、MRR 等,下面分别简单介绍一下。

1. NDCG

NDCG,全称为 Normalized Discounted Cumulative Gain,是一种综合考虑模型排序结果和真实序列之间的关系的一种指标,也是最经常使用的衡量排序结果的指标,其计算公式以下:

图片


DCG 实际上是由 DCG 的值计算出来的,分子为模型计算出的 DCG 值,分母则为理想状况下的 DCG 值,而 DCG 的计算公式以下:

图片

在 DCG 的表达式中,r(i)表示在模型给出的排序中,排名为 i 的元素的实际分数,这里经过 2^r(i)-1 运算放大了其分数的差别,log_2(i+1) 是每一个元素的折价,因为排序靠前的元素被选取的几率更大,因此这里可使得排名前面的元素影响权重更大。

2. MAP

MAP,全称为 Mean Average Precision,即平均准确率。对于每一个真实相关的文档,考虑其在模型排序结果中的位置 P,统计该位置以前的文档集合的分类准确率,取全部这些准确率的平均值。

对于一个 Query,本来有 4 个相关结果,查询时将 4 个结果都查询出来了,其 rank 分别为 1, 2, 4, 7,则 MAP 为 (1/1 + 2/2 + 3/4 + 4/7)/4 = 0.83。对于另外一个 Query,本来有 5 个相关结果,查询只有 3 个相关结果,其 rank 分别为 1, 3, 5,则 MAP 为 (1/1 + 2/3 + 3/5 + 0 + 0)/5 = 0.45。则 MAP = (0.83 + 0.45)/2 = 0.64。

3. WTA

WTA,全称 Winners Take All,对于给定的查询 Query,若是模型返回的结果列表中,第一个文档是相关的,则 WTA =1, 不然为 0。

如对于一个 Query,原本有 5 个相关结果,查询结果中若是第一个结果是相关的,那么 WTA = 1,若是第一个结果是不相关的,则 WTA = 0。

4. MRR

MRR,全称 Mean Reciprocal Rank,是把相关文档在结果中的排序倒数做为准确度,而后再取平均。

如对于第一个 Query,查询结果将正确结果排名 rank 为 3,则其 Reciprocal Rank 为 1/3,对于第二个 Query,查询结果将正确结果排名 rank 为 2,则其 Reciprocal Rank 为 1/2,对于第三个 Query,查询结果将正确结果排名 rank 为 1,则其 Reciprocal Rank 为 1,则 MRR = (1/3 + 1/2 + 1)/3 = 11/18 = 0.61。

相关文章
相关标签/搜索