转自:http://blog.csdn.net/u014374284/article/details/49385065, 感谢分享!
LamdaMart 介绍见博客http://blog.csdn.net/huagong_adu/article/details/40710305,感谢分享!
在使用搜索引擎的过程中,对于某一Query(或关键字),搜索引擎会找出许多与Query相关的URL,然后根据每个URL的特征向量对该URL与主题的相关性进行打分并决定最终URL的排序,其流程如下:
排序的好坏完全取决于模型的输出,而模型又由其参数决定,因而问题转换成了如何利用带label的训练数据去获得最优的模型参数w。Ranknet提供了一种基于Pairwise的训练方法,它最早由微软研究院的Chris Burges等人在2005年ICML上的一篇论文Learning to Rank Using Gradient Descent中提出,并被应用在微软的搜索引擎Bing当中。
相关性概率
Cost function是RankNet算法的核心,在介绍Cost function前,我们先定义两个概率:预测相关性概率、真实相关性概率。
-
预测相关性概率
对于任意一个URL对(Ui ,Uj ),模型输出的score分别为si 和sj ,那么根据模型的预测,Ui 比Uj 与Query更相关的概率为:Pij=P(Ui>Uj)=11+e−σ(si−sj)由于RankNet使用的模型一般为神经网络,根据经验sigmoid函数能提供一个比较好的概率评估。参数σ 决定sigmoid函数的形状,对最终结果影响不大。
-
真实相关性概率
对于训练数据中的Ui 和Uj ,它们都包含有一个与Query相关性的真实label,比如Ui 与Query的相关性label为good,Uj 与Query的相关性label为bad,那么显然Ui 比Uj 更相关。我们定义p¯ij 为Ui 比Uj 更相关的真实概率,有p¯ij=12(1+Sij)如果Ui 比Uj 更相关,那么Sij=1 ;如果Ui 不如Uj 相关,那么Sij=−1 ;如果Ui 、Uj 与Query的相关程度相同,那么Sij=0 。
代价函数
对于一个排序,RankNet从各个URL的相对关系来评价排序结果的好坏,排序的效果越好,那么有错误相对关系的pair就越少。所谓错误的相对关系即如果根据模型输出Ui 排在Uj 前面,但真实label为Ui 的相关性小于Uj ,那么就记一个错误pair,RankNet就是以错误的pair最少为优化目标。对于每一个pair,我们使用交叉熵来度量其预测代价,即:
化简