美文网首页
learning to rank list wise

learning to rank list wise

作者: 数据小新手 | 来源:发表于2018-11-09 15:55 被阅读0次

    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))

    相关文章

      网友评论

          本文标题:learning to rank list wise

          本文链接:https://www.haomeiwen.com/subject/risoxqtx.html