Learning to Rank with Nonsmooth Cost Functions

Posted by c cm on September 17, 2016

机器学习任务中的两种cost:
1. target cost
2. optimization cost应该让解决问题变得更简单,并尽量接近于target cost

本文中的optimization cost对每一个item在排序定义一个虚拟梯度,绕过由排序带来的问题。


Notation
$s_{ij}$ score of ranking function, i=index of query, j=index of doc returned
$C(s_{ij}, l_{ij})$ l=label

LambdaRank


对于i个查询,doc的排序位置j,如果$\lambda$为正,则应该提高排名来降低C。可见,$\lambda$取决于根据score function排序后的位置。

现在我们需要确定$\lambda$,使得:
1. 对于该$\lambda$,能找到C使得上述梯度式子成立
2. C convex

根据
`
Theorem (Poincare ́ Lemma): If S ⊂ Rn is an open set that is star-shaped with respect to the origin, then every closed form on S is exact.
`
$\lambda$只需要满足:

LambdaRank应用至RankNet

给定一对文档,对于其中一个文档,cost为两者的乘积:

  1. RankNet Cost:

    该计算为pairwise的,只基于该对文档的信息。无论之前排序是否正确,只要$s_j - s_i$增大(如果$s_j$ < $s_i$),cost就会减少。
  2. 假设两个文档排序互换能得到的NDCG gain,$\triangle NDCG$


该计算基于整个查询的返回结果。

两个gradient相乘得到$\lambda$