listwise 的方法考虑了一次查询结果中所有文档的关系,根据损失函数的使用,可以将listwise分成两个大类,第一类是损失函数直接关系到评价指标,这些方法又称为直接优化方法。另一类是间接关系到评价指标。
相似listwise的方法中,结果的label直接关系到排结果的排列。
常用的排序指标如MAP,NDCG ,将在另一篇文章中讲解。
1.直接优化评价函数损失
1.1 评价近似
1.1.1 softrank
在 softrank 中,文章的排序不是直接又评价函数的结果来排序,而是通过引入了一个随机变量。将排序结果认为是随机变量的均值。在这种方式中,一个文章可以被排列在任意位置。对于每个可能的排序计算NDCG值,然后得到NDCG的期望值。
Step1:定义一个得分的分布,x的得分被认为是一个高斯分布。
Step2:定义rank的分布, 比排名靠前的概率可以表示为:
可以被排在位置r的概率 可以表示为:
计算NDCG的期望,使用1-softNDCG作为损失函数:
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,对于所有可能的文章排序的概率:
Listnet 使用K-L 散度来计算预测结果和真实值的差异,作为损失函数:
2.2 listMLE
listMLE 使用K-L 散度来作为损失函数。
网友评论