Abstract
- Probabilistic Cost Function
- RankNet
Introduction
任何给用户提供大量结果的系统都需要一个排序函数。本文提出的是基于pairwise思想的排序方法,即对于一对样本A和B,排序函数决定A是否应当排在B前面。
文章中提出了一种probabilistic cost function来度量样本A排在样本B前面的概率,之后将该函数与神经网络结合,构造了一种名为RankNet的排序网络。
Previous Work
- RankProp
- PRank, kernel PRank, large margin PRank
- Directed graphs
- RankBoost
A Probabilistic Ranking Cost Function
我们用一个模型 f 将输入样本由d维空间变换到1维实数,这样对于样本A和B,模型的输出f(A) > f(B)代表了样本A应当排在B前面。
代价函数的定义由估计概率和真实概率之间的交叉熵决定。
Combining Probabilities
这里有一个定理和一个推论,证明留坑待填
RankNet: Learning to Rank with Neural Nets
将cost function和neural networks结合,构造一个如下式的简单三层DNN。这篇文章的核心在于将cost function拆分成如下的两个子问题
对于第一个样本,进行一次前向传播,记录所有单元的激活值和梯度值;接着对第二个样本,再进行一次前向传播,记录所有单元的激活值和梯度值。那么cost function的梯度由下式给出
实验部分略
文章后续讨论了将该cost function与kernel方法结合的思路,其目标函数为
其中正则项是f在再生核希尔伯特空间下的L2范数。
心得:
- 本文是deep learning领域做LTR问题的开山之作,主要贡献是提出了RankNet的框架,之后做排序的神经网络都采用了这种权值绑定网络的方式。
- 文中提出的probabilistic cost function对应paddlepaddle中的rank_cost layer。该cost function本质上是度量模型输出的两个样本的偏序概率与真实偏序概率的距离。