前言

这篇是很久以前学习过的文章,但更多的是从使用代码的角度去学习,对文章的写作方法和结构并没有仔细的研究。现在借着做项目的机会,重新回顾这篇文章,并更多的从学习写作的方面进行阅读。

摘要

多任务学习是建立一个能够完成多个目标和任务的单一模型,重点工作在于研究模型目标和任务之间的相互关系。因此文章提出了一种多门混合专家多任务学习模型MMoE,可以学习任务之间的关系,同时具有门控网络来优化每项任务。实验表明,该模型在关联性较小的任务上表现较好,也可根据训练数据和模型初始化中不同程度的随机性,产生额外的可训练性效益。

1 简介

多任务学习模型被广泛应用于大型推荐系统中。多任务学习模型可以通过正则化和迁移学习提高模型的预测能力,但大多数多任务学习模型对任务之间的关系较为敏感,可能表现还不如单任务学习模型。
文章提出了一种基于MMoE结构的方法,明确建模任务关系,并学习任务特定功能以利用共享表示。它允许自动分配参数以捕获共享任务信息或任务特定信息,避免了为每个任务添加许多新参数的需要。
MMoE使用了一组共享底层多任务DNN结构,成为专家,同时对每一个任务都有一个门控网络。门控网络将具有不同权重的专家集合在一起,再传递到任务的专用塔网络中,这样不同任务的门控网络可以获得不同的专家集合混合模式,从而捕获任务关系。
文章的主要贡献有:

  1. 提出了一个显示建模的多门混合专家模型,可以自动调整模型共享信息和任务的特定信息之间的参数化。
  2. 使用合成数据进行实验,说明任务的相关性如何影响多任务学习的训练,以及MMoE模型是如何提高模型的表达能力和可训练性。
  3. 在真实的推荐系统上进行实验,验证方法和模型的可行性。

2 相关工作

2.1基于DNN网络的多任务学习

广泛使用的多任务学习模型使用了共享底部的模型结构,底部隐藏层在任务之间共享。如图1中的a。
最近的方法不使用共享隐藏层和共享参数,而是在任务特定参数上添加不同类型的约束,这种方法需要更多的特定参数,对于有大量的任务的模型来说需要更多的训练数据。

图1

2.2 子网集合和混合专家

集成模型和子网络集成可以提高模型的性能,因此可以将混合专家的模型转成基本结构块(MoE层),堆叠在DNN网络中。MoE层根据该层在训练时间和服务时间的输入选择子网(专家)。因此该模型不仅具有更强的建模能力,而且通过在门控网络中引入稀疏性降低了计算成本。

2.3 多任务学习应用

可用于多语言翻译系统和大型推荐系统。

3 初步说明

3.1 共享底层多任务模型

对于图1中的a模型,对于K个任务,该模型可以用一个共享底层网络(函数f)和k个塔网络hkh^khk组成。共享底层网络基于输入层,塔式网络基于共享底层的输出构建,然后单独输出yky_kyk​。
对于每个任务k,有:
yk=hk(f(x))y_k=h^k(f(x))yk​=hk(f(x))。

3.2 合成数据的生成

主要通过以下公式来人工合成数据。

3.3 任务相关性的影响

对合成数据进行实验,验证在基础的多任务模型中(图1的a)低任务相关性会影响模型质量。

4 建模方法

4.1 Mixture-of-Experts

Mixture-of-Experts模型可被描述为:

fif_ifi​是n个专家网络,ggg表示整合所有专家结果的门控网络,在n个专家上产生不同的权重。最终输出是所有专家输出的加权和。

4.2 Multi-gate Mixture-of-Experts

Multi-gate Mixture-of-Experts的任务k的输出可表示为:

门控网络是输入带有softmax层的简单线性变换,可表示为:

每个门控网络通过训练数据来学习如何选择要使用的专家网络。在特殊情况下,如果每个门控网络指选择一个具有最高分的专家,则相当于每个门控网络将控件线性的划分成n个区域,每个区域对应一个专家,即只使用这个专家训练得到的参数,经过计算得到最后的预测结果。每个门控网络都可以根据不同任务来选择专家网络的子集,所以即使两个任务并不是十分相关,那么经过 门控网络后也可以得到不同的权重系数,此时,MMoE 可以充分利用部分专家网络的信息,近似于单个任务;而如果两个任务相关性高,那么 门控网络的权重分布相差会不大,会类似于一般的多任务学习。

5 基于合成数据的MMOE

使用了共享底层模型和MMoE模型重复3.3的实验,来验证MMoE模型能够较好处理任务相关性较低的情况。

6 真实数据实验

不同模型对在不同相关性任务下的参数分布,如图2。

图2

第一组数据集的表现,如图3。

图3

第二组的表现,如图4。

图4

大型推荐系统中的表现,如图5。

图5

Gate门控网络在两个任务的不同分布,如图6。

图6

总结

作者提出了一种新的多任务学习方法——MMoE,其通过多个 Gate 门控网络来自适应学习不同数据在不同任务下的与专家子网的权重关系系数,从而在相关性较低的多任务学习中取得不错的成绩。
共享网络节省了大量计算资源,且 Gate 网络参数较少,所以 MMoE 模型很大程度上也保持了计算优势。

Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts相关推荐

  1. #Paper Reading#Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts

    论文题目: Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts 论文地址: ht ...

  2. 【多任务学习】Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts KDD18

    在模型层面理解,我们在单目标中经常会花费大量的精力"找强特征"和"删冗余特征"输入到模型,提高模型效果.那么切换到MTL时,每个task所需要的"强特 ...

  3. MMOE 【Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts】阅读

    发于2018年,论文地址:KDD 2018 | Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-o ...

  4. 论文《Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts》

    论文地址:https://dl.acm.org/doi/pdf/10.1145/3219819.3220007 摘要 常用的多任务学习往往对于任务之间的关系比较敏感,论文提出的MMoE将专家混合结构应 ...

  5. Multi task learning多任务学习背景简介

    2020-06-16 23:22:33 本篇文章将介绍在机器学习中效果比较好的一种模式,多任务学习(Multi task Learning,MTL).已经有一篇机器之心翻译的很好的博文介绍多任务学习了 ...

  6. 多智能体强化学习Multi agent,多任务强化学习Multi task以及多智能体多任务强化学习Multi agent Multi task概述

    概述 在我之前的工作中,我自己总结了一些多智能体强化学习的算法和通俗的理解. 首先,关于题目中提到的这三个家伙,大家首先想到的就是强化学习的五件套: 状态:s 奖励:r 动作值:Q 状态值:V 策略: ...

  7. multi task训练torch_采用single task模型蒸馏到Multi-Task Networks

    论文地址. 这篇论文主要研究利用各个single task model来分别作为teacher model,用knowledge distillation的方法指导一个multi task model ...

  8. human-UAVs teamwork: task planning and deep reinforcement learning

    最近在看human-UAV协作的文章,找到了一篇相关文章2020-Chinese Journal of Aeronautics- Coactive design of explainable agen ...

  9. .NET 中 如果一个Task A正在await另一个Task B,那么Task A是什么状态

    .NET 中 如果一个Task A正在await另一个Task B,那么Task A是什么状态?答案是:WaitingForActivation 新建一个.NET Core控制台程序,输入如下代码: ...

  10. android自定义task,Android Gradle 自定义Task 详解

    一:Gradle 是什么 Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具. 它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于X ...

最新文章

  1. js 获取中文的拼音
  2. BZOJ 3894 Luogu P4313 文理分科 (最小割)
  3. 假设磁盘块与缓冲区大小相同,每个盘块读入缓冲区的时间为10μs,由缓冲区送至用户区的时间是5μs,系统对每个磁盘块数据的处理时间为2μs。若用户需要将大小为10个磁盘块的
  4. flink自定义trigger详解
  5. 《HTML5实战》——1.4 其他API和规范
  6. 使用mcBackup备份Windows 7 Media Center设置
  7. 第 1-2 课:你不知道的基础数据类型和包装类 + 面试题
  8. 查看本机DNS服务器解析地址(hosts)
  9. 51CTO网站博客改版意见寻求
  10. CodeMatic动软自动生成Nhibernate
  11. [教程] 写号+上3G成功,附个人经验补充,写号看此一贴即可,二楼附上radio恢复方法和recovery (来源于http://www.in189.com/thread-94957-1-1.htm)
  12. java创建工厂方法_Java设计模式(八) 之创建型模式(工厂方法模式)
  13. 文本框导入图片并显示到页面上
  14. 网络概念与常见问题全解析(网络面试题 学会这篇 基本都能答上来)
  15. 80老翁谈人生(156):老翁为何笃爱互联网?
  16. 音乐制作软件中文精简版-Nuendo 4 v4.3 WiN
  17. HPA控制器介绍以及实战案例
  18. USB是如何诞生的?
  19. 需求工程:软件建模与分析 读书笔记二
  20. Android多条短信监听不到,Android短信验证码监听,解决onChange多次调用

热门文章

  1. LInux:进程等待之wait() waitpid()
  2. winUSB设备上位机驱动开发环境的搭建
  3. android录音声波动画,Android开发:仿微信 录音声波
  4. git的简介与基本使用远程仓库gitee的创建
  5. Ubuntu20.0.4下使用VLC播放h.265(HEVC)视频缺少hevc解码器
  6. 电脑远程控制,自动重启,断电重启,网络自动连接
  7. Scrolling and zooming chart with ChartScroller
  8. k开头的英文单词计算机专业,英语单词k字头
  9. 【爬虫修炼和实战】二、从requests开始——爬取喜马拉雅全站音频数据(基础篇)
  10. Oracle - 锁