RankNet与LambdaRank

在使用搜索引擎的过程中,对于某一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σ(sisj)

    由于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,我们使用交叉熵来度量其预测代价,即:

Cij=P¯¯¯ijlogPij(1P¯¯¯ij)log(1Pij)

化简

Cij=12(1+Sij)log11+eσ(si
  • 9
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值