Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleRec
提交
0683deac
P
PaddleRec
项目概览
PaddlePaddle
/
PaddleRec
通知
68
Star
12
Fork
5
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
27
列表
看板
标记
里程碑
合并请求
10
Wiki
1
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleRec
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
27
Issue
27
列表
看板
标记
里程碑
合并请求
10
合并请求
10
Pages
分析
分析
仓库分析
DevOps
Wiki
1
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
0683deac
编写于
6月 01, 2020
作者:
F
frankwhzhang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix multitask rerank readme
上级
a4eda52b
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
45 addition
and
65 deletion
+45
-65
models/multitask/esmm/model.py
models/multitask/esmm/model.py
+1
-0
models/multitask/mmoe/readme.md
models/multitask/mmoe/readme.md
+0
-52
models/multitask/readme.md
models/multitask/readme.md
+41
-3
models/rerank/readme.md
models/rerank/readme.md
+3
-10
未找到文件。
models/multitask/esmm/model.py
浏览文件 @
0683deac
...
@@ -46,6 +46,7 @@ class Model(ModelBase):
...
@@ -46,6 +46,7 @@ class Model(ModelBase):
def
net
(
self
,
inputs
,
is_infer
=
False
):
def
net
(
self
,
inputs
,
is_infer
=
False
):
emb
=
[]
emb
=
[]
# input feature data
for
data
in
inputs
[
0
:
-
2
]:
for
data
in
inputs
[
0
:
-
2
]:
feat_emb
=
fluid
.
embedding
(
feat_emb
=
fluid
.
embedding
(
input
=
data
,
input
=
data
,
...
...
models/multitask/mmoe/readme.md
已删除
100644 → 0
浏览文件 @
a4eda52b
# MMoE
## 简介
多任务模型通过学习不同任务的联系和差异,可提高每个任务的学习效率和质量。多任务学习的的框架广泛采用shared-bottom的结构,不同任务间共用底部的隐层。这种结构本质上可以减少过拟合的风险,但是效果上可能受到任务差异和数据分布带来的影响。 论文
[
《Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts》
](
https://www.kdd.org/kdd2018/accepted-papers/view/modeling-task-relationships-in-multi-task-learning-with-multi-gate-mixture-
)
中提出了一个Multi-gate Mixture-of-Experts(MMOE)的多任务学习结构。MMOE模型刻画了任务相关性,基于共享表示来学习特定任务的函数,避免了明显增加参数的缺点。
## 快速开始
PaddleRec内置了demo小数据方便用户快速使用模型,训练命令如下
```
shell
python
-m
paddlerec.run
-m
paddlerec.models.multitask.mmoe
```
## 模型效果复现
根据原论文,我们在开源数据集Census-income Data上验证模型效果
### 二次开发教程
如果采用本地二次开发模式,需要修改config.yaml中的'workspace'为模型的绝对路径
运行命令指定config.yaml的路径
```
shell
python
-m
paddlerec.run
-m
/home/model/config.yaml
# 需要指定config.yaml的路径
```
### 数据下载及预处理
在data/run.sh脚本文件中添加文件的路径,并运行脚本。
```
shell
cd
data
sh run.sh
```
脚本运行后,在config.yaml中修改数据路径dataset.data_path
### 参数
config.yaml中的hyper_parameters部分,batch_size:32, epochs:400
### 效果
两个任务的测试auc分别为:
1.
income
max_mmoe_test_auc_income:0.94937 mean_mmoe_test_auc_income:0.94465
2.
marital
max_mmoe_test_auc_marital:0.99419 mean_mmoe_test_auc_marital:0.99324
models/multitask/readme.md
浏览文件 @
0683deac
...
@@ -9,7 +9,9 @@
...
@@ -9,7 +9,9 @@
*
[
整体介绍
](
#整体介绍
)
*
[
整体介绍
](
#整体介绍
)
*
[
多任务模型列表
](
#多任务模型列表
)
*
[
多任务模型列表
](
#多任务模型列表
)
*
[
使用教程
](
#使用教程
)
*
[
使用教程
](
#使用教程
)
*
[
训练&预测
](
#训练&预测
)
*
[
数据处理
](
#数据处理
)
*
[
训练
](
#训练
)
*
[
预测
](
#预测
)
*
[
效果对比
](
#效果对比
)
*
[
效果对比
](
#效果对比
)
*
[
模型效果列表
](
#模型效果列表
)
*
[
模型效果列表
](
#模型效果列表
)
...
@@ -40,14 +42,50 @@
...
@@ -40,14 +42,50 @@
<img
align=
"center"
src=
"../../doc/imgs/mmoe.png"
>
<img
align=
"center"
src=
"../../doc/imgs/mmoe.png"
>
<p>
<p>
## 使用教程
## 使用教程(快速开始)
### 训练&预测
```
shell
```
shell
python
-m
paddlerec.run
-m
paddlerec.models.multitask.mmoe
# mmoe
python
-m
paddlerec.run
-m
paddlerec.models.multitask.mmoe
# mmoe
python
-m
paddlerec.run
-m
paddlerec.models.multitask.share-bottom
# share-bottom
python
-m
paddlerec.run
-m
paddlerec.models.multitask.share-bottom
# share-bottom
python
-m
paddlerec.run
-m
paddlerec.models.multitask.esmm
# esmm
python
-m
paddlerec.run
-m
paddlerec.models.multitask.esmm
# esmm
```
```
## 使用教程(复现论文)
### 注意
为了方便使用者能够快速的跑通每一个模型,我们在每个模型下都提供了样例数据,并且调整了batch_size等超参以便在样例数据上更加友好的显示训练&测试日志。如果需要复现readme中的效果请按照如下表格调整batch_size等超参,并使用提供的脚本下载对应数据集以及数据预处理。
| 模型 | batch_size | thread_num | epoch_num |
| :------------------: | :--------------------: | :--------------------: | :--------------------: |
| Share-Bottom | 32 | 1 | 400 |
| MMoE | 32 | 1 | 400 |
| ESMM | 64 | 2 | 100 |
### 数据处理
参考每个模型目录数据下载&预处理脚本
```
sh run.sh
```
### 训练
```
cd modles/multitask/mmoe # 进入选定好的排序模型的目录 以MMoE为例
python -m paddlerec.run -m paddlerec.models.multitask.mmoe # 使用内置配置
python -m paddlerec.run -m ./config.yaml # 自定义修改超参后,指定配置文件,使用自定义配置
```
### 预测
```
# 修改对应模型的config.yaml, workspace配置为当前目录的绝对路径
# 修改对应模型的config.yaml,mode配置infer_runner
# 示例: mode: train_runner -> mode: infer_runner
# infer_runner中 class配置为 class: single_infer
# 修改phase阶段为infer的配置,参照config注释
# 修改完config.yaml后 执行:
python -m paddlerec.run -m ./config.yaml # 以MMoE为例
```
## 效果对比
## 效果对比
### 模型效果列表
### 模型效果列表
...
...
models/rerank/readme.md
浏览文件 @
0683deac
...
@@ -9,9 +9,6 @@
...
@@ -9,9 +9,6 @@
*
[
整体介绍
](
#整体介绍
)
*
[
整体介绍
](
#整体介绍
)
*
[
重排序模型列表
](
#重排序模型列表
)
*
[
重排序模型列表
](
#重排序模型列表
)
*
[
使用教程
](
#使用教程
)
*
[
使用教程
](
#使用教程
)
*
[
训练 预测
](
#训练
预测)
*
[
效果对比
](
#效果对比
)
*
[
模型效果列表
](
#模型效果列表
)
## 整体介绍
## 整体介绍
### 融合模型列表
### 融合模型列表
...
@@ -29,15 +26,11 @@
...
@@ -29,15 +26,11 @@
<p>
<p>
## 使用教程
## 使用教程(快速开始)
### 训练 预测
```
shell
```
shell
python
-m
paddlerec.run
-m
paddlerec.models.rerank.listwise
# listwise
python
-m
paddlerec.run
-m
paddlerec.models.rerank.listwise
# listwise
```
```
## 效果对比
## 使用教程(复现论文)
### 模型效果列表
| 数据集 | 模型 | loss | auc |
listwise原论文没有给出训练数据,我们使用了随机的数据,可参考快速开始
| :------------------: | :--------------------: | :---------: |:---------: |
| -- | Listwise | -- | -- |
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录