Learning to Rank简介

机器学习有三大问题,分类、回归和排序。分类和回归之前了解了很多的算法,但排序还没有深入的了解过。

Learning to Rank有很多种典型的应用。包括:

  • document retrieval
  • expert search
  • definition search
  • collaborative filtering
  • question answering
  • keyphrase extraction
  • document summarization
  • machine translation

这一长串下来,想必重要性不言而喻。话不多说,开始正题。

基本定义

了解一个算法,要从它的目标和数据开始。Ranking的基本流程如下:

给定一个query,得到一批文档。优化的目标自然就是相关性越高的文档排在前面越好。那么如何量化这个指标呢?有三种函数可以量化这个指标:

  • DCG(Discount Cumulative Gain)
  • NDCG(Normalized Discount Cumulaive Gain)
  • MAP (Mean Average Precision)

先从DCG开始说,对于查询到的每一个样本来说,标注好的数据中它都会有一个评分,该评分也相当于类别,这个评分越高,表明这个样本越相关。DCG的基本思想就是排名越高的结果越相关那么DCG值就会越大。

DCG的公式表示,对于每次查询得到的结果排列,对于前k个结果中的每一个样本,计算一个总评分,该评分由两项相乘得到,G(j)与相关性有关,相关性越大,G(j)越大,而且是以指数级增长;D(pi(j))则和位置有关,位置越靠前,就越重要,以对数的倒数形式衰减。

NDCG是归一化后的DCG,它表示的是,对DCG进行归一化,使得相关性排序正好从高到低时,值为1。所以在此不赘述了

下面说说MAP,如下:

需要注意的是,MAP中,结果只有相关和不相关两种,即1和0。
P(j)表示,到位置j时,前j个结果中有多少相关的结果的比率。而AP的定义则表示,所有相关结果位置上的准确率的平均。而MAP则是,所有样本上AP值的平均。

在具体的算法中,上述的指标是无法直接优化的,只能采用各种各样的妥协,比如:

这三种都是1-NDCG的upper bound函数(这里我还没明白)。但这三种则代表了不同类型的妥协,第一种是pointwise的,因为在单个样本上计算损失。第二种是pairwise的,在成对的样本上计算损失。第三种是listwise的,因为直接在list上计算损失。

Pointwise方法

Pointwise方法包括:

  • Subset Ranking
  • McRank
  • Prank
  • OC SVM

以OC SVM为例,她是传统SVM的变形,通过增多偏移量的方式,实现多个分类面,从而达到分类的目的。

以最简单的线性分类器来看,传统的SVM计算分类面的方式是w·x+b,而OC SVM则是有多个b,从而构造了多个平行的分类面,如下所示:

反映在目标函数上就是:

Pairwise方法

pairwise方法包括:

  • Ranking SVM
  • RankBoost
  • RankNet
  • GBRank
  • IR SVM
  • Lambda Rank
  • LambdaMART

Ranking SVM

通过把问题简化,变成判断两个样本先后的二分类问题:

反映在目标函数上就是:

IR SVM

Ranking SVM的简化方法导致该算法具有两个缺点:

  • 没有区分不同相关性文档的重要程度
  • 没有区分不同query间pair对的重要程度

为了解决这两个问题,对Hinge Loss做出了改进,对不同类型的pair进行加权。

反映在目标函数上就是:

加权的两个函数一个用来衡量不同相关性的样例,一个用来衡量不同query的样例。而加权的方法是采用先验方法来做。对于不同相关性的文档,要根据其相关性值来确定函数,对于不同query,根据该query产生的pair对的数目的倒数来加权。

Listwise方法

Listwise方法包括:

  • ListNet
  • ListMLE
  • AdaRank
  • SVM MAP
  • SoftRank

以SVM MAP为例,对于一个query,查询到的样本会形成一个排列,该排列的得分可以用如下函数衡量:

而真正要优化的额函数,如下:

其中,E可以是NDCG或MAP。

对上面的函数进行转化,取它的upper bound。如下:

这里是upper_bound的原因是因为后面那个被乘项要么是负,要么是零。由此,本来该求最小值,也变成了求最大值。

然后还是不能继续优化,所以还得再做两个变换。

  • 将0-1(不等号)函数转化:

  • 因为

从而,问题就转化成了如下:

这样就变为了可以优化的问题。

未来的研究方向

  • training data creation
  • semi-supervised learning and active learning
  • feature learning
  • scalable and efficient training
  • domain adaption and multi-task learning
  • ranking by ensembel learning
  • global ranking
  • ranking of nodes in a graph

参考文献

[1]. Hang L I. A short introduction to learning to rank[J]. IEICE TRANSACTIONS on Information and Systems, 2011, 94(10): 1854-1862.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值