论文笔记《Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts》
论文链接 MMoE
1、摘要
基于神经网络的多任务学习已经在实际场景如推荐系统中有了大规模应用,例如在电影推荐中,除了要给用户推荐他们可能购买或者观看的电影,还要考虑用户后续对这部电影的评价。通过多任务学习,我们的目标是利用一个模型来学习多个实际业务中的目标,但是,常用的多任务模型的预测质量通常对任务之间的关系很敏感。因此,研究特定于任务的目标与任务间关系之间的建模权衡非常重要。
google推荐团队提出了一种新的多任务学习方法,Multi-gate Mixture-of-Experts (MMoE),明确地通过数据学习任务模型关系。通过在所有任务之间共享专家子模型,使专家混合(MoE)结构适合多任务学习,同时还拥有经过门控网络训练的结构来优化每个任务。为了验证该方法在不同相关度任务数据集上的性能,首先应用到了人为控制任务相关度的数据集,通过实验也表面,任务相关度越小,该方法比当前的baseline表现更好,我们还表明,MMoE结构会带来额外的可训练性好处,具体取决于训练数据和模型初始化中不同程度的随机性。 此外,我们展示了MMoE在包括二进制分类基准和Google大型内容推荐系统在内的实际任务上的性能改进。
2、模型介绍
MMoE结构灵感来自于MoE,MMoE显式地建模任务关系,并学习特定于任务的功能以利用共享表征。 它允许自动分配参数以捕获共享任务信息或特定于任务的信息,而无需为每个任务添加许多新参数。MMoE的骨架结构还是参考了图1(a) shared-bottom模型的多任务DNN结构,对于底层的shared-bottom,上层两个学习任务是共享的,本文的模型结构如图1(c )所示,底部有多个网络块组成,每个网络块称为一个专家,两个门控制网络通过输入原始特征,输出一个softmax后的权重向量,分别对应每个专家,对于不同的任务让每个专家发挥不一样的作用。
2.1 Shared-Bottom Multi-task Model
给定 k 个任务,这个模型由 shared-bottom网络,由函数 fff 表示,以及 kkk 个任务塔网络 hkh^{k}hk 组成,对于任务 kkk,模型可以表示为:yk=hk(f(x))y_k=h^{k}(f(x))yk=hk(f(x))
2.2 Original Mixture-of-Experts (MoE) Model
原始的混合专家模型可以表示为 y=∑i=1ngi(x)fi(x)y=\sum_{i=1}^{n}g_{i}(x)f_{i}(x)y=i=1∑ngi(x)fi(x)
其中 ggg 是控制门网络,g(x)=softmax(WT∗x+b)g(x) = softmax(W^T*x+b)g(x)=softmax(WT∗x+b),输入原始特征,输出是每个专家的权重,并且∑i=1ngi(x)=1\sum_{i=1}^{n}g_i(x)=1∑i=1ngi(x)=1,fif_ifi 是 n 个专家神经网络,通过门控网络 ggg 来集成各个专家的结果。更具体地说,门控网络g根据输入产生n位专家的分布,最终输出是所有专家的输出的加权和。
有文章中将MoE作为一个单元,类似lstm中的cell,用上一个单元的输出作为下一个单元的输入。
2.3 Multi-gate Mixture-of-Experts Model
文章提出了一种新的MoE模型,该模型旨在捕获任务差异,而与共享底部多任务模型相比,不需要明显更多的模型参数。新的模型叫Multi-gate Mixture-of-Experts(MMoE)模型,核心的想法是用MoE层去替换 Shared-Bottom网络,并且额外针对每个任务 kkk,添加了一个新的门空网络 gkg^kgk,更准确的,任务 kkk 的输出为:yk=hk(fk(x))y_{k}=h^{k}(f^{k}(x))yk=hk(fk(x)) 其中fk=∑i=1ngikfi(x)f^{k}=\sum_{i=1}^{n}g_{i}^{k}f_{i}(x)fk=i=1∑ngikfi(x)我们的实现包括具有ReLU激活的相同多层感知器。 门控网络只是带有softmax层的输入的线性变换 gk(x)=softmax(Wgkx)g^{k}(x)=softmax(W_{g^k}x)gk(x)=softmax(Wgkx)每一个门控网络以输入样本为条件来学习选择一部分专家子集。对于多任务学习情况下的灵活参数共享,这是理想的。作为特例,如果仅选择一个具有最高门得分的专家,则每个门控网络实际上会将输入空间线性地分为n个区域,每个区域对应一个专家。MMoE可以通过确定不同门之间的分隔如何相互重叠这种复杂的方式来对任务关系进行建模。如果任务的相关性较低,则共享专家将受到惩罚,而这些任务的门控网络将学会使用不同的专家来代替。相比于 shared-bottom model,MMoE仅仅是多了一些额外的门控网络,增加的门控网络参数基本可以忽略。
3、实验效果
在公开数据集上的表现,可以看到mmoe整体上均优于其他base model
参考文献:
1、https://zhuanlan.zhihu.com/p/55752344
论文笔记《Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts》相关推荐
- 论文笔记之Understanding and Diagnosing Visual Tracking Systems
Understanding and Diagnosing Visual Tracking Systems 论文链接:http://dwz.cn/6qPeIb 本文的主要思想是为了剖析出一个跟踪算法中到 ...
- 《Understanding and Diagnosing Visual Tracking Systems》论文笔记
本人为目标追踪初入小白,在博客下第一次记录一下自己的论文笔记,如有差错,恳请批评指正!! 论文相关信息:<Understanding and Diagnosing Visual Tracking ...
- 论文笔记Understanding and Diagnosing Visual Tracking Systems
最近在看目标跟踪方面的论文,看到王乃岩博士发的一篇分析跟踪系统的文章,将目标跟踪系统拆分为多个独立的部分进行分析,比较各个部分的效果.本文主要对该论文的重点的一个大致翻译,刚入门,水平有限,如有理解错 ...
- 目标跟踪笔记Understanding and Diagnosing Visual Tracking Systems
Understanding and Diagnosing Visual Tracking Systems 原文链接:https://blog.csdn.net/u010515206/article/d ...
- 追踪系统分模块解析(Understanding and Diagnosing Visual Tracking Systems)
追踪系统分模块解析(Understanding and Diagnosing Visual Tracking Systems) PROJECT http://winsty.net/tracker_di ...
- ICCV 2015 《Understanding and Diagnosing Visual Tracking Systems》论文笔记
目录 写在前面 文章大意 一些benchmark 实验 实验设置 基本模型 数据集 实验1 Featrue Extractor 实验2 Observation Model 实验3 Motion Mod ...
- Understanding and Diagnosing Visual Tracking Systems
文章把一个跟踪器分为几个模块,分别为motion model, feature extractor, observation model, model updater, and ensemble po ...
- CVPR 2017 SANet:《SANet: Structure-Aware Network for Visual Tracking》论文笔记
理解出错之处望不吝指正. 本文模型叫做SANet.作者在论文中提到,CNN模型主要适用于类间判别,对于相似物体的判别能力不强.作者提出使用RNN对目标物体的self-structure进行建模,用于提 ...
- ICCV 2017 UCT:《UCT: Learning Unified Convolutional Networks forReal-time Visual Tracking》论文笔记
理解出错之处望不吝指正. 本文模型叫做UCT.就像论文题目一样,作者提出了一个基于卷积神经网络的end2end的tracking模型.模型的整体结构如下图所示(图中实线代表online trackin ...
- CVPR 2018 STRCF:《Learning Spatial-Temporal Regularized Correlation Filters for Visual Tracking》论文笔记
理解出错之处望不吝指正. 本文提出的模型叫做STRCF. 在DCF中存在边界效应,SRDCF在DCF的基础上中通过加入spatial惩罚项解决了边界效应,但是SRDCF在tracking的过程中要使用 ...
最新文章
- 白鸦三次创业反思:公司遇问题 怎么走都对(转)
- luoguP2479 [SDOI2010]捉迷藏
- opencv-python 9.3 图像 ROI
- 内网之windows域相关概念介绍
- Halcon算子:min_max_gray和gray_histo的区别
- vue --- [全家桶] Vuex
- 为什么 0.1 + 0.2 = 0.300000004
- php分页上一页下一页判断,一个分页函数:显示“上一页下一页”等
- 最快的组合数算法之Python实现
- Java自学方法和路线,我万字推荐你这样学
- java项目集成J2Cache(一级缓存ehCache,二级缓存redis)
- 爱心的数学函数方程_数学里有哪些可以示爱的图像?它们的函数方程又是什么?...
- 项目小记录—拼音码demo
- Android专业DJ,著名音乐游戏《DJ英雄》登陆Android Market
- 抖音同款 抖音 城堡 微信背景图,抖音城堡微信背景图
- 《设计模式解析》读书笔记
- JAVA-TOMCAT环境变量的设置方法
- Jekins localhost:8080打不开
- 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数
- 2022 iapp对接类源码 iapp后台php源码