转:http://hi.baidu.com/christole/item/23215e364d8418f896f88deb

What is Rank?

rank就是排序。IR中需要排序的问题很多,最常见的的就是给一个query,对候选的documents排序,返回top-k给用户。另外,QA任务中最后也要对候选的A排序,query feedback, KEA等任务也都涉及rank。

what is learning ro rank?

用machine learning 理论来解决rank的问题。

Conventional method for ranking

之前我们都采用retrieval model 来解决ranking 问题的。这是IR最基本的理论,随便翻开一本IR的书,都有一章叫做retrieval model。常见的retrieval model 有Bool model,vector space model ,Language model等等。

Problems of conventional methods

1. 很难融合多种信息。如基于vector space model 以tf-idf作为权重,可能就很难用上其他信息了;基于language model 除了计算p(q | D),也很难结合其他信息了。

2. 缺乏深厚的理论支持。还如vector space model通过计算向量间的余弦相似度,看似有道理,但是否有道理,或是否对于每种情况都是准确的,没人可以证明;常用的一元language model假设bags of words又有多少道理?如果模型中需要设定参数,那只能手工调整出经验参数,那么是否准确,是否over-fitting,很难讲了。

Machine learning can help

1. 机器学习方法很容易融合信息(特征)。

2. 机器学习有成熟又深厚的理论基础。参数是通过迭代优化出来的。有一套成熟的理论解决,稀疏,过拟合,优化等问题。(当然机器学习也有一些缺陷了)

Methods

一般常说的有三类方法pointwise,pairwise,listwise。

(1) pointwise

如给定q1时document正确的顺序为d3,d2,d1。pointwise方法着眼于优化每个q,d对:{q1,d3,3},{q1,d2,2},{q1,d1,1}。

(2)pairwise

pairwise将顺序d3,d2,d1看成{d3 , d2,+1},{d2 , d1,+1},{d3 , d1,+1}。之后进行优化。

最常见的pairwise方法是Ranking SVM。它的优化过程和SVM非常相似。只是SVM要优化出一个超平面w.x+b=0,它的约束条件是y(w.x+b)>1。而Ranking SVM要优化出一个排序函数f(x),它的约束条件是y.f(x,w)>1,其他过程都相同。

(3)listwise

与pointwise不同的地方是,listwise将document看成一个list或permutation,如之前的{d1,d2,d3}看成一个排列d1d2d3,当然空间内一共有六种不同的排列,每种排列都会有一个概率,如何从d1,d2,d3的score值f1,f2,f3,求得分布的概率p(d1d2d3),可以用到plackett-luce model。

listwise方法一般从建立objective function角度不同分为最小化loss function和直接优化IR meature(MAP,NDCG)两类方法。一些学者证明二者的关系,一些IR meature 的变形如(1-NDCG)是loss function 的上界。而由于直接优化IR meature的方法缺乏些理论支持,又一些meature是非连续的,不便于优化,所以通过优化loss function 的方法更被接受。下面是三种主流的基于loss function 的方法,都是MSRA提出的。

RankCosine (IP&M 2007) 以truth rank和所得的rank间的cosine相似度作为loss function。

ListNet(ICML2007)以truth rank和所得的rank排列间的KL距离作为loss function。

ListMLE(ICML2008)以似然函数作为loss function。

合理的loss function 是机器学习的关键,提出ListMLE的文章同样介绍了什么样的loss function 才是好的。有了loss funtion 之后学习的过程就比较常规了,一般采用神经网络,优化参数用gradient decent。

Problems

Learning to Rank 是利用machine learning 的理论来解决IR中Rank的问题,Rank任务是根据某个标准(一般是指文档和查询的匹配程度)对对象进行排序,显然Rank是IR最核心的部分。Learning to rank任务使IR任务增加了理论深度也使ML理论得到了应用,理应是个很好的研究方向。

当然,起初Learning to rank 成为各大实验室争相研究的方向,短短几年时间,关于它的高水平的论文就有百篇。最近Learning to rank似乎遇到了些瓶颈...

1. Learning to rank一般是监督学习,实际应用的话,训练语料是个问题,毕竟语料需要包含q与d的 relevance level。另外,机器学习存在一些固有的问题。

2. 复杂度问题。

3. 大部分研究建立在特征相同的前提下,唯一关注的是如何学习出一个排序函数,那么实际应用时到底是合理的特征更重要还是学习排序函数更重要,在特征固定的前提下,通过好的排序函数,总体效果会有很大提高吗?

4. 传统的Retrieval model 是考虑在建立model时如何更好的更充分合理的利用q与d的概率信息,现在把所有的q与d的信息和link信息等等,都转化成向量形式,而将全部的精力放在学习函数上,是否使路越走越窄呢?

MSRA的LETOR小组最近一年也没有提出任何新的方法,他们最新的方法是ICML08的ListMLE了,近年的论文都是些理论证明了。

其实,learning to rank 将ML用在IR上,是个很好的思路,我们不应该只局限于某个任务或语料,Ranking是大部分IR任务的核心,我们可以通过ML的思想来解决某个实际问题。如MSRA 在sigir 09有一篇应用Ranking SVM 做关键词提取任务的文章。

我认为应该把更多的精力放在learning to rank的实际应用,而不只是理论研究。毕竟可以应用的研究才有价值。

如何理解 Learning to rank的更多相关文章

  1. [Machine Learning] Learning to rank算法简介

    声明:以下内容根据潘的博客和crackcell's dustbin进行整理,尊重原著,向两位作者致谢! 1 现有的排序模型 排序(Ranking)一直是信息检索的核心研究问题,有大量的成熟的方法,主要 ...

  2. learning to rank

    Learning to Rank入门小结 + 漫谈 Learning to Rank入门小结 Table of Contents 1 前言 2 LTR流程 3 训练数据的获取4 特征抽取 3.1 人工 ...

  3. [笔记]Learning to Rank算法介绍:RankNet,LambdaRank,LambdaMart

    之前的博客:http://www.cnblogs.com/bentuwuying/p/6681943.html中简单介绍了Learning to Rank的基本原理,也讲到了Learning to R ...

  4. Learning to Rank算法介绍:GBRank

    之前的博客:http://www.cnblogs.com/bentuwuying/p/6681943.html中简单介绍了Learning to Rank的基本原理,也讲到了Learning to R ...

  5. 芝麻HTTP: Learning to Rank概述

    Learning to Rank,即排序学习,简称为 L2R,它是构建排序模型的机器学习方法,在信息检索.自然语言处理.数据挖掘等场景中具有重要的作用.其达到的效果是:给定一组文档,对任意查询请求给出 ...

  6. Learning to Rank(转)

    https://blog.csdn.net/kunlong0909/article/details/16805889 Table of Contents 1 前言 2 LTR流程 3 训练数据的获取4 ...

  7. Learning to Rank算法介绍:RankNet,LambdaRank,LambdaMart

    之前的博客:http://www.cnblogs.com/bentuwuying/p/6681943.html中简单介绍了Learning to Rank的基本原理,也讲到了Learning to R ...

  8. Learning to Rank算法介绍:RankSVM 和 IR SVM

    之前的博客:http://www.cnblogs.com/bentuwuying/p/6681943.html中简单介绍了Learning to Rank的基本原理,也讲到了Learning to R ...

  9. Learning to rank基本算法

    搜索排序相关的方法,包括 Learning to rank 基本方法 Learning to rank 指标介绍 LambdaMART 模型原理 FTRL 模型原理 Learning to rank ...

随机推荐

  1. clearfix的用法

    如果有一个DIV作为外部容器,内部的DIV如果设置了float样式,则外部的容器DIV因为内部没有 clear,导致不能被撑开.看下面的例子:Div布局如下:Css代码如下:.out{border:1 ...

  2. MySql的索引操作

    索引是一种特殊的数据库结构,可以用来快速查询数据库表中的特定记录.索引是提高数据库性能的重要方式.MySQL中,所有的数据类型都可以被索引.MySQL的索引包括普通索引.唯一性索引.全文索引.单列索引 ...

  3. FocusBI: 商业智能场景(原创)

    关注微信公众号:FocusBI 查看更多文章:加QQ群:808774277   获取学习资料和一起探讨问题. <商业智能教程>pdf下载地址 链接:https://pan.baidu.co ...

  4. bzoj 5369: [Pkusc2018]最大前缀和

    Description 小C是一个算法竞赛爱好者,有一天小C遇到了一个非常难的问题:求一个序列的最大子段和. 但是小C并不会做这个题,于是小C决定把序列随机打乱,然后取序列的最大前缀和作为答案. 小C ...

  5. window.location.href.substr(window.location.href.length - 6)

    if (window.location.href.substr(window.location.href.length - 6) == "flag=1") { var tOptio ...

  6. .net core 第二篇控制台程序项目初步学习

    1. 使用vscode 创建一个控制台程序 创建项目默认创建的项目名称为父级文件夹名称 后面学习下创建的命令各个参数说明 运行项目dotnet run 其他命令SDK 命令:add 将包或引用添加到 ...

  7. Winform DataGridView列的单元格中动态添加图片和文字

    先上图在说,第二列中图片和文字的样式 1.需要重写DataGridViewTextBoxColumn,新建类TextAndImageColumn.cs using System; using Syst ...

  8. Azure 项目构建 – 部署高可用的 Python Web 应用

    Python 以其优美,清晰,简单的特性在全世界广泛流行,成为最主流的编程语言之一.Azure 平台针对 Python 提供了非常完备的支持.本项目中,您将了解如何构造和部署基于 Azure Web ...

  9. Flash流媒体服务器软件

    所谓流媒体技术,是指将连续的影像和声音信息经过压缩处理后放在网站服务器上,让用户能够一边下载一边观看.收听(即所谓的“在线欣赏”),而不需要等整个压缩文件下载到自己的机器上才可以欣赏的网络传输技术.目 ...

  10. Java 基础(6)——关键字 & 标识符 & 转义字符

    依然是基础的一天,看一看就好~ 关键字 之前就有说过关键字哦~ 注:关键字就是程序发明者规定的有特殊含义的单词. from Java基础(2) Java 中除了关键字以外还有暂时没有成为关键字的保留字 ...