提交 a1b2906f 编写于 作者: S Superjom

change Paddle -> PaddlePaddle

上级 cea8fd64
...@@ -2,29 +2,29 @@ ...@@ -2,29 +2,29 @@
<h2>Table of Contents</h2> <h2>Table of Contents</h2>
<div id="text-table-of-contents"> <div id="text-table-of-contents">
<ul> <ul>
<li><a href="#org4966554">1. 背景介绍</a> <li><a href="#orgd3b5e47">1. 背景介绍</a>
<ul> <ul>
<li><a href="#orgea3bf99">1.1. LR vs DNN</a></li> <li><a href="#org281ac04">1.1. LR vs DNN</a></li>
</ul> </ul>
</li> </li>
<li><a href="#orgc22a0fb">2. 数据和任务抽象</a></li> <li><a href="#org7b0794d">2. 数据和任务抽象</a></li>
<li><a href="#orgd330828">3. Wide &amp; Deep Learning Model</a> <li><a href="#orgb7d416a">3. Wide &amp; Deep Learning Model</a>
<ul> <ul>
<li><a href="#org00e7785">3.1. 模型简介</a></li> <li><a href="#org34e65a5">3.1. 模型简介</a></li>
<li><a href="#orgba88a75">3.2. 编写模型输入</a></li> <li><a href="#org9aab6a2">3.2. 编写模型输入</a></li>
<li><a href="#orga84cacc">3.3. 编写 Wide 部分</a></li> <li><a href="#org28eef19">3.3. 编写 Wide 部分</a></li>
<li><a href="#orga2e5de6">3.4. 编写 Deep 部分</a></li> <li><a href="#orga6a8e51">3.4. 编写 Deep 部分</a></li>
<li><a href="#orgd16118a">3.5. 两者融合</a></li> <li><a href="#org447552d">3.5. 两者融合</a></li>
<li><a href="#org3d58a70">3.6. 训练任务的定义</a></li> <li><a href="#orgbf70727">3.6. 训练任务的定义</a></li>
</ul> </ul>
</li> </li>
<li><a href="#org54ed5a6">4. 写在最后</a></li> <li><a href="#orgefd4d16">4. 写在最后</a></li>
</ul> </ul>
</div> </div>
</div> </div>
<a id="org4966554"></a> <a id="orgd3b5e47"></a>
# 背景介绍 # 背景介绍
...@@ -32,7 +32,7 @@ CTR(Click-through rate) 是用来表示用户点击一个特定链接的概率 ...@@ -32,7 +32,7 @@ CTR(Click-through rate) 是用来表示用户点击一个特定链接的概率
通常被用来衡量一个在线广告系统的有效性。 通常被用来衡量一个在线广告系统的有效性。
当有多个广告位时,CTR 预估一般会作为排序的基准。 当有多个广告位时,CTR 预估一般会作为排序的基准。
比如在百度的搜索广告系统,当用户输入一个带商业价值的搜索词(query)时,系统大体上会执行下列步骤: 比如在搜索引擎的广告系统里,当用户输入一个带商业价值的搜索词(query)时,系统大体上会执行下列步骤:
1. 召回满足 query 的广告集合 1. 召回满足 query 的广告集合
2. 业务规则和相关性过滤 2. 业务规则和相关性过滤
...@@ -51,7 +51,7 @@ CTR(Click-through rate) 是用来表示用户点击一个特定链接的概率 ...@@ -51,7 +51,7 @@ CTR(Click-through rate) 是用来表示用户点击一个特定链接的概率
逐渐地接过 CTR 预估任务的大旗。 逐渐地接过 CTR 预估任务的大旗。
<a id="orgea3bf99"></a> <a id="org281ac04"></a>
## LR vs DNN ## LR vs DNN
...@@ -70,10 +70,10 @@ LR 部分和蓝色箭头部分可以直接类比到 NN 中的结构,可以看 ...@@ -70,10 +70,10 @@ LR 部分和蓝色箭头部分可以直接类比到 NN 中的结构,可以看
LR 对于 NN 模型的优势是对大规模稀疏特征的容纳能力,包括内存和计算量等,工业界都有非常成熟的优化方法。 LR 对于 NN 模型的优势是对大规模稀疏特征的容纳能力,包括内存和计算量等,工业界都有非常成熟的优化方法。
本文后面的章节会演示如何使用 Paddle 编写一个结合两者优点的模型。 本文后面的章节会演示如何使用 PaddlePaddle 编写一个结合两者优点的模型。
<a id="orgc22a0fb"></a> <a id="org7b0794d"></a>
# 数据和任务抽象 # 数据和任务抽象
...@@ -89,14 +89,14 @@ LR 对于 NN 模型的优势是对大规模稀疏特征的容纳能力,包括 ...@@ -89,14 +89,14 @@ LR 对于 NN 模型的优势是对大规模稀疏特征的容纳能力,包括
具体的特征处理方法参看 [data process](./dataset.md) 具体的特征处理方法参看 [data process](./dataset.md)
<a id="orgd330828"></a> <a id="orgb7d416a"></a>
# Wide & Deep Learning Model # Wide & Deep Learning Model
谷歌在 16 年提出了 Wide & Deep Learning 的模型框架,用于融合 适合学习抽象特征的 DNN 和 适用于大规模系数特征的 LR 两种模型的优点。 谷歌在 16 年提出了 Wide & Deep Learning 的模型框架,用于融合 适合学习抽象特征的 DNN 和 适用于大规模系数特征的 LR 两种模型的优点。
<a id="org00e7785"></a> <a id="org34e65a5"></a>
## 模型简介 ## 模型简介
...@@ -111,7 +111,7 @@ Wide & Deep Learning Model 可以作为一种相对成熟的模型框架使用 ...@@ -111,7 +111,7 @@ Wide & Deep Learning Model 可以作为一种相对成熟的模型框架使用
而模型右边的 Deep 部分,能够学习特征间的隐含关系,在相同数量的特征下有更好的学习和推导能力。 而模型右边的 Deep 部分,能够学习特征间的隐含关系,在相同数量的特征下有更好的学习和推导能力。
<a id="orgba88a75"></a> <a id="org9aab6a2"></a>
## 编写模型输入 ## 编写模型输入
...@@ -132,7 +132,7 @@ Wide & Deep Learning Model 可以作为一种相对成熟的模型框架使用 ...@@ -132,7 +132,7 @@ Wide & Deep Learning Model 可以作为一种相对成熟的模型框架使用
click = paddle.layer.data(name='click', type=dtype.dense_vector(1)) click = paddle.layer.data(name='click', type=dtype.dense_vector(1))
<a id="orga84cacc"></a> <a id="org28eef19"></a>
## 编写 Wide 部分 ## 编写 Wide 部分
...@@ -142,7 +142,7 @@ Wide & Deep Learning Model 可以作为一种相对成熟的模型框架使用 ...@@ -142,7 +142,7 @@ Wide & Deep Learning Model 可以作为一种相对成熟的模型框架使用
return fc return fc
<a id="orga2e5de6"></a> <a id="orga6a8e51"></a>
## 编写 Deep 部分 ## 编写 Deep 部分
...@@ -159,7 +159,7 @@ Wide & Deep Learning Model 可以作为一种相对成熟的模型框架使用 ...@@ -159,7 +159,7 @@ Wide & Deep Learning Model 可以作为一种相对成熟的模型框架使用
return _input_layer return _input_layer
<a id="orgd16118a"></a> <a id="org447552d"></a>
## 两者融合 ## 两者融合
...@@ -175,7 +175,7 @@ Wide & Deep Learning Model 可以作为一种相对成熟的模型框架使用 ...@@ -175,7 +175,7 @@ Wide & Deep Learning Model 可以作为一种相对成熟的模型框架使用
return fc return fc
<a id="org3d58a70"></a> <a id="orgbf70727"></a>
## 训练任务的定义 ## 训练任务的定义
...@@ -221,7 +221,7 @@ Wide & Deep Learning Model 可以作为一种相对成熟的模型框架使用 ...@@ -221,7 +221,7 @@ Wide & Deep Learning Model 可以作为一种相对成熟的模型框架使用
num_passes=100) num_passes=100)
<a id="org54ed5a6"></a> <a id="orgefd4d16"></a>
# 写在最后 # 写在最后
......
...@@ -4,7 +4,7 @@ CTR(Click-through rate) 是用来表示用户点击一个特定链接的概率 ...@@ -4,7 +4,7 @@ CTR(Click-through rate) 是用来表示用户点击一个特定链接的概率
通常被用来衡量一个在线广告系统的有效性。 通常被用来衡量一个在线广告系统的有效性。
当有多个广告位时,CTR 预估一般会作为排序的基准。 当有多个广告位时,CTR 预估一般会作为排序的基准。
比如在百度的搜索广告系统,当用户输入一个带商业价值的搜索词(query)时,系统大体上会执行下列步骤: 比如在搜索引擎的广告系统里,当用户输入一个带商业价值的搜索词(query)时,系统大体上会执行下列步骤:
1. 召回满足 query 的广告集合 1. 召回满足 query 的广告集合
2. 业务规则和相关性过滤 2. 业务规则和相关性过滤
...@@ -38,7 +38,7 @@ LR 部分和蓝色箭头部分可以直接类比到 NN 中的结构,可以看 ...@@ -38,7 +38,7 @@ LR 部分和蓝色箭头部分可以直接类比到 NN 中的结构,可以看
LR 对于 NN 模型的优势是对大规模稀疏特征的容纳能力,包括内存和计算量等,工业界都有非常成熟的优化方法。 LR 对于 NN 模型的优势是对大规模稀疏特征的容纳能力,包括内存和计算量等,工业界都有非常成熟的优化方法。
本文后面的章节会演示如何使用 Paddle 编写一个结合两者优点的模型。 本文后面的章节会演示如何使用 PaddlePaddle 编写一个结合两者优点的模型。
* 数据和任务抽象 * 数据和任务抽象
我们可以将 `click` 作为学习目标,具体任务可以有以下几种方案: 我们可以将 `click` 作为学习目标,具体任务可以有以下几种方案:
......
...@@ -2,35 +2,34 @@ ...@@ -2,35 +2,34 @@
<h2>Table of Contents</h2> <h2>Table of Contents</h2>
<div id="text-table-of-contents"> <div id="text-table-of-contents">
<ul> <ul>
<li><a href="#org2665a87">1. 数据集介绍</a></li> <li><a href="#orgb697e2a">1. 数据集介绍</a></li>
<li><a href="#org6179fca">2. 特征提取</a> <li><a href="#org912d23e">2. 特征提取</a>
<ul> <ul>
<li><a href="#org42da1c1">2.1. 类别类特征</a></li> <li><a href="#org59e1a78">2.1. 类别类特征</a></li>
<li><a href="#org53b2fea">2.2. ID 类特征</a></li> <li><a href="#orgad86672">2.2. ID 类特征</a></li>
<li><a href="#orgc5d512d">2.3. 数值型特征</a></li> <li><a href="#orgeed4bfc">2.3. 数值型特征</a></li>
<li><a href="#org38ba127">2.4. 特征处理方法</a></li>
</ul> </ul>
</li> </li>
<li><a href="#orgbef0a6e">3. 特征处理</a> <li><a href="#orgbb21fbb">3. 特征处理</a>
<ul> <ul>
<li><a href="#org72e16f2">3.1. 类别型特征</a></li> <li><a href="#org9105d62">3.1. 类别型特征</a></li>
<li><a href="#org3473ce8">3.2. ID 类特征</a></li> <li><a href="#org6131dd5">3.2. ID 类特征</a></li>
<li><a href="#org53745e6">3.3. 交叉类特征</a></li> <li><a href="#org64a5228">3.3. 交叉类特征</a></li>
<li><a href="#org60b0048">3.4. 特征维度</a> <li><a href="#orgdfa3224">3.4. 特征维度</a>
<ul> <ul>
<li><a href="#orgac20756">3.4.1. Deep submodel(DNN)特征</a></li> <li><a href="#org4c15bfb">3.4.1. Deep submodel(DNN)特征</a></li>
<li><a href="#orgbccc155">3.4.2. Wide submodel(LR)特征</a></li> <li><a href="#orga3f2dd5">3.4.2. Wide submodel(LR)特征</a></li>
</ul> </ul>
</li> </li>
</ul> </ul>
</li> </li>
<li><a href="#org758adb3">4. 输入到 Paddle 中</a></li> <li><a href="#org55405cd">4. 输入到 PaddlePaddle 中</a></li>
</ul> </ul>
</div> </div>
</div> </div>
<a id="org2665a87"></a> <a id="orgb697e2a"></a>
# 数据集介绍 # 数据集介绍
...@@ -55,7 +54,7 @@ ...@@ -55,7 +54,7 @@
- C14-C21 &#x2013; anonymized categorical variables - C14-C21 &#x2013; anonymized categorical variables
<a id="org6179fca"></a> <a id="org912d23e"></a>
# 特征提取 # 特征提取
...@@ -79,7 +78,7 @@ ...@@ -79,7 +78,7 @@
- hour (可以转化成数值,也可以按小时为单位转化为类别) - hour (可以转化成数值,也可以按小时为单位转化为类别)
<a id="org42da1c1"></a> <a id="org59e1a78"></a>
## 类别类特征 ## 类别类特征
...@@ -89,7 +88,7 @@ ...@@ -89,7 +88,7 @@
2. 类似词向量,用一个 Embedding Table 将每个类别映射到对应的向量 2. 类似词向量,用一个 Embedding Table 将每个类别映射到对应的向量
<a id="org53b2fea"></a> <a id="orgad86672"></a>
## ID 类特征 ## ID 类特征
...@@ -104,7 +103,7 @@ ID 类特征的特点是稀疏数据,但量比较大,直接使用 One-hot ...@@ -104,7 +103,7 @@ ID 类特征的特点是稀疏数据,但量比较大,直接使用 One-hot
上面的方法尽管存在一定的碰撞概率,但能够处理任意数量的 ID 特征,并保留一定的效果[2]。 上面的方法尽管存在一定的碰撞概率,但能够处理任意数量的 ID 特征,并保留一定的效果[2]。
<a id="orgc5d512d"></a> <a id="orgeed4bfc"></a>
## 数值型特征 ## 数值型特征
...@@ -114,19 +113,12 @@ ID 类特征的特点是稀疏数据,但量比较大,直接使用 One-hot ...@@ -114,19 +113,12 @@ ID 类特征的特点是稀疏数据,但量比较大,直接使用 One-hot
- 用区间分割处理成类别类特征,稀疏化表示,模糊细微上的差别 - 用区间分割处理成类别类特征,稀疏化表示,模糊细微上的差别
<a id="org38ba127"></a> <a id="orgbb21fbb"></a>
## 特征处理方法
具体特征处理方法参看 [data process](./dataset.md)
<a id="orgbef0a6e"></a>
# 特征处理 # 特征处理
<a id="org72e16f2"></a> <a id="org9105d62"></a>
## 类别型特征 ## 类别型特征
...@@ -173,7 +165,7 @@ ID 类特征的特点是稀疏数据,但量比较大,直接使用 One-hot ...@@ -173,7 +165,7 @@ ID 类特征的特点是稀疏数据,但量比较大,直接使用 One-hot
本任务中,类别类特征会输入到 DNN 中使用。 本任务中,类别类特征会输入到 DNN 中使用。
<a id="org3473ce8"></a> <a id="org6131dd5"></a>
## ID 类特征 ## ID 类特征
...@@ -198,7 +190,7 @@ ID 类特征代稀疏值,且值的空间很大的情况,一般用模操作 ...@@ -198,7 +190,7 @@ ID 类特征代稀疏值,且值的空间很大的情况,一般用模操作
return self.max_dim return self.max_dim
<a id="org53745e6"></a> <a id="org64a5228"></a>
## 交叉类特征 ## 交叉类特征
...@@ -215,12 +207,12 @@ LR 模型作为 Wide & Deep model 的 \`wide\` 部分,可以输入很 wide 的 ...@@ -215,12 +207,12 @@ LR 模型作为 Wide & Deep model 的 \`wide\` 部分,可以输入很 wide 的
我们通过组合出两者组合来捕捉这类信息。 我们通过组合出两者组合来捕捉这类信息。
<a id="org60b0048"></a> <a id="orgdfa3224"></a>
## 特征维度 ## 特征维度
<a id="orgac20756"></a> <a id="org4c15bfb"></a>
### Deep submodel(DNN)特征 ### Deep submodel(DNN)特征
...@@ -279,7 +271,7 @@ LR 模型作为 Wide & Deep model 的 \`wide\` 部分,可以输入很 wide 的 ...@@ -279,7 +271,7 @@ LR 模型作为 Wide & Deep model 的 \`wide\` 部分,可以输入很 wide 的
</table> </table>
<a id="orgbccc155"></a> <a id="orga3f2dd5"></a>
### Wide submodel(LR)特征 ### Wide submodel(LR)特征
...@@ -338,9 +330,9 @@ LR 模型作为 Wide & Deep model 的 \`wide\` 部分,可以输入很 wide 的 ...@@ -338,9 +330,9 @@ LR 模型作为 Wide & Deep model 的 \`wide\` 部分,可以输入很 wide 的
</table> </table>
<a id="org758adb3"></a> <a id="org55405cd"></a>
# 输入到 Paddle 中 # 输入到 PaddlePaddle
Deep 和 Wide 两部分均以 \`sparse<sub>binary</sub><sub>vector</sub>\` 的格式[1]输入,输入前需要将相关特征拼合,模型最终只接受 3 个 input, Deep 和 Wide 两部分均以 \`sparse<sub>binary</sub><sub>vector</sub>\` 的格式[1]输入,输入前需要将相关特征拼合,模型最终只接受 3 个 input,
分别是 分别是
......
...@@ -170,7 +170,7 @@ ID 类特征的特点是稀疏数据,但量比较大,直接使用 One-hot ...@@ -170,7 +170,7 @@ ID 类特征的特点是稀疏数据,但量比较大,直接使用 One-hot
|---------------------+-----------| |---------------------+-----------|
| Total | 1,040,000 | | Total | 1,040,000 |
|---------------------+-----------| |---------------------+-----------|
* 输入到 Paddle 中 * 输入到 PaddlePaddle
Deep 和 Wide 两部分均以 `sparse_binary_vector` 的格式[1]输入,输入前需要将相关特征拼合,模型最终只接受 3 个 input, Deep 和 Wide 两部分均以 `sparse_binary_vector` 的格式[1]输入,输入前需要将相关特征拼合,模型最终只接受 3 个 input,
分别是 分别是
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册