【CTR】MMoE-PosBias:Youtube 多任务学习框架

2020-07-21 12:03:03 浏览数 (1)

本篇论文为 Youtube 2019 年的工作《Recommending What Video to Watch Next: A Multitask Ranking System》,发表于 RecSys。

推荐系统中会出现很多挑战,比如多目标问题、选择偏差问题问题等,为了解决这样的挑战,作者提出了 MMoE-PosBias 架构,利用 MMoE 框架解决多目标问题,并利用 Wide&Deep 框架来缓解选择偏差的问题。

MMoE 上一篇论文有过介绍,选择偏差问题我们在之前介绍的阿里妈妈团队的多任务学习算法 ESMM 中也提到过,不过这里主要是位置上的选择偏差。

1.Introduction

推荐系统通常分为召回和排序两个阶段,本篇论文聚焦于推荐系统中的排序过程,召回过程采用 Deep Candidate Generation 模型进行召回。

设计并部署一个真实大规模的视频推荐系统会面临很多挑战,比如说:

  • 多目标问题:视频推荐的目标大体可以分为 engagement objectives(例如点击、播放等)和 satistaction objective(例如点赞、收藏、评分等),这两类目标可能有冲突,比如说,用户喜欢观看的视频和喜欢收藏的视频可能是两种类型的视频;
  • 隐式偏差:用户会点击排名靠前的视频,可能并不是因为他喜欢,而是仅仅是因为其位置靠前。利用这样的样本进行训练会出现 feedback loof 的效果,进一步强化样本偏差。

为了解决这个问题,作者提出了一个高效的多任务神经网络学习架构,如下图所示:

第一眼看起来会比较乱,首先我们可以将其分为上下两部分,上面是系统,下面是 Wide&Deep 模型。

  • Deep 部分用 MMoE 来进行多任务学习,利用多个专家网络和多个 Gate 进行多目标预测,并对多个目标进行线形加权得到最终的目标函数;
  • Wide 部分用浅层模型代替(shallow tower),接收与选择偏差相关的输入,并输出一个标量最终预测的偏差项,并与上层的 user engagement 进行相加,从而减少位置偏差带来的影响。

2.MMoE-PosBias

接下来,我们看一下具体内容。

2.1 Ranking Objective

在多任务排序模型中,作者将目标函数分为两类:engagement objectives 和 satisfaction objectives。前者用于捕获用户的点击观看行为、后者用户通过点赞收藏评分等来捕捉用户的满意程度。

诸多不同不同的目标中,例如点击、点赞作为分类任务,观看时常、视频评分作为回归任务。

最终作者会利用线形加权的方法来整合多个目标函数,并通过微调权重来获得最好的性能。

2.2 Task Relations and Conficts

下图展示了两种多任务模型框架:

左边为一般的基于 hard-parameter sharing 的 MTL 架构,右边是基于 soft-parameter sharing 架构的 MMoE 框架。前者在低相关性的多任务学习中表现欠佳,而后者可以很好的克服这一点。

所以作者使用 MMoE 作为多任务模型的框架,有助于从输入中学习到模块化的信息,从而更好的对多模态特征空间进行建模。

但是直接用 MoE 层的话会显著增大训练和预测的计算量(输入层维度比隐藏层维度大)。

所以利用 MLP 来实现专家网络:

y_{k}=h^{k}left(f^{k}(x)right) \ text{ where }quad f^{k}(x)=sum_{i=1}^{n} g_{(i)}^{k}(x) f_{i}(x) ;; g^k(x)=text{softmax}(W_{g^k}x) \

其中,n 为主任务数,k 某个任务,x 为输入的 Embedding ,

f_i(x)

为第 i 个专家网络,

g(x)

为 gate 层。

2.3 Position Biases

我们再来看一下位置偏差。

有两种方法来处理学习到的位置特征:

  • 直接作为输入;
  • 或者利用 Adversarial learning 将位置作为一个辅助的学习目标来预测,并在反向传播阶段把提督取负,这样主模型便不会依赖位置特征了。

作者的实验表明,直接作为特征进行输入在深层网络中的效果不太好,所以采用了第二种方式来处理位置特征。

位置偏差是选择偏差中非常常见的一种,作者通过增加一个浅层网络来减少由于推荐产生的用户选择偏差,并打破有选择偏差导致导致的反馈循环,其结构如下图所示:

作者利用 shallow tower 去建模偏差,其输入的是与偏差相关的特征(如物品展示位置、用户设备信息等),输出的是一个偏置项标量,加到(左边的) main model 中的,并经过 Sigmoid 函数得到最终的输出。

此外,在学习的时候,为了减少对位置的过分依赖,作者还会对模型所有偏差特征进行 10% 的 dropout。

3.Experiment

来看一下实验部分。

下图是 Youtube 的推荐页面:

离线实验中,分类任务使用 AUC,回归任务使用均方误差。线上任务中,使用 A/B 测试。同时,作者利用线上线下实验来微调模型的超参。

当然,除了这些指标外,作者还会考虑计算成本。

下图展示了不同基准模型和 MMoE 模型的性能对比:

下图展示了每个 expert 对任务的累积概率,可以看到不同 expert 的侧重点是不同的:

下图展示了不同位置的偏差所带来的影响,上半部分表示不同位置的点击率,可以看到位置的对点击率的影响非常大的,而随着位置越靠后,影响越小;下半部分展示了学习到的位置偏差:

下图为线上实验:

4.Conclusion

总结:作者首先介绍了推荐系统面临的两个挑战——多任务学习和选择偏差,为了解决这个问题,作者设计了一个大规模的多目标排序框架——MMoE-Posbias 框架,其采用了 MMoE 架构,并利用 shallow tower 来解决位置偏差问题。最终实验表明,该框架能够在线上真实数据集中取得实质上的进步。

Youtube 的工业界论文比较简洁明了,也没有太多的花样,但在真实部署时必然会遇到很多困难,想要实际应用还是需要仔细挖掘。

5.Reference

  1. 《Recommending What Video to Watch Next: A Multitask Ranking System》

0 人点赞