我要打十个:多任务学习模型MMoE解读

打遍镇内无敌手的传说不良少女

今天要介绍的是一个多任务学习模型MMoE,如果第一次接触此类模型或是没有相关的研究背景的话,其实容易不太容易理解这种多任务学习的价值所在。
一般来说,大部分人见过更多的都是单任务的模型,即一个模型完成一个任务。如果需要完成多个任务的话,则可以针对每个任务单独训练一个模型,像这样:

单任务学习

似乎完全没有要将多个任务混在一起训练的必要,因为这样极有可能导致参数相互干扰而差于单独训练的效果。

确实,大多数的场景确实没有多任务学习的必要,但是如果你做过推荐系统,就会发现在想要达成某些目标的时候,非得多任务一起上不可。就拿给用户推荐视频为例,我们既希望提高用户的点击率,同时也希望提高视频的播放时长,视频点赞、转发等等... 这些目标的达成并非是简单的相辅相成,更多的可能是相互竞争的关系。要是我们只让模型学习点击率,那么经过训练的模型推荐结果很可能导致标题党和封面党大行其道,真正的好的视频却被雪藏了,这显然不是我们希望看到的。而如果一味的追求高点赞,也可能就忽略了一些相对冷门的或新的佳作。这种对立,对于某些互联网巨头的黄赌毒APP来说尤为严重,那种也许你看起来特别带劲的视频,因为都懂的原因很有可能并不适合转发...因此,我们无法追求某个单一目标的达成,而需要同时优化这些有利于产品良性循环的任务目标,让它们相互平衡,从而提升用户体验,带来和留住更多的用户。

Shared Bottom

说起多任务学习,最为常规的思路就是共享底部最抽象的表示层,然后在上层分化出不同的任务:


Shared Bottom

这实际跟迁移学习有点类似,在图像领域甚是常见,因为图像识别的底层特征往往代表一些像素纹理之类的抽象特征,而跟具体的任务不是特别相关,因此这种低冲突的表示层共享是比较容易出效果的,并且可以减少多任务的计算量。


猫狗识别
猫狗识别共享底层

比如说我们可以很轻松的合并一个识别猫的任务和一个识别狗的任务,因为这两个任务所需要学习的表示很相似,因此同时学好这两个任务是可能的。 但是对于差别比较大的任务来说,比如你用这种简单的共享底层表示的方式将一个识别车子的任务和一个识别狗的任务合到一起,模型瞬间就懵逼了...


狗识别与车识别

其实从直觉上,我们就能感觉识别车和识别狗的任务相对猫狗的识别任务差异打了很多,因此Shared Bottom 的方式就不那么work了。
论文的作者针对这个任务的相似程度和效果做了个实验,得出的结论如图所示:(correlation代表相关程度,越接近1越相关)


任务相关性shared bottom方式的训练效果

他的实验正验证了我们的直觉,任务越相关,这种方式训练效果越好,若是不太相关的任务,效果就有些差强人意了。
于是这对不那么相关任务的multi task学习提出了更高的挑战。

MMoE

为了进行不相关任务的多任务学习,很多人做了很多工作都见效甚微,然后后来就有了Google的这个相当新颖的模型MMoE。


MMoE网络结构

它的脑洞大开之处在于跳出了Shared Bottom那种将整个隐藏层一股脑的共享的思维定式,而是将共享层有意识的(按照数据领域之类的)划分成了多个Expert,并引入了gate机制,得以个性化组合使用共享层。

观察一下上面Shared Bottom的模型结构图和MMoE的图,不难发现,MMoE实际上就是把Shared Bottom层替换成了一个双Gate的MoE层:


Shared Bottom to MoE

我们先来看一下原始的Shared Bottom的方式,假设input为x共享的底层网络为f(x), 然后将其输出喂到各任务独立输出层h^k(x),其中k 表示第k 个任务的独立输出单元,那么,第k个任务的输出y^k即可表示为:
y^k = h^k(f(x))
而MoE共享层将这个大的Shared Bottom网络拆分成了多个小的Expert网络(如图所示,拆成了三个,并且保持参数个数不变,显然分成多少个Expert、每个多少参数,都是可以根据实际情况自己设定的)。我们把第i个Expert网络的运算记为f_i(x),然后Gate操作记为g(x),他是一个n元的softmax值(n是Expert的个数,有几个Expert,就有几元),之后就是常见的每个Expert输出的加权求和,假设MoE的输出为y,那么可以表示为:
y = \sum_{i=1}^n g(x)_if_i(x)
如果只是这样的话,要完成多任务还得像Shared Bottom那样再外接不同的输出层,这样一搞似乎这个MoE层对多任务来说就没什么卵用了,因为它无法根据不同的任务来调整各个Expert的组合权重。所以论文的作者搞了多个Gate,每个任务使用自己独立的Gate,这样便从根源上,实现了网络参数会因为输入以及任务的不同都产生影响。
于是,我们将上面MoE输出稍微改一下,用g^k(x)表示第k个任务的们就得到了MMoE的输出表达:
y^k = \sum_{i=1}^ng^k(x)_if_i(x)

emm...网络结构应该很已经清晰了,当然你也许会比较疑惑gate和Expert到底具体怎么做的,论文也没太说明清楚,然后去看了下相应的代码实现,发现跟我想的完全一样....就是两个非常简单的操作:

  • Gate
    把输入通过一个线性变换映射到nums_expert维,再算个softmax得到每个Expert的权重
  • Expert
    简单的基层全连接网络,relu激活,每个Expert独立权重

至于最后到底要怎么连接,要不要跟论文里一样,这些都是个性化自己调整的东西,随自己整就好了。至于损失怎么算,就是几个任务加权求和就可以了。(暂时没看到有什么更加新颖的方法)

最后我们看一下作者拿MMoE和其他多任务模型做的一个对比:


多任务模型训练效果对比

作者的意思已经再明显不过了,分明就是在说:在座的各位都是垃圾,我要打十个!你们所有的任务都给我一起上吧!!!

总结

总而言之呢,这篇论文给我们提供了一种不需要人为参与的非常高效且有用的多任务学习方式,将人们从人为度量数据或是任务之差异的无解工作上解脱出来,为推荐系统的多目标任务实现提供了吊打从前的强有力的工具。

参考

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,198评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,663评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,985评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,673评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,994评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,399评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,717评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,407评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,112评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,371评论 2 241
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,891评论 1 256
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,255评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,881评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,010评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,764评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,412评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,299评论 2 260

推荐阅读更多精彩内容