前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >推荐广告算法模型之多目标模型

推荐广告算法模型之多目标模型

原创
作者头像
用户2794661
修改2022-06-03 04:25:11
1K0
修改2022-06-03 04:25:11
举报
文章被收录于专栏:程序人生小记程序人生小记

MMoE 的结构优化为每个任务都单独使用一个门控网络。这样的改进可以针对不同任务得到不同的 Experts 权重,从而实现对 Experts 的选择性利用,不同任务对应的门控网络可以学习到不同的 Experts 组合模式,因此模型更容易捕捉到子任务间的相关性和差异性。

1 多目标学习背景

在推荐广告场景中,用户的不同行为代表用户对内容的不同需求和兴趣。点击:用户想看这个内容,点赞:喜欢这个内容,投币:用户爱这个视频,收藏:用户认为这个视频自己还能用到,会反复观看这个视频。因此在对用户进行推荐的时候,我们要综合考虑用户的各种行为,我们需要对用户的各种行为都进行预测,如果单独的对各种行为进行预测,然后再去融合的话,容易过拟合和样本选择偏差,因此将多个任务放在一个模型中,就成为了对用户各种行为去建模的主流做法,好处就是:一定程度上会缓解模型的过拟合,提高了模型的泛化能力;充分利用数据。

2 多目标学习方法

2.1 修改样本权重

对深层目标设置更高的样本权重来用户对内容的喜好度,比如我们的主目标是ctr,当用户*物品是点击时,我们将权重设置为1,当用户*物品是点赞时,我们将权重设置为2,当用户*物品是投币时,我们将权重设置为2.5,,当用户*物品是收藏时,我们将权重设置为3,优点:实现简单,缺点:没有真正对各个目标进行预测,权重大小很难设计。

2.2 多模型分数融合

给每个优化目标单独创建一个模型,然后通过weighted sum融合多个目标,给不同的目标分配不同的权重。优点:模型实现简单,缺点:模型之前独立,不能互相利用各自训练的部分作为先验,容易过拟合。

2.3 多任务学习

2.3.1 hard parameter sharing

实现方式:底层参数统一共享(Shared-Bottom),顶层参数各个模型各自独立。

特点:任务相关性越高,模型的loss可以降到更低。当两个任务相关性没有那么好时(例如,推荐系统排序中的点击率和互动率、点击率和停留时长等),Hard parameter sharing 的模式就不是那么适用了,会损害到一些效果。

2.3.2 MMOE模型

针对share bottom模型结构的缺点,谷歌在2018提出了Multi-gated Mixture of Expert (MMoE)模型[2],该模型引入了多个专家子网络和门控结构,通过门控用不同的专家组合分别去学习不同的目标,使得各个目标能被更好地学习。

19.jpg
19.jpg

特点:MMoE 的结构优化为每个任务都单独使用一个门控网络。这样的改进可以针对不同任务得到不同的 Experts 权重,从而实现对 Experts 的选择性利用,不同任务对应的门控网络可以学习到不同的 Experts 组合模式,因此模型更容易捕捉到子任务间的相关性和差异性。

2.3.3 ESMM模型

由于解决任务序列有依赖关系的多任务建模,文章指出CVR预估模型,预估的正是这个转化概率,它与CTR没有绝对的关系,很多人有一个先入为主的认知,即若user对某item的点击概率很低,则user对这个item的转化概率也肯定低,这是不成立的。更准确的说,CVR预估模型的本质,不是预测“item被点击,然后被转化”的概率(CTCVR),而是“假设item被点击,那么它被转化”的概率(CVR)。这就是不能直接使用全部样本训练CVR模型的原因,因为咱们压根不知道这个信息:那些unclicked的item,假设他们被user点击了,它们是否会被转化。如果直接使用0作为它们的label,会很大程度上误导CVR模型的学习。

认识到点击(CTR)、转化(CVR)、点击然后转化(CTCVR)是三个不同的任务后,我们再来看三者的关联:

[公式]
[公式]

再思考下,ESMM的结构是基于“乘”的关系设计——pCTCVR=pCVR*pCTR,是不是也可以通过“除”的关系得到pCVR,即 pCVR = pCTCVR / pCTR ?例如分别训练一个CTCVR和CTR模型,然后相除得到pCVR,其实也是可以的,但这有个明显的缺点:真实场景预测出来的pCTR、pCTCVR值都比较小,“除”的方式容易造成数值上的不稳定。

损失函数设计为:

特点:解决了样本选择的问题,CVR是在点击的基础上进行训练,训练集只有点击的,实际数据可能有曝光点击和曝光未点击的数据,我们往往把曝光未点击的数据给忽略了,这样就造成了样本选择偏差,训练集和实际数据分布不一致的情况。解决了数据稀疏的问题。因为我们现在在全样本空间上进行训练,不是只在点击的样本上进行训练,所以样本就多了很多,所有样本可以进行辅助更新CVR网络中的Embedding,这样Embedding向量就会训练的更加充分。ESMM还提出子网络MLP可以替换,为我们提供了一种可扩展的多任务模型架构。

2.3.4 PLE

在MMOE的基础上,分离了任务共享专家部分和任务独享专家部分,并提出了CGC(如下图所示)。顶部是一些和任务相关的多层塔网络,底部是一些专家模块,每个专家模块由多个专家网络组成。专家模块分为两类,一类是任务共享的专家模块,负责学习任务的共享模式,一类是任务独享的专家模块,负责学习任务的独享模式。每个塔网络从所有专家模块(共享专家模块和独享专家模块)学习知识。

特点:多任务学习中往往存在跷跷板现象,也就是说,多任务学习相对于多个单任务学习的模型,往往能够提升一部分任务的效果,同时牺牲另外部分任务的效果。即使通过MMoE这种方式减轻负迁移现象,跷跷板现象仍然是广泛存在的。

参考文献

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2 多目标学习方法
    • 2.1 修改样本权重
      • 2.2 多模型分数融合
        • 2.3 多任务学习
          • 2.3.1 hard parameter sharing
            • 2.3.2 MMOE模型
            • 2.3.3 ESMM模型
            • 2.3.4 PLE
        • 参考文献
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档