1. RankNet的基本思想

RankNet方法就是使用交叉熵作为损失函数,学习出一些模型(例如神经网络、决策树等)来计算每个pair的排序得分,学习模型的过程可以使用梯度下降法。

2. 方法流程

首先,我们要明确RankNet方法的目的就是要学习出一个模型,这个模型就是给文档算法的函数f(d, w)。其中d为文档特征,w为模型参数。

输入:query的许多个文档结果,每个文档需要人为标注得分,等分越高的说明排名越靠前;

输出:打分模型f(d, w)。

Step 1:把query的结果分成pair,计算pair中排名的概率。在pair中,如果Ui排在Uj的前面,概率为:

【注: RankNet是一种Pairwise方法, 定义了文档对<A, B>的概率(假设文档A, B的特征分别为s i ,s j ),其中是神经网络的输出。】

而Ui排在Uj的前面的真实概率计算为:

其中Sij=1表明Ui真实情况就是排在Uj的前面;否则,就是Ui排在Uj的后面。

【即:如果文档A比文档B和查询q更加相关, 则目标概率:  =1, 如果文档B比文档A更相关, 目标函数  =0, 如果A和B同样相关, 则  =0.5.】

    Step 2:交叉熵作为损失函数。

带入有

这个损失函数是用来衡量Pij和Pij_的拟合程度的,当两个文档的不相关时,给与了一定的惩罚,让它们分开。RankNet算法没有使用学习排序中的一些衡量指标直接作为损失函数的原因在于,它们的函数形式都不是很连续,不太好求导,也就不太好用梯度下降法。而交叉熵的函数形式比较适合梯度下降法。

 Step 3:梯度下降法更新迭代求最优的模型参数w。显然,我们需要设置一定的学习步长,不断的更新学习新的w,具体公式如下:

后面就是求损失函数C关于w的偏导计算公式了,如下:

上式中,得分s关于w的偏导和具体的学习模型有关,原始的RankNet方法使用的是神经网络模型。这个需要具体模型,具体分析。

这样我们便直到了如何通过梯度下降法来求RankNet中的打分模型了~

最后我们说一下RankNet算法的一大好处:使用的是交叉熵作为损失函数,它求导方便,适合梯度下降法的框架;而且,即使两个不相关的文档的得分相同时,C也不为零,还是会有惩罚项的。

参看文献:

【1】http://demo.netfoucs.com/puqutogether/article/details/42124491

【2】http://www.tuicool.com/articles/EnEnYv

【3】Learning to Rank using Gradient Descent

RankNet——基本思想相关推荐

  1. 员外带你读论文:From RankNet to LambdaRank to LambdaMART: An Overview

    严格来说,这并不是一篇论文,只是一个  ,里面系统的介绍了三个比较著名的排序模型 ,链接 Rank[1] 本篇博文将分析总结下这三个排序模型.其参考的代码RankNet.LambdaRank[2],L ...

  2. RankNet,LambdaRank,LambdaMart

    1. RankNet RankNet是2005年微软提出的一种pairwise的Learning to Rank算法,它从概率的角度来解决排序问题.RankNet的核心是提出了一种概率损失函数来学习R ...

  3. RankNet - LambdaRank - LambdaMART

    RankNet -> LambdaRank -> LambdaMART Ranking 问题的常见的评价指标如NDCG.MAP等,都是不平滑.不连续.无法求梯度,因此不能直接用梯度下降法求 ...

  4. 算法设计思想(5)— 递归法

    1. 递归概念 递归 Recursion是指在函数的定义中使用函数自身的方法,直观上来看,就是某个函数自己调用自己. ​ 递归有两层含义: 递归问题必须可以分解为若干个规模较小.与原问题形式相同的子问 ...

  5. 卷积神经网络之卷积计算、作用与思想 深度学习

    博客:blog.shinelee.me | 博客园 | CSDN 卷积运算与相关运算 在计算机视觉领域,卷积核.滤波器通常为较小尺寸的矩阵,比如3×33×3.从这个角度看,多层卷积是在进行逐层映射,整 ...

  6. 分治算法的设计思想(二分检索、二分归并排序)

    分治策略思想: 将原问题划分或者归结为规模较小的子问题. 递归或迭代求解每一个问题. 将子问题的解综合得到原问题的解. 性质: 子问题与原问题具有相同的性质. 子问题的求解彼此独立. 划分时子问题的规 ...

  7. AI框架精要:设计思想

    AI框架精要:设计思想 本文主要介绍飞桨paddle平台的底层设计思想,可以帮助用户理解飞桨paddle框架的运作过程,以便于在实际业务需求中,更好的完成模型代码编写与调试及飞桨paddle框架的二次 ...

  8. 算法设计思想(3)— 迭代法

    1. 迭代法基本思想 迭代法的实现,一般需要确定以下三个要点. 1.1 确定迭代变量: 迭代变量一般就是要求解的问题的解,利用迭代递推公式可以不断地由旧值递推出新值.根据问题的不同,迭代变量可以是一个 ...

  9. 算法设计思想(2)— 贪婪法

    1. 贪婪法定义 贪婪法,又称贪心算法,是寻找最优解问题的常用方法,这种方法模式一般将求解过程分成若干个步骤,但每个步骤都应用贪心原则,选取当前状态下最好的或最优的选择(局部最有利的选择),并以此希望 ...

最新文章

  1. 2020年行政区划代码_2020年柳州市行政区划,了解柳州市有几个区,详细数据
  2. 【Java学习】从一个简单的HelloWorld项目中入门maven
  3. winpython使用教程-Win系统PyQt5安装和使用教程
  4. 使用java调用Web天气服务
  5. Linux下c开发 之 线程通信
  6. dnn神经网络_机器学习-浅谈神经网络和Keras的应用
  7. 小程序全局悬浮窗_手机控必须知道的“小白点”技巧,错过真是浪费
  8. 传音控股回应“遭华为起诉侵权”:未收到起诉状 科创板上市不受影响
  9. mongodb 3.4 集群搭建升级版 五台集群
  10. Scratch:海龟绘图(九)
  11. 一步一步搭建vue项目
  12. Expression Blend实例中文教程(11) - 视觉管理器快速入门Visual State Manager(VSM)
  13. Lua内存泄露情况举例
  14. 建模实训报告总结_3d建模实习报告
  15. Thinkpad L430无法识别Trackpoint解决方案
  16. SketchUp:SketchUp草图大师经典案例之利用跟随路径工具工具设计椭球图文教程
  17. python函数长度单位换算_长度单位换算表-在线长度单位转换器
  18. foxmail连接163邮箱服务器,消除Foxmail无法登录163邮箱顽疾
  19. oracle 倒库详细步骤,详细的“倒车入库”步骤来了!一图一解析,照着做考试轻松一把过...
  20. 视频会议软件的使用形式

热门文章

  1. Jackson全面解析--注解全讲解一(@JacksonAnnotation,@JacksonAnnotationsInside,@JacksonInject,@JsonAlias)
  2. APP注册通用用户协议
  3. NetApp存储产品---知识笔记
  4. 对比学习的一个原则3个关键点
  5. 条码软件如何制作渐变色文字
  6. android opencv hu moment,Opencv计算一幅图像的hu矩
  7. MES制造执行系统8大的关键数据,你造吗?
  8. 教育培训行业APP开发功能明细
  9. 文件批量重命名001到100的办法
  10. T+0得ETF指数基金