readme.md 1.7 KB
Newer Older
F
frankwhzhang 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
# 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上验证模型效果

F
frankwhzhang 已提交
17 18 19 20 21 22 23 24 25 26 27 28 29
### 数据下载及预处理

数据地址: [Census-income Data](https://archive.ics.uci.edu/ml/machine-learning-databases/census-income-mld/census.tar.gz )

数据解压后, 在data/run.sh脚本文件中添加文件的路径,并运行脚本。

```shell
cd data
sh run.sh
```

脚本运行后,在config.yaml中修改数据路径dataset.data_path

F
frankwhzhang 已提交
30
### 参数
F
frankwhzhang 已提交
31

F
frankwhzhang 已提交
32 33 34 35 36
config.yaml中的hyper_parameters部分,batch_size:32, epochs:400

### 效果

两个任务的测试auc分别为:
F
frankwhzhang 已提交
37 38 39 40 41 42 43 44

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