LambdaRank-支持非平滑损失函数的学习排序算法
为啥要有LambdaRank
首先来看这么一个问题,机器学习一般都会有两个指标,一个叫做优化指标(Optimization Cost),另一个叫做评测指标(Target Cost),其中优化指标是训练时一直优化的目标,他一般都是需要连续可导(否则优化难度很大),另一个评测指标就是模型训练完了之后来评估这个模型的好坏。比如SVM
模型的优化指标就是样本点距离分类面的距离最大化($\underset{w,b}{max} \quad \gamma$),而其评测指标一般都是准确率、F1值或者AUC等。
在信息检索领域其实也是这样,其排序的评测指标一般是NDCG、MAP、ERR等,但是这类指标都是非凸或者不连续,并无法直接进行优化,所以很多排序学习算法的优化一般都是都是Corss Entropy
或者MSE
。
在RankNet中优化的目标是Corss Entropy
,他们是近似于Pairwise Error
,但是这个评估指标并没有考虑排在靠前的文档。