MMoE-PosBias 论文精读

论文引用: “Recommending what video to watch next: a multitask ranking system.” Proceedings of the 13th ACM Conference on Recommender Systems. ACM, 2019.

本文是 Youtube 发表在 RecSys 2019 上的文章,主要解决的问题是提升用户的总体满意度,同时减少推荐造成的用户选择偏差对推荐系统的影响。解决这些问题主要的挑战在于:

  1. 视频推荐中包含多个可能互相冲突的目标,难以权衡。视频推荐的目标大体可以分为 engagement objectives (例如点击、播放等)、satistaction objective (例如点赞、收藏、不喜欢等),这两类目标可能有冲突,例如用户点赞的视频可能是他比较喜欢的严肃的视频,但是用户真正播放的视频可能是一些娱乐性比较强的。
  2. 推荐系统会引入一些隐式的偏差,尤其是推荐位置导致的用户选择偏差。用户往往倾向于点位置靠前的视频,而这些视频可能并不是用户真实喜欢的视频。如果推荐模型使用带偏差的用户行为日志进行训练,会进一步强化这种偏差,导致恶性循环。
  3. 多模态特征。多模态特征包括语音、视频 、图像、文本、ID 类特征、连续型特征等。使用多模态的特征有助于信息互补,例如我们希望对低层次内容特征进行映射来跨越语义鸿沟、用于基于内容的过滤;同时将稀疏分布的 ID 类特征用于协同过滤等。
  4. 可扩展性。模型需要考虑线下训练和线上服务的性能,因此在保证学习效果的情况下,尽可能使用简单易扩展的网络架构。

为了应对这些挑战,文章提出了如下图所示的排序网络架构。该网络接收用户当前播放的视频信息和上下文信息,对数百个召回视频进行排序。这里的召回需要是从不同的角度进行召回,例如基于内容相似的召回、基于协同过滤的召回等,文章使用了 Deep Candidate Generation 模型$^{[1]}$等来生成召回。

排序的整体架构服从 Wide & Deep 架构,如上图所示。其中,左边的 wide 层是一个浅层的 tower 网络,用于学习选择偏差,这个偏差在上层会与 user engagement 的输出相加,用于抵消选择偏差;右边的 deep 层是一个 MMoE 的多目标网络(MMoE 的解读可以参考 [2]),用于从不同模态特征中学习不同的专家网络,并学习多个 Gate 来对多个目标进行预测,最后再对多个目标进行权衡,这里不同的目标使用不同的损失函数,对于目标是连续值的,使用 MSE 进行回归,对于目标是离散值的,使用 logLoss 进行分类,最终多个目标的结果使用线性加权的方式计算出最终的得分,权重目标是作者手调的。从训练和预测的工程效率角度出发,文章选择了最简单的 point-wise ranking 方案。

多目标的深度网络是整体架构的主要核心,文章先将所有原始的输入压缩成了一个共享的隐含层,再基于该隐含层构建了 MMoE 的网络,基于这些网络再进一步学习多个目标。其中:

  1. 隐含层的设置主要是为了提高训练的效率。直接用原始特征来训练 MMoE 网络可能对多模态特征的学习更有利,但是由于原始特征的维度过高,直接基于原始特征进行训练代价过高。在学习 Gate 的时候,作者也尝试过直接用原始特征作为输入,但是比用共享隐含层作为输入没有显著提升。

  2. 使用 MoE 层比使用 shared-bottom 策略更有助于学习多模态特征,文章使用了少量的 Expert 网络,这样可以在不同的 Gate 中充分共享 Expert 网络参数,并且工程上效率更高。

  3. 每个目标使用一个 Gate 来对原始特征和专家网络进行激活,每个 task 预测结果的变换函数如下:

    其中, 为共享隐含层, 为第 $i$ 个专家网络的输出,$n$ 为专家网络的个数, 为第 $k$ 个 Gate 的网络参数, 为第 $k$ 个目标的隐含层。

为了减少由于推荐产生的用户选择偏差,文章又增加了一个浅层网络,如上图所示,输入是与偏差相关的特征(简称偏差特征),主要包括物品展示的位置特征和用户的设备信息。学习的时候,为了减少过位置的过分依赖,对所有偏差特征扫行 10% 的 dropout

学习选择偏差的其他策略包括:直接把偏差特征作为输入的一部分进行训练,这种方式主要用于线性网络,在深度网络里效果不好;使用 Adversarial Learning,即将位置作为一个辅助的学习目标来预测。文章的实验结果也表明还是使用浅层网络的效果最好,直接将偏差特征作为输入的效果还不如不加偏差特征。

以上关于模型的部分其实简洁明了,没有太多的花招。但是特征层就难以企及了,而且在工程效率上必然也是困难重重,文章中工程的部分以后在应用的时候可能还需要再细细品读。

参考文献

  1. Covington, Paul , J. Adams , and E. Sargin . “Deep Neural Networks for YouTube Recommendations.Acm Conference on Recommender Systems ACM, 2016:191-198.
  2. MMoE 论文精读. https://guyuecanhui.github.io/2019/11/16/paper-2018-google-mmoe/.
  3. YouTube 多目标排序系统:如何推荐接下来收看的视频. https://www.infoq.cn/article/cZNdKS5ssPiqhjCyKQZ6.