前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >召回向排序靠齐:多目标排序蒸馏召回

召回向排序靠齐:多目标排序蒸馏召回

作者头像
NewBeeNLP
发布2022-11-11 10:49:15
1.2K0
发布2022-11-11 10:49:15
举报
文章被收录于专栏:NewBeeNLP

作者 | 雨下 整理 | NewBeeNLP

推荐系统一般包含召回、粗排、精排等阶段,每个阶段各司其职。

召回主要是将用户所有可能感兴趣的内容取出来,排序(粗排、精排)主要是预测用户对每条内容感兴趣的程度。召回为整个推荐系统的后续阶段提供数据,保证了效果的上确界。排序对召回提供的数据再更细致化的分析、预测和排序,保证最终用户看到的结果。可以说召回是服务于后续排序模型。

由于召回和排序是推荐的两个阶段,可以说是独立运行的过程。在工业上,做召回和排序的可能是两波人。因此两者的目标可能存在不一致。比如:精排希望给转化率高或者浏览时长高的内容更高的评分,而召回依旧取出用户喜欢点击的内容,最终精排的能力受到了限制。

为了让召回的目标向后续的排序靠齐,我们需要一路以排序模型的目标为目标的召回方法,保证能提供排序模型所需要的数据。

多目标蒸馏召回

腾讯提出了一个多目标MMoE蒸馏DSSM召回的方法DMTL(如图1所示)。

MMoE的两个目标是点击和阅读时长。DSSM只是建模了用户的点击兴趣,召回出用户可能喜欢点击的内容,没有考虑用户对阅读时长较高的内容。因此作者使用MMoE蒸馏DSSM模型,提升大盘的阅读时长。

对于点击任务,正样本是点击的内容,负样本按照点击频率随机采样的。负样本没有使用曝光未点击的样本,毕竟DMTL是一个召回模型,不是排序模型。

对于时长任务,正样本是阅读时长超过50s(所有时长的均值)的点击内容,其它为负样本。

y_i=1

表示点击正样本,

z_i=1

表示时长正样本(即阅读时长超过50s)。

x_i =[u_i,v_i]

是样本

i

的特征,其中

u_i

是用户特征,

v_i

是内容特征。

p(z_i=1|x_i) = p(y_i=1|x_i)p(z_i=1|y_i=1,x_i
p(y_i=1|x_i)

是预测的点击率pCTR,

p(z_i=1|y_i=1,x_i)

是预测的转化率pCVR,

p(z_i=1|x_i)

是pCTCVR。

作者使用MMoE同时学习CTR和CVR,然后pCTCVR蒸馏给DSSM。MMoE是teacher网络,DSSM是student网络。

预测的pCTCVR

p_{ctcvr} = p_{ctr}p_{cvr}

拟合CTVR的loss为交叉熵:

L_d = —\sum z_ilogp_{ctcvr} + (1—z_i)log(1—p_{ctcvr})

拟合CTR的loss为:

L_c = —\sum y_ilogp_{ctcvr} + (1—y_i)log(1—p_{ctcvr})

最终MMoE训练的loss为:

L_{teacher} =w_1 L_d+w_2L_c

为了将CTCVR的分蒸馏给DSSM,首先定义DSSM学习到的

p'_{ctcvr} = sigmod(R(u_i)*S(v_i))

R(u_i)

为用户塔学习到的用户特征,

S(v_i)

为内容塔学习到了内容特征。

蒸馏loss定义为KL散度:

L_{student} = KL(P_{ctcvr}||P'_{ctcvr})

最终loss即为MMoE(teacher网络)和DSSM(student网络)的loss之和。

论文实验也展示了离线的AUC和线上的平均阅读时长都有不错的提升。

离线蒸馏方法

DMTL是同时训练MMoE和DSSM的。如果有大量的数据,训练的时间复杂度较高。我们可以先训练一版MMoE,然后将样本的logit保存下来,该logit可以用于指导DSSM训练。

在推荐系统中,DSSM和MMoE每天都会更新。我们可以将MMoE当天生成的logits保存一下,然后用于第二天DSSM的训练。由于DSSM会继续batch内每个user与所有item的logits,而MMoE 可能没有计算某<user,item>对logits。这时我们可以将精排的打分(比如ctr和cvr分)保存下来。

离线的蒸馏的方法得到的精排分是不及时的,毕竟是昨天产生的,可能与今天线上学习到的分有所区别。但是在真实实践中,发现用昨天的分依旧可以取得不错的结果。

在张俊林:知识蒸馏在推荐系统的应用[3]中,作者提出了很多离线蒸馏的方法,有logits, without-logits(point-wise, pair-wise,list-wise)。作者尝试了point-wise方法,使用的是精排给的排序作为权重。线上在时长、点击、互动等多个指标都有2+%到6+%之间的不同程度的提升作用。

本人也用多目标精排的打分和排序去蒸馏给DSSM,点击率影响不大(可能因为其它的召回模型都是在提升点击率,因此补充了DSSM在点击率上的损失),但是互动率却有很大的提升。

参考

[1] Distillation based Multi-task Learning: A Candidate Generation Model for Improving Reading Duration. [2] Modeling task relationships in multi-task learning with multi-gate mixture-of-experts. [3] 张俊林:知识蒸馏在推荐系统的应用:https://zhuanlan.zhihu.com/p/143155437

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-07-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 NewBeeNLP 微信公众号,前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 多目标蒸馏召回
  • 离线蒸馏方法
  • 参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档