常见算法ppt_搜索排序基于listwise的LambdaMART算法

参考来源: Liam Huang* 的slides,陈天奇关于xgboost的slides

本文仅代表个人理解,有不到位的或者有补充的欢迎指正,希望对大家共同进步有帮助。

LambdaMART = Lambda(LambdaRank) + MART(GBDT)

剧透一下: lambda很巧妙的用来描述求解过程中的迭代方向和强度,学过adam优化方法的人可能会很熟悉,在梯度之前乘上一个系数,这个系数是用来影响梯度的方向的。

一: GBDT:

BEGIN:

对于

来说就是要使得梯度
尽可能小。这是boosting的一个思想,而GBDT是基于boosting的。

更具体的来讲,决策树实际上对样本空间划分,并对每个划分区域有预测值。

由此可以得到

F是一颗回归决策树(可以参见李航<统计学习方法>)

再进一步来讲,就是要使得

最小。

END

二:Lambda

Ranking的常见评价指标都无法求梯度(仔细想想为什么), NGCG, ERR, MAP, MARR.所以直接套用这些指标做梯度下降难度很大。这个时候RankNet登场:

1.RankNet:

BEGIN:

这个算法的主要创新就是两两比较,得出两两的偏序关系。举个例子, 对于神经网络的输入有

, 那么如果输入n个样本就会有n(n+1)对, 问题就转化成了二分类,这个也就是pairwise的思想。(是不是立马就能想到pairwise的一个弊端呢, 仔细想想,也有弥补的方法),咱们接着聊RankNet。

RankNet的终极目标就是得到一个算分函数

损失函数为交叉熵,这里我偷懒打公式了,就是一个普通的分类问题,不一定是神经网络,用SVM啥的都行。核心部分就是上头的偏序概率函数定义。但是逆序对和topk两码事,不懂的可以参考拓扑排序或者参考原文的图。所以离预计的目标还差点。

附注: 如果我们不仅能够得到偏序关系,我们还知道偏多少,也就是一个偏序两样本之间的距离,这个距离由于NDCG的存在只能使得最后位置唯一。换句话说直接影响最后的topk排序。那么直接乘上一个step就行了,使得目标能走到它该到达的位置。LambdaRank就是这么诞生的。由于已经是直接满足topk,所以它是属于listwise。

END

2.LambdaRank:

BEGIN:

有必要提一下梯度的对称性,

还有个性质就是

,由于有了前头的
的假设,所以要求我们输入对
是有序的

END

3.LambdaMART

MART的缺一个梯度,lambda定义了一个梯度,完美!

至此解释了LambdaMART的由来了。

所以再扯一句,LambdaMART用的是二阶梯度,所以需要进行牛顿迭代,还缺一个二阶导函数,所以需要lambda对w进行一个求导。其他都是直接套框架。

附注: xgboost本质上也就是用的二阶导,所以不是非常明白的可以学一下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值