learning to rank list wise

listwise 的方法考虑了一次查询结果中所有文档的关系,根据损失函数的使用,可以将listwise分成两个大类,第一类是损失函数直接关系到评价指标,这些方法又称为直接优化方法。另一类是间接关系到评价指标。

相似listwise的方法中,结果的label直接关系到排结果的排列。

常用的排序指标如MAP,NDCG ,将在另一篇文章中讲解。

1.直接优化评价函数损失

1.1 评价近似

1.1.1 softrank

在 softrank 中,文章的排序不是直接又评价函数的结果来排序,而是通过引入了一个随机变量。将排序结果认为是随机变量的均值。在这种方式中,一个文章可以被排列在任意位置。对于每个可能的排序计算NDCG值,然后得到NDCG的期望值。

Step1:定义一个得分的分布,x的得分被认为是一个高斯分布。

p(s_j)=N(s_j|f(x_j),\sigma_s^2)

Step2:定义rank的分布,x_ux_v排名靠前的概率可以表示为:

P_{u,v}=\int_0^\infty N(s|f(x_u)-f(x_v),2\sigma_s^2)ds

x_j可以被排在位置r的概率P_j(r) 可以表示为:

P_j^u(r)=P^{u-1}_j(r-1)P_{u,j}+P_j^{u-1}(r)(1-P_{u,j})

计算NDCG的期望,使用1-softNDCG作为损失函数:

L(f;x,y) =1-\frac{1}{Z_m}\sum_{j=1}^m(x^{y_j}-1)\sum_{r=1^m}\eta(r)P_j(r)

1.2 边界优化

1.2.1 SVM

使用SVM的方法优化AP指标 average precision,

通过最大化的正确和错误的结果来得到训练模型,正确和错误分别为1和0.

1.3非平滑优化

1.3.1 AdaRank

也是使用了boost 框架,将rank的结果转化为连续和可微的评价标准。使用exponential loss 来更新目标的值

2.间接优化评价函数损失

2.1 listnet

在 listnet中,损失函数使用排序的概率分布。给定一个排序函数f,对于所有可能的文章排序的概率:

P(\pi|s)=\prod_{j=1}^m\frac{\varphi(s_{\pi(j)})}{\sum_{u=1}^m\varphi(s_{\pi(u)})}

Listnet 使用K-L 散度来计算预测结果和真实值的差异,作为损失函数:

L(f;x,\pi_y)=D(P_y(\pi)||P(\pi|f(w,x))

2.2 listMLE

listMLE 使用K-L 散度来作为损失函数。

L(f;x,\pi_y)=-logP(\pi_y|f(w,x))

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容