MMOE 简介
MMOE 是一个 multitask 模型
multitask 主要有以下有点:
1. 把几个任务合为一个模型,相比于每个任务各训练一个模型来说,可以节省资源
2. 由于几个任务共享了数据,对于相关性比较大的任务来说,可以使数据学的更充分
multitask 也存在以下几个问题:
1. 对于几个任务共享的参数,不同任务在训练时可能会有冲突,导致参数学不好
2. 模型的迭代变得更复杂了
MMOE 模型和另外两个 MultiTask 模型对比
图 a
图a中的模型是最常用也是最基础的模型,这个模型不同任务共享底层的tower,然后每个任务各自学习一个上层的tower
优缺点分析:
由于多个任务共享底层的tower,可以使底层的信息学习的非常充分,同样的,如歌不同任务间相关性不强,在学习过程中可以发生参数冲突(即同个特征在不同任务中可能是相反的作用)
图 b
为了底层的共享网络对不同任务也能做到个性化,图 b 中的共享网络由多个专家网络组成,并用了一个gate模型去学习不同专家网络的权重,最后每个任务是不同专家网络的加权和
优缺点分析:
优点就是底层共享网络由多个专家网络组成,增加了底层网络的个性化,可以减少参数参数冲突
图 c
图 C 中的网络就是论文提出的 MMOE 网络,和图b中的网络对比,每个任务学了单独的gate
优缺点分析:
优点就是对共享的底部网络增加了个性化,对于相关性比较差的任务也能表现的很好
缺点就是增加了模型的复杂度,而且每个任务都学了一个gate网络,最优解非常多,难以学好