返回介绍

数学基础

统计学习

深度学习

工具

Scala

三、Recommending What Video to Watch Next [2019]

发布于 2023-07-17 23:38:24 字数 24087 浏览 0 评论 0 收藏 0

  1. 论文 《Recommending What Video to Watch Next: A Multitask Ranking System》 描述了一个大规模的视频推荐排序系统ranking system。也就是说,给定用户当前正在观看的视频,推荐用户可能观看和喜欢的下一个视频。

    典型的推荐系统遵循两阶段设计,包括候选生成 candidate generation 和排序 ranking 。本文重点研究排序阶段。在这个阶段,推荐器recommender 从候选生成(如矩阵分解、或神经网络模型)中检索出几百个候选者,并应用复杂的、大容量的模型来对最有希望的item 进行排序。

    我们展示了在大型工业视频发布和共享平台上构建这样一个排序系统的实验和经验教训。设计和开发一个真实世界的大规模视频推荐系统充满了挑战,其中包括:

    • 我们想优化的目标objective 通常有所不同,有时甚至是相互竞争competing 的。例如,我们可能想推荐用户评价高、并且分享(除了自己观看之外)给他们好友的视频。

    • 系统中经常存在隐性偏差implicit bias。例如,用户点击并观看一个视频,可能仅仅是因为它排名最靠前,而不是因为用户最喜欢它。

      因此,使用当前系统生成的数据来训练的模型会有偏差bias,导致反馈回路效应 feedback loop effect 。如何有效地学习降低这种bias 是一个悬而未决的问题。

    为应对这些挑战,我们为排序系统提出了一个高效的多任务神经网络架构,如下图所示。它通过采用Multi-gate Mixture-of-Experts:MMoE 来扩展了 Wide&Deep 框架,从而进行多任务学习。此外,它还引入了一个shallow tower 来建模和消除选择偏差selection bias 。我们将该架构应用于视频推荐来作为案例研究case study:给定用户当前正在观看的内容,推荐下一个要观看的视频recommend the next video to watch 。我们在一个工业大型视频发布和共享平台上对我们提出的排序系统进行了实验。实验结果表明:我们提出的系统带来显著的提升。

    排序框架使用用户日志作为训练数据,并构建 Mixture-of-Experts layer 来预估两类用户行为:互动 engagement (如点赞、评论、分享、@ 好友等)、满意度satisfaction 。它用侧塔side-tower 修正了排序的选择偏差selection bias。最重要的是,多个预测结果被组合成一个最终的排序分 ranking score

  2. 我们首先将我们的多个目标分为两类:

    • 互动目标engagement objective,如用户点击click、推荐视频的互动程度degree of engagement
    • 满意度目标satisfaction objective,如用户喜欢YouTube 上推荐的某个视频从而对推荐进行评分。

    为了学习和评估多种类型的用户行为,我们使用 MMoE 来自动学习参数,以便在潜在冲突的conficting 目标之间共享。

    Mixture-of-Experts 架构将输入层模块化为专家 experts ,每个专家聚焦于输入的不同方面aspect 。这改善了来自多模态生成的复杂特征空间中学到的表示representation。然后,通过利用多个门控网络gating networks,每个目标可以选择和其它目标共享、或不共享专家。

  3. 为了从有偏差的训练数据中建模并减少选择偏差(如位置偏差position bias),我们提出在主模型中添加一个shallow tower,如上图左侧所示。shallow tower 接受与选择偏差相关的输入,例如当前系统决定的排序顺序ranking order,并输出标量作为主模型的最终预测的偏差项bias term

    排序架构将训练数据中的label 分解为两部分:从主模型中学习的无偏用户效用unbiased user utility,以及从shallow tower 中学习的估计倾向分 estimated propensity score

    我们提出的模型架构可以视为 Wide&Deep 模型的扩展extension,其中 shallow tower 代表 wide 部分。通过与主模型一起直接学习 shallow tower ,我们受益于选择偏差的学习,而无需借助随机实验来获得倾向分propensity score

  4. 为评估我们提出的排序系统,我们设计并进行了一系列的在离线和在线实验,从而验证以下方法的有效性:多任务学习multitask learning、消除一种常见的选择偏差(即,位置偏差)。

    state-of-the-artbaseline 方法相比,我们提出的框架有显著的提升。我们使用最大的视频共享平台之一 YouTube 来进行我们的实验。

  5. 总之,我们的主要贡献:

    • 我们为视频推荐引入了端到端的排序系统。
    • 我们将排序问题形式化为一个多目标学习问题,并扩展了 MMOE 架构,从而提高所有目标的性能。
    • 我们在真实世界的大规模视频推荐系统上评估了我们的方法,结果展示了显著的提升。

3.1 模型

3.1.1 相关工作

  1. 工业推荐系统:为设计和研发一个由机器学习模型支持的、成功的排序系统,我们需要的大量的训练数据。最近的大多数工业推荐系统在很大程度上依赖于大量的用户日志来构建它们的模型。

    一种选择是直接询问用户对于 item 效用 utility 的显式反馈explicit feedback。然而,由于成本太高,显式反馈的数量难以扩大 scale up 。因此,排序系统通常利用隐式反馈implicit feedback,例如对被推荐的item 的点击和互动engagement

    大多数推荐系统包含两个阶段:

    • 候选生成 candidate generation:在candidate generation 阶段,通常会使用多种信号源signal source 和模型。例如,使用item 之间的共现co-occurrence、使用协同过滤 collaborative fltering、使用图上的随机游走random walk(它也代表了一种共现)、使用内容的representation 来过滤等等。

    • 排序ranking:在 ranking 阶段,广泛使用learning-to-rank 框架的机器学习算法。例如,

      • 有的方法使用线性模型以及 tree-based 模型探索了 point-wisepair-wiselearning to rank 框架 。
      • 有的方法使用 Gradient Boosted Decision Tree: GBDT 用于 point-wise 排序目标ranking objective
      • 还有的方法使用以point-wise ranking objective 的神经网络来预估加权点击weighted click

    这些工业推荐系统的一个主要挑战是可扩展性。因此,它们通常采用基础设施改进infrastructure improvement 和高效机器学习算法的结合。为了在模型质量和效率之间的权衡,一种流行的选择是使用基于深度神经网络的 point-wise ranking 模型。

    本文中,我们首先确定了工业排序系统中的一个关键问题:在被推荐的item 上,用户隐式反馈和真实用户效用true user utility 之间的不一致性 misalignment

    随后,我们引入了基于深度神经网络的 ranking 模型,该模型使用多任务学习技术multi-task learning technique来支持多个排序目标 ranking objective ,每个目标对应于一种类型的用户反馈。

  2. 推荐系统的多目标学习:从训练数据中学习和预测用户行为具有挑战性。有不同类型的用户行为,如点击、评分rating 、评论commenting 等。然而,每种类型的用户行为都不能独立地反映真实的用户效用。例如,用户可以点击一个item,但最终不喜欢它;用户可能仅仅为点击的item 和互动的 item 提供评分。

    我们的排序系统需要能够有效地学习和评估多种类型的用户行为和效用utility ,并随后结合这些评估来计算ranking 的最终效用分utility score

    关于行为感知behavior aware 和多目标推荐的现有工作,要么只能在候选生成candidate generation 阶段应用,要么不适合大规模在线ranking 。例如,一些推荐系统扩展了协同过滤或者content-based 系统,以从多个用户信号中学习 user-item 相似性。这些系统有效地用于候选生成,但是与基于深度神经网络的 ranking 模型相比,它们在提供最终推荐效果方面并不那么有效。

    另一方面,很多现有的多目标排序系统是为特定类型的特征和应用而设计的,例如文本text 和视觉vision 。扩展这些系统以支持来自多模态的特征空间feature space (例如来自视频的标题文本、来自缩略图的视觉特征)将是具有挑战性的。同时,其他多目标排序系统(这些系统考虑了输入特征的多模态)无法扩展scale up,因为它们在有效共享多目标模型参数方面存在局限性。

    在推荐系统的研究领域之外,基于深度神经网络的多任务学习已经在许多传统的机器学习应用中进行了广泛的研究和探索,例如自然语言处理 nlp 、计算机视觉computer vision 。虽然很多为 representation learning 提出的多任务学习 multi-task learning 技术对于构建排序系统并不实用,但它们的一些构件 building block 启发了我们的设计。在本文中,我们描述了一个基于 DNN 的排序系统,该系统是为真实世界的推荐而设计的,并应用了 Mixture-of-Experts layer 来支持多任务学习。

  3. 训练数据中 bias 的理解和建模:用户日志用作我们的训练数据,它捕获当前生产系统production system 中用户对于推荐的行为behavior和反映response

    用户和当前系统之间的交互interaction 会在反馈feedback 中产生选择偏差selection bias 。例如,用户可能已经点击了一个 item ,仅仅是因为该 item 是当前系统选出来展现给用户的,而不是因为该item 是整个语料库corpus 中用户最喜欢的那个。因此,根据当前系统生成的数据之上而训练的新模型将偏向于当前系统,导致反馈回路效应feedback loop effect 。如何有效和高效地学习减少系统的这种 bias 是一个悬而未决的问题。

    《Evaluating the accuracy of implicit feedback from clicks and query reformulations in web search》 首先分析了隐式反馈数据中的位置偏差position bias 和表示偏差presentation bias ,从而训练 learning to rank 模型。通过比较点击数据和显式反馈之间的相关性,他们发现在点击数据中存在位置偏差,并可以显著地影响用于估计querydocument 之间相关性的 learning to rank 模型。根据这一发现,已经提出了很多方法来消除这种选择偏差,尤其是位置偏差。

    • 一种常用的做法是在模型训练中注入位置作为输入特征,然后在 serving 阶段通过消融 ablation 来消除偏差 。在概率点击模型中,位置用于学习 $ P(\text{relevance | pos}) $ 。

      一种消除位置偏差的方法受到 《A dynamic bayesian network click model for web search ranking》 的启发,他们使用 $ P(\text{relevance | pos}=1) $ 来推断 CTR 模型,并假设 position = 1 的推断没有没有位置偏差效应。随后,为了消除位置偏差,我们可以使用位置作为输入特征来训练模型,并通过将位置特征设为 1 (或者其他固定值,如缺失值)来做线上 serving

    • 其他方法试图从位置中学习一个偏差项bias term,并将其作为一个归一化器normalizer 或者正则化器regularizer 。通常,要学习一个bias term,需要一些不考虑相关性的随机数据来推断这个 bias 项(也称作全局 bias、或者倾向性propensity)。

    在现实世界中的推荐系统中,尤其是像 Twitter, YouTube 这样的社交媒体平台,用户行为和 item 流行度popularity 每天都会发生显著变化。因此,当我们在训练ranking 模型时需要一种有效的方法来适应训练数据分布的变化从而建模选择偏差。

3.1.2 系统概览

  1. 除了上述针对建立具有隐式反馈训练的排序系统的挑战之外,现实世界中的大规模视频推荐问题还需要考虑以下其他因素:

    • 多模态特征空间multimodal feature space:在上下文感知context-aware 的个性化推荐系统中,我们需要学习候选视频的用户效用 user utility ,其中候选视频的特征空间是从多个模态生成的,例如视频内容、缩略图、音频、标题和描述description、用户人口统计特征user demographics

      和其它机器学习应用相比,从多模态特征空间学习representation 以进行推荐具有独特的挑战性。它具有两个难点:

      • 从低级low-level 的内容中学习语义,以进行内容过滤content fltering
      • item 的稀疏分布中学习相似性,以进行协同过滤collaborative fltering
    • 可扩展性scalability:可扩展性非常重要,因为我们正在为数十亿用户和视频构建一个推荐系统。模型必须能够有效地训练并高效地 serving

      尽管排序系统在每个 query 仅对数百个候选视频评分,但现实中通常要求实时评分,因为一些 query 和上下文信息只能在线获取。因此,ranking sytem 不仅需要学习数十亿个 item 和用户的 representation,还需要在 serving 过程中保持高效。

    回想一下,我们推荐系统的目标是在给定当前观看的视频和上下文的情况下,提供视频的排序列表ranked list 。为了处理多模态的特征空间,对于每个视频我们抽取诸如视频元数据meta-data 、以及视频内容信号video content signal 之类的特征作为视频的 representation 。对于上下文,我们使用诸如用户人口统计demographics、设备、时间、地理位置等特征。

    为了处理可扩展性,我们的推荐系统有两个阶段,即候选生成和排序。在候选生成阶段,我们从一个巨大的视频库中检索出几百个候选item。我们的排序系统为每个候选视频提供一个分数,并生成最终排序列表。

  2. 候选生成candidate generation :我们的视频推荐算法使用多种候选生成算法,每种算法都捕获query video 和候选视频之间相似性的一个方面。

    例如,一种算法通过召回 query video 的主题来生成候选视频,另一种算法基于视频和 query video 共同观看的频率来检索候选视频。

    我们构建了一个类似于 《Deep neural networks for YouTube Recommendations》 的序列模型,用于在给定用户历史记录的情况下生成个性化候选视频。

    最后,所有候选视频被聚集成一个set,然后由排序系统来评分。

  3. 排序 ranking:我们的排序系统会从数百名候选视频中生成排序列表ranked list

    候选生成阶段试图过滤大多数 item,并只保留相关的 item 。和候选生成不同的是,排序系统旨在提供一个排序列表,以便对用户具有最高效用utilityitem 将显示在列表的头部。因此,我们在排序系统中应用最先进的机器学习技术(即一个神经网络架构),以便模型具有足够的表达能力来学习特征的关联、以及特征和效用的关系。

  4. 我们的排序系统从两种类型的用户反馈中学习:互动行为engagement behavior,如点击、观看;满意度行为satisfaction behavior,如喜欢like、拒绝dismissal

    给定每个候选视频,排序系统使用候选视频的特征、query 和上下文作为输入,然后学习预测多种用户行为。

    对于问题的形式化,我们采用了 learning-to-rank 框架。我们将排序问题建模为多目标分类问题和多目标回归问题的组合。给定 query、候选视频、以及上下文,排序模型预测用户采取行为(如点击、观看、喜欢、拒绝)的概率。

    这种对每个候选视频进行预测的方法是一种 point-wise 方法。相反,pair-wise 或者 list-wise 方法对两个或者多个候选视频的排序进行预测。

    pair-wise 或者 list-wise 方法可以用于潜在地提高推荐的多样性。然而,我们选择使用 point-wise 排序主要是基于 serving 的考虑。在 serving 阶段,point-wise 排序简单有效,且可以扩展scale到大量候选视频。相比之下,pair-wise 或者 list-wise 方法需要对 pair 对或者列表进行多次评分,从而在给定一组候选视频的情况下找到最有排序列表ranked list,这限制了它们的可扩展性。

3.1.3 排序目标

  1. 我们使用用户行为作为训练label 。由于用户可以对推荐的item 具有不同类型的行为,我们设计了排序系统来支持多个目标。每个目标是预测一种与用户效用相关的用户行为。

    为了便于说明,在下文中我们将我们的目标分为两类:

    • 互动目标engagement objective:互动目标捕获用户的点击、观看等行为。我们将这些行为的预测形式化为两种类型的任务:针对诸如点击等行为的二元分类任务、以及针对观看时长等相关行为的回归任务。
    • 满意度目标satisfaction objective:满意度目标捕获用户点赞、点不喜欢等行为。我们将这些行为的预测形式化为二元分类任务或回归任务。例如,对视频点击 “喜欢” 这种行为被形式化为二元分类任务,而像评分行为被形式化为回归任务。

    对于二元分类任务,我们计算交叉熵损失。对于回归任务,我们计算平方损失。

  2. 一旦确定了多个排序目标ranking objective 及其问题类型,我们就会为这些预测任务训练一个多任务排序模型multitask ranking model

    对于每个候选视频,我们采用这些多个预测的输入,并使用加权乘法形式的组合函数输出组合分数。加权的权重是手动调优的,从而在用户互动和用户满意度上同时达到最佳性能。

3.1.4 MMoE

  1. 多目标排序系统通常使用共享底部shared-bottom 的模型架构(如下图 (a) 所示)。然而,当任务之间的相关性较低时,这种硬参数共享hard-parameter sharing 技术有时会损害多个目标的学习。为了缓解多目标的冲突conflict ,我们采用并扩展了最近发布的 Multi-gate Mixture-of-Experts: MMoE 模型架构。

    MMoE 是一种软参数共享soft-parameter sharing 的模型架构,旨在对任务冲突和任务联系进行建模。它采用 Mixture-of-Experts: MoE 的结构,通过让专家experts在所有任务之间共享来进行多任务学习,同时还为每个任务训练了一个门控网络gating network

    MMoE layer 旨在捕获任务差异,而不需要比 shared-bottom 模型多得多的模型参数。它的关键思想是用 MoE layer 代替共享的 ReLU layer ,并为每个任务添加一个独立的门控网络。

    对于我们的排序系统,我们提出在共享的 hidden layer 之上添加专家,如下图 (b) 所示。这是因为MoE layer 能够帮助从它的输入中学习模块化信息 modularized information 。当直接在输入层或更低层的 hidden layer 之上使用时,它可以更好地建模多模态特征空间。然而,直接在输入层应用 MoE layer 将显著增加模型训练和serving 成本。这是因为通常输入层的维度要比 hidden layer 的维度高得多。

  2. 我们的专家网络 expert network 的实现和采用 ReLU 激活函数的多层感知机相同。

    对于任务 $ k $ ,假设最后一层的hidden layer (即上图 (b) 中的 Task k Layer )的函数为 $ h^{(k)}(\cdot) $ ,则带 $ n $ 个专家的 MMoE layer 对于任务 $ k $ 的输出为:

    $ y_k = h^{(k)}\left( f^{(k)}\left(\mathbf{\vec x}\right)\right)\\ f^{(k)}\left(\mathbf{\vec x}\right) = \sum_{i=1}^n g_i^{(k)}\left(\mathbf{\vec x}\right)f_i\left(\mathbf{\vec x}\right) $

    其中:

    • $ \mathbf{\vec x}\in \mathbb R^d $ 为低层的共享hidden embedding
    • $ \mathbf{\vec g}^{(k)}=g^{(k)}\left(\mathbf{\vec x}\right)\in \mathbb R^{n} $ 为任务 $ k $ 的门控网络,而 $ g^{(k)}_i $ 为 $ \mathbf{\vec g}^{(k)} $ 的第 $ i $ 项,对应于任务 $ k $ 中第 $ i $ 个专家的权重。
    • $ f_i\left(\mathbf{\vec x}\right) $ 为第 $ i $ 个专家,一共有 $ n $ 个专家。
    • $ f^{(k)}\left(\mathbf{\vec x}\right) $ 为所有 $ n $ 个专家在任务 $ k $ 上的加权和,它是 Task k Layer 的输入。
  3. 门控网络只是对输入线性变换然后通过一个 softmax 层:

    $ \mathbf{\vec g}^{(k)}=g^{(k)}\left(\mathbf{\vec x}\right) = \text{softmax}\left(\mathbf W_{g^{(k)}} \mathbf{\vec x}\right) $

    其中 $ \mathbf W_{g^{(k)}}\in \mathbb R^{n\times d} $ 是任务 $ k $ 门控网络的、线性变换的参数。

  4. 在论文《Outrageously large neural networks: The sparsely-gated mixture-of-experts layer》 的稀疏门控网络中,专家的数量很大,并且每个训练样本进使用表现最好的专家。与之相反,我们使用相对较少的专家。这是为了鼓励通过多个门控网络共享专家并提高训练效率。

3.1.5 选择偏差

  1. 隐式反馈已被广泛用于训练 learning-to-rank 模型。可以通过从用户日志中提取大量的隐式反馈来训练复杂的深度神经网络模型。

    然而,由于隐式反馈是从现有的排序系统生成的,因此存在偏差 bias 。位置偏差position bias 以及很多其他类型的选择偏差被证明存在于不同的排序问题ranking problem 中。

    在我们的排序系统中,query 是当前正在观看的视频,候选是相关的视频。通常,用户倾向于点击并观看更靠近列表头部展示的视频,而不管它们的的实际用户效用--无论是与观看视频的相关性还是用户的偏好。

    我们的目标是从排序模型中消除这种位置偏差。在我们训练数据中或者在模型训练期间建模和减少选择偏差可以导致模型质量的提高,并打破由选择偏差导致的反馈环路 feedback loop

  2. 我们提出的模型架构类似于 Wide&Deep 模型架构。我们将模型预测分解为两个部分:主tower 的用户效用部分user-utility component 、和shallow tower 的的偏差部分bias component

    具体而言,我们训练一个shallow tower ,它采用有助于选择偏差的特征,如针对位置偏差的位置特征 position feature。然后将 shallow tower 添加到主模型的最终 logit 中去,如下图所示。

    • 在训练阶段我们使用所有曝光的位置,并使用 10% 的位置特征drop-out rate 从而防止我们的模型过度依赖位置特征。
    • serving 阶段,位置特征被视为缺失。

    注意:我们将位置特征和设备特征交叉的原因是:在不同类型的设备上会观察到不同的位置偏差。因为不同设备的屏幕大小不同,导致呈现的 item 列表有所差异。

3.1.6 讨论

  1. 这里我们讨论一些洞察和局限性,这些都是我们从开发和实验我们的排序系统的过程中学到的。

  2. 推荐和排序任务的神经网络模型架构:很多推荐系统领域的研究论文扩展了最初为传统机器学习应用程序设计的模型架构,如用于 natural language processing: NLPmulti-headed attention、用于计算机视觉的 CNN 。然而,我们发现这些模型体系架构中的很多仅适用于特定领域的 representation learning,并不直接适用于我们的需求。这是因为:

    • 多模态Multimodal 特征空间:我们的排序系统依赖于多个特征源source,例如来自于 queryitem 的内容特征、上下文特征。这些特征从稀疏的离散空间sparse categorical space、到自然语言、到图像等等。从混合特征空间中学习是一项挑战。
    • 可扩展性scalability和多个排序目标:许多模型架构被设计为捕获一种类型的信息,如特征交叉feature cros 或序列信息sequential information 。它们通常会提升一种排序目标,但是可能会损害其他排序目标。此外,在推荐系统中应用复杂模型架构的组合几乎无法扩展。
    • 带噪音noisy的和局部稀疏locally sparse 的训练数据:我们的系统需要为 itemquery 训练 embedding 向量。然而,我们的大多数稀疏特征遵循幂律分布power-law distribution ,并且对于用户反馈有很大的分布差异。例如,在上下文稍有不同的情况下,即使给定相同的 query ,用户可能点击也可能不点击推荐的 item 。而这在我们的系统中是无法捕获的。这给优化长尾的尾部itemembedding 空间带来了很大的困难。
    • mini-batch 随机梯度下降的分布式训练:我们依靠一个具有强大表达能力的大型神经网络模型来找出特征关联feature association 。由于我们的模型消耗了大量的训练数据,我们不得不使用分布式训练,这本身就带来了固有intrinsic 的挑战。
  3. 效果efectiveness和效率 eficiency之间的平衡tradeoff :对于现实世界的排序系统,效率不仅影响 serving 成本,还影响用户体验。过于复杂的模型会显著增加生成推荐item 的延时latency ,从而降低用户满意度和在线指标。因此,我们通常更喜欢更简单、更直接straight-forward 的模型架构。

  4. 训练数据中的 biases:除了位置偏差之外,还有许多其他类型的偏差。其中一些偏差可能是未知和不可预测的。例如,由于我们的系统在获取训练数据方面的局限性(对于未曝光的item,我们压根不知道用户对它们是否会发生行为)。

    如何自动学习和捕获训练数据中已知和未知的偏差是一个长期的挑战,需要做更多的研究。

  5. 评估方法evaluation 的挑战:由于我们的排序系统主要使用了用户的隐式反馈,离线评估得到的效果提升结论并不一定会转化为在线性能提升。事实上,我们经常观察到离线和在线指标之间的不一致 misalignment 。因此,最好选择一个总体上更简单的模型,以便可以更好地泛化到在线性能。

  6. 未来方向:除了 MMoE 和消除位置偏差之外,我们正在沿着以下方向改进我们的排序系统:

    • 探索用于多目标排序的、新的模型架构,该架构平衡了稳定性stability、可训练性trainability 和表达能力 expressiveness

      我们注意到,MMoE 通过灵活地选择共享哪些专家从而提高多任务排序性能。最近的一些工作在不损害预测性能的情况下进一步提高了模型的稳定性。

    • 理解并学习分解factorize。为了对已知和未知的偏差进行建模,我们希望探索模型架构和目标,这些架构和目标能够从训练数据中自动识别潜在偏差、并学会减少这些偏差。

    • 模型压缩compression :出于降低serving 成本的需要,我们正在探索用于排序和推荐模型的、不同类型的模型压缩技术。

3.2 实验

  1. 利用 YouTube 提供的用户隐式反馈,我们训练了我们的排序模型,并进行了离线和在线的实验。

    YouTube 的规模和复杂性使其成为我们排序系统的完美测试平台。YouTube 的最大的视频分享平台,月活用户19 亿。该网站每天创建了千亿级的用户日志,其中记录了用户和推荐结果之间的互动。

    YouTube 的一个关键产品提供了在给定观看视频的情况下推荐下一个观看视频的功能(what video to watch next ),如下图所示。它的用户界面为用户提供了多种与推荐视频交互的方式,如点击、观看、喜欢、拒绝dismissal

  2. 实验配置:如前所述,我们的排序系统从多个候选生成算法中召回了几百个候选视频。我们使用 TensorFlow 构建模型并训练和 serving 。具体而言,我们使用Tensor Processing Unit: TPU 来训练我们的模型,并使用 TFX Servoserve

    我们对提出的模型和 baseline 模型都是串行sequentially地训练。这意味着我们根据时间顺序来组织训练数据从而训练我们的模型,并持续训练模型以消耗新到达的训练数据。通过这种方式,我们的模型适应了最新的数据。这对于很多现实世界的推荐应用程序 application 而言是至关重要的,在这些应用程序中,数据分布和用户模式会随着时间动态变化。

    对于离线实验,我们评估分类任务的 AUC 和回归任务的平方误差。对于在线实验,我们进行了与生产系统production system 相比较的A/B test 实验。

    我们使用离线和在线指标来调整超参数,如学习率。我们检查了多个互动指标engagement metric(诸如在 YouTube 上花费的时长等),以及满意度指标(如拒绝率dismissal rate 、用户调查回访user survey response 等)。

    除了在线指标之外,我们还关注模型在 serving 时的计算成本,因为 YouTube 每秒都需要响应大量的query

3.2.1 MMoE

  1. 为了评估采用 MMoE 进行多任务排序的性能,我们与 baseline 方法进行了比较,并在 YouTube 上进行了在线实验。

  2. baseline 方法:我们的 baseline 方法采用共享底部模型架构shared-bottom model architecture

    我们以每个模型体系架构内的乘法数量来衡量模型的复杂度,因为这是模型 serving 的主要计算成本。

    当比较 MMoE 模型和 baseline 模型时,我们使用相同的模型复杂度。出于效率的考虑,我们的 MMoE layer 只有一层底部共享hidden layer,它使用比输入层更低的维度。

  3. YouTube 上的在线实验结果如下表所示,其中 MMoE 模型使用 4 个专家或 8 个专家。

    我们报告了互动指标和满意度指标的结果。互动指标给出用户在观看推荐视频上所花的时长,满意度指标给出用户在调查回访中的评分。

    可以看到:在相同模型复杂度的情况下,MMoE 显著提升了互动和满意度指标。

  4. 门控网络的分布Gating Network Distribution:为进一步了解 MMoE 如何帮助多目标优化multi-objective optimization,我们绘制了 softmax 门控网络中每个专家上每个任务的累计概率accumulated probability ,如下图所示。

    可以看到:一些互动任务engagement task 和其它互动任务共享多位专家,而满意度任务satisfaction task 倾向于共享一小部分高效用high utilization 的专家 ,这是通过使用这些专家的累计概率来衡量的。

  5. 如前所述,我们的 MMoE layer 共享一个bottom hidden layer,它的门控网络从共享的隐层获取输入。与直接从输入层构造 MMoE layer 相比,这可能使 MMoE layer 更难于模块化modularize 输入信息。

    或者,我们让门控网络直接从输入层而不是共享隐层获取输入,以便让输入特征可以直接用于选择专家。然而,在线实验结果显示这种变体没有显著差异。因此,门控网络从共享隐层获取输入可以有效地将输入信息模块化到专家中,从而建模任务关系和任务冲突conflict

  6. 门控网络稳定性Gating Network Stability:当使用多台机器训练神经网络模型时,分布式训练策略会导致模型经常发散diverge(即不收敛)。发散的一个例子是 ReLU 死亡。

    MMoE 中,据报道 softmax 门控网络具有不平衡的专家分布问题imbalanced expert distribution problem ,其中门控网络收敛到绝大多数专家的效用为零zero-utilization 。通过分布式训练,我们观察到在我们的模型中有 20% 的机会出现这种门控网络的极化问题polarization issue 。门控网络的极化会损害使用该门控网络的模型的性能。

    为解决这个问题,我们在门控网络上应用了 drop-out。通过采用 dropout rate = 10%,以及re-normalizing 重新标准化 softmax 输出,我们消除了所有门控网络的极化。

3.2.2 Position Bias

  1. 使用用户隐式反馈作为训练数据的一个主要挑战是难以建模隐式反馈和真实用户效用之间的差距gap

    使用多种类型的隐式反馈信号和多个排序目标,我们可以在 serving 阶段进行更多手段的调优tune ,从而在 item 推荐中捕获模型预估到用户效用之间的转换。但是,我们仍然需要建模和减少隐式反馈中普遍存在的偏差,例如,由用户和当前推荐系统之间的交互引起的选择偏差。

    在这里,我们评估如何使用我们提出的轻量级模型架构light-weight model architecture 来建模和减少位置偏差position bias (一种类型的选择偏差)。我们的解决方案避免了随机实验或者复杂计算的代价。

  2. 用户隐式反馈的分析:为了验证我们的训练数据中是否存在位置偏差,我们对不同位置的点击率click through rate: CTR进行了分析。下图给出了位置1 ~ 9 的相对 CTR ( 进行了同比例缩放)。正如预期所示,随着位置越来越低,点击率将显著降低。

    较高位置的点击率较高,这是由于推荐了更相关的 item、以及位置偏差的综合效果。

    使用我们提出的 shallow tower 方法,我们在下面证明了该方法可以将用户效用的学习和位置偏差的学习分开。

  3. baseline 方法:为了评估我们提出的模型架构,我们将它与下面的 baseline 方法进行比较。

    • 直接使用位置特征作为输入特征:这种简单的方法已经在工业推荐系统中广泛使用,从而消除位置偏差。该方法用于线性的 learning-to-rank 模型。

    • 对抗学习:受到领域适配domain adaptation 和机器学习公平性machine learning fairness 中广泛采用的对抗学习的启发,我们使用类似的技术来引入辅助任务,该辅助任务可以预测训练数据中的位置position

      随后,在反向传播阶段,我们将传递给主模型的梯度取反,确保主模型的预测不依赖于位置特征。

  4. 下表给出了我们提出的方法和 baseline 方法的在线实验结果。可以看到:我们提出的方法通过建模和减少位置偏差,显著提升了互动指标。

    下图显示了每个位置学到的位置偏差。可以看到:对于较低的位置,学到的偏差较小。

    学到的偏差是通过有偏差的隐式反馈来得到的倾向分propensity score 的估计。使用足够的训练数据进行模型训练,我们可以有效地减少位置偏差。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文