背景
多任务学习
1)硬参数共享
多任务学习的硬参数共享框架,都是一个共享层+任务层(shared- bottom),共享层是一组公共参数,可以学习到共同的信息,然后再接一个具体的任务层,比如ctr、cvr预估。
2 ) 软参数共享
在软参数共享中,每个任务都有自己的模型和参数。然后对模型参数之间的距离进行正则化,以鼓励参数相似
MMOE的模型的结构
motivation
shared-bottom对于多个任务不是那么相关的情况,不能很好的学习,mmoe这种通过Moe的结构,前人都是人工定义相关性,进行多任务学习,mmoe通过muti-gate机制自动学习任务相关性。
具体论文细节可以看这篇
梯度更新的问题
多任务学习的一个常见问题就是不同任务之间梯度如何分配?有些任务梯度天然就大,然后占主导地位,如何解决这个问题呢? 下面这篇论文给出一种自动加权的思路:
https://github.com/brianlan/pytorch-grad-norm