徐博 From RankNet to LambdaRank to LambdaMART: An Overview

徐博 From RankNet to LambdaRank to LambdaMART: An Overview
新闻来源:IR实验室       发布时间:2012/10/17 15:44:39
    这篇论文是一篇关于排序学习算法RankNet,LambdaRank和LambdaMART的综述性技术报告,这三种算法近年来在诸如Yahoo!Learning To Rank Challenge的比赛中都表现出了很好的排序效果。LambdaMART是提升树版本的LambdaRank,而LambdaRank是基于RankNet排序学习算法的,因此三种算法在内涵上有一种层层递进的关系,所以放在了一起进行阐明。
一、RankNet
RankNet算法训练得到的排序模型是模型参数的可微函数,他可以将输入向量映射到一个实数上去,对于两个URL对儿的得分通过一个概率函数进行融合,并在该概率函数的基础上,构造交叉熵损失函数,对应的函数如下所示:

将上面两个公式结合可以得到一个更加直接的损失函数公式,如下:
由于先前提到过模型实际上是参数的可微函数,而损失函数又可以表示成以上这种模型函数的表达形式,因此我们可以知道,损失函数也是模型参数的可微函数。因此我们可以通过梯度下降的方法,找到损失函数的梯度,并在梯度的负方向上进行参数值的变化来找到损失函数在参数变化范围内的最小值。
梯度下降法中参数变化的公式如下所示:
上面的公式就可以通过调整参数的取值来逼近损失函数的最小值了。这里提一下,随机梯度下降算法的原理是用随机选取的Training Set的子集来估计目标函数的梯度值。RankNet算法的具体流程,如下所示:
 
二、LambdaRank
在RankNet的基础上,对损失函数的导数进行因式分解我们可以得到,参数Lambda,而该参数是LambdaRank排序学习算法的基础。
         对同一查询下的一个URL得到的所有URL对儿的贡献值Lambda进行累加,可以得到我们需要的Lambda和的形式
 
该Lambda和可以看做是之前提到的损失函数的梯度,它的方向是所对应的URL在URL排序列表中移动的方向,大小就是移动的距离
在上面的基础上,LambdaRank算法对Lambda值的计算方式进行了改进,引入了信息检索评价指标,如下所示:
因此该Lambda可以直接对NDCG进行优化,其中NDCG的变化量,为URL I 和j 在交换位置时候的评价指标的变化量。对Lambda的累加的方式和上面提到的相同。
 
三、LambdaMART
MART是多重加法回归树的简称,该算法训练出的模型是一系列回归树模型的线性组合。回归树模型能够对已知数据进行分类,并在每一个叶子节点对应该分类的输出值
下面是MART算法的流程
LambdaMART算法讲MART 作为基本模型进行训练,利用LambdaRank中损失函数的构造和优化方式来训练排序模型,并采用了牛顿迭代法(Newton-Raphson)来确定每一个叶子节点是输出值,算法的详细流程如下:
LambdaMART算法与LambdaRank算法相比较虽然可能在个别查询上表现的会有所欠缺,但是整体的性能得到了很好的提升。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值