当前位置: 代码迷 >> 综合 >> Learning to Rank基于pairwise的算法(一)——Ranking SVM、MHR、IRSVM
  详细解决方案

Learning to Rank基于pairwise的算法(一)——Ranking SVM、MHR、IRSVM

热度:29   发布时间:2024-01-16 13:07:20.0

1.概述

对于搜索任务来说,系统接收到用户查询之后,返回相关文档列表。所以问题的关键是确定文档之间的先后顺序,而pairwise则将重点转向对文档关系是否合理的判断。

在pairwise中,排序算法通常转化为对文档对的分类,分类输入是文档对,结果是哪个文章的相关度更好,学习的目标是减少错误分类的文档对,在完美的模型中,所有的文档对的顺序都被正确分类,于是可以得到某一query下完全正确合理的文档列表,即为完美的排序。

l2r-pairwise
图1 l2r-pairwise

在pairwise方法下,不同算法的最大不同之处在于对应机器学习方法的不同。对现有的大部分pairwise方法进行整理后发现,总结出以下4类:

(1)基于SVM算法的:基于SVM的pairwise算法最早的一种为R.Herbrich等人于2000年提出的Ranking SVM算法;后续基于此算法进行改进的有MHR(Multiple Hyperplanes Rank),该方法使用分而治之的策略,使用多个超平面对实例进行排序,最后聚合超平面给出的排序结果;IRSVM则是针对Ranking SVM中的位值误差和长度误差两大缺陷进行了改进。

(2)基于Boost类:基于Boost的pairwise算法最早的一种为Yoav Freund等人于2003年提出的RankBoost;基于Boost的另一个pairwise算法是GBRank,它是基于回归来解决pair对的先后排序问题。在GBRank中,使用的回归算法是GBT(Gradient Boosting Tree)。

(3)基于RankNet的:包括Chris Burges于2005年提出的基于梯度下降的RankNet;改进了RankNet损失函数的Frank算法;以及不通过显式定义损失函数再求梯度的方式对排序问题进行求解,而是分析排序问题需要的梯度的物理意义,直接定义Lambda梯度的LambdaRank算法。

(4)其它:包括LDM(Linear Discriminant Model)、MPR(Magnitude-Preserving Ranking)以及一种相对较新的基于神经网络的算法Sortnet。这一类算法并没有仔细研究,在本文中也不做过多的赘述。

由于篇幅问题,本文主要整理基于SVM的pairwise算法。

2.Ranking SVM

将排序问题转化为pairwise的分类问题

将同一个query(qid相同)下的doc构造成pair,每个pair就是一个样本<doci, docj>,根据label的等级,若doci等级高于docj,则新样本的label为1,若doci的等级低于docj,则新样本的label为-1,若等级相等,则label为0。构造出新样本之后,用它来进行训练,得到一个模型model。Ranking SVM算法,主要就是用SVM算法来训练模型的。

使用SVM分类模型进行学习并求解

Ranking SVM

3.MHR

Ranking SVM在特征空间中使用单个超平面作为排序模型,这对于解决复杂的排序问题来说太简单了。此外,Ranking SVM的训练在计算上开销也大。Xu Dong Zhang等人研究了一种Ranking SVM的替代方法,称之为“Multiple Hyperplane Ranker”(MHR),并对这两种方法进行比较。MHR采用分而治之的策略。它使用多个超平面对实例进行排序,最后聚合超平面给出的排序结果。MHR包含Ranking SVM作为特例,MHR可以克服Ranking SVM的缺陷。

3.1 模型

MHR利用多个超平面作为基排序器,并聚合基排序器。基排序器在所有的排序对上训练出来,每个基排序器仅仅是使用Ranking SVM在一个排序pair上训练的超平面。排序聚合是对所有基排序器的一个集成。如果将所有超平面的法线方向设置为相同,则很容易验证MHR将等效于RSVM。

在学习中,首先通过将来自相同排序对的所有实例放入相同的子集中来将训练集划分为若干子集。为了清楚起见,使用排序pair(s,t)来表示由具有等级s的文档和具有等级t的文档组成的实例对的子集。使用每个子集中的实例对,可以为相应的pair构建一个基排序器。基排序器可以单独或并行训练。显然,每个基排序器的实例对的数目小于整个问题的实例对的数目。因此,基排序器构造中的训练的空间复杂度和时间复杂度低于整个排序pair的RSVM训练的空间复杂度和时间复杂度。此外,每个基排序器关注于一个排序的排序对的排名,因此准确度高于RSVM的排序。

在排序时,对基排序器进行集成。可以采用现有方法以监督或无监督的方法集成。如果每个基学习器可以对数据的子集进行准确的排序并且基排序器没有强相关性,则适当的聚合方法可以创建具有高排序准确度的集成模型。还可以将先验知识纳入排序聚合过程。例如,可以给我们认为重要的基排序器提供更高的权重。

3.2 基排序器

3.2 基排序器

3.3 排序集成

采用两种基学习器聚合的方法:BordaCount和加权BordaCount
3.3 排序集成
以上内容均为从论文 Ranking with Multiple Hyperplanes中获取的。感兴趣的可以去看原文。

4.IRSVM

作为一个算法整理的博客,主要是对已有的一些算法进行整理,因此这里也做了一个搬运工的工作,以下是从某篇前人的博客中整理出来的。
4.IRSVM
本文整理的3种pairwise算法均为基于SVM进行学习改进的算法,借鉴提出方法的原论文或一些相关博客得到的整理结果。

参考资料

[1] Ranking SVM 简介
[2] Joachims T. Optimizing search engines using clickthrough data[C]//Proceedings of the eighth ACM SIGKDD international conference on Knowledge discovery and data mining. ACM, 2002: 133-142.
[3] Qin T, Zhang X D, Wang D S, et al. Ranking with multiple hyperplanes[C]//Proceedings of the 30th annual international ACM SIGIR conference on Research and development in information retrieval. ACM, 2007: 279-286.
[4] Learning to Rank中的Pairwise方法的学习

  相关解决方案