LTR 之RankNet、LambdaRank、LambdaMART

LTR 之RankNet、LambdaRank、LambdaMART

RankNet

ranknet 是一个pairwise的排序模型,他相比pointwise把样本排序问题只考虑query与doc的相关性改编为文档对的比较问题,更好的利用了样本中的偏序关系

排序概率

ranknet首先计算文档对的排序关系,如有文档对(di, dj),并且文档i与query的相关性大于文档j的概率表示如下:
在这里插入图片描述
同时ranknet证明了只要知道相邻文档的排序概率,就可以推导出任何两个文档的排序概率,这样可以减少计算。

损失函数


其中
s表示文档与query相关的得分,感兴趣的可以推导一下,这就是简单的交叉熵损失函数。

计算总的损失还需加和所有的文档对的损失,最后用梯度下降法求解

在这里插入图片描述

LambdaRank

在这里插入图片描述
图中线条表示文档,蓝色线条表示相关文档,直接通过位序减法得到的损失左边为13,右边为11,在常用的排序指标如NDCG等,通常关注topK的排序,而对后面的排序不太关注,右边黑色的箭头表示ranknet下次梯度下降后的调整方向与强度,而我们实际需要的是红色箭头这样的调整,更关注top排序。为此,研究人员分析了排序问题的梯度的物理意义,采取了直接定义梯度,而不是通过定义损失函数求解的方法。

首先,对原有损失函数求梯度分析,分解因式链式求导
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在训练数据中,一般要求Sij=1,所以
在这里插入图片描述
之前说了,LambdaRank不再显式定义损失函数,再求梯度,而是直接定义梯度,然后反推损失函数。
这里通过前述对原损失函数的求解,LambdaRank直接定义

在这里插入图片描述
加的因子考虑了交换文档i和文档j的排序后的NDCG的变化,然后反推损失函数如下
在这里插入图片描述
LambdaRank相比RankNet的优势在于分解因式后训练速度变快,同时考虑了评价指标,直接对问题求解,效果更明显。

LambdaMART

LambdaRank重新定义了梯度,赋予了梯度新的物理意义,因此,所有可以采用梯度下降法求解的模型都可以使用这个梯度,MART就是其中一种

在这里插入图片描述

要搞懂这个算法步骤,建议先看看GBDT的推导原理,基本相同。
其中单个文档的lambda
在这里插入图片描述
得到后计算其对wi的导数,用于采取牛顿法求解叶子结点的输出值,同时创建新的回归数拟合梯度,更新模型

提供一个讲解GBDT推导比较好的博客链家
https://www.cnblogs.com/ScorpioLu/p/8296994.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值