【多任务】——多任务的训练优化

文章介绍了通过任务不确定性对多任务损失函数进行加权的方法,以适应不同难度的任务。该方法基于数据的方差来量化不确定性,并通过学习噪声参数来调整任务权重,从而优化模型性能,尤其在CTR和Dwell时间预测等场景下表现出改善业务指标的效果。然而,实测提升并不显著。
摘要由CSDN通过智能技术生成

多任务,训练
转载自:关于多任务学习中的均衡loss方法之一
相关代码:https://github.com/Mikoto10032/AutomaticWeightedLoss/blob/master/AutomaticWeightedLoss.py
相关论文:
Multi-task learning using uncertainty to weigh losses for scene geometry and semantics
Auxiliary tasks in multi-task learning

1. loss平衡

我们借鉴了任务不确定性对Multi-task Loss加权方法,对已上线的多目标模型,加入动态加权机制。
这里的不确定性指任务依赖型不确定。例如,我们有一份包含了学生复习时间、期中成绩、期末成绩的数据,通过期中成绩预测期末成绩和通过复习时间预测期末成绩这两个任务具备不同的难度,也即有不同的不确定性。那么如何量化这个不确定性呢。假设根据数据 d 训练出任务 t 的模型为 f ,当输入为 x 时,模型对应的输出为 f(x) ;考虑了任务不确定性后,模型的输出为 {f(x) ,σ^2 } ,这个 σ 为数据 d 所自带的方差,用于描述模型在数据上的不确定性。而模型将会以无监督学习的方式学习此方差。
经过推导[9],我们可以得到损失函数:
在这里插入图片描述
可以看出,在每个任务的损失函数中将会学习一个噪声参数。且此方法可以接受多任务(回归或分类均可),并统一不同损失的尺度。这样,我们就可以直接对其相加得到总损失,得到:
在这里插入图片描述
任务不确定性加权的Multi-task Loss,通过把原本的Loss除以 σ^2 ,在一定程度上对任务带来的不确定性消除。而 log(σ^2 ) 起到正则化的作用,防止网络为了最小化Loss而把 σ 预测成很大的值。加上了这个类似正则化项后,只有在原本Loss足够大的时候,σ 值才会增加。通过这种方式,网络就具备了学习任务不确定性的能力。直观上来看,σ 越大,任务的不确定性越大,则任务的权重越小,即噪声大且难学的任务权重会变小。
该方法仅增加了个位数的待训练参数,且不会引入额外的权重超参。同时,仅需要对模型中的Loss函数进行改写既可实现。
在兴趣点预估的MTL时,我们尝试了以任务不确定性对Multi-task Loss进行加权的方法。实践表明,其能帮助模型更好地联合优化Ctr任务与Dwell任务,在业务指标(人均点击、停留时长)上均带来了正向收益。

2. 实测

整个方法的实现上还是很简单的。实测发现,没有很大的提升。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值