再理解RankNet算法 前面的一篇博文介绍了学习排序算法(Learning to Rank)中的RankNet算法。如下:http://blog.csdn.net/puqutogether/article/details/42124491 那次的入门对其中的算法流程和基本原理没有深入了解,这次看自动摘要提取算法的时候,里面有一个排序单元,使用到的就是学习排序算法中的RankNet,这个时候才理解了。这就说明,有的时候回过头来看某些算法,你的认识会加深的。 好了,这次主要说一下RankNet这个算法的基本流程和原理。 RankNet算法是从概率的角度解决排序问题。 首先,我们需要求得的是一个排序函数,就是当我们输入样本的特征向量的时候,可以输出该样本的顺序“得分”,实现排序。在RankNet中,排序函数定义为一个三层的神经网络模型。输入层和样本特征维数有关,输出层是一个节点(得分),排序函数定义为:其中权值参数w和偏置参数b的上标表示节点所在的层,下标表示同一层中节点的编号;x_n_k表示特征向量x_n的第k个分量,这是是输入到输入层的。f_x_n的输出就是一个得分。 然后,由于RankNet是一个pairwise的排序学习算法,把样本两两组成一个pair,对于一个pair,有两个概率需要定义,一个是预测概率:其物理意义就是第i个样本排在第j个样本前面的概率,其中的s_i和s_ j的都是前面排序函数的输出得分。还有一个概率是真实概率,定义如下: 其中For a given query, let S_i_ j∈ {0, ±1} be defined to be 1 if document i has been labeled to be more relevant than document j, −1 if document i has been labeled to be less relevant than document j, and 0 if they have the same label. 然后,基于交叉熵函数建立RankNet算法的损失函数,并用梯度下降法解决。如下:上式我们可以化简,如下:(好吧,天气寒冷,手抖……)也就是下面这个式子: 最后,我们让损失函数C对排序函数中的w求导,可以得到:=》=》代入可得损失函数C关于w的偏导了,这样就可以使用梯度下降法了。最终求得排序函数f_x_n。 可以看书,RankNet算法在学习过程中,用到了一对样本之间的关系,主要在预测概率部分,所以它是一个pairwise的方法。参考:http://blog.csdn.net/puqutogether/article/details/42124491From RankNet to LambdaRank to LambdaMART: An Overview Christopher J.C. Burgeshttp://blog.csdn.net/huagong_adu/article/details/40710305

再理解RankNet算法相关推荐

  1. 用人话理解hash算法、特性、唯一性等

    背景 博主在本科的时候曾经参加过数学建模,当初提交参赛论文的时候有两个提交时间点,第一个是提交MD5码的时间,第二个是提交具体参赛论文的时间,当初就很纳闷,直接提交论文不就ok吗?为什么多此一举呢 我 ...

  2. xgboost 正则项_深入理解Boosting算法(4)-XGBoost

    导语:记得第一次使用XGBoost的时候还是2016年,那会的XGBoost工具还不完善,深度模型还没有怎么样火起来,大家用的最多的还是Sklearn里面的GBDT,或者R语言的GBM.后来在工作中也 ...

  3. 理解GBDT算法(三)——基于梯度的版本

     理解GBDT算法(三)--基于梯度的版本 标签: GBDT梯度残差代价函数回归树 2015-03-31 16:13 1395人阅读 评论(3) 收藏 举报 本文章已收录于: 分类: Machin ...

  4. 通俗理解Paxos算法

    维基的简介:Paxos算法是莱斯利·兰伯特(Leslie Lamport,就是 LaTeX 中的"La",此人现在在微软研究院)于1990年提出的一种基于消息传递且具有高度容错特性 ...

  5. 从头到尾彻底理解傅里叶变换算法(下)

    从头到尾彻底理解傅里叶变换算法(上),请看今天第一条. 以下继续: 第三章.复数 复数扩展了我们一般所能理解的数的概念,复数包含了实数和虚数两部分,利用复数的形式可以把由两个变量表示的表达式变成由一个 ...

  6. 从头到尾彻底理解傅里叶变换算法(上)

    从头到尾彻底理解傅里叶变换算法(上) 前言 第一部分.  DFT 第一章.傅立叶变换的由来 第二章.实数形式离散傅立叶变换(Real DFT) 从头到尾彻底理解傅里叶变换算法.下 第三章.复数 第四章 ...

  7. 经典算法研究系列:十、从头到尾彻底理解傅里叶变换算法、下

    经典算法研究系列:十.从头到尾彻底理解傅里叶变换算法.下 作者:July.dznlong   二零一一年二月二十二日 推荐阅读:The Scientist and Engineer's Guide t ...

  8. 经典算法研究系列:十、从头到尾彻底理解傅里叶变换算法、上

     经典算法研究系列:十.从头到尾彻底理解傅里叶变换算法.上 作者:July.dznlong   二零一一年二月二十日 推荐阅读:The Scientist and Engineer's Guide t ...

  9. 如何感性地理解EM算法?

    https://www.jianshu.com/p/1121509ac1dc 如果使用基于最大似然估计的模型,模型中存在隐变量,就要用EM算法做参数估计.个人认为,理解EM算法背后的idea,远比看懂 ...

最新文章

  1. Kubernetes 落地案例|使用 Kubernetes 重新部署全球最大的教育公司
  2. 如何获得阿里技术offer:从《阿里DBA面试题》体味阿里社会招聘
  3. dubbo多网卡时,服务提供者的错误IP注册到注册中心导致消费端连接不上
  4. 6410 gpio控制及接口
  5. ACM思维题训练 Section A
  6. 字符串不替代_TI-Nspire 系列的字符串操作
  7. 9.proc目录下的文件和目录详解
  8. mongodb数据库安装和启动及操作笔记
  9. 人脸关键点: Wing Loss for Robust Facial Landmark Localisation with Convolutional Neural Networks
  10. 敏捷开发一千零一问系列之十八:长期受制于强势客户怎么办?(下)
  11. 推荐阅读啃饼随笔的《玩聚网的案例分析》
  12. wifi下adb连接电脑控制手机屏幕
  13. 【数模】使用SPSS进行聚类分析
  14. 如何查看哪些期刊被SCI收录
  15. android导航栏字体,Android状态栏/导航栏颜色
  16. 多帧图像增强 matlab,MATLAB中图像增强技术的实现
  17. 京东用了哪些大数据平台产品体系?
  18. 岁月温柔-10 妈妈的执念--不肯开空调,坚持使用油汀
  19. 微信公众号开发 微信被动回复,图文回复,图片回复
  20. 日语输入法键盘假名对应表

热门文章

  1. 顺序表的基本操作实验报告_INDIRECT函数从入门到进阶之相同顺序跨表引用
  2. c语言中错误executing,C语言编程中常见问题解读.doc
  3. 隔空投送找不到_嗑技热点对标苹果AirDrop,安卓终于也能隔空投送
  4. Java:继承之super关键字,继承之私有权限,继承之方法重写,继承之object类,继承之简单工厂模式
  5. sql数据库的四大程序设计语言的语句
  6. php语言三个数从小到大排序,求教输入5个数,从小到大排序 的C语言程序?
  7. keras pad_sequences
  8. ROW_NUMBER() OVER (PARTITION BY 字段1 ORDER BY 字段2 DESC)
  9. php中调用脚本,PHP中如何调用RScript脚本(附代码)
  10. 所有库在门不显示封装_COB全天候通透屏,在商业显示中的场景应用