一、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) P i j = P ( U i > U j ) = 1 1 + e − σ ( s i − s j ) ,其中 σ σ 是个参数。
真实相关性概率
定义真实相关性概率为 Pij⎯⎯⎯⎯⎯⎯=12(1+Sij) P i j ¯ = 1 2 ( 1 + S i j ) ,对于训练数据中的Ui和Uj,它们都包含有一个与Query相关性的真实label,如果Ui比Uj更相关,那么Sij=1;如果Ui不如Uj相关,那么Sij=−1;如果Ui、Uj与Query的相关程度相同,那么Sij=0。
代价函数定义
C(Pij⎯⎯⎯⎯⎯⎯,Pij) C ( P i j ¯ , P i j )
=−∑Ui>Uj,Ui<Uj,Ui=UjPij⎯⎯⎯⎯⎯⎯logPij = − ∑ U i > U j , U i < U j , U i = U j P i j ¯ l o g P i j
=−Pij⎯⎯⎯⎯⎯⎯logPij−(1−Pij⎯⎯⎯⎯⎯⎯)log(1−Pij)−12log12 = − P i j ¯ l o g P i j − ( 1 − P i j ¯ ) l o g ( 1 − P i j ) − 1 2 l o g 1 2
=−Pij⎯⎯⎯⎯⎯⎯logPij−(1−Pij⎯⎯⎯⎯⎯⎯)log(1−Pij) = − P i j ¯ l o g P i j − ( 1 − P i j ¯ ) l o g ( 1 − P i j )
化简如下:
下图展示了 Cij C i j 随 Pij⎯⎯⎯⎯⎯⎯、Pij P i j ¯ 、 P i j 的变化情况:
图中t表示 si−sj s i − s j ,可以看到当 Sij=1 S i j = 1 时,模型预测的 si比sj s i 比 s j 越大,其代价越小; Sij=−1 S i j = − 1 时, si s i 比 sj s j 越小,代价越小; Sij=0 S i j = 0 时,代价的最小值在 si s i 与 sj s j 相等处取得。该代价函数有以下特点:
1)当两个相关性不同的文档算出来的模型分数相同时,损失函数的值大于0,仍会对这对pair做惩罚,使他们的排序位置区分开
2)损失函数是一个类线性函数,可以有效减少异常样本数据对模型的影响,因此具有鲁棒性
总代价
C=∑(i,j)∈ICij C = ∑ ( i , j ) ∈ I C i j ,I表示所有URL pair的集合,对于 (i,j)∈I ( i , j ) ∈ I 的pair,i>j,即 Sij=1 S i j = 1 。
2、梯度下降更新模型参数W
wk:=wk−αdCdwk w k := w k − α d C d w k
dCdwk=∑(i,j)∈I(dcijdsidsidwk+dcijdsjdsjdwk) d C d w k = ∑ ( i , j ) ∈ I ( d c i j d s i d s i d w k + d c i j d s j d s j d w k )
dCijdsi=σ(12(1−sij)−11+eσ(si−sj))=−dCijdsj=λij d C i j d s i = σ ( 1 2 ( 1 − s i j ) − 1 1 + e σ ( s i − s j ) ) = − d C i j d s j = λ i j
dCdwk=∑(i,j)∈I(λijdsidwk−λijdsjdwk)=∑(i,j)∈Iλij(dsidwk−dsjdwk) d C d w k = ∑ ( i , j ) ∈ I ( λ i j d s i d w k − λ i j d s j d w k ) = ∑ ( i , j ) ∈ I λ i j ( d s i d w k − d s j d w k )
令 λi=∑j:(i,j)∈Iλij−∑j:(j,i)∈Iλij λ i = ∑ j : ( i , j ) ∈ I λ i j − ∑ j : ( j , i ) ∈ I λ i j
dCdwk=∑iλidsjdwk d C d w k = ∑ i λ i d s j d w k
综上 wk:=wk−α∑iλidsjdwk w k := w k − α ∑ i λ i d s j d w k
二、LambdaRank
RankNet以错误pair最少为优化目标,然而NDCG或者ERR等评价指标就只关注top k个结果的排序,所以修改cost function如下。
1、Cost function
优化方式与RankNet相似。
三、LambdaMART
以上两个方法都是通过cost function,采用随机梯度下降更新模型参数,使得计算URL的score值在所有URL排序中,属于最优位置。但是lambdamart是用梯度 λij=dCijdsi λ i j = d C i j d s i 建立gradient boosting CART回归树,最后得到回归树的加法模型作为最终模型。下面从简单的模型讲解,一步步推导至lambdaMART。
1、AdaBoost算法
AdaBoost思想就是提高那些被前一轮弱分类器错误分类样本的权值,而降低那些被正确分类样本的权值;加大分类误差率小的弱分类器的权值,使其在表决中起较大的作用,减小分类误差率大的弱分类器的权值,使其在表决中起较小作用。