直播推荐、搜索中的召回、相关性、多目标精排、特征、重排 - 多目标精排(3) - loss权重的4种方案

一、多目标学习在推荐系统的应用(MMOE/ESMM/PLE) - 知乎

这篇文章中主要针对回归任务、分类任务两种目标来对不同任务设置不同的参数。博主主要记录下里面的公式推导部分和这样做的原因

(1)

这里为什么可以取高斯分布也就是正态分布,因为高斯分布呈钟形曲线,和回归任务一样,大多数样本的取值也都是集中在一个值上,然后再向两边越来越少。这里的fw(x)从文章中是多目标网络中ysl这一个网络的预测值,正常情况下定义一个高斯分布,很少有把均值定义成变量的,但是这里这个回归任务服从的高斯分布的均值就是个变量fw(x)

(2)

分类任务定义softmax也是正常做法,除了这种定义外,还有sigmoid,但是这里还是softmax对公式推导方便些

(3) 如何求loss,我们这里先参考下分类任务中常见的交叉熵求loss的公式 

简单的交叉熵损失函数,你真的懂了吗? - 知乎

我们如果要求两个目标任务的loss,自然也是对两个两个概率取log,也就是对数似然函数 

上面公式的具体推导,主要是涉及到logMN = logM + logN,log(M/N)=logM-logN这样一些简单的函数运算,博主将这些推导详细的解释了下

再后面将两个任务的loss相加

 博主觉得第2行有点多余,自己修改了一点

第4 5两行,文章中已经给了很详细的推导

文章中最后化简的loss推导部分

(4) 使用的时候看看方法。可以看到前面那么一大段推导,并且将s1 s2定义logx^2,但是使用的时候就是简单定义两个变量

首先是给分类任务2倍的e^(-ctr_log_var)权重,而ysl任务只有e^(-ysl_log_var)权重,给ctr的权重会大一点,而且最终还把两个权重也加进来作为loss的一部分

二、gradNorm,应该不是像上面这样只针对回归任务、分类任务设计的,多目标的时候多个分类任务、多个回归任务、回归分类混杂,都可以使用这种方法,因为是把“模型参数梯度”当做loss_weight的优化方向

具体参考博主写的这篇文章:多任务学习中的梯度归一,GradNorm_learner_ctr的博客-CSDN博客

代码:找到一个写的很好的源码

https://github.com/brianlan/pytorch-grad-norm

gradnorm源码-pytorch实现-机器学习文档类资源-CSDN下载

三、

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值