本条款描述了用于信息检索的LambdaRank算法。在公式8页6中,作者建议将梯度(lambda)乘以一个名为x_∆NDCG_x的术语。我确实理解,当交换列表中的两个元素时,这个术语是两个NDCG的区别:
通过交换U1和U2的秩位置(同时保持所有其他urls的秩位置不变)而给出的NDCG变化的大小。
但是,我不明白在交换U1和U2时会考虑哪个有序列表。这是由模型在当前迭代中的预测排序的列表吗?或者是这些文件的真实标签所规定的清单?或者,像刘铁彦在他的“信息检索学习排名”( Learning )一书中所建议的那样,在前一次迭代中,来自模型的预测列表?
发布于 2022-01-23 21:43:52
简短的回答:,这是根据模型在当前迭代中的预测排序的列表。
让我们看看为什么这是有意义的。
在每一次训练迭代中,我们执行以下步骤(这些步骤是所有机器学习算法的标准步骤,无论是它的分类、回归还是排序任务):
在“加速RankNet”一段中,引入了λi的概念,作为每个文档的计算分数(使用当前迭代时的模型权重)对整体梯度∂C/∂w (当前迭代时)的贡献。如果我们在当前迭代中按模型的分数排序我们的文档列表,那么每个λi都可以被认为是附加在每个文档上的“箭头”,它的符号告诉我们应该将文档移动到哪个方向,向上还是向下,以增加NDCG。再一次,NCDG是根据我们的模型预测的阶数来计算的。
现在,问题是对(i,j)的lambdas λi,j对整体梯度的贡献是相等的。这意味着下面的文档排名,比方说,第100位的排名与前几位的排名相当。这不是我们想要的:我们应该把相关文件放在最上面的优先顺序,而不是把正确的排名排在100位以下。
这就是为什么我们把每一支“箭头”乘以,∆,NDCG,NDCG,来强调在顶级排名上的重要性,而不是我们列表底部的排名。
https://stackoverflow.com/questions/61082232
复制相似问题