multi task训练torch_推荐算法:Multi-Task之ESMM

Multi-Task是推荐系统必定会面临的问题,业内也有多种处理方式。这里重点介绍一下阿里发表在 SIGIR’2018 的论文《Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate》。分成两部分,速读论文和个人理解。

论文速读

论文是基于share-bottom multi-task learning的,在share-bottom的基础上讲两个关联紧密的task组合成单个学习任务。

论文是基于广告领域的CVR预估,思想非常简洁:CTCVR=CTR * CVR。点击(CTR)、转化(CVR)、点击然后转化(CTCVR)。广告的转化,首先依赖展现和用户点击,在点击的基础上实现转化。但是,用户对一个广告完成转化的可能性,和用户点击这个广告的可能性没有必然联系。理清这层关系后,我们看下基础公式:

点击后转化的概率,等于点击的概率乘转化的概率。

然后我们看下常规的思路会遇到哪些问题:

  1. 转化样本稀疏,稀疏样本通常很难学到比较准确的表达,而且容易过拟合。
  2. 转化样本有偏。训练样本里的转化广告是用户点击基础上的,而未点击的样本我们并不知道它是否会转化。所以在历史转化样本上学习转化率是有偏的。

再看看esmm模型是怎么处理了的:

  1. share-bottom。联合训练,底层共享,能缓解样本稀疏的问题,并且捕捉到点击和转化的相关性。
  2. 利用条件概率,构造loss。捕捉到先点击后转化的物理关系,模型和loss的表示更加贴近样本的真实情况。

网络结构如下:

59cae1bc37629f0dcdae232572e56df2.png

网络结构其实很简单,组网比较容易。改组网的几个关键点:

  1. 底层share-bottom
  2. 整体是两个大的部分,主网络和辅助网络,最终输出pCTCVR = pCVR * pCTR。

Loss如下:

ba02b41e04cb74276446eeef7d3142bc.png

loss的设计是ESMM的关键,主网络loss加最终输出部分的loss。简单的说,就是CTR的loss加CTCVR的loss,模型没有直接监督CVR,而是通过这种间接的方式来学习CVR。具体这么做的原理前面已经提过了,主要是为了消除训练样本和转化率的偏差。

具体使用:

论文里的说法,主要是使用训练的CVR部分。这里两部分模型联合使用也是可以的。

浅谈个人理解

ESMM提供了一种联合训练和消除样本偏差的思路。具体可以根据业务情况变化主任务和辅任务,同时组网结构也有很多可以扩展的地方。

  1. 业务的迁移。很多业务场景可以迁移,比如点击和点击后点赞、观看时长等等。
  2. 组网结构可以优化。在ESMM的loss设计的基础上,组网结构可以进一步细化,比如加入deepFM结构,或者融合google的MMOE(share-bottom替换成MMOE结构,亲测AUC有提升)。
  3. 比起正常的单任务模型训练,个人观察AUC无显著差异。可能和数据集有关。

总的来说ESMM提供了一种很好的有依赖关系的多任务融合思路,可以借鉴并扩展。

这里先埋个MMOE的坑(google有两篇相关的论文),回头再填。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值