RankNet 论文的笔记:Learning to rank using gradient descent.

模型

  • 特征 \(\mathbf x_i \in \mathbb R^d\)
  • 模型函数:\(f: \mathbb R^d \to \mathbb R\)

若 \(f(\mathbf x_i) > f(\mathbf x_j)\) 则表示模型预测 i 排在 j 前面: \(\mathbf x_i \triangleright \mathbf x_j\)。

后验概率 $ P_{ij} = P(\mathbf x_i \triangleright \mathbf x_j)$ 用如下形式:
\[ P_{ij} = \frac{1}{1 + e^{-o_{ij}}} \\
o_{ij} \equiv o_i - o_j \\
o_i \equiv f(\mathbf x_i) \]

损失函数使用交叉熵的形式,并根据上面的定义变形为:
\[ C_{ij} \equiv C(o_{ij}) = -\bar P_{ij} \log P_{ij} - (1 - \bar P_{ij}) \log (1-P_{ij}) \\
= -\bar P_{ij} o_{ij} + \log (1 + e^{o_{ij}}) \]

其中根据样本中两个 item 排序的在前、在后和同序关系,目标取值为:
\[ \bar P_{ij} = \{1, 0.5, 0\} \]

关于假设合理性的讨论

论文中已经证明上述模型假设的一致性、传递性。由于 \(o_{ik} = o_i - o_j + (o_j-o_k) = o_{ij} + o_{jk}\),则容易得到:
\[ P_{ij} = \frac{P_{ij}P_{jk}}{1 + 2P_{ij}P_{jk}- P_{ij} - P_{jk}}\]

  • 自洽性
    上式满足 \(0 < P_{ij} < 1\).

  • 传递性:
    在概率等于 \(p\in \{0, 0,5, 1\}\) 的时候,等号具有传递性:
    \[ P(A \triangleright B) = p, \quad P(B \triangleright C) = p, \\
    \Rightarrow \quad P(A \triangleright C) = P \]

    \(P < 0.5\) 时,小于号传递性:
    \[ P(A \triangleright B) = p, \quad P(B \triangleright C) = p, \\
    \Rightarrow \quad P(A \triangleright C) < P \]

    $ 0.5 < P < 1 $ 时,大于号传递性:
    \[ P(A \triangleright B) = p, \quad P(B \triangleright C) = p, \\
    \Rightarrow \quad P(A \triangleright C) > P \]

    以上的传递不限于两步,经过多步仍然满足。

优模型化

\(o_i\) 的取值使用神经网络模型
[ o_i = g^3 \left( \sum_j w_j^{32} g^2 \left( \sum_k w^{21}_{jk} x_k + b^2_j \right) +b^3_i \right) \equiv g^3_i ]

其中 \(g^3, g^2, w^{32}, w^{21},b^2, b^3\) 分别为第三、第二层激活函数,第三、第二层的权重、第二、第三层偏置。

定义一个 pair 样本的损失为 $ l(o_2-o_1)$ (论文中用 \(f\) 表示,这里换成 \(l\)),则参数的梯度 \(\partial_\alpha l = (\partial_\alpha o_2 - \partial_\alpha o_1)l'\)。注意 \(\partial_\alpha o_2 = \partial_\alpha f(\mathbf x_2)\)

[ \frac{\partial l}{\partial b^3} = l'(g'^3(\mathbf x_2) - g'^3(\mathbf x_1)) \equiv \Delta^3_2 - \Delta^3_1\
\frac{\partial l}{\partial w^{32}i} = \Delta^3_2 g^2_i(\mathbf x_2) - \Delta^3_1 g^2_i(\mathbf x_1) \
\frac{\partial l}{\partial b^2_i} = \Delta^3_2 w^{32}i g'^2_i(\mathbf x_2) - \Delta^3_1 w^{32}i g'^2_i(\mathbf x_1) \equiv \Delta^2{2,i} - \Delta^2{1,i} \
\frac{\partial l}{\partial w^{21}
{ij}} = \Delta^2_{2,i} x_{2,j} - \Delta^2_{1,i} x_{1,j} \ ]

所有参数都可以根据上面的梯度,用梯度下降法来优化。

RankNet的更多相关文章

  1. [笔记]Learning to Rank算法介绍:RankNet,LambdaRank,LambdaMart

    之前的博客:http://www.cnblogs.com/bentuwuying/p/6681943.html中简单介绍了Learning to Rank的基本原理,也讲到了Learning to R ...

  2. 排序学习实践---ranknet方法

    要: 1 背景      随着移动互联网的崛起,越来越多的用户开始习惯于从手机完成吃.喝.玩.乐.衣.食.住.行等各个方面的需求.打开手机,点开手淘.美团等APP,商品玲玲满目,而让用户将所有商品一页 ...

  3. 从ranknet到lamdarank,再到lamdamart

    learn2rank目前基本两个分支,1是神经网络学派ranknet,lamdarank,另一个是决策树学派如gbrank,lamdamart 05年提出ranknet,算分模块是简单的全连接网络,l ...

  4. 机器学习排序算法:RankNet to LambdaRank to LambdaMART

    使用机器学习排序算法LambdaMART有一段时间了,但一直没有真正弄清楚算法中的所有细节. 学习过程中细读了两篇不错的博文,推荐给大家: 梯度提升树(GBDT)原理小结 徐博From RankNet ...

  5. Learning to Rank算法介绍:RankNet,LambdaRank,LambdaMart

    之前的博客:http://www.cnblogs.com/bentuwuying/p/6681943.html中简单介绍了Learning to Rank的基本原理,也讲到了Learning to R ...

  6. Learning to Rank之RankNet算法简介

    排序一直是信息检索的核心问题之一, Learning to Rank(简称LTR)用机器学习的思想来解决排序问题(关于Learning to Rank的简介请见我的博文Learning to Rank ...

  7. Pairwise ranking methods: RankNet与LambdaRank

    转自:http://blog.csdn.net/u014374284/article/details/49385065, 感谢分享! LamdaMart 介绍见博客http://blog.csdn.n ...

  8. 排序学习(learning to rank)中的ranknet pytorch简单实现

    一.理论部分 理论部分网上有许多,自己也简单的整理了一份,这几天会贴在这里,先把代码贴出,后续会优化一些写法,这里将训练数据写成dataset,dataloader样式. 排序学习所需的训练样本格式如 ...

  9. NLP&数据挖掘基础知识

    Basis(基础): SSE(Sum of Squared Error, 平方误差和) SAE(Sum of Absolute Error, 绝对误差和) SRE(Sum of Relative Er ...

随机推荐

  1. LeetCode——Arithmetic Slices

    Question A sequence of number is called arithmetic if it consists of at least three elements and if ...

  2. 测试php语句执行时间

    $start = microtime(true); $elapsed = microtime(true) - $start; echo "That took $elapsed seconds ...

  3. Kettle 数据抽取

    1.创建数据库连接 2.建立转换 3.指定源数据库和目标数据库的字段映射 一定要在「输出」中勾选「指定字段」,然后点按钮「Get All fields」,再「Enter mapping」,在弹出窗口映 ...

  4. vue-cli background iamge

    vue-cli 可以将图片直接放在项目生成的 static 文件夹里,然后在components里面直接采用绝对路径去取就可以了. 在根目录里面都会有一个static目录,这个是用来存放静态文件的,把 ...

  5. 第五章:异步Web服务

    到目前为止,我们已经看到了许多使Tornado成为一个Web应用强有力框架的功能.它的简单性.易用性和便捷性使其有足够的理由成为许多Web项目的不错的选择.然而,Tornado受到最多关注的功能是其异 ...

  6. 英语每日写作---4、VOA慢速英语(翻译+字幕+讲解):专家:城市发展将加剧住房危机

    英语每日写作---4.VOA慢速英语(翻译+字幕+讲解):专家:城市发展将加剧住房危机 一.总结 一句话总结: takes place 发生deal with 处理:应付population grow ...

  7. TestNG,多个场景结合运行Suite.xml

    方法一.首先新增一个.xml文件(经过一段时间的练习,找到其他方法添加XML,如下) 再到文件中添加如下: <suite name = "Selenium school"&g ...

  8. 卡在了“正在设定 ttf-mscorefonts-installer”的解决

    方向键啊鼠标的都不行,其实用tab键就可以选择了.冏死--

  9. Angular----安置物流项目前端框架经验总结

    一.架构方面 (一) Angular框架有service .controller层: 在Angular里面,services作为单例对象在需要到的时候被创建,只有在应用生命周期结束的时候(关闭浏览器) ...

  10. 第十天 1-9 rhel7-文件的归档和压缩

    大纲:文件的归档和压缩1.tar命令的使用及参数解析tar.gz.bz/bz2文件的创建.查看及解压zip/unzip命令的使用 一.文件的归档和压缩 在我们的计算机中,经常会遇到有好多文件名相似或作 ...