RankNet,LambdaRank,LambdaMart

来源:互联网 发布:最新的数据库处理技术 编辑:程序博客网 时间:2024/06/07 02:11
(一)基本概念
1.LambdaMART可以看做提升树(boosted tree)版本的LambdaRank,而后者又是基于RankNet发展而来的。Lambda的意义在于量化了一个待排序的文档在下一次迭代时应该调整的方向和强度。
2.RankNet是2005年微软提出的一种pairwise的Learning to rank算法,它从概率的角度来解决排序问题。

3.对于一些评价指标(模型非平滑)使用LambdaRank

(二)算法推导

1.RankNet

1)定义Ui比Uj排序靠前的目标概率,Sij取{1,0,-1}分别代表排序关系


2)使用sigmoid定义的模型预测概率,si是输入的样本特征经过f函数之后的映射


3)交叉熵作为损失函数,使用梯度下降求参数,(依赖的模型必须保证可以计算梯度)


2.lambda-Rank

 1)直接定义损失函数的梯度(lambda梯度:RankNet中交叉熵概率损失函数的梯度 * 交换Ui,Uj位置后评价指标Z的差值,梯度代表下一次迭代的方向和强度)


 2)反向推出损失函数(相比于RankNet,考虑了评价指标,效果更好)


3.lambda-MART

  1)lambda-Rank和GBDT的结合

  2)GBDT每棵树的拟合目标就是损失函数的梯度