深度学习中的多任务学习-multi-learning总结

 

多任务学习(Multi-task learning)的两种模式

深度学习中两种多任务学习模式:隐层参数的硬共享与软共享

  • 隐层参数硬共享,指的是多个任务之间共享网络的同几层隐藏层,只不过在网络的靠近输出部分开始分叉去做不同的任务。
  • 隐层参数软共享,不同的任务使用不同的网络,但是不同任务的网络参数,采用距离(L1,L2)等作为约束,鼓励参数相似化。

Hard 参数共享

共享 Hard 参数是神经网络 MTL 最常用的方法,可以追溯到 [2]。在实际应用中,通常通过在所有任务之间共享隐藏层,同时保留几个特定任务的输出层来实现。

图 1:深度神经网络多任务学习的 Hard 参数共享

共享 Hard 参数大大降低了过拟合的风险。实际上,[3] 表明过拟合共享参数的风险为 O(N)——其中 N 是任务数——小于过拟合特定任务参数,即输出层。这很直观:我们同时学习的工作越多,我们的模型找到一个含有所有任务的表征就越困难,而过拟合我们原始任务的可能性就越小。

Soft 参数共享

另一方面,在共享 Soft 参数时,每个任务都有自己的参数和模型。模型参数之间的距离是正则化的,以便鼓励参数相似化。例如使用 L2 距离进行正则化 [4],而 [5] 使用迹范数(trace norm)。

图 2:深度神经网络多任务学习的 Soft 参数共享

约束深度神经网络 Soft 参数共享的思想受到了 MTL 正则化技术的极大启发,这种思想已经用于其它模型开发,我们将在下面讨论。
 

阿里ESSM多任务模型  

用来训练两个任务的输入x其实是相同的,但是label是不同的。CTR任务预估的是点击y,CTCVR预估的是转化z。因此,我们将(x,y)输入到CTR任务中,得到CTR的预估值,将(x,z)输入到CTCVR任务中,得到CTCVR的预估值,CVCTR/CVR,便得到了CVR的预估值。

 

多任务学习中任务相关性模型MMoE 

(a) Shared-Bottom 结构的模型:多个任务共享隐藏层,每个任务接不通的输出层

(b)MoE结构:将多个独立模型集成到一起,然后接不同的输出层完成不同的任务

(c)MMoE结构:在MoE的基础上,为每一个task设置了一个gate,使不同的任务和不同的数据可以多样化的使用共享层

详解 Google 多任务学习模型 MMoE ( KDD 2018 )

Ref:

深度学习中的多任务学习(Multi-task learning)——keras实现

多任务学习-multi-learning总结

 

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值