Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
models
提交
97b0adf6
M
models
项目概览
PaddlePaddle
/
models
大约 1 年 前同步成功
通知
222
Star
6828
Fork
2962
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
602
列表
看板
标记
里程碑
合并请求
255
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
models
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
602
Issue
602
列表
看板
标记
里程碑
合并请求
255
合并请求
255
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
97b0adf6
编写于
5月 15, 2017
作者:
D
dong zhihong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
"format image "
上级
0bfa8ea4
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
15 addition
and
23 deletion
+15
-23
ltr/README.md
ltr/README.md
+15
-23
ltr/image/hashring.png
ltr/image/hashring.png
+0
-0
ltr/image/lambdarank.jpg
ltr/image/lambdarank.jpg
+0
-0
ltr/image/learningToRank.jpg
ltr/image/learningToRank.jpg
+0
-0
ltr/image/ranknet.jpg
ltr/image/ranknet.jpg
+0
-0
ltr/image/search-engine-example.png
ltr/image/search-engine-example.png
+0
-0
未找到文件。
ltr/README.md
浏览文件 @
97b0adf6
...
@@ -11,10 +11,9 @@
...
@@ -11,10 +11,9 @@
排序学习技术随着互联网的快速增长而受到越来越多关注,是机器学习中的常见任务。一方面人工排序规则不能处理海量规模的候选数据,另一方面无法为不同渠道的候选数据给于合适的权重,因此排序学习在日常生活中应用非常广泛。排序学习起源于信息检索领域,目前仍然是许多信息检索场景中的核心模块,例如搜索引擎搜索结果排序,推荐系统候选集排序,在线广告排序等等。在本例子中,采用文档检索阐述排序学习模型。
排序学习技术随着互联网的快速增长而受到越来越多关注,是机器学习中的常见任务。一方面人工排序规则不能处理海量规模的候选数据,另一方面无法为不同渠道的候选数据给于合适的权重,因此排序学习在日常生活中应用非常广泛。排序学习起源于信息检索领域,目前仍然是许多信息检索场景中的核心模块,例如搜索引擎搜索结果排序,推荐系统候选集排序,在线广告排序等等。在本例子中,采用文档检索阐述排序学习模型。
<p
align=
"center"
>
<p
align=
"center"
>
<img
src=
"image/search-engine-example.png"
width=
"50%"
><br/>
<img
src=
"search-engine-example.png"
,
style=
"width: 400px;"
>
图1. 排序模型在文档检索的典型应用搜索引擎中的作用
</p>
<br/>
图1 排序模型在文档检索的典型应用搜索引擎中的作用
</p>
假定有一组文档S,文档检索任务是依据和请求的相关性,给出文档排列顺序。查询引擎根据查询请求,排序模型会给每个文档打出分数,依据打分情况倒序排列文档,得到查询结果。在训练模型时,给定一条查询,并给出对应的文档最佳排序和得分。在预测时候,给出查询请求,排序模型生成文档排序。传统的排序学习方法划分为以下三类:
假定有一组文档S,文档检索任务是依据和请求的相关性,给出文档排列顺序。查询引擎根据查询请求,排序模型会给每个文档打出分数,依据打分情况倒序排列文档,得到查询结果。在训练模型时,给定一条查询,并给出对应的文档最佳排序和得分。在预测时候,给出查询请求,排序模型生成文档排序。传统的排序学习方法划分为以下三类:
...
@@ -30,14 +29,13 @@
...
@@ -30,14 +29,13 @@
Listwise方法是直接优化排序列表,输入为单条样本为一个文档排列。通过构造合适的度量函数衡量当前文档排序和最优排序差值,优化度量函数得到排序模型。由于度量函数很多具有非连续性,优化困难。
Listwise方法是直接优化排序列表,输入为单条样本为一个文档排列。通过构造合适的度量函数衡量当前文档排序和最优排序差值,优化度量函数得到排序模型。由于度量函数很多具有非连续性,优化困难。
<p
align=
"center"
>
<img
src=
"learningToRank.jpg"
,
style=
"width :500px;"
>
<br
/>
图2 排序模型三类构造方法
</p>
<p
align=
"center"
>
<img
src=
"image/learningtorank.jpg"
width=
"70%"
><br/>
图2. 排序模型构造的三类方法
</p>
## 实验数据
## 实验数据
本例子中的实验数据采用了排序学习中的基准数据
[
LETOR
](
[http://research.microsoft.com/en-us/um/beijing/projects/letor/LETOR4.0/Data/MQ2007.rar](http://research.microsoft.com/en-us/um/beijing/projects/letor/LETOR4.0/Data/MQ2007.rar
)
)中语料库,部分来自于Gov2网站的查询请求结果,包含了约1700条查询请求结果文档列表,并对文档相关性做出了人工标注。其中,一条查询含有唯一的查询id,对应于多个具有相关性的文档,构成了一次查询请求结果文档列表。每个文档由一个一维数组的特征向量表示,并对应一个人工标注与查询的相关性分数。
本例子中的实验数据采用了排序学习中的基准数据
[
LETOR
](
[http://research.microsoft.com/en-us/um/beijing/projects/letor/LETOR4.0/Data/MQ2007.rar](http://research.microsoft.com/en-us/um/beijing/projects/letor/LETOR4.0/Data/MQ2007.rar
)
)中语料库,部分来自于Gov2网站的查询请求结果,包含了约1700条查询请求结果文档列表,并对文档相关性做出了人工标注。其中,一条查询含有唯一的查询id,对应于多个具有相关性的文档,构成了一次查询请求结果文档列表。每个文档由一个一维数组的特征向量表示,并对应一个人工标注与查询的相关性分数。
...
@@ -50,7 +48,7 @@ score : query id : feature1, feature2, …., featureN.
...
@@ -50,7 +48,7 @@ score : query id : feature1, feature2, …., featureN.
`mq2007`
数据集分别提供了三种类型排序模型的生成格式,需要指定生成格式
`format`
`mq2007`
数据集分别提供了三种类型排序模型的生成格式,需要指定生成格式
`format`
例如
例如
调用接口
```
python
```
python
pairwise_train_dataset
=
functools
.
partial
(
paddle
.
dataset
.
mq2007
.
train
,
format
=
"pairwise"
)
pairwise_train_dataset
=
functools
.
partial
(
paddle
.
dataset
.
mq2007
.
train
,
format
=
"pairwise"
)
...
@@ -60,8 +58,6 @@ for label, left_doc, right_doc in pairwise_train_dataset():
...
@@ -60,8 +58,6 @@ for label, left_doc, right_doc in pairwise_train_dataset():
## 模型概览
## 模型概览
对于排序模型,本样例中提供了PairWise方法的模型RankNet和ListWise方法的模型LambdaRank,分别代表了两类学习方法。PointWise方法的排序模型退化为回归问题,不予赘述。
对于排序模型,本样例中提供了PairWise方法的模型RankNet和ListWise方法的模型LambdaRank,分别代表了两类学习方法。PointWise方法的排序模型退化为回归问题,不予赘述。
...
@@ -101,12 +97,9 @@ $$C=\frac{1}{2}(1-S_{i,j})\sigma (s_{i}-s{j})+log(1+e^{-\sigma (s_{i}-s_{j})})$$
...
@@ -101,12 +97,9 @@ $$C=\frac{1}{2}(1-S_{i,j})\sigma (s_{i}-s{j})+log(1+e^{-\sigma (s_{i}-s_{j})})$$
根据以上推论构造RankNet网络结构,由若干层隐藏层和全连接层构成,如图所示,将文档特征使用隐藏层,全连接层逐层变换,完成了底层特征空间到高层特征空间的变换。其中docA和docB结构对称,分别输入到最终的RankCost层中。
根据以上推论构造RankNet网络结构,由若干层隐藏层和全连接层构成,如图所示,将文档特征使用隐藏层,全连接层逐层变换,完成了底层特征空间到高层特征空间的变换。其中docA和docB结构对称,分别输入到最终的RankCost层中。
<p
align=
"center"
>
<p
align=
"center"
>
<img
src=
"image/ranknet.jpg"
width=
"70%"
><br/>
<img
src=
"ranknet.jpg"
,
style=
"width:400px"
>
图3. RankNet网络结构示意图
</p>
<br
/>
图3 RankNet网络结构示意图
</p>
-
全连接层(fully connected layer) : 指上一层中的每个节点都连接到下层网络。本例子中同样使用paddle.layer.fc实现,注意输入到RankCost层的全连接层输出为1x1的层结构
-
全连接层(fully connected layer) : 指上一层中的每个节点都连接到下层网络。本例子中同样使用paddle.layer.fc实现,注意输入到RankCost层的全连接层输出为1x1的层结构
-
RankCost层: RankCost层是排序网络RankNet的核心,度量docA相关性是否比docB好,给出预测值并和label比较。使用了交叉熵(cross enctropy)作为度量损失函数,使用梯度下降方法进行优化。细节可见
[
RankNet
](
http://icml.cc/2015/wp-content/uploads/2015/06/icml_ranking.pdf
)[
4
]
-
RankCost层: RankCost层是排序网络RankNet的核心,度量docA相关性是否比docB好,给出预测值并和label比较。使用了交叉熵(cross enctropy)作为度量损失函数,使用梯度下降方法进行优化。细节可见
[
RankNet
](
http://icml.cc/2015/wp-content/uploads/2015/06/icml_ranking.pdf
)[
4
]
...
@@ -227,10 +220,9 @@ $$\lambda _{i,j}=\frac{\partial C}{\partial s_{i}}=-\frac{\sigma }{1+e^{\sigma (
...
@@ -227,10 +220,9 @@ $$\lambda _{i,j}=\frac{\partial C}{\partial s_{i}}=-\frac{\sigma }{1+e^{\sigma (
由以上推导可知,LambdaRank网络结构和RankNet结构非常相似。如图所示
由以上推导可知,LambdaRank网络结构和RankNet结构非常相似。如图所示
<p
align=
"center"
>
<p
align=
"center"
>
<img
src=
"image/lambdarank.jpg"
width=
"70%"
><br/>
<img
src=
"lambdarank.jpg"
,
style=
"width : 500px"
>
图4. LambdaRank的网络结构示意图
</p>
<br/>
图4. LambdaRank的网络结构示意图
</p>
一个查询得到的结果文档列表作为一条样本输入到网络中,替换RankCost为LambdaCost层,其他结构与RankNet相同。
一个查询得到的结果文档列表作为一条样本输入到网络中,替换RankCost为LambdaCost层,其他结构与RankNet相同。
...
...
ltr/image/hashring.png
0 → 100644
浏览文件 @
97b0adf6
69.1 KB
ltr/lambdarank.jpg
→
ltr/
image/
lambdarank.jpg
浏览文件 @
97b0adf6
文件已移动
ltr/learningToRank.jpg
→
ltr/
image/
learningToRank.jpg
浏览文件 @
97b0adf6
文件已移动
ltr/ranknet.jpg
→
ltr/
image/
ranknet.jpg
浏览文件 @
97b0adf6
文件已移动
ltr/search-engine-example.png
→
ltr/
image/
search-engine-example.png
浏览文件 @
97b0adf6
文件已移动
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录