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

2022-11-11 10:49:15 浏览数 (1)

作者 | 雨下 整理 | 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

0 人点赞