如何理解 Learning to rank

转: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 rankingspa

以前咱们都采用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,很难讲了。it

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的实际应用,而不仅是理论研究。毕竟能够应用的研究才有价值。

相关文章
相关标签/搜索