RankNet

义项:排序学习神经网络方法
RankNet

RankNet是一种基于神经网络的成对(pairwise)排序学习方法,由克里斯·伯吉斯(Chris Burges)等人在2005年提出[1][2]。它把两个文档之间的相对相关性转换为概率,用交叉熵作为损失函数、以梯度下降训练,是排序学习(learning to rank)领域的早期代表性模型[3]。其结构后来被推广为LambdaRank与LambdaMART,在信息检索与搜索排序中长期使用[1]。

目录
  1. 定义
  2. 原理
  3. 发展历程
  4. 应用
  5. 局限
  6. 参见

定义

RankNet是排序学习中的一种成对方法,其核心是一个前馈神经网络,输入为单个文档(或查询—文档对)的特征,输出为一个实数评分,评分高低代表该文档与查询的匹配程度[1]。训练时并不直接学习某个文档的绝对标签,而是把两个文档组成一对,让网络学习哪一个应当排在前面。

因此,RankNet的模型本身只是一个打分函数,排序结果通过对所有候选文档的评分降序排列得到。在排序学习的三类思路(单点、成对、列表)中,它属于成对一类,与基于支持向量机和梯度提升的成对方法并列[1]。

原理

RankNet把排序问题转化为概率估计问题。设网络对文档 $i$ 和文档 $j$ 的评分为 $s_i$ 与 $s_j$,则文档 $i$ 应排在文档 $j$ 之前的预测概率写为 $P_{ij} = \frac{1}{1+e^{-\sigma(s_i-s_j)}}$,其中 $\sigma$ 是控制曲线陡峭程度的可调参数[4]。这一形式即 Logistics 函数,评分差越大,模型越确信前者的排序更靠前。

真实标签一侧由目标概率 $\bar{P}_{ij}$ 给出:当文档 $i$ 的相关性高于 $j$ 时取 1,反之取 0,两者相当时取 0.5。训练目标是最小化预测概率与目标概率之间的交叉熵 $C = -\bar{P}_{ij}\log P_{ij} - (1-\bar{P}_{ij})\log(1-P_{ij})$,对所有查询与文档对求和后用梯度下降更新权重。

由于成对关系是对称的,"A 优于 B"与"B 劣于 A"提供的信息重复,实现中通常只保留有明确前后顺序的正序对用于训练,省略得分相同的对。两个文档共享同一个打分网络的权重,这种权重共享结构使模型对同一查询下的所有文档可复用一个评分函数[1]。

发展历程

RankNet由微软研究院的克里斯·伯吉斯等人提出,最初发表于2005年在美国波恩举行的第22届国际机器学习会议(ICML),论文题为《Learning to Rank using Gradient Descent》[2]。该工作提出用一个简洁的概率型代价函数配合梯度下降来学习排序函数[3]。

此后针对RankNet的不足出现了改进:伯吉斯等人在其梯度上乘以排序指标的变化量,得到LambdaRank;把LambdaRank 与提升树结合,又形成LambdaMART[1][4]。2010年,伯吉斯在微软研究院技术报告中系统梳理了从 RankNet 到 LambdaRank 再到 LambdaMART 的演进线索[5]。

2025年发表的一项研究重新构造并分析了RankNet类结构,从数学上证明在特定条件下这类模型可以学到满足自反性、反对称性与传递性的排序关系,并在公开数据集上与多种先进方法作了对比[1][6]。

应用

RankNet面向的典型任务是网页搜索排序:训练数据按查询分组,同一查询下各文档两两构成样本对,模型据此学习查询与文档的匹配程度[4]。在这种设定下,打分函数可用于对检索系统返回的候选结果重新排序。

在分层重排序的架构中,RankNet可作为其中一层或数层的排序器,只对结果列表顶部的子集再做训练和重排,以有限的计算代价改善头部结果的顺序。此外,有专利文献记载将RankNet与LambdaRank组合使用于蛋白质结构质量评估,由两个模型分别给出质量得分,再综合得到最终排序。

局限

RankNet的优化目标是成对的前后关系是否正确,而信息检索实际关心的是列表级指标,如归一化折损累计增益(NDCG)这类强调头部结果的度量,两者并不一致[4]。有例子显示,单纯减少顺序错误的文档对数量,反而可能把相关文档移出列表前部,使检索指标变差[4]。

在列表级指标上,RankNet通常不及由其衍生出的LambdaMART等方法,后者直接针对评价指标构造梯度[1]。不过也有研究指出,经过重新设计与现代优化手段改造后,成对的RankNet类模型在结构更简单的前提下可以超过包括列表方法在内的多种方法,因此"列表方法必然优于成对方法"的看法并非定论[1][6]。

RankNet的训练数据依赖人工标注的相关性等级,样本对的构造数量随同一查询下文档数呈平方增长,当文档数很大时训练成本随之上升[4]。

参见

  • LambdaRank —— 在 RankNet 梯度中引入排序指标变化量的改进方法。

  • LambdaMART —— 将 LambdaRank 与提升树结合的排序模型。

  • 排序学习 —— RankNet 所属的研究方向,研究如何用机器学习构造排序函数。

  • 梯度下降 —— RankNet 训练时采用的参数优化方法。

  • 交叉熵 —— RankNet 损失函数所依据的度量。

参考资料

  1. s10994-024-06644-6 [引用日期2026-10-29]
  2. acm.org 上的文件 [引用日期2026-10-29]
  3. Machine learning - 66,073 Results [引用日期2026-10-29]
  4. RankNet 损失由 Chris Burges 等人提出用于网页排序任务 [引用日期2026-10-29]
  5. 05-learning-to-rank [引用日期2026-10-29]
  6. s10994-024-06644-6 [引用日期2026-10-29]
词条评价
词条统计

浏览次数:0 次

阅读量:0 次 · 阅读完成量:0 次

最近更新:2026-10-28T18:29:48Z

历史版本

本条目引用的词条
微软研究院 LambdaRank LambdaMART 排序学习 梯度下降 交叉熵