推荐算法如何做多目标优化


推荐系统中如果只优化ctr,那么有很多已有的ctr预估模型可以做。但是往往一个优秀的推荐系统除了ctr外还有很多优化的目标,比如观看时长、收藏率、转发率等,那么能训练一个模型,对多个目标同时优化呢。
本文将总结一些该方面的成果和实践

阿里 ESMM

论文名:Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate

CVR 是指从点击到购买的转化,传统的 CVR 预估会存在两个问题:样本选择偏差和稀疏数据
(1)样本选择偏差:模型用用户点击的样本来训练,但是预测却是用的整个样本空间。
(2)数据稀疏问题:用户点击到购买的样本太少。
阿里提出了 ESMM 模型来解决上述两个问题:主要借鉴多任务学习的思路,引入两个辅助的学习任务,分别用来拟合 pCTR 和 pCTCVR。
在这里插入图片描述
该网络结构共有三个子任务,分别用于输出 pCTR、pCVR 和 pCTCVR
在这里插入图片描述
由上面的式子可知,pCVR 可通过 pCTR 和 pCTCVR 推导出来,那么我们只需要关注 pCTR 和 pCTCVR 两个任务即可

对于 pCTR 来说可将有点击行为的曝光事件作为正样本,没有点击行为的曝光事件作为负样本,对于 PCTCVR 来说,将同时有点击行为和购买行为的曝光事件作为正样本,其他作为负样本。
模型的 loss 函数:
在这里插入图片描述
另外两个子网络的 embedding 层是共享的,由于 CTR 任务的训练样本量要远超过 CVR 任务的训练样本量,ESMM 模型中 embedding 层共享的机制能够使得 CVR 子任务也能够从只有展现没有点击的样本中学习,从而能够极缓解训练数据稀疏性问题

阿里 DUPN

论文名:Perceive Your Users in Depth: Learning Universal User Representations from Multiple E-commerce Tasks

多任务学习的优势:可共享一部分网络结构。
在这里插入图片描述

  1. 行为序列层:每个行为都有两部分组成,分别是 item 和 property 项。Item 包括商品 id 和一些 side-information ,Property 项表示此次行为的属性,比如场景 ( 搜索、推荐等场景 ) 时间、类型 ( 点击、购买、加购等 )
  2. Embedding 层:主要多 item 和 property 的特征做处理
    在这里插入图片描述
  3. LSTM 层:得到每一个行为的 Embedding 表示之后,首先通过一个 LSTM 层,把序列信息考虑进来。
  4. Attention 层:区分不同用户行为的重要程度,经过 attention 层得到128维向量,拼接上128维的用户向量,最终得到一个256维向量作为用户的表达。
  5. 下游多任务层:CTR、L2R ( Learning to Rank )、用户达人偏好 FIFP、用户购买力度量 PPP 等。

多任务模型的使用技巧:

  • 天级更新模型:随着时间和用户兴趣的变化,ID 特征的 Embedding 需要不断更新,但每次都全量训练模型的话,需要耗费很长的时间。通常的做法是每天使用前一天的数据做增量学习,这样一方面能使训练时间大幅下降;另一方面可以让模型更贴近近期数据。
  • 模型拆分:由于 CTR 任务是 point-wise 的,如果有 1w 个物品的话,需要计算 1w 次结果,如果每次都调用整个模型的话,其耗费是十分巨大的。其实 user Reprentation 只需要计算一次就好。因此我们会将模型进行一个拆解,使得红色部分只计算一次,而蓝色部分可以反复调用红色部分的结果进行多次计算。

美团"猜你喜欢" 深度学习排序模型

将点击率和下单率拆分出来,网络在最后一个全连接层进行拆分,单独学习对应 Loss 的参数在这里插入图片描述

Google MMoE

论文名:Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts

在这里插入图片描述
模型 (a) 最为常见,两个任务直接共享模型的 bottom 部分,只在最后处理时做区分,然后分别接损失函数。

模型 (b) 是常见的多任务学习模型。将 input 分别输入给三个 Expert,但三个 Expert 并不共享参数。同时将 input 输出给 Gate,Gate 输出每个 Expert 被选择的概率,然后将三个 Expert 的输出加权求和,输出给 Tower。有点 attention 的感觉

模型 © 是作者新提出的方法,对于不同的任务,模型的权重选择是不同的,所以作者为每个任务都配备一个 Gate 模型。

阿里 ESM2

论文名:Conversion Rate Prediction via Post-Click Behaviour Modeling
前面已经介绍过一种基于多任务学习的 CVR 预估模型 ESMM,但对于 CVR 预估来说,ESMM 模型仍面临一定的样本稀疏问题,因为 click 到 buy 的样本非常少。但其实一个用户在购买某个商品之前往往会有一些其他的行为,比如将商品加入购物车或者心愿单。如下图所示:
在这里插入图片描述
文中把加购物车或者心愿单的行为称作 Deterministic Action ( DAction )
在这里插入图片描述
那么该模型的多个任务分别是:
Y1:点击率
Y2:点击到 DAction 的概率
Y3:DAction 到购买的概率
Y4:OAction 到购买的概率

并且从上图看出,模型共有3个 loss,计算过程分别是:

  • pCTR:Impression→Click 的概率是第一个网络的输出。
  • pCTAVR:Impression→Click→DAction 的概率,pCTAVR = Y1 * Y2,由前两个网络的输出结果相乘得到。
  • pCTCVR:Impression→Click→DAction/OAction→Buy 的概率,pCTCVR = CTR * CVR = Y1 * [(1 - Y2) * Y4 + Y2 * Y3]

最终损失函数由三部分加权得到
在这里插入图片描述

YouTube 多目标排序系统

Recommending What Video to Watch Next: A Multitask Ranking System
本文主要解决了视频推荐场景下普遍存在的两个问题:

  • 多任务目标。比如不仅需要预测用户是否会观看外,还希望去预测用户对于视频的评分,是否会关注该视频的上传者,否会分享到社交平台等。
  • 偏置信息。比如用户是否会点击和观看某个视频,并不一定是因为他喜欢,可能仅仅是因为它排在推荐页的最前面,这会导致训练数据产生位置偏置的问题。
    在这里插入图片描述
    两个目标:
  • 预测ctr和观看时长。通过二分类模型来预测用户的点击行为,通过回归模型来预测用户观看视频的时长。
  • 主要预测用户在观看视频后的反馈。其中使用二分类模型来预测用户是否会点击喜欢该视频,而通过回归模型来预测用户对于视频的评分

模型中有两个比较重要的结构:Multi-gate Mixture-of-Experts ( MMoE ) 和消除位置偏置的 shallow tower。
-MMoE 的结构为:
在这里插入图片描述
Shallow tower 的结构为:
在这里插入图片描述
位置偏置信息主要体现在 CTR 预估中,而预测用户观看视频是否会点击喜欢或者用户对视频的评分这些任务,是不需要加入位置偏置信息的

美图

在这里插入图片描述
Multi-task NFwFM 已在美图秀秀社区首页 Feeds 推荐、相关推荐下滑流全量上线。首页 Feeds 点击率+1.93%,关注转化率+2.90%,相关推荐下滑流人均浏览时长+10.33%,关注转化率+9.30%

小结

最后总结下现在多任务学习模型的主要使用方式:

  1. 底层 embedding 和 mlp 参数共享,上层演化出各个任务的分支,最后 loss 函数是各个任务的简单加权和。
  2. 通过多任务之间的关系来建模出新的 loss 函数,比如阿里的 ESSM,ESSM2
  3. 通过 Multi-gate Mixture-of-Experts ( MMoE ) 这种特殊的多任务结构来学习出不同任务的权重,比如 YouTube 的多任务模型
  • 5
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值