前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[SIGIR'21] DMTL:召回场景基于蒸馏的多目标学习方案

[SIGIR'21] DMTL:召回场景基于蒸馏的多目标学习方案

作者头像
Houye
发布2021-12-02 16:46:37
1.1K0
发布2021-12-02 16:46:37
举报
文章被收录于专栏:图与推荐图与推荐

1. 背景介绍

推荐系统中,点击率预估是很通用的排序方法。但是,在feeds流中,pCTR只能说明用户点击这个内容的概率,而不能说明用户有多喜欢或者说在点击之后是否有可能阅读或者停留的概率。有些低质量但是标题党的内容,用户就很容易点击。但其实点击完之后,可能并不会阅读。所以,只对点击建模不能保证用户对这些点击过的内容的满意度。在feeds流中,为了提升用户体验,阅读时长也应该被考虑进来。

这篇论文中,作者主要聚焦如何在召回中融入阅读时长。具体实现时,有两个挑战: 1)如果阅读时长为0,不一定是不喜欢,这个和正例里面的阅读时长比较短的还有差异。阅读时长比较短说明确实不怎么喜欢,但是阅读时长为0可能仅仅因为用户没有点击而已(比如因为位置、展示、标题等等原因,用户没有去点击)。直接用0来作为阅读时长的label有可能是有偏的。2)第二个挑战来源于第一个。如果用多任务类似于ESSM来debias的话,那么,如何把多任务用在召回模型上是有点困难的,因为大多数召回模型都是双塔结构的。另外,之前做阅读时长,大部分都是做成回归任务,用mse。这样就和第一个挑战里说的一样,是有偏的。

为了解决该问题,作者提出了名为 DMTL的多任务蒸馏模型。把阅读时长理解为cvr任务,click理解为ctr任务。然后把多任务的学习知识蒸馏到双塔网络中。

2. 方法介绍

2.1 多任务teacher模型

pCTCVR中引用了pCTR。但是如果只去拟合

,是不能保证

拟合到CTR的。所以,作者加了个辅助loss:

综上,整个teacher网络的loss为上述loss之和,具体通过两个权重调整:

2.2 双塔student模型

大多数的深度召回都是用的双塔结构,离线把item 的向量构造好索引。线上给定一个user的vector,用user和item向量做内积,然后用ANN在索引中检索TopK返回。而由于内积只能建模单任务,如果想用多任务建模duration,这样的方法就不能满足了。因此,为了让双塔结构能够具有额外建模duration的能力,作者用了蒸馏来把多任务的知识迁移到双塔网络中。

为了达到上述目标,则把左边的多任务学习任务当做teacher网络,右边的双塔结构当做student网络,用蒸馏把teacher网络的知识迁移到student网络。student网络的loss用KL-散度来定义:

整个模型的loss就是teacher网络和student网络的loss相加,即

训练时为了防止teacher网络被student网络影响,student网络的参数独立于teacher网络训练的。因此当 被引入到stdudent的loss中时,被暂停了梯度。线上serving时,只用student部分来计算user和item的向量,同样,还是离线计算好item的vector和索引。具体使用user的vector作为query,用ANN检索topk的item返回。

3. 实验

3.1 数据集

腾讯看点feeds流上收集的大概亿级的训练样本,百万的测试样本。对于每个用户,正例是曝光点击过的item,负例是从全局按照点击频次随机采样。每个曝光点击的item都有大于等于0的阅读时长,每个负例的duration=0。

3.2 baseline

  • 双塔-回归:把user和item的vector内积后,和duration做回归任务,squared_loss作为损失。
  • 双塔-分类:把user和item的vector内积后,和duration(>50s正例,<=50s负例),做分类任务。
  • 双塔-click:把user和item的vector内积后,和click做(曝光点击正例,其余负例)分类任务。

3.3 评估

对所有方法都评估二分类auc的表现,正例是 点击过且duration 大于50s的是正例,其他是负例。

3.4 参数

teacher网络:experts [1024, 512, 256], 2个experts。其他的nn层是[256, 256]。student网络:隐层 [512, 256, 128]。两个网络的embedding szie都是 30。

3.5 结果

3.5.1 离线评估

  • DSSM-Regression最差:因为它直接拟合了大量的duration=0的负例。
  • DSSM-Classification其次:因为它的负例直接是duration=0,对于没点击和很短的duration的样本没有区分好。
  • DSSM-Click:表明了click对于duration的重要性。但它没学到duration方面的知识,因此比 DMTL还差了点。

3.5.2 在线实验

在线的ab实验用T / M(平均阅读时长)来评估,T 表示所有阅读时长的总和,M 表示所有曝光次数。可以看到在线表现和离线评估结果基本是一致的。其中比较特别的是DSSM-Classification的在线表现比DSSM-Regression更差。作者认为主要是因为缺乏对duration前置信息的建模导致线上预估不准,离用户真实兴趣相差较远。

4. 创新点&&点评

这篇论文中,作者提出了基于蒸馏的多任务学习框架来建模阅读duration来进行召回。其中阅读时长和点击模型的融合方式有一定借鉴意义,召回蒸馏精排的方式也是一种通用的全链路一致性建模方式。

不过论文也存在一定不足。部分对效果影响比较大的因素如loss调权未做过多阐述。消融实验不够完善:例如精排模型的结构是否有必要这么复杂,对召回模型影响又有多大;又或者是否一定需要以蒸馏的方式来召回学习精排,直接引入精排预估分作为soft分效果如何。duration 50s作为阈值的正例判定规则也有些过于粗暴。

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

本文分享自 图神经网络与推荐系统 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档