读paper笔记[Learning to rank]
读paper笔记[Learning to rank]
by Jiawang
选读paper:
[1] Ranking by calibrated AdaBoost, R. Busa-Fekete, B. Kégl, T. Éltető & G. Szarvas; 14:37–48, 2011.
[2] Web-Search Ranking with Initialized Gradient Boosted Regression Trees, A. Mohan, Z. Chen & K. Weinberger; 14:77–89, 2011.
两篇paper都来自Yahoo! Learning to Rank Challenge 2010的优胜者队。
介绍
[1] 主要用pointwise的方法作为学习器,在最后做model combination的时候用listwise的方法。主要的几个创新点:1)做了querywise的feature normalization; 2)用了Adaboost的多分类(没有用回归); 3)对于分类结果做了回归校准; 4)在最后做model combination的时候用了指数权重的方法(listwise)。在训练model时,用了不同的label grouping的方法,同时用了decision tree和decision products[4]作为base learner, 增加了model的多样性。在这篇文章中,listwise的model combination是亮点。
[2] 主要将Random Forests(RF)和Gradient Boosted Regression Trees(GBRT)做了一个sequence的combine.他们用RF得到了非常不错的效果,甚至比GBRT还要好。他们最后所用的方法是先用RF学习一个ranking function, 用这个ranking function的输出去初始化GBRT,做一个sequence 的combine, combine的结果要比他们单独的结果都要好。他们最后分析也认为,分类能比回归得到更好的效果,这个结论和[7]相同,很值得尝试。从他们的结果看,RF和GBRT的combine还是很有意义的,RF的一些优点在最后的model中都有体现,比如对parameter choice不敏感,不容易过拟合等。RF和GBRT的combine也解决了一个GBRT的缺点,因为GBRT是一个gradient boosting的方法,这一类方法存在一个trade-off, 就是step size和迭代轮数之间。如果要达到真正的global minimum, step size就必须很小,迭代轮数就必须增大,通过与RF的combine,对这个问题有所缓解,RF给了GBRT一个接近终点的start point, 这样即使step size比较小,也能比较快的结束迭代。
几个point
[Preprocessing] Raw Feature Normalization
如果用基于tree的分类器,global的normalization是没有意义的,这一类的分类器对于任何单调的变化都不敏感。对于learning to rank,大多数feature都是一些计数型的值[3],比如tf, df之类,绝对值之间的比较意义不大,一些很popular的词可能值会非常大。所以经常用一些querywise的方法做raw feature normalization.
[Preprocessing] Label Grouping
对于query-document的label, 表明了document和query的相关性,不可避免的带有标注人员的主观性。但是document和query是否相关,还是相对容易判断的。为了减少label noise,可以将相邻的label合并,合并方法可以有多种,如果用boosting的方法,用不同的label grouping的方法,可以增加model的多样性,减少label noise的影响。
Pointwise VS. Pairwise VS. Listwise
一般认为,pairwise和listwise的方法效果要好于pointwise[5][6], 但是复杂度也更高,训练model对于时间和memory的开销也更大。从今年Yahoo LRT Challenge来看,前12名公布的方法中,pointwise占80%. [1] 也尝试用了一些pairwise的方法,但在他们的实验中效果并不好,但最后model-combination的方法是一个轻量级的listwise的方法,效果提升很明显。虽然这样,[1]也提到,如果有足够的计算资源,对所用的pairwise或者listwise方法足够精通的话,pairwise和listwise的方法仍然是最好的选择,但是pointwise的方法也有很多优点,比如简单,计算低廉,鲁棒性很好。
Classification VS. Regression
大多数pointwise的方法都是用回归算法预测label. [1]用Adaboost构造了一个多分类器,最后通过回归校准得到了一个实数,但是回归校准对最后的效果提升帮助并不大。[2]所用的所有算法都是回归算法,但是线下也做了分类算法的评估,在他们的评估中,RF, GBRT, RF和GBRT combine的model如果用分类,效果在Yahoo和Microsoft的大多数数据集上都要好于用回归算法,评估方法为ERR和nDCG. [7]也得到了类似的结论,分类的效果要好于回归。
Feature Selection
GBRT是一个非常适合做ranking的算法[8][9],实际上2010 Yahoo Learning to Rank Challenge中成绩比较好的team基本上都或多或少用到了GBRT的各种变换[10]。包括Adaboost也都宣称可以handle noisy featues, 但根据以往的经验,feature selection也许还是需要尝试做一下。[11]也做了一些尝试。在LTR问题中,不管是提升效果或者效率,还是分析feature, 分析case,feature selection都有必要尝试做一下,在做feature selection的过程中,fature ranking, feature contribution都能得到,对于feature的分析也有助于提升结果和解决bad case的能力,提升learning算法的可控性。
总结
[1]和[2]都用的pointwise的方法,而且效果并不比pairwise和listwise的方法差,pointwise的方法有很多优点,前面都已经提过。对于LTR,pointwise的方法大多数都用regression,但[1]用的classification,[2]线下的评估也证明classification能得到更好的结果。[1]最大的亮点是最后model combination的时候用了listwise的方法,在后面的评估中也能看到效果很明显。[2]主要是结合了RF和GBRT的优点,用RF的结果初始化GBRT,使GBRT能有一个较好的start point,解决了GBRT很尴尬的一个trade off( step size和迭代轮数).最后的结果也比两个model单独的效果都要好。从两篇文章中,得到的主要信息有:1) raw feature的normalization,对于单个model的效果提升有比较重要的影响,对于如何normalization,要视具体算法,如果是tree-based算法,querywise的normalization效果在[1]中体现的还不错;2) 对于pointwise, pairwise还是listwise,不必拘泥于到底用哪种方法,要综合考虑效率,内存,效果,pointwise也可以达到很好的效果;3) 用分类来解决LTR也是一个很值得尝试的方向(可以根据分类的结果做回归校准);4)RF和GBRT的combine是一个很好的启发,结合了两个算法的优点; 5)在用boosting的算法时,即便base learner是pointwise的,在最后的model combination还是可以尝试一些listwise的方法,效果在[1]中提升很明显。
References
[1] Ranking by calibrated AdaBoost, R. Busa-Fekete, B. Kégl, T. Éltető & G. Szarvas; 14:37–48, 2011.
[2] Web-Search Ranking with Initialized Gradient Boosted Regression Trees, A. Mohan, Z. Chen & K. Weinberger; 14:77–89, 2011.
[3] http://research.microsoft.com/en-us/projects/mslr/feature.aspx
[4] Kegl and R. Busa-Fekete. Boosting products of base classifiers. In International Conference on Machine Learning, volumn 26, pages 497-504, Montreal, Canada, 2009
[5] Cao et al., Learning to rank: from pairwise approach to listwise approach. In Proceedings of the 24rd International Conference on Machine Learning, pages 129-136, 2007
[6] Valizadegan et al., Learning to rank by optimizing NDCG measure. In Advances in Neural Information Processing Systems 22, pages 1883-1891, 2009
[7] Li et al., Learning to rank using classification and gradient boosting. In Proceedings of the International Conference on Advances in Neural Information Processing Systems(NIPS), 2007
[8] Zheng et al., A general boosting method and its application to learning ranking functions for web search. Advances in Neural Information Processing Systems, 19, 2007
[9] Burges. From RankNet to LambdaRank to LambdaMART: An Overview. Microsoft Research Technical Report MSR-TR-2010-82, 2010
[10] http://learningtorankchallenge.yahoo.com/workshop.php
[11] http://jmlr.csail.mit.edu/papers/volume3/guyon03a/guyon03a.pdf
读paper笔记[Learning to rank]的更多相关文章
- [笔记]Learning to Rank算法介绍:RankNet,LambdaRank,LambdaMart
之前的博客:http://www.cnblogs.com/bentuwuying/p/6681943.html中简单介绍了Learning to Rank的基本原理,也讲到了Learning to R ...
- Learning To Rank之LambdaMART前世今生
1. 前言 我们知道排序在非常多应用场景中属于一个非常核心的模块.最直接的应用就是搜索引擎.当用户提交一个query.搜索引擎会召回非常多文档,然后依据文档与query以及用户的相关程度对 ...
- 【RS】List-wise learning to rank with matrix factorization for collaborative filtering - 结合列表启发排序和矩阵分解的协同过滤
[论文标题]List-wise learning to rank with matrix factorization for collaborative filtering (RecSys '10 ...
- Learning to Rank算法介绍:RankNet,LambdaRank,LambdaMart
之前的博客:http://www.cnblogs.com/bentuwuying/p/6681943.html中简单介绍了Learning to Rank的基本原理,也讲到了Learning to R ...
- Learning to rank 介绍
PS:文章主要转载自CSDN大神hguisu的文章"机器学习排序": http://blog.csdn.net/hguisu/article/details/79 ...
- [Machine Learning] Learning to rank算法简介
声明:以下内容根据潘的博客和crackcell's dustbin进行整理,尊重原著,向两位作者致谢! 1 现有的排序模型 排序(Ranking)一直是信息检索的核心研究问题,有大量的成熟的方法,主要 ...
- learning to rank
Learning to Rank入门小结 + 漫谈 Learning to Rank入门小结 Table of Contents 1 前言 2 LTR流程 3 训练数据的获取4 特征抽取 3.1 人工 ...
- Learning to Rank 简介
转自:http://www.cnblogs.com/kemaswill/archive/2013/06/01/3109497.html,感谢分享! 本文将对L2R做一个比较深入的介绍,主要参考了刘铁岩 ...
- 【模式识别】Learning To Rank之RankBoost
RankBoost的思想比較简单,是二元Learning to rank的常规思路:通过构造目标分类器,使得pair之间的对象存在相对大小关系.通俗点说,把对象组成一对对的pair,比方一组排序r1& ...
随机推荐
- Phong光照模型的Shader实现
计算反射向量 Phong用到的是反射向量,计算反射向量的公式是 R = 2*N(dot(N, L)) - L 这个公式是根据向量的投影公式以及平行四边形法则推导出来的 详细步骤请看这篇文章,讲的非常好 ...
- 用TCP穿透NAT(TCP打洞)的实现
目录 TCP穿透原理 程序思路 声明 上代码 运行示例 1. TCP穿透原理: 我们假设在两个不同的局域网后面分别有2台客户机A和 B,AB所在的局域网都分别通过一个路由器接入互联网.互联网上有一台服 ...
- Weblogic-unable to get file lock, will retry …问题解决
weblogic部署应用出现如下报错: <2017-8-15 下午05时08分44秒 CST> <Info> <Management> <BEA-141281 ...
- 洛谷【P1140】相似基因
浅谈\(DP\):https://www.cnblogs.com/AKMer/p/10437525.html 题目传送门:https://www.luogu.org/problemnew/show/P ...
- bzoj 1977 [BeiJing2010组队]次小生成树 Tree
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1977 kruscal别忘了先按边权sort.自己觉得那部分处理得还挺好的.(联想到之前某题的 ...
- Redis 复制技术和高可用sentinel(哨兵模式)
redis的复制技术和高可用(哨兵模式) 1 复制 为什么要复制 实现数据的多副本存储,从而可以实现服务的高可用 提供更好的读性能复制技术的关键点及难点 如何指定被复制对象 增量还是全量以及如何实现增 ...
- String是基本的数据类型吗?
String不是基本的数据类型,是final修饰的java类,java中的基本类型一共有8个,它们分别为: 1 字符类型:byte,char 2 基本整型:short,int,long 3 浮点型:f ...
- vmware全屏后去掉上面的横杠
全屏后选择查看—>独占模式最上面的杠就没了,而且不按退出快捷键,不会在切换到外面的系统中了.
- vue-cli脚手架build目录中的dev-server.js配置文件
本文系统讲解vue-cli脚手架build目录中的dev-server.js配置文件 这个配置文件是命令npm run dev 和 npm run start 的入口配置文件,主要用于开发环境 由于这 ...
- Android 4学习(1):学习路线图
学习路线图 如下图所示,整个Android的架构可以分为四层,五个部分.我给自己制定的学习路线图是这样的: 对于有java基础的入门级android开发者而言,首先要学会使用Application F ...