一、Ranknet
在使用搜索引擎的过程中,对于某一Query(或关键字),搜索引擎会找出许多与Query相关的URL,然后根据每个URL的特征向量对该URL与主题的相关性进行打分并决定最终URL的排序,其流程如下:
排序的好坏完全取决于模型的输出,而模型又由其参数决定,因而问题转换成了如何利用带label的训练数据去获得最优的模型参数w。Ranknet提供了一种基于Pairwise的训练方法。
1、Cost function
预测相关性概率
对于任意一个URL对(Ui,Uj),模型输出的score分别为si和sj,那么根据模型的预测,Ui比Uj与Query更相关的概率为Pij=P(Ui>Uj)=11+e−σ(si−sj)Pij=P(Ui>Uj)=11+e−σ(si−sj),其中σσ是个参数。
真实相关性概率
定义真实相关性概率为Pij⎯⎯⎯⎯⎯⎯=12(1+Sij)Pij¯=12(1+Sij),对于训练数据中的Ui和Uj,它们都包含有一个与Query相关性的真实label,如果Ui比Uj更相关,那么Sij=1;如果Ui不如Uj相关,那么Sij=−1;如果Ui、Uj与Query的相关程度相同,那么Sij=0。
代价函数定义
C(Pij⎯⎯⎯⎯⎯⎯,Pij)C(Pij¯,Pij)
=−∑Ui>Uj,Ui<Uj,Ui=UjPij⎯⎯⎯⎯⎯⎯logPij=−∑Ui>Uj,Ui<Uj,Ui=UjPij¯logPij
=−Pij⎯⎯⎯⎯⎯⎯logPij−(1−Pij⎯⎯⎯⎯⎯⎯)log(1−Pij)−12log12=−Pij¯logPij−(1−Pij¯)log(1−Pij)−12log12
=−Pij⎯⎯⎯⎯⎯⎯logPij−(1−Pij⎯⎯⎯⎯⎯⎯)log(1−Pij)=−Pij¯logPij−(1−Pij¯)log(1−Pij)
化简如下:

下图展示了 CijCij 随 Pij⎯⎯⎯⎯⎯⎯、PijPij¯、Pij 的变化情况:

图中t表示 si−sjsi−sj ,可以看到当 Sij=1Sij=1 时,模型预测的 si比sjsi比sj 越大,其代价越小; Sij=−1Sij=−1 时, sisi 比 sjsj 越小,代价越小; Sij=0Sij=0 时,代价的最小值在 sisi 与 sjsj 相等处取得。该代价函数有以下特点:
1)当两个相关性不同的文档算出来的模型分数相同时,损失函数的值大于0,仍会对这对pair做惩罚,使他们的排序位置区分开
2)损失函数是一个类线性函数,可以有效减少异常样本数据对模型的影响,因此具有鲁棒性
总代价
C=∑(i,j)∈ICijC=∑(i,j)∈ICij,I表示所有URL pair的集合,对于(i,j)∈I(i,j)∈I的pair,i>j,即Sij=1Sij=1。
2、梯度下降更新模型参数W
wk:=wk−αdCdwkwk:=wk−αdCdwk
dCdwk=∑(i,j)∈I(dcijdsidsidwk+dcijdsjdsjdwk)dCdwk=∑(i,j)∈I(dcijdsidsidwk+dcijdsjdsjdwk)
dCijdsi=σ(12(1−sij)−11+eσ(si−sj))=−dCijdsj=λijdCijdsi=σ(12(1−sij)−11+eσ(si−sj))=−dCijdsj=λij
dCdwk=∑(i,j)∈I(λijdsidwk−λijdsjdwk)=∑(i,j)∈Iλij(dsidwk−dsjdwk)dCdwk=∑(i,j)∈I(λijdsidwk−λijdsjdwk)=∑(i,j)∈Iλij(dsidwk−dsjdwk)
令λi=∑j:(i,j)∈Iλij−∑j:(j,i)∈Iλijλi=∑j:(i,j)∈Iλij−∑j:(j,i)∈Iλij
dCdwk=∑iλidsjdwkdCdwk=∑iλidsjdwk
综上wk:=wk−α∑iλidsjdwkwk:=wk−α∑iλidsjdwk
二、LambdaRank
RankNet以错误pair最少为优化目标,然而NDCG或者ERR等评价指标就只关注top k个结果的排序,所以修改cost function如下。
1、Cost function
优化方式与RankNet相似。
三、LambdaMART
以上两个方法都是通过cost function,采用随机梯度下降更新模型参数,使得计算URL的score值在所有URL排序中,属于最优位置。但是lambdamart是用梯度λij=dCijdsi