Learning to rank总结

本文深入探讨了Learning to Rank中的Ranknet、LambdaRank和LambdaMART算法,从成本函数、模型参数更新到实际应用。Ranknet通过Pairwise方法训练模型,LambdaRank关注Top K的排序效果,调整代价函数,而LambdaMART则是通过梯度提升建立回归树的加法模型,实现Listwise的优化。文章总结了各种方法的特点及其在排序问题中的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、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σ(sisj)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=UjPijlogPij=−∑Ui>Uj,Ui<Uj,Ui=UjPij¯logPij

=PijlogPij(1Pij)log(1Pij)12log12=−Pij¯logPij−(1−Pij¯)log(1−Pij)−12log12

=PijlogPij(1Pij)log(1Pij)=−Pij¯logPij−(1−Pij¯)log(1−Pij)
化简如下:


下图展示了 CijCij PijPijPij¯、Pij 的变化情况:

图中t表示 sisjsi−sj ,可以看到当 Sij=1Sij=1 时,模型预测的 sisjsi比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(1sij)11+eσ(sisj))=dCijdsj=λijdCijdsi=σ(12(1−sij)−11+eσ(si−sj))=−dCijdsj=λij

dCdwk=(i,j)I(λijdsidwkλijdsjdwk)=(i,j)Iλij(dsidwkdsjdwk)dCdwk=∑(i,j)∈I(λijdsidwk−λijdsjdwk)=∑(i,j)∈Iλij(dsidwk−dsjdwk)

λi=j:(i,j)Iλijj:(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

Cij=log(1+eσ(sisj))|ΔNDCG|Cij=log(1+e−σ(si−sj))|ΔNDCG|

λij=σ1+eσ(sisj)|ΔNDCG|λij=−σ1+eσ(si−sj)|ΔNDCG|

优化方式与RankNet相似。

三、LambdaMART

以上两个方法都是通过cost function,采用随机梯度下降更新模型参数,使得计算URL的score值在所有URL排序中,属于最优位置。但是lambdamart是用梯度λij=dCijdsi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值