首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在算法LambdaRank (在学习到排名)中,∆NDCG收点是什么意思?

在算法LambdaRank (在学习到排名)中,∆NDCG收点是什么意思?
EN

Stack Overflow用户
提问于 2020-04-07 14:21:57
回答 1查看 398关注 0票数 4

本条款描述了用于信息检索的LambdaRank算法。在公式8页6中,作者建议将梯度(lambda)乘以一个名为x_∆NDCG_x的术语。我确实理解,当交换列表中的两个元素时,这个术语是两个NDCG的区别:

通过交换U1和U2的秩位置(同时保持所有其他urls的秩位置不变)而给出的NDCG变化的大小。

但是,我不明白在交换U1和U2时会考虑哪个有序列表。这是由模型在当前迭代中的预测排序的列表吗?或者是这些文件的真实标签所规定的清单?或者,像刘铁彦在他的“信息检索学习排名”( Learning )一书中所建议的那样,在前一次迭代中,来自模型的预测列表?

EN

回答 1

Stack Overflow用户

发布于 2022-01-23 21:43:52

简短的回答:,这是根据模型在当前迭代中的预测排序的列表。

让我们看看为什么这是有意义的。

在每一次训练迭代中,我们执行以下步骤(这些步骤是所有机器学习算法的标准步骤,无论是它的分类、回归还是排序任务):

  1. 计算分数si = f(xi),由我们的模型为每个文档i返回。
  2. 计算模型权重的梯度C/∂w,由RankNet的成本C反向传播。这个梯度是所有成对梯度∂Ci,j/∂w之和,为每个文档的对(i,j)计算。
  3. 执行梯度上升步骤(即w := w+u*∂C/∂w,其中u为步骤大小)。

在“加速RankNet”一段中,引入了λi的概念,作为每个文档的计算分数(使用当前迭代时的模型权重)对整体梯度∂C/∂w (当前迭代时)的贡献。如果我们在当前迭代中按模型的分数排序我们的文档列表,那么每个λi都可以被认为是附加在每个文档上的“箭头”,它的符号告诉我们应该将文档移动到哪个方向,向上还是向下,以增加NDCG。再一次,NCDG是根据我们的模型预测的阶数来计算的。

现在,问题是对(i,j)的lambdas λi,j对整体梯度的贡献是相等的。这意味着下面的文档排名,比方说,第100位的排名与前几位的排名相当。这不是我们想要的:我们应该把相关文件放在最上面的优先顺序,而不是把正确的排名排在100位以下。

这就是为什么我们把每一支“箭头”乘以,∆,NDCG,NDCG,来强调在顶级排名上的重要性,而不是我们列表底部的排名。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61082232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档