字节在《Adaptive Domain Scaling for Personalized Sequential Modeling in Recommenders》提出了它们的关于序列建模的多场景建模实现ADS:

摘要

在像抖音这样的超级应用中,用户通常会在多个业务场景中展现出复杂的行为模式和多样化的意图,这对当前工业界的多领域推荐系统提出了巨大的挑战。为了缓解不同领域之间的差异,研究和工业实践通常强调采用复杂的网络结构以适应多样化的数据分布,而忽视了从多领域角度对用户行为序列的深入理解。

本文提出了自适应领域缩放(Adaptive Domain Scaling, ADS)模型,该模型全面增强了跨多个领域的目标感知序列建模中的个性化能力。具体而言,ADS包含两个主要模块:

  1. 个性化序列表示生成(Personalized Sequence Representation Generation, PSRG)
  2. 个性化候选表示生成(Personalized Candidate Representation Generation, PCRG)

这些模块通过动态学习不同领域下的用户行为序列item表示和候选目标item表示,促进了自适应用户意图理解,从而实现了量身定制的多领域学习。我们在一个公共数据集和两个十亿级别的工业数据集上进行了实验,广泛的结果验证了ADS的高效性和兼容性。

此外,我们在两个有影响力的业务场景(包括抖音广告平台抖音电商服务平台)上进行了在线实验,两者均显示出显著的业务改进。目前,ADS已在字节跳动的多个推荐服务中全面部署,服务于数十亿用户。

1 引言

随着数字内容的指数级增长和互联网的广泛使用,推荐系统在提升用户体验和缓解信息过载方面发挥了至关重要的作用[29]。在实际应用中,为了提高用户留存率并促进商业利益,工业推荐的需求广泛分布在多个领域[12, 14]。例如,如图1所示,在抖音(全球最大的视频观看应用之一)中,主要领域包括短视频直播预览直播滑动,用户可以在这些场景中观看短视频、直播流,并享受电商和本地生活服务。此外,由于其亿级用户规模,不同的用户群体(如来自不同国家、不同性别、高活跃度或低活跃度的用户)也构成了不同的领域。由于不同领域的数据分布差异较大,这为推荐系统带来了显著的多领域建模问题[30]。

图片名称

图1

为此,工业界的常见实践通常是构建一个共享底层-多头输出的模型结构,利用分离和统一混合建模的优势来处理多领域问题[4]。为了进一步改进这一点,最近的研究致力于构建精细的网络结构以增强多领域建模,例如领域级方法如星型拓扑自适应推荐器(STAR)[18]、渐进分层提取(PLE)[19],以及实例级方法如自适应参数生成网络(APG)[25]、AdaSparse[27]等。然而,大多数现有方法都专注于复杂的特征交互网络结构,而多领域序列建模的方法却较少受到关注。

序列建模在工业推荐系统中扮演着至关重要的角色,其中最流行且有效的方法是基于target attention的方法,例如深度兴趣网络(DIN)[32]、特征协同网络(CAN)[2]和多头注意力(MHA)[20]。在抖音的广告系统中,从转化率预测(CVR)模型中移除target attention模块后,ROC曲线下面积(AUC)指标下降了超过0.2%,这是一个显著且不可接受的损失,证明了基于target attention的序列建模的有效性。尽管其重要性,现有target attention方法较少考虑多领域差异的影响,这为多领域建模留下了显著的空白。

一般来说,当前用户序列的target attention机制可以表述为一个典型的query-key-value建模范式:

\[g(Rep_{cand}, Rep_{seq}) \times Rep_{seq}\]

其中:

  • $Rep_{cand}$表示需要预测点击/转化概率的候选target item的表示
  • $Rep_{seq}$表示用户序列嵌入
  • $g$计算任意序列item与target item对之间的注意力权重

如前所述,当前工业推荐系统通常遵循共享底层嵌入范式,这意味着:

  1. 候选item和用户行为item的嵌入表完全共享,未考虑不同领域item和用户之间的差异
  2. 候选item作为不同key/value的共享查询,未考虑用户序列中多领域item的差异

因此,这从两个方面对当前多领域推荐系统提出了潜在挑战:

  • 序列表示的个性化:在多领域中,相同item在不同用户序列中的表示是必要的。例如,新用户可能喜欢观看高点赞视频,而长期用户可能更关注他们关注的视频创作者。因此,相同的视频对不同用户领域表现出不同的吸引力,而其嵌入是不同用户序列中的共享表示,这阻碍了推荐系统捕捉用户的实际意图。

  • 候选item的个性化:对于不同用户或同一用户序列中的不同item,候选item由于多领域影响具有不同的影响和功能。例如,用户在抖音商城中的购物行为可能主要受产品价格影响,而在抖音短视频场景中,视频创作者对内容偏好用户的影响更为显著。因此,相同的候选item应在不同领域中个性化,以适应用户序列中的不同历史项。

为了克服这些局限性并填补多领域target attention建模的空白,我们提出了自适应领域缩放(Adaptive Domain Scaling, ADS)模型,该模型充分挖掘了当前基于target attention的推荐系统的个性化建模能力,并在多领域任务中提供了更准确和自适应的意图理解能力。具体而言,ADS包含两个模块:

  • 个性化序列表示生成(PSRG)
  • 个性化候选表示生成(PCRG)

在PSRG中,我们设计了一种新颖的共享-私有结构,用于学习用户行为中的多领域项表示,旨在为序列items生成个性化表示,即相同item在不同用户序列中具有不同的表示。在PCRG中,候选item通过为不同序列items生成不同的目标候选表示,进一步增强了个性化建模能力。通过将领域相关信息作为生成结构的输入,多领域的影响被充分注入序列建模中,从而增强了用户意图理解能力。值得注意的是,ADS是一个高效的即插即用网络,可以轻松集成到现有推荐系统中。

本工作的贡献总结如下:

  • 我们提出了自适应领域缩放(ADS)模型,这是一种有效的即插即用个性化网络结构,通过个性化target attention建模来实现多领域用户意图理解。我们在一个公共数据集和两个十亿规模的工业数据集上进行了广泛实验,结果验证了其优越性。
  • 我们在框架中开发了个性化序列表示生成个性化候选表示生成模块,从用户行为序列和候选target item的角度捕捉多领域特征,增强了当前target attention机制的多领域学习效果。
  • 我们在字节跳动抖音的广告系统和电商系统中部署了ADS,分别带来了抖音广告系统总收入的1.09%提升和电商系统的0.79%提升。目前,ADS已在字节跳动的多个推荐系统中全面部署,服务于数十亿用户。

2 方法论

2.1 预备知识

2.1.1 问题定义

本文主要关注推荐系统中的排序建模任务,这是一个典型的二分类问题。以点击率(CTR)预测为例,概率 $\hat{y}$ 可以通过以下公式计算:

\[\widehat{y} = f(\mathbf{E}_U, \mathbf{E}_I, \mathbf{E}_O) \quad (1)\]

其中:

  • $E(\cdot)$ 表示嵌入函数,将原始分类特征直接转换为嵌入,连续特征则先分桶再嵌入为稠密向量。
  • $f$ 是基于多层感知机(MLP)的转换函数。
  • $U$、$I$ 和 $O$ 分别表示用户侧、目标候选item侧和其他特征。用户侧特征通常包括:人口统计特征(如用户位置和语言)和行为特征(如用户的观看列表或购物列表)。item侧特征包括项的描述性特征(如类别、创作者等)。此外,其他特征 $O$ 通常包含context特征和user-item交叉特征。

2.2 提出的ADS模型

图片名称

图2

ADS模型的结构如图2所示,整体由两个主要部分组成:

  • 个性化序列表示生成(PSRG):通过共享-私有学习结构生成动态行为item嵌入,使得相同item在不同领域中具有不同的表示
  • 个性化候选表示生成(PCRG):捕捉序列items的不同方面,并为每个序列items生成多个自适应查询(即候选item),以反映不同查询对多样化序列items的影响

通过PCRG和PSRG生成的自适应Q、K和V,目标感知建模机制(如MHA、DIN和CAN)可以轻松集成到该框架中,促进多领域场景中的兴趣捕捉。

2.2.1 个性化序列表示生成(PSRG)

当前大规模工业推荐系统通常采用共享嵌入层将原始ID和其他特征嵌入为dense向量。这种方式下,嵌入表中的特定item具有统一的嵌入表示,在不同用户序列中共享,忽略了多领域差异的影响。

PSRG的基本思想是:为用户行为序列中的每个item嵌入动态生成一个个性化层,使得原始共享表示可以在多领域中多样化。具体而言,我们使用领域相关特征嵌入 $E_D \in R^{d_D}$ 作为PSRG生成部分的输入,这些特征包括:

    1. 显式领域指示特征(explicit-domain-indicator features):区分样本所属的领域。例如,指示器范围为[0, 2],表示抖音中的三个不同业务场景。
    1. 隐式领域指示特征(implicit-domain-indicator features):在推荐系统中,某些领域难以明确定义。例如,用户是否高活跃度。因此,需要结合工程师构建的统计特征以进一步捕捉和区分不同领域。

如图2所示,序列items的weight和bias生成过程旨在动态调整原始item嵌入。

序列权重生成网络(Sequence-Weight Gen-Net)

用户序列嵌入表示为:$E_S \in R^{T \times d_S}$

其中:

  • $T$ 和 $d_S$ 分别表示用户序列长度和每个序列items的嵌入维度。

基于领域特征 $E_D$,权重生成过程包括:私有权重部分和共享权重部分,以捕捉多领域的共性和个性。私有部分通过两层MLP生成私有权重:

\[\mathbf{W}_{private} = Sigmoid(ReLU(\mathbf{E}_D \mathbf{W}_1^T + \mathbf{b}_1) \mathbf{W}_2^T + \mathbf{b}_2) \quad (2)\]

其中:

  • $\mathbf{W}_1^T \in \mathbb{R}^{d_D \times d_h}$,$\mathbf{W}_2^T \in \mathbb{R}^{d_h \times (d_S \times d_S)}$:表示weight
  • $\mathbf{b}_1 \in \mathbb{R}^{d_h}$,$\mathbf{b}_2 \in \mathbb{R}^{(d_S \times d_S)}$:表示bias
  • $d_h$ 表示隐藏层维度

通过引入两层函数而非单层,不仅可以提高模型的表达能力,还能显著减少模型参数和计算成本。

基于 $\mathbf{W}{private}$,进一步定义一个全局权重 $\mathbf{W}{shared} \in \mathbb{R}^{(d_S \times d_S)}$,作为可学习矩阵在所有用户间共享。生成的权重定义为:

\[\mathbf{W}_{generated} = \eta * (\mathbf{W}_{shared} \odot \mathbf{W}_{private}) \quad (3)\]

其中:

  • $\odot$ 表示逐元素乘积。由于引入了 $Sigmoid$,$\mathbf{W}{private}$ 的值范围为[0, 1],因此引入缩放超参数 $\eta$ 以扩大 $\mathbf{W}{private}$ 的表达范围。

序列偏置生成网络(Sequence-Bias Gen-Net)

类似于权重生成过程,偏置生成可以通过以下公式实现:

\[\mathbf{b}_{generated} = ReLU(\mathbf{E}_D \mathbf{W'}_1^T + \mathbf{b'}_1) \mathbf{W'}_2^T + \mathbf{b'}_2 \quad (4)\]

其中:

  • $\mathbf{W’}_1^T \in \mathbb{R}^{d_D \times d_h}$,$\mathbf{W’}_2^T \in \mathbb{R}^{d_h \times d_S}$:为weight
  • $\mathbf{b’}_1 \in \mathbb{R}^{d_h}$,$\mathbf{b’}_2 \in \mathbb{R}^{d_S}$:为bias

通过生成的权重和偏置,PSRG可以通过以下公式实现:

\[\mathbf{E}_{S-personalized} = \mathbf{E}_S Reshape(\mathbf{W}_{generated})^T + \mathbf{b}_{generated} \quad (5)\]

其中:

  • $Reshape$ 操作将一维向量形式的 $\mathbf{W}_{generated}$ 重塑为二维矩阵形式,形状为 $d_S \times d_S$。

2.2.2 个性化候选表示生成(PCRG)

除了序列的个性化建模,另一个重要部分是:对target item的多领域建模,target item通常在target attention中扮演query的角色。个性化候选item包括两个方面:

  • 1.类似于序列表示,target item本身的表示也通过共享嵌入层嵌入,未在不同领域中个性化。
  • 2.候选item在不同领域的序列items中扮演不同角色。例如,用户在抖音商城频道中的观看列表反映其购物兴趣,而在短视频频道中反映其内容偏好。

多查询生成网络(Multi-Query Gen-Net)

图片名称

图3

为此,我们提出了多查询生成网络(如图3中间子图所示),在领域相关特征 $E_D$ 和原始target item嵌入 $E_Q \in R^{d_Q}$ 的指导下,生成多个查询:

\[\mathbf{E}_{Q-private} = ReLU(\left(\mathbf{E}_D \oplus \mathbf{E}_Q\right) \mathbf{W}_{q1}^T + \mathbf{b}_{q1}) \mathbf{W}_{q2}^T + \mathbf{b}_{q2} \quad (6)\]

其中:

  • $\oplus$ 表示拼接操作
  • $\mathbf{W}{q1}^T \in \mathbb{R}^{(d_D + d_Q) \times d_h}$,$\mathbf{b}{q1} \in \mathbb{R}^{d_h}$:表示第一层的w, b
  • $\mathbf{W}{q2}^T \in \mathbb{R}^{d_h \times (T \times d_Q)}$,$\mathbf{b}{q2} \in \mathbb{R}^{T \times d_Q}$:表示第二层的w, b
  • 隐藏层维度 $d_h « (T \times d_Q)$,使得计算成本可控。

分块查询生成(Chunked-Query Generation)

对于长序列($T$ 为数百或更高)的情况,我们还设计了一种轻量级的分块查询生成方法以提高计算效率。如图3右侧子图所示,由于用户的相邻行为往往发生在同一领域,原始序列可以划分为 $G$ 个块,相邻item形成一个组。因此,生成的 $\mathbf{E}_{Q-private} \in \mathbb{R}^{(G \times d_Q)}$ 可以进一步重复为 $\mathbb{R}^{(T \times d_Q)}$,计算成本进一步降低。

最终生成的多查询

对应于多个私有查询 $\mathbf{E}{Q-private} \in \mathbb{R}^{(T \times d_Q)}$,我们使用原始查询 $\mathbf{E}_Q$ 作为共享基,即 $\mathbf{E}{Q-shared} = tile(\mathbf{E}_Q)$,其中 $tile$ 表示将 $\mathbf{E}_Q$ 重复 $T$ 次。最终生成的多查询通过残差方式获得:

\[\mathbf{E}_{Q-personalized} = Reshape(\mathbf{E}_{Q-private} + \mathbf{E}_{Q-shared}) \quad (7)\]

其中:

  • $Reshape$ 操作将一维向量重塑为二维矩阵形式,形状为 $T \times d_Q$。

2.2.3 目标感知注意力与预测

通过上述个性化查询 $\mathbf{E}{Q-personalized} \in \mathbb{R}^{T \times d_Q}$ 和个性化序列items $\mathbf{E}{S-personalized} \in \mathbb{R}^{T \times d_S}$,target attention模块计算每个项的注意力权重,并在查询的指导下聚合序列。通常,个性化查询和项可以轻松集成到许多流行的注意力方法中,如多头target attention、DIN和CAN。

以多头target attention为例,对于每个头,候选item和序列items首先通过以下公式转换:

\[\mathbf{Q} = \mathbf{E}_{Q-personalized} \mathbf{W}_Q \quad (8)\] \[\mathbf{K} = \mathbf{E}_{S-personalized} \mathbf{W}_K \quad (9)\] \[\mathbf{V} = \mathbf{E}_{S-personalized} \mathbf{W}_V \quad (10)\]

其中:

  • $\mathbf{W}_Q \in \mathbb{R}^{d_Q \times d_A}$,$\mathbf{W}_K$ 和 $\mathbf{W}_V \in \mathbb{R}^{d_S \times d_A}$,$d_A$ 表示target attention中的维度大小。第 $t$ 个查询-键对的注意力权重 $\mathbf{z}’[t]$ 可以通过以下公式计算: \(\mathbf{z}'[t] = \frac{\mathbf{Q}_t^T \mathbf{K}_t}{\sqrt{d_A}} \quad (11)\) 随后通过softmax操作对个性化权重进行归一化并聚合个性化序列:
\[\mathbf{z} = softmax(\mathbf{z}'), \quad \mathbf{s} = \sum_{t=1}^T (\mathbf{z}[t] \cdot \mathbf{V}_t) \quad (12)\]

通过序列建模输出 $\mathbf{s}$ 和其他特征嵌入(包括 $\mathbf{E}_U$、$\mathbf{E}_I$ 和 $\mathbf{E}_O$),拼接层和多个高层MLP将所有信息合并并输出预测结果,训练损失通过二元交叉熵函数计算:

\[\mathbf{E}_{all} = \mathbf{s} \oplus \mathbf{E}_U \oplus \mathbf{E}_I \oplus \mathbf{E}_O, \quad \hat{y} = MLP(\mathbf{E}_{all}) \quad (13)\]

3 实验

3.1 实验设置

数据集和实验设置
为了充分评估所提出的ADS模型,我们在一个公共数据集(即淘宝数据集)和两个来自抖音的十亿级工业数据集(即抖音广告平台抖音电商平台)上进行了实验。表1报告了这三个数据集的统计信息。

  • 淘宝数据集:淘宝数据集来自[33],提供了淘宝用户行为数据,目前广泛用于序列建模方法[3]。前7天数据用于训练,其余用于测试。过滤了至少有200次交互和10次正向行为的用户,以及至少有10次交互的项。数据集中有9,439个类别,我们将每个类别视为一个领域。在该数据集中,页面浏览被视为负向交互,其他行为被视为正向标签(订单)。

  • 抖音广告数据集:我们选择了抖音广告中的转化率(CVR)预测任务,并收集了从2022年12月14日到2023年3月10日的在线流量日志子集,共87天,17.3亿样本。前77天用于模型训练,其余10天用于评估。在抖音广告平台中,根据用户的外部行为,数据集可以分为三个主要领域:直播支付、直播订单和短视频购物,分别表示为领域1、2和3。

  • 抖音电商数据集:我们选择了抖音直播电商服务中的两种用户购物行为(点击和订单)作为预测目标。收集了从2024年1月1日到3月1日的在线流量日志子集,共61天,25.2亿样本。前54天用于训练,最后一周用于验证。数据集涉及抖音直播中的两个典型场景:直播预览和直播滑动,分别表示为领域1和2。

对比方法和评估指标
为了全面比较所提出的ADS与现有方法,我们选择了几个代表性的SOTA模型,分为两类:

  1. 基于DNN的方法:包括DNN、DeepFM[9]、DCNv2[23]、APG[25]、AdaSparse[27]、DFFM[10]、MaskNet[24]。
  2. 基于target attention的骨干方法:包括DIN[32]、MHA[20]和CAN[2],并在此基础上添加了最近的多领域嵌入学习方法进行比较,包括FRNet[21]和PEPNet[6]。

所有方法均基于Tensorflow实现,并通过交叉熵损失进行优化。采用Adam[13]优化器,初始学习率为0.00002。使用AUC指标评估排序模型的性能。此外,我们引入了相对改进(Imp.)[26]来衡量相对AUC增益,计算公式如下(随机策略的AUC值为0.5): \(AUC\ Imp. = \left(\frac{AUC(MeasuredModel) - 0.5}{AUC(BaselineModel) - 0.5} - 1\right) \times 100\% \quad (14)\)

3.2 实验结果

整体性能
表2展示了不同方法在三个数据集上的对比结果。对于淘宝数据集,由于领域数量较多,仅提供了整体结果。为清晰起见,结果按四组进行报告:第一组列出基于DNN的方法,其余三组分别列出基于DIN、MHA和CAN的多领域target attention方法。从结果中可以得出以下几点观察:

  1. 与基于DNN的方法相比,基于target attention的序列建模在排序模型中起着至关重要的作用。从表中可以看出,DIN、MHA和CAN在淘宝数据集上分别提升了0.54%、0.23%和0.17%,在抖音广告数据集上分别提升了0.22%、0.19%和0.04%,在抖音电商的点击预测任务中分别提升了0.49%、0.31%和0.11%。

  2. 现有的多领域方法对排序模型普遍有积极影响。具体而言,在基于DNN的方法中,AdaSparse在淘宝和抖音广告数据集上优于基线。FRNet和PEPNet在不同组中也表现出改进的性能。

  3. 所提出的ADS在基于DIN、MHA和CAN的组中始终表现最佳,显示出其高效性和兼容性。具体而言,在淘宝数据集中,ADS在DIN、MHA和CAN组中分别比第二好的方法提升了0.47%、0.20%和0.20%。在抖音广告数据集中,ADS比第二好的方法分别提升了0.20%、0.12%和0.14%。在抖音电商数据集中,ADS在点击预测任务中分别比第二好的方法提升了0.05%、0.07%和0.15%,在订单预测任务中分别提升了0.11%、0.15%和0.18%。此外,在两个工业数据集的每个领域中,ADS均显著优于对比方法,证明了其个性化target attention机制的优势。

3.3 消融实验与敏感性分析

消融实验
为了进一步评估ADS中两个模块(PCRG和PSRG)的性能,我们在抖音广告数据集上进行了消融实验。如表3所示,移除PCRG模块后,整体性能在基于DIN、MHA和CAN的方法中分别下降了0.06%、0.03%和0.23%。此外,移除PCRG和PSRG模块后,整体性能分别下降了0.23%、0.23%和0.29%。因此可以得出结论,个性化target item和个性化序列对ADS均有积极影响,验证了这些模块的有效性。

ADS中分块数量的敏感性分析
为了研究分块数量的影响,我们对ADS进行了敏感性分析。具体而言,我们通过改变每个分块中的项数(从[1, 2, 5, 10])来研究性能模式,并从训练效率和模型性能两个方面进行分析。

  • 训练效率模式:我们通过总结和比较不同分块下的模型参数和训练浮点操作(FLOPs)来评估模型训练效率,结果如图4所示。从图中可以明显看出,随着模型个性化程度的提高,模型参数和训练FLOPs持续增加。

  • 性能模式:图5展示了通过改变每个分块中的项数得到的模型性能模式。具体而言,首先,与原始的DIN、MHA和CAN相比,ADS及其不同分块版本在点击和订单预测任务中均表现出明显的性能提升。此外,随着分块中项数的减少,模型性能持续提升,最个性化的模型(即无分块的ADS)表现最佳,表明考虑候选item的个性化特征具有重要意义。

总体而言,随着ADS个性化能力的提高,性能和训练成本均有所增加,但我们观察到,即使训练成本略有增加(如分块10的ADS与原始方法相比),模型性能仍能实现显著提升,因此实践者可以根据效果和效率的平衡灵活选择参数。

3.4 在线部署

ADS模型通过分片和数据并行策略在多GPU上分布式部署。为了减少存储,低频嵌入被消除。为了进一步提高GPU吞吐量,我们引入了密集计算异步策略,将计算图分为稀疏前向和密集计算部分,从而实现流水线效果,大大提高了训练和推理效率。得益于这些优化,离线训练资源与基线相同,即64个Nvidia A100。以抖音广告为例,训练时间成本从41.3小时略微增加到42.8小时(+3.6%)。在线延迟保持在30ms,无明显变化。

3.5 在线A/B实验

为了研究所提出的ADS在真实工业场景中的性能,我们在抖音的广告系统和电商系统中分别进行了仔细的在线A/B测试。

  • 抖音广告:抖音广告的在线实验于2023年11月2日至11月8日进行,覆盖了74,079,729名抖音APP用户。选择了两个指标进行比较:每千次展示成本(CPM)和广告主价值(ADVV)。需要注意的是,部署场景是字节跳动广告的主要流量来源,基线非常强,ADVV或CPM的0.5%提升被认为是显著的。对比结果如表4所示。从表中可以看出,部署ADS后,整体CPM提升了0.52%,ADVV提升了1.00%,显示了ADS自适应序列建模的优势。此外,在抖音广告的两个主要领域(直播和短视频)中,ADS均优于基线并实现了一致的提升,表明其在领域感知序列建模中的有效性。

  • 抖音电商:在线实验于2024年1月23日至1月29日在抖音电商平台进行,覆盖了508,926,918名抖音APP用户。实验结果如表5所示。选择了三个指标进行比较:每用户总交易额(GMV/U)、每用户订单数(Order/U)和每千次展示交易额(GPM),这些都是抖音电商中的重要商业指标。与抖音广告实验类似,该部署场景贡献了字节跳动最高的GMV,基线非常强,GMV的0.5%提升被认为是显著的。如表5所示,整体GMV/U、Order/U和GPM分别提升了0.79%、0.36%和0.89%。此外,在直播预览和直播滑动两个领域中均观察到一致的提升,所有提升均经过统计显著性检验(𝑝值<0.01),验证了其有效性。

#

https://arxiv.org/pdf/2502.05523

字节在《Real-time Indexing for Large-scale Recommendation by Streaming Vector Quantization Retriever》提出了流式向量量化检索器。我们来看一下它的实现:

摘要

检索器作为推荐系统中最重要的阶段之一,负责在严格的延迟限制下高效地为后续阶段选择可能的正样本。因此,大规模系统通常会使用一个简单的排序模型,依靠近似计算和索引来粗略地缩小候选规模。考虑到简单模型缺乏生成精确预测的能力,大多数现有方法主要集中于引入复杂的排序模型。然而,索引有效性的另一个基本问题仍未解决,这也成为了复杂化的瓶颈。在本文中,我们提出了一种新颖的索引结构:流式向量量化模型(Streaming Vector Quantization model),作为新一代的检索范式。流式VQ能够实时为item附加索引,赋予其即时性。此外,通过对可能变体的细致验证,它还实现了索引平衡和可修复性等额外优势,使其能够像现有方法一样支持复杂的排序模型。作为一种轻量级且易于实现的架构,流式VQ已在抖音和抖音极速版中部署,并取代了所有主要的检索器,带来了显著的用户参与度提升。

1 引言

在现代推荐系统中,我们不断面临爆炸性增长的语料库,因此由检索、预排序和排序阶段组成的级联框架变得非常普遍。在这些阶段中,检索器的任务是从整个语料库中区分候选样本,但给定的时间却最少。例如,在抖音中,检索器需要从数十亿条内容中筛选出数千个候选样本,而后续阶段只需将候选规模缩小10倍。

然而,扫描所有候选样本会带来极高的计算开销,因此检索阶段不得不依赖于索引结构和近似计算。具体来说,诸如乘积量化(Product Quantization, PQ [8])分层可导航小世界(Hierarchical Navigable Small World, HNSW [11])等索引方法被提出。PQ通过创建“索引”或“聚类”来表示属于它们的全部内容。当一个聚类被选中时,其所有内容都会被检索出来。同时,用户侧和内容侧的信息被解耦为两个独立的表示,用户表示用于搜索相关聚类。这导致了一种“双塔”架构 [2, 7],其中每个塔由一个多层感知机(MLP)实现。由于其显著降低计算开销的能力,这种方法在许多工业场景中得到了广泛应用。在下文中,我们将其称为“HNSW双塔”。

尽管HNSW双塔架构简单,但它存在两个缺点:

  • (1)其索引结构需要定期重建,在此期间内容表示和内容索引分配是固定的。然而,在一个充满活力的平台上,新内容每秒都在提交,聚类语义也会因新兴趋势而变化,而这些变化在建模中被忽略了。此外,这种构建过程与推荐目标并不一致。
  • (2)双塔模型很少提供用户-内容交互,因此生成的预测较弱。不幸的是,在大规模应用中,复杂的模型(如MLP)会带来难以承受的计算开销。

许多现有方法都聚焦于这些问题,并开发了新的索引结构。然而,这些方法主要设计用于支持复杂模型,而忽略了索引本身的关键问题。根据我们的实践经验,索引即时性索引平衡性与模型复杂性同样重要。如果索引结构严重失衡,热门内容会集中在少数几个索引中,导致模型难以区分它们。例如,在深度检索(Deep Retrieval, DR [4])中,我们从路径中收集了500𝐾条内容,而仅排名第一的路径就生成了超过100𝐾个候选样本,这严重降低了检索效果。

在本文中,我们提出了一种新颖的索引结构——流式向量量化(streaming VQ)模型,以提升检索器的能力。Streaming VQ具有独特的实时将内容分配到合适聚类的特性,使其能够捕捉新兴趋势。此外,我们还详尽地研究了每种变体,以确定实现索引平衡的最佳解决方案。Streaming VQ使得索引内的内容可区分,因此它能够在保持优异性能的同时生成更紧凑的候选集。尽管它主要关注索引步骤,但它也支持复杂模型和多任务学习。凭借这些创新机制,streaming VQ在抖音和抖音极速版中超越了所有现有的主流检索器。事实上,它已经取代了所有主要检索器,带来了显著的用户参与度提升。本文提出的模型的主要优势总结如下:

  • 实时索引分配与自修复能力:内容在训练过程中被实时分配到索引中,并且索引能够自我更新和修复。整个过程无需中断步骤。
  • 平衡的索引结构:Streaming VQ 提供了平衡良好的索引,这有助于高效地选择内容。通过一种合并排序(merge-sort)的改进,所有聚类都有机会参与到推荐过程中。
  • 多任务学习的优秀兼容性:Streaming VQ 展现出与多任务学习的出色兼容性,并且能够支持与其他方法相同的复杂排序模型。
  • 易于实现的特性:最后但同样重要的是,与近期的工作相比,Streaming VQ 以其易于实现的特性脱颖而出。它具有简单清晰的框架,主要基于 VQ-VAE [17] 的现成实现,这使得它能够轻松部署于大规模系统中。

2 相关工作

如前所述,由于扫描整个语料库的计算开销过高,各种索引结构被提出以在可接受的误差范围内近似选择候选样本。乘积量化(Product Quantization, PQ [8])就是这样一个例子,它将内容聚集到聚类中。当某些聚类被选中时,属于这些聚类的所有内容都会被检索出来。可导航小世界(Navigable Small World, NSW [10])通过逐步插入节点来构建图,形成节点之间的捷径以加速搜索过程。分层可导航小世界(Hierarchical Navigable Small World, HNSW [11])提供了分层结构,能够快速缩小候选规模,因此被广泛采用,尤其是在大规模场景中。此外,还有一些基于树的方法 [6, 14] 和局部敏感哈希(Locality Sensitive Hashing, LSH)方法 [15, 16],旨在近似选择候选样本。

在建模方面,迄今为止最流行且基础的架构是所谓的“双塔模型”,其主要源自 DSSM [7]。双塔模型将用户侧和内容侧的原始特征分别输入到两个独立的多层感知机(MLP)中,并获取相应的表示(嵌入)。用户对某个内容的兴趣通过这两个嵌入的点积来表示。由于它将内容和用户信息解耦,在服务阶段可以预先存储内容嵌入,并通过近似最近邻(Approximate Nearest Neighbor, ANN)方法搜索结果。

然而,解耦用户和内容信息会丢弃它们之间的交互,而这种交互只能通过复杂模型(如MLP)来实现。为了解决这个问题,基于树的深度模型(Tree-based Deep Models, TDM [25], JTM [24], BSAT [26])提出了树状结构,以从粗到细的层次化方式搜索候选样本。在TDM中,内容被收集在叶子节点上,而一些虚拟的非叶子节点用于表示其子节点的整体属性。TDM采用复杂的排序模型,并通过注意力模块交叉用户和内容信息。考虑到HNSW本身已经提供了分层结构,NANN [1] 直接在HNSW上搜索候选样本,同样使用复杂模型。

另一种方法试图避免ANN算法所需的欧几里得空间假设。深度检索(Deep Retrieval, DR [4])主要由等距层组成,将内容定义为“路径”,并使用束搜索(beam search)逐层缩小候选范围。与TDM和NANN相比,它更关注索引而非排序模型的复杂性。还有一些方法 [9, 12] 使用多索引哈希函数对内容进行编码。

尽管上述方法主要集中在模型复杂性上,BLISS [5] 强调了索引平衡的重要性。它通过迭代强制模型将内容映射到桶中,甚至手动将一些内容分配到尾部桶中以保证平衡。

将内容附加到索引本质上是将它们“量化”为可枚举的聚类。因此,可以考虑向量量化(Vector Quantization, VQ)方法。从引入可学习聚类的VQ-VAE [17] 开始,许多方法 [22, 23] 已经考虑在检索任务中使用它或其变体。在本文中,我们将VQ模型发展为一种以流式方式更新、保持平衡、提供灵活性且轻量级的索引方法,并将其命名为“流式VQ(streaming VQ)”。

3 流式向量量化模型(Streaming VQ)

通常,检索模型包括索引步骤和排序步骤

  • 检索索引步骤使用近似搜索从初始语料库中逐步缩小候选范围
  • 检索排序步骤则为后续阶段提供有序的结果和更小的候选集

大多数现有方法都遵循这种两步范式。例如,最流行的双塔架构本质上利用HNSW来高效搜索候选样本。在特定操作轮次中,它首先通过排序模型对邻居节点进行排序(排序步骤),然后选择内容并丢弃其他内容(索引步骤)。同样,TDM和NANN模型也依赖于它们自己的索引结构(基于树/HNSW)。DR主要引入了一种可检索的结构,在实践中我们还需要训练一个排序模型来对结果进行排序,并为索引步骤提供用户侧输入嵌入。DR与其他方法的不同之处在于,DR的索引步骤和排序步骤是按时间顺序执行一次,而其他方法中这两个步骤是交替执行的。

图片名称

图 1 提出的流媒体VQ模型的训练框架

本文提出的流式VQ模型也由两个按时间顺序执行的步骤组成。在图1中,我们展示了其完整的训练框架(注意,流式VQ可以扩展到多任务场景,但为了简单起见,我们暂时只考虑预测视频是否会被播放完成的“完成任务”)。在索引步骤中,我们采用双塔架构(原因将在第5.5节讨论),并通过独立的塔生成内容侧和用户侧的中间嵌入 vu(图1中的深蓝色和黄色块)。首先,这两个中间嵌入通过一个辅助任务进行优化,该任务采用in-batch Softmax损失函数:

\[𝐿_{aux} = \sum_{o} -\log \frac{\exp(\mathbf{u}_o^T \mathbf{v}_o)}{\sum_{r} \exp(\mathbf{u}_o^T \mathbf{v}_r)},\]

其中:

  • $o$ 和 $r$ 表示样本索引。

量化操作出现在内容侧:我们保持一组可学习的聚类(单任务版本为16𝐾,多任务版本为32𝐾),并分配𝐾个嵌入。当生成 v 时,它在聚类集中搜索最近的邻居:

\[k^*_o = \arg\min_k ||\mathbf{e}^k - \mathbf{v}_o||^2,\]

…(2)

\[\mathbf{e}_o = \mathbf{e}^{k^*_o} = Q(\mathbf{v}_o),\]

…(3)

其中:

  • $Q(\cdot)$ 表示量化
  • e :所选聚类嵌入
  • u :用户侧嵌入

它们一起优化:

\[𝐿_{ind} = \sum_{o} -\log \frac{\exp(\mathbf{u}_o^T \mathbf{e}_o)}{\sum_{r} \exp(\mathbf{u}_o^T \mathbf{e}_r)}.\]

…(4)

搜索到的聚类作为输入内容的“索引”。这种内容-索引分配被写回参数服务器(Parameter Server, PS)。我们遵循标准的指数移动平均(Exponential Moving Average, EMA [17])更新:聚类嵌入通过其所属内容的移动平均值进行更新,而内容而非聚类接收聚类的梯度。EMA过程在图1中用红色箭头表示。

检索排序步骤与检索索引步骤共享相同的特征嵌入,并生成另一组紧凑的用户侧和内容侧中间嵌入。由于在此步骤中,更复杂的模型优于双塔架构,因此可以使用交叉特征和3D用户行为序列特征。我们基于连接嵌入为每个任务预测一个独立的塔(头),并由相应的标签进行监督。详细的模型架构可以在第3.5节中找到。

在服务阶段,我们首先通过以下公式对聚类进行排序:

\[\mathbf{u}^T \cdot Q(\mathbf{v}).\]

然后,所选聚类的内容被输入到下一个排序步骤中,并生成最终结果。

以上介绍了所提出方法的基础框架,在本节的剩余部分,我们将详细阐述如何在几个特别关注的方面进行改进,包括索引即时性、可修复性、平衡性、服务技巧,以及如何与复杂模型和多任务学习集成。

3.1 索引即时性

现有检索模型的整体更新周期由候选扫描(检查哪些内容可以被推荐)、索引构建和模型转储组成。其中,主要成本来自索引构建。

对于所有现有检索模型,索引构建是中断的,这导致索引语义的即时更新被忽略。例如,在抖音中,由于我们有数十亿规模的语料库,构建HNSW大约需要1.5-2小时,执行DR中的M步需要1小时。在此期间,索引保持不变。然而,在一个快速发展的平台上,新兴趋势每天都在出现。这种情况不仅需要实时将新提交的视频分配到适当的索引中,还需要同时更新索引本身。否则,它们无法相互匹配,只会产生不准确的兴趣匹配和较差的性能。相反,我们的模型通过流式样本进行训练,内容-索引分配会立即决定并实时存储在PS中(键=内容ID,值=聚类ID),无需中断阶段,并且聚类嵌入通过优化目标强制适应内容。这赋予了它最重要的优势:索引即时性。

现在,在流式VQ中,索引构建变为实时步骤,因此我们已经克服了主要障碍。此外,我们将候选扫描设置为异步,因此整体模型更新周期等于模型转储周期,仅需5-10分钟。

即便如此,仍存在一个潜在问题:内容-索引分配完全由训练样本决定。由于热门内容频繁曝光,它们的分配得到了充分更新。然而,新提交的和不受欢迎的内容获得曝光或更新的机会较少,这进一步恶化了它们的表现。

为了解决这个问题,我们添加了一个额外的数据流——候选流(candidate stream)——来更新它们。与称为“曝光流”的训练流不同,候选流只是以等概率逐个输入所有候选内容。如图1(虚线黑色箭头)所示,对于这些样本,我们仅通过前向传播获取并存储内容-索引分配,以确保其与当前聚类集的语义匹配。由于这些样本没有真实标签,因此不计算损失函数或梯度。

3.2 索引可修复性

流式更新范式是一把双刃剑:由于我们放弃了索引重建,整个模型面临性能退化的风险。这种现象广泛存在于所有检索模型中,但通常通过重建操作来解决。现在对于流式VQ,我们需要在没有重建操作的情况下解决这个问题。

原始的VQ-VAE引入了两个损失函数:一个与 $𝐿_{ind}$ 相同,另一个强调内容-聚类相似性:

\[𝐿_{sim} = \sum_{o} ||\mathbf{v}_o - \mathbf{e}_o||^2.\]

…(6)

在计算机视觉领域 [3, 13],模式很少变化,因此VQ类方法表现良好。然而,在大规模工业推荐场景中,内容自然会发生归属变化,但 $𝐿_{sim}$ 反而会锁定它们。

在我们早期的实现中,我们遵循了与原始VQ-VAE相同的配置,起初在线指标确实有所改善。然而,我们观察到模型退化:性能随着时间的推移逐渐恶化。随后我们意识到,在我们的平台上,由于全局分布漂移,作为内容的概括表示,聚类的语义每天都在变化。内容-索引关系并非静态,相反,内容可能在不同天内属于不同的聚类。不幸的是,$𝐿_{ind}$ 和 $𝐿_{sim}$ 都只描述了内容属于某个聚类的情况。如果它不再适合该聚类,我们不知道它应该属于哪个聚类。这就是性能退化的原因。

通过用 $𝐿_{aux}$ 替换 $𝐿_{sim}$,我们解决了这个问题。由于 $𝐿_{aux}$,内容嵌入可以及时独立地更新,然后 $𝐿_{ind}$ 根据内容表示调整聚类。经过这一修改后,我们成功观察到了持续的改进。我们将其总结为设计检索模型的原则:内容优先。内容决定索引,而不是相反。

3.3 索引平衡性

推荐模型应能够区分热门内容,并为后续阶段精确选择所需内容。具体来说,对于检索模型,我们希望它们将内容均匀分布在索引中,以便我们只需选择少数索引即可快速缩小候选集。这种特性称为“索引平衡性”。不幸的是,许多现有方法存在流行度偏差,未能提出有效的技术来防止热门内容集中在少数几个顶级索引中。为了缓解这种偏差,BLISS [5] 甚至强制将一些内容分配到尾部聚类。

注意到 $𝐿_{ind}$ 在平均情况下获得最小的量化误差。热门内容占据的曝光量远多于其他内容,因此最小化 $𝐿_{ind}$ 的最直接方法是将它们拆分并分配到尽可能多的聚类中,这自然会实现良好的平衡性。在我们的实现中,流式VQ确实采用了这一策略,并产生了令人惊讶的平衡索引分布(见第5.1节)。

为了进一步提高索引平衡性,我们修改了主要的正则化技术。设 $\mathbf{w}$ 为初步的聚类嵌入,我们在EMA中插入一个流行度项:

\[\mathbf{w}^{t+1}_k = \alpha \cdot \mathbf{w}^t_k + (1 - \alpha) \cdot (\delta^t)^\beta \cdot \mathbf{v}^t_j,\]

其中内容 $j$ 属于聚类 $k$,$t$ 表示时间戳,$\delta$ 表示内容出现间隔,如 [21] 中提出的。这里我们添加了一个超参数 $\beta$ 来调整聚类行为,较大的 $\beta$ 会促使聚类更关注不受欢迎的内容。然后,我们还更新记录聚类出现次数的计数器 $c$:

\[c^{t+1}_k = \alpha \cdot c^t_k + (1 - \alpha) \cdot (\delta^t)^\beta,\]

最终表示计算为:

\[\mathbf{e}^{t+1}_k = \frac{\mathbf{w}^{t+1}_k}{c^{t+1}_k}.\]

我们还在向量量化步骤中提出了“扰动”,即将公式(2)修改为:

\[k^*_o = \arg\min_k ||\mathbf{e}_k - \mathbf{v}_o||_2 \cdot r,\] \[r = \min\left(\frac{c_k}{\sum_{k'} c_{k'}/K} \cdot s, 1\right),\]

其中 $r$ 表示折扣系数,$s = 5$ 是一个阈值。这意味着如果整个聚类的曝光量少于平均值的 $1/s$ 倍,则在内容搜索其最近聚类时会被提升。这也有助于构建一个平衡良好的索引结构。

3.4 服务阶段的合并排序

内容的表示可能具有两种内在语义:个性化和流行度。我们希望根据内容的个性化而非流行度进行聚类。为此,我们显式地将内容表示解耦为个性化部分(嵌入)和流行度部分(偏差)。数学上,将公式(5)修改为:

\[\mathbf{u}^T \cdot Q(\mathbf{v}_{emb}) + v_{bias}.\]

通过这种方式,我们观察到同一聚类内的内容在语义上更加一致。所有训练损失函数也遵循相同的修改。

注意到在公式(11)中,即使同一聚类内的内容具有相同的 $Q(\mathbf{v}{emb})$,$v{bias}$ 也可以用于粗略排序。因此,我们提出了一种合并排序解决方案,以有效选择候选内容进入检索排序步骤。

图片名称

图 2

如图2(a)所示,$\mathbf{u}^T \cdot Q(\mathbf{v}{emb})$ 提供了聚类排名,而 $v{bias}$ 提供了聚类内内容的排名。然后基于这两部分的总和进行合并排序。这确保所有聚类(即使是那些大小超过排序步骤输入的聚类)都有机会为最终结果提供候选内容,因此我们可以收集一个非常紧凑的集合(50𝐾,仅为DR排序步骤输入大小的10%)以超越其他检索器。

具体来说,我们在这里使用最大堆来实现k路合并排序(图2(b))。聚类的内容首先独立排序并形成列表,这些列表被分成块(大小=8)。然后将这些列表构建成一个堆,由其头部元素初始化。在每次迭代中,我们从堆中弹出顶部元素,但取出其块中的所有元素。然后,来自同一列表的另一个块及其头部元素被添加到堆中。该策略在保持性能质量的同时有效减少了计算开销。更多细节请参见附录A。

3.5 模型复杂性

如前所述,在检索索引步骤和检索排序步骤中,我们分别评估16𝐾和50𝐾个聚类/内容。这一规模不再难以承受,因此我们可以使用复杂模型。在图3中,我们展示了索引和排序模型的两种架构:双塔架构和复杂架构。

双塔模型(图3左侧)遵循典型的DSSM [7] 架构。内容侧特征和用户侧特征分别输入到两个独立的塔(即MLP)中,并获得紧凑的嵌入。用户对该内容的兴趣通过这两个嵌入的点积计算。特别地,我们为每个内容添加了一个偏差项,并将其添加到最终得分中,以表示内容的流行度。在排序步骤中使用双塔模型的版本称为“VQ双塔”。

复杂版本(图3右侧)也将内容侧和用户侧特征输入以生成两个中间嵌入。然而,内容侧嵌入被输入到一个多头注意力模块 [19] 中作为查询,以提取非线性用户-内容交互线索,其中用户行为序列被视为键和值。然后,转换后的特征以及其他所有特征(包括交叉特征)被输入到一个深度MLP模型中以输出结果。使用复杂排序模型的版本称为“VQ复杂”。

理论上,这两种架构都可以部署在索引和排序步骤中。然而,在我们的实验中,复杂的索引模型并未带来改进。正如第5.5节所讨论的,复杂模型提供的非线性接口违反了欧几里得假设,并可能将聚类和内容划分到不同的子空间中,从而遗漏一些聚类。因此,我们将索引模型保持为双塔架构。

相反,对于排序步骤,复杂版本优于双塔版本。然而,它也带来了更多的计算开销。考虑到投资回报率(ROI),并非所有目标都部署为复杂版本。详细信息见第5.3节。

作为一个娱乐平台,抖音有许多热门话题和新兴趋势,这些内容集中在用户的近期行为序列中。然而,顶级话题已经被充分估计和分发,因此由热门话题主导的序列特征几乎无益于兴趣建模。为了解决这个问题,我们利用Trinity [20] 提供的统计直方图,过滤掉落在用户前5个次要聚类中的内容(填充更多内容以达到足够长度)。生成的序列倾向于长尾兴趣,并提供更多的语义线索。通过修改后的序列特征,某些目标得到了显著改善(见第5.3节)。

我们还在VQ复杂版本中添加了数十个特征以达到其最佳性能。仅添加特征或增加模型复杂性只能产生适度的结果。然而,通过结合这两种技术,我们获得了显著改进的结果。原因是,随着更多特征的加入,我们的模型能够实现高阶交叉并真正利用复杂性。

3.6 多任务流式VQ

尽管前面的讨论是基于单任务框架的,但流式VQ可以扩展到多任务场景。如图1所示,在索引步骤中,用户对每个任务都有独立的表示,但它们共享相同的聚类集。对于每个任务,我们同时计算 $𝐿_{aux}$ 和 $𝐿_{ind}$ 并传播梯度。

对于多任务版本,聚类表示需要针对不同任务进行专门化。具体来说,公式(7)和公式(8)被修改为:

\[\mathbf{w}^{t+1}_k = \alpha \cdot \mathbf{w}^t_k + (1 - \alpha) \cdot \prod_{p} (1 + h_{jp})^{\eta_p} \cdot (\delta^t)^\beta \cdot \mathbf{v}^t_j,\] \[c^{t+1}_k = \alpha \cdot c^t_k + (1 - \alpha) \cdot \prod_{p} (1 + h_{jp})^{\eta_p} \cdot (\delta^t)^\beta,\]

其中 $\eta$ 是另一个用于平衡任务的超参数,$h_{jp}$ 是内容 $j$ 在任务 $p$ 中的奖励。例如,如果视频未完成/完成,则 $h_{jp} = 0/1$。对于停留时间目标,它被设计为对数播放时间。注意,整个奖励始终大于1,因此聚类会倾向于产生更高奖励分数的内容。

检索排序步骤为所有任务共享特征嵌入,并训练各自的双塔或复杂模型。

图片名称

表 1


4 检索模型的详细分析

图片名称

图 3

在这里,我们将流式VQ与其他现有方法进行比较,并说明为什么它有利于大规模工业应用。

表1列出了我们关注的检索模型的7个方面,并逐一讨论:

  • 索引是否面向推荐? 在本文中,“面向推荐”衡量索引构建过程是否针对推荐目标进行了优化。在HNSW中,索引的构建不考虑其分配的任务。类似地,DR由于其M步骤也不是面向推荐的检索器。由于 $𝐿_{aux}$ 和 $𝐿_{ind}$ 都受到推荐目标的监督,流式VQ是面向推荐的。

  • 索引步骤中的负采样方法:HNSW和NANN在索引步骤中不涉及负采样方法。TDM引入了一种随机负采样方法,选择同一层级的另一个节点作为负样本。特别地,DR具有隐式负采样:由于所有节点都通过Softmax归一化,当我们最大化其中一个节点时,其他节点等效地被最小化。然而,这种最小化未考虑样本分布,因此DR仍然严重受到流行度偏差的影响。在我们的实现中,流式VQ在索引步骤中保持双塔架构,因此我们可以直接采用 [21] 中引入的现成in-batch去偏解决方案。

  • 流行度去偏:如上所述,DR无法避免热门内容集中在同一路径中。在我们的系统中,DR索引步骤后总共收集了500𝐾个候选内容,而排名第一的路径提供了100𝐾个。相反,由于第3.3节中提出的所有技术,流式VQ中的热门内容广泛分布在索引中。尽管大多数现有方法都关注复杂性,但我们认为流行度去偏是另一个被忽视但至关重要的问题。

  • 构建索引的时间成本:在抖音中,我们需要1.5-2小时来设置HNSW,并需要1小时来执行DR的M步骤。在流式VQ中,索引在训练过程中实时构建和更新。

  • 索引步骤的候选限制:这意味着我们可以处理多少候选内容作为输入。由于需要存储一些元信息(例如边),它受到单机内存的限制。作为最复杂的结构,HNSW只能存储170𝑀个候选内容。由于我们的语料库规模超过了这一限制,因此会定期随机丢弃一些内容。DR的结构(一个内容可以通过3条路径检索)大大简化,因此我们可以将阈值扩展到250𝑀。当前的流式VQ具有独占结构,因此理论上它可以存储比DR多3倍的候选内容(详细分析见附录B)。我们仅扩展到350𝑀,因为更多的候选内容可能会带来一些过时的信息。

  • 排序步骤的节点接触:这里我们展示了系统中每种方法的实际设置,而不是上限。由于HNSW/TDM/NANN在分层结构中检索候选内容,对于它们来说,排序步骤的节点接触指的是它们计算的总次数,而对于DR/流式VQ,它表示排序列表的大小。为了公平比较,我们将NANN和流式VQ的节点接触次数设置为相同(见第5.4节)。注意,由于流式VQ具有平衡良好的索引结构,并且可以在聚类内精细选择内容,因此即使排序候选规模减少10%,它仍然优于DR。

  • 适用的排序模型:使用复杂的排序模型总是会显著增加计算开销。众所周知,HNSW无法支持复杂架构。在抖音中,由于投资回报率(ROI)较低,DR在排序步骤中也使用双塔模型。其他检索模型使用复杂架构。

5 实验

在本节中,我们剖析了流式 VQ 的性能,包括聚类可视化和在线指标。然后,我们解释为什么我们更关注索引结构,而不是开发复杂的排序模型。我们还讨论了是否需要索引复杂化/多层 VQ。

5.1 平衡且不受流行度影响的索引

图片名称

图 4

在图 4 中,我们通过统计直方图(上)和 t-SNE [18](下)可视化索引分布。在直方图中,我们将聚类按其所属item数量进行聚合。从结果来看,大部分聚类包含的item数 ≤ 25K。考虑到我们有一个十亿规模的语料库和 16K 聚类,在理想的均匀分布下,每个聚类将分配到数万个item。我们得到的结果相当接近这种理想分布。

另一幅图描述了它们在二维空间中的聚合程度,颜色越深表示聚类越大。首先,所有点均匀覆盖整个区域,这意味着它们与其他聚类在语义上是不同的。然后,每个层级的点,尤其是大聚类的点,分散开来,甚至在局部也没有聚集。这表明索引结构能够抵抗流行度的影响。

因此,我们可以得出结论,流式 VQ 确实提供了平衡且不受流行度影响的索引。

5.2 工业实验环境

在本文中,所有实验均在我们的大规模工业应用中实施:抖音和抖音 Lite,用于视频推荐。作为一个娱乐平台,我们专注于提升用户参与度,即日活跃用户(DAUs)。由于用户被均匀分配到对照组和实验组,因此无法直接测量 DAUs。我们遵循 Trinity [20] 中的相同指标。我们计算实验期间用户的平均活跃天数作为平均活跃天数(AAD),平均活跃小时数作为平均活跃小时数(AAH),并将观看时间作为辅助指标。

由于检索器是作为单任务模型进行训练的,因此总是存在指标权衡。例如,优化完成目标的检索器可能通过简单地增强短视频的分发来实现,这将导致更多的展示次数(VV),但观看时间会下降。一般来说,一个可接受的上线应该在展示次数和观看时间上保持平衡(例如,增加 0.1% 的观看时间,但减少 0.1% 的展示次数)。一个更有效的检索器应该同时提高观看时间和展示次数。

在检索阶段,我们已经部署了数百个检索器。因此,我们更倾向于那些占据足够展示次数的检索器,这通过展示比例(IR)来衡量。IR 计算这个检索器贡献了多少展示次数,不进行去重。根据我们的经验,IR 是最敏感且最具预测性的指标。一般来说,如果它的 IR 提高了,我们就得到了一个更有效的检索器。

将检索模型升级为流式 VQ 涉及以下目标:停留时间(ST)、完成(FSH)、有效观看(EVR)、活跃停留时间(AST)、个人页面停留时间(PST)、旧候选停留时间(OST)、评论区停留时间(CST)和 Lite 停留时间(LST)。具体来说,停留时间目标衡量用户观看视频的时间,如果他/她观看了超过 2 秒,则记录为正样本。我们根据实际播放时间给正样本分配奖励。AST/PST/CST 描述了相同的信号,但出现在喜欢页面/个人页面/评论区,而不是信息流标签中。OST 和 LST 也建模了停留时间目标,OST 只是将 ST 应用于 1-3 个月前发布的候选item,而 LST 是专门为抖音 Lite 训练的。完成直接描述了视频是否被看完。有效观看是一个综合目标:它首先通过分位数回归预测观看时间等于 60%/70%/80%/90% 持续时间,然后通过加权和融合预测。

5.3 在线实验

图片名称

在表 2 中,我们展示了在线性能,其中只列出了具有统计显著性的指标。首先,对于每个模型,两种变化(从 HNSW/DR 到 VQ 双塔,以及从 VQ 双塔到 VQ 复杂模型)在 IR 上都提供了显著的改进。正如前面所展示的,这表明了更好的内在有效性,通常指的是索引平衡、即时性等。

所有实验在观看时间、AAD 和 AAH 上都产生了显著的改进,或者至少具有竞争力的表现。我们可以得出结论,流式 VQ 是比 HNSW 和 DR 更好的索引结构(与 NANN 相比,见第 5.4 节),并且 VQ 复杂模型优于 VQ 双塔。然而,令人惊讶的是,仅索引升级就产生了令人信服的 AAD 增益。这表明,尽管大多数现有工作都集中在复杂性上,但索引的有效性同样重要。

对于完成目标,“*” 表示复杂模型的序列特征没有通过 Trinity 进行去偏。通过比较两行相邻的数据,去偏版本在所有指标上都优于另一个版本,这表明长尾行为为全面描述用户的兴趣提供了补充线索。 抖音和抖音 Lite 在 DAUs 方面已经有一个非常高的基线。此外,检索阶段对展示结果的影响已经被 IR 按比例减少。检索模型的变化多年来没有为 AAD 提供显著的好处。然而,通过流式 VQ 替代,我们在几次上线中见证了令人印象深刻的改进。这验证了流式 VQ 作为一种新型检索模型范式的潜力。

5.4 索引优先,还是排序优先?

为了更好地理解索引和排序步骤在大规模场景中所起的作用,我们还进行了在线实验,比较了基于 EVR 目标的 NANN [1](最先进的检索模型)与所提出的方法。为了公平比较,我们确保 NANN 和 VQ 复杂模型具有完全相同的计算复杂性。请注意,NANN 和 VQ 复杂模型也使用了更多的特征。

图片名称

表 3

在表 3 中,我们将“HNSW 双塔”作为基线,并列出其他模型的性能。VQ 双塔、NANN 和 VQ 复杂模型依次提供了越来越好的结果,通过观看时间/AAH 来衡量。从这些结果来看,NANN 似乎与两种 VQ 架构具有竞争力。然而,一方面,正如我们在第 5.2 节中所展示的,NANN 比其获得的观看时间失去了更多的 VV,这并不是非常有效。另一方面,在图 5 中,我们可视化了它们的展示分布(与 HNSW 双塔相比的相对差异),这也得出了不同的结论。

图片名称

图 5

为了吸引用户,分发更多热门item(VV>1 亿)一直是一个捷径,因为它们很容易产生更多的观看时间和点赞次数。但一个更有效的系统能够精确匹配兴趣,因此小众话题可以获得更多展示机会。例如,添加更多特征也可以增强系统对不受欢迎item的理解,并改善它们的分发。从这个方面来看,两种 VQ 架构符合我们的期望:VQ 双塔将“1 万 - 10 万”的展示量提高了约 2%,同时将“1 亿 +”减少了 1%。此外,VQ 复杂模型甚至将近乎 5% 的“1 万 - 5 万”展示量提高了,同时将近乎 2% 的“1 亿 +”减少了。然而,NANN 保持了不变的分布,这表明它没有充分利用特征和复杂性。总之,VQ 复杂模型在观看时间和 AAH 上优于 NANN,同时减少了热门item的分发。因此,它是我们应用中的更好模型。

可以得出结论,仅仅复杂化排序模型是不足以充分利用模型结构和特征所提供的所有优势的。这是因为整个模型的性能受到索引步骤的限制。只有拥有先进的索引模型,复杂化才能实现其理想性能。因此,我们建议优先优化索引步骤,特别是在大规模场景中。

5.5 索引复杂化

正如第 3 节所展示的,我们也可以在索引步骤中使用复杂的模型。然而,它意外地提供了较差的结果。为了找出原因,我们进一步实施了以下变化:(1) 保持双塔头部,并根据公式(10)附加索引,确定item - 索引分配;(2) 将 e 和 v 输入复杂的模型,如图 3 所示,但不从它那里接收梯度;(3) 除了 e 和 v 之外,共享两个头部的所有其他特征嵌入和 DNN 参数。通过这种方式,我们将item中间嵌入和聚类嵌入强制到相同的语义空间,并尽可能相似。令人惊讶的是,它仍然给出了较差的结果。

图片名称

图 6

为了理解这种现象,想象我们有两个正样本(item)及其聚类(图 6 中的蓝色圆圈,较深的一个表示聚类)。在双塔索引版本中(左),它遵循欧几里得假设,模型只产生近线性界面,因此聚类与其item保持在相同的子空间中。

#

https://arxiv.org/pdf/2501.08695

wechat在《Introducing Context Information in Lifelong Sequential Modeling using Temporal Convolutional Networks》提出了TCN实现:

摘要

终身序列建模(Lifelong Sequential Modeling, LSM)在社交媒体推荐系统中的重要性日益增长。这一过程中的一个关键组件是注意力模块,它从序列中提取与候选item相关的兴趣表示。通常,注意力模块以pointwise方式工作,仅关注序列中单个item与候选item的相关性。然而,邻近item中的上下文信息对于更准确地评估每个item的重要性是有用的,这一点尚未被考虑。在本研究中,我们引入了一种新颖的网络,该网络采用时间卷积网络(Temporal Convolutional Network, TCN)为整个终身序列中的每个item生成上下文感知(context-aware)的表示。这些改进的表示随后被用于注意力模块中,以生成上下文感知的兴趣表示。基于这一TCN框架,我们提出了一个增强模块,该模块包括多个TCN层及其相应的注意力模块,以捕捉不同上下文范围内的兴趣表示。此外,我们还引入了一个轻量级的子网络,根据用户的基本profile特征创建卷积滤波器。这些个性化滤波器随后被应用于TCN层中,以替代原始的全局滤波器,从而生成更具用户特定性的表示。我们在一个公共数据集和一个专有数据集上进行了实验。结果表明,所提出的网络在预测准确性和在线性能指标方面优于现有方法。

1 引言

点击率(Click-Through Rate, CTR)预测是当今社交媒体平台上推荐系统的一项基本任务。其目标是预测:用户点击推荐内容的可能性。预测的准确性在很大程度上依赖于对用户兴趣与候选内容之间关系的理解。

近年来,深度神经网络(Deep Neural Networks, DNNs)在大多数场景中显著提高了CTR预测的准确性。成功的关键在于这些网络能够对用户的历史行为序列进行建模。这一过程的核心是注意力机制,它为序列中的每个item与候选item之间的相关性提供评分。这些评分被称为注意力分数,随后用于对序列进行加权求和,以生成候选item的最终兴趣表示。为了提高注意力机制的效率,已有大量研究工作展开[47, 48]。

随着用户行为的丰富化,用户历史行为序列的长度显著增加,甚至可能扩展到终身范围。序列长度的增加导致注意力机制的计算成本显著上升。在终身序列建模(Lifelong Sequential Modeling, LSM)中,一种有效减轻计算负担的方法是将注意力机制分为两个单元:通用搜索单元(General Search Unit, GSU)和精确搜索单元(Exact Search Unit, ESU)[32]。GSU的作用是从终身序列中筛选出与候选item最相关的item,随后ESU从GSU筛选出的item中提取用户兴趣表示。这种划分使模型能够处理更长的序列,这些序列包含更丰富的用户兴趣信息,从而进一步提高CTR预测的准确性。

然而,大多数先前的工作将注意力视为pointwise评分过程,通常分析候选item与序列中每个单独item之间的相关性。这种方法忽略了相邻item在理解用户意图方面提供的宝贵信息。这在当今的社交媒体平台(如TikTok、YouTube和微信视频号)上尤为重要,因为用户通常会连续消费一系列内容。例如,如图1所示,在连续消费流生成的用户行为序列中,用户对前三个item的观看时间非常长,但从第四个item开始,观看时间急剧下降。从pointwise角度来看,第三个item可能看起来是令人满意的,因为用户观看了很长时间。然而,从上下文感知的角度来看,第三个item可能并不那么受欢迎,因为它是用户愿意长时间观看的最后一个item。第三个item的某些属性可能导致用户失去兴趣,从而导致后续item的观看时间减少。因此,模型采用上下文感知的LSM至关重要,它考虑了序列中每个item的相邻item所包含的上下文信息。这种方法确保了对用户兴趣与候选item之间关系的更全面理解,并能提供更连续和相关的推荐结果。

图片名称

图1

为了实现上下文感知的LSM,我们提出了上下文感知兴趣网络(Context-Aware Interest Network, CAIN)。CAIN首先通过对历史行为序列的时间轴进行卷积操作(称为时间卷积网络,Temporal Convolutional Network, TCN)[2],提取序列中每个item的上下文感知表示。据我们所知,这是第一个将TCN引入LSM的网络。TCN具有两大优势:

  • 与循环神经网络(Recurrent Neural Networks, RNN)[9, 20]和自注意力机制(Self-Attention)[41]等方法相比,TCN更轻量且计算效率更高
  • 此外,通过调整卷积的滤波器大小,可以轻松控制上下文长度

TCN的输出表示随后被用于后续的注意力模块中,以提取与候选item相关的上下文感知兴趣表示,而不是使用原始的item表示。基于这一TCN框架,我们在CAIN中嵌入了多范围兴趣聚合器(Multi-Scope Interest Aggregator, MSIA)模块。MSIA模块包含多个堆叠的TCN层,这些层逐渐扩展输出表示的感受野。每一层的输出被发送到其对应的注意力模块中,以提取与候选item相关的不同上下文范围的兴趣表示。由于序列长度通过TCN层逐渐减少,后续卷积层的注意力计算成本也随之降低。最后,为了增强卷积操作的个性化能力,我们提出了个性化提取器生成(Personalized Extractor Generation, PEG)模块。该模块根据用户的基本资料特征为不同用户生成卷积滤波器。我们在所有TCN层中使用PEG模块生成的滤波器,而不是为所有用户使用统一的卷积滤波器。这使得TCN的输出表示更具用户特定性,从而进一步提高最终兴趣表示的代表性。

我们在一个公共数据集和从微信视频平台用户流量日志中收集的工业数据集上进行了广泛的实验。结果表明,与现有方法相比,所提出的CAIN在CTR预测准确性方面表现更优。此外,结果显示TCN框架和MSIA模块具有高度适应性,并在多种具有不同注意力设计的LSM基线模型上提供了性能提升。值得注意的是,CAIN在在线A/B测试中也取得了显著改进。这些发现证明了CAIN在复杂环境中增强CTR预测的有效性和鲁棒性。

2 相关工作

2.1 序列建模

基于深度学习的模型在工业应用中取得了显著进展,例如在线广告和推荐系统[7, 18, 26, 32, 34, 40, 42–44, 48]。用户历史行为序列的建模(称为序列建模,Sequential Modeling, SM)对于这些模型理解用户意图并实现个性化预测至关重要。在这一领域已有大量研究工作[4, 6, 13, 32, 47, 48]。

随着用户行为变得更加复杂,历史行为序列的长度显著增加。因此,近年来更多的工作集中在终身序列建模(LSM)上。Sim[32]和UBR4CTR[33]是两种引入两阶段框架来建模用户终身序列的方法,包括通用搜索单元(GSU)和精确搜索单元(ESU)。GSU从整个用户行为历史中检索与目标item最相关的前k个item,然后将这些item输入ESU进行后续的注意力计算。该框架严重依赖于预训练的嵌入,这可能会降低GSU和ESU阶段之间的一致性。为了解决这个问题,ETA[6]提出使用SimHash[5]检索相关item,并通过局部敏感哈希(Locality-Sensitive Hashing, LSH)在ESU中对item嵌入进行编码。SDIM[3]也被提出,为候选item和行为item生成哈希签名,然后收集具有匹配哈希签名的行为item来表示用户兴趣。这两种方法都允许两个阶段共享相同的嵌入以提高一致性。此外,TWINS[4]通过引入CP-GSU来增强一致性,CP-GSU不仅检索与目标相关的行为,还检索ESU认为重要的行为。此外,一些工作将两阶段框架升级为三级注意力金字塔[21],以进一步增强阶段之间的一致性。

然而,大多数工作将LSM视为pointwise过程,仅关注序列中单个item与候选item之间的关系。它们忽略了序列中相邻item提供的上下文信息的重要性。在本文中,我们的目标是实现一种上下文感知的LSM,考虑序列中每个item的相邻item。

2.2 上下文感知建模

上下文感知建模方法在自然语言处理(NLP)、计算机视觉(CV)和语音识别(SR)领域得到了广泛应用。长短期记忆网络(LSTM)[20] 和门控循环单元(GRU)[9] 是经典的循环神经网络(RNN)模型,被广泛用于各种 NLP 和 SR 任务 [17, 27, 29, 45?, 46]。近年来,Transformer 模型和自注意力机制(Self-Attention)[41] 已成为 NLP 领域的基础组件,其特点是仅基于注意力机制的编码器和解码器。GPT [35] 和 BERT [11] 是构建在该模块上的两个著名模型。除了基于 RNN 和基于注意力的方法外,还存在其他上下文感知建模方法。时间卷积网络(TCN)[2] 就是其中之一。卷积神经网络(CNN)在 CV 任务中占据主导地位 [14, 15, 19, 23, 36–38],因为卷积操作非常适合处理图像,通过自然地考虑目标像素的邻近像素来生成高级特征图。TCN 沿时间维度进行卷积操作,使生成的表示具有上下文感知能力 [8, 12, 24, 25, 30]。

研究人员已将 RNN 和自注意力机制引入序列建模(SM)中,用于点击率(CTR)预测。CA-RNN [28] 和 CRNNs [39] 是两种使用 RNN 预测用户历史记录中下一个item概率的方法。DEIN [47] 使用 GRU 提取每个用户的兴趣状态,并利用 AUGGRU 对目标item的兴趣演变进行建模。考虑到序列由会话组成,DSIN [13] 使用自注意力机制提取用户在每次会话中的兴趣,然后应用 Bi-LSTM 对用户兴趣在会话间的演变进行建模。

然而,尽管这些方法为 CTR 任务带来了一定的改进,但由于计算负担沉重,它们在扩展到终身序列建模(LSM)时面临挑战。因此,在 LSM 设置中,需要一种更轻量级且计算效率更高的方法来捕捉上下文信息。

3 预备知识

本文探讨上下文感知终身序列建模(Context-Aware Lifelong Sequential Modeling, LSM)的主题。与传统 LSM 不同,传统方法在注意力过程中通常将序列中的item视为孤立行为以评估其与候选item的相关性,而上下文感知 LSM 方法则考虑序列中每个item的上下文。本文定义的上下文由序列中每个item周围的相邻item组成,通常表示用户在该item前后直接交互过的item。

形式化定义

令:$\overset{\rightarrow}{𝐿𝐻} = \lbrace lh_1, lh_2, \cdots, lh_n \rbrace $表示用户的终身行为序列。以item $lh_t$(称为中心item)为中心的上下文可表示为:

\[\text{ctx}_t = \{𝑙ℎ_{t-c_l}, 𝑙ℎ_{t-c_l+1}, · · · , 𝑙ℎ_{t-1}, 𝑙ℎ_{t+1}, · · · , 𝑙ℎ_{t+c_l-1}, 𝑙ℎ_{t+c_l}\}, \tag{1}\]

其中 $c_l$ 表示上下文长度。

特征分类

本文模型中,每个用户包含三类特征:

  • 基础画像特征:记为 {𝐵};
  • 短期行为序列:记为 $\overset{\rightarrow}{𝐻}= \lbrace h_1, h_2, \cdots, h_n \rbrace$
  • 终身行为序列:记为 $\overset{\rightarrow}{𝐿𝐻} = \lbrace lh_1, lh_2, \cdots, lh_n \rbrace $

需注意:

  • 终身和短期行为序列中的每个item($lh_n$ 或 $h_n$)均包含其item ID 和附加信息(如用户观看时长);
  • 对于user-item对 $\langle u_i, v_i \rangle$,模型目标为预测用户 $u_i$ 对item $v_i$ 的点击率(CTR):
\[p_i = P(y_i = 1 \,|\, u_i, v_i, B, \overset{\rightarrow}{𝐻}^t, \overset{\rightarrow}{LH}_t; \theta), \tag{2}\]

其中:

  • $\theta$ 为模型参数。

损失函数

主网络通过交叉熵损失函数优化:

\[\mathcal{L}_{CTR} = -\frac{1}{BS} \sum_{i=1}^{BS} \left[ y_i \cdot \log(p_i) + (1 - y_i) \cdot \log(1 - p_i) \right], \tag{3}\]

其中:

  • $y_i \in {0, 1}$ 表示用户真实反馈(点击=1,未点击=0);
  • $BS$ 表示训练批次中的样本对总数。

4 方法论

本文提出了一种新颖的上下文感知兴趣网络(CAIN),使模型在进行终身序列建模(LSM)时能够考虑用户历史序列中每个item的上下文信息。CAIN 通过时间卷积网络(TCN)计算序列中item的上下文感知表示,并将这些表示输入后续注意力模块(替代原始item表示),从而提取针对候选item的上下文感知兴趣表示。

基于 TCN 框架,我们进一步在 CAIN 中引入两个核心模块以提升性能:

  1. 多范围兴趣聚合器(MSIA):包含多个 TCN 层,用于提取不同上下文长度下的表示,并将其输入对应的注意力模块以提取不同上下文范围的兴趣表示;
  2. 个性化提取器生成器(PEG):包含轻量级网络,根据用户基础画像特征生成卷积滤波器。

图2 展示了 CAIN 的总体架构及其与传统 LSM 网络的对比。

图片名称

图片名称

图2

4.1 上下文信息提取

从终身序列中提取用户对候选item兴趣的常见方法是执行注意力过程。在此过程中,候选item(记为$v$)作为query项,与序列中的item $\langle v, lh_t \rangle$(其中$lh_t \in \mathbf{LH}$)形成配对。每个$\langle v, lh_t \rangle$对根据注意力模块中的网络分配注意力分数:

\[s_t = \text{Attn}(v^e, lh^e_t; \theta_a), \tag{4}\]

其中:

  • $v^e$和$lh^e_t$分别表示$v$和$lh_t$的item表示
  • $\theta_a$表示注意力模块参数
  • $s_i$为注意力分数。这些分数将用于后续的检索或加权求和阶段。

值得注意的是,上述注意力过程主要关注$v$与$lh_t$之间的关系。然而,在现实场景中,用户行为往往具有连续性——用户会连续交互一系列item。这凸显了考虑上下文(即序列中每个中心item前后的相邻item)对全面理解行为及其与候选item相关性的重要性。

在提出的CAIN中,我们通过在注意力模块前引入时间卷积网络(TCN)[2]实现上下文感知的LSM。

4.1.1 表示提取

与循环神经网络(RNN)[9, 20]或自注意力[41]相比,TCN具有两大优势:

  1. 轻量高效:TCN仅需单次矩阵乘法即可沿序列滑动卷积核,而RNN和自注意力计算量显著更大(尤其是RNN包含无法并行的操作);
  2. 显式控制上下文长度:RNN和自注意力的上下文长度通常隐式学习,可能影响泛化能力(实验部分将深入探讨)。

TCN操作可视为在序列上滑动的线性层。给定:上下文长度$cl$,卷积核$W_C$的尺寸为$2cl+1$(覆盖中心item$lh_t$两侧的上下文)。

令:$ctx^e_t$表示上下文$ctx_t$内的item表示,每个卷积窗口的计算为:

\[cr_t = \left( ctxe_t \cup lhe_t \right) \times W^C + b_c, \tag{5}\]

其中:

  • $cr_t$为$lh_t$的上下文感知表示输出
  • $b_c$为偏置项

对于序列首尾缺乏足够上下文项的元素,采用零填充(zero-padding)以满足指定上下文长度。

4.1.2 表示替换

经TCN处理后,原始item表示$lhe_t$被转换为:包含中心item及其上下文信息的$cr_t$。为获取用户对候选item的上下文感知兴趣表示,我们将注意力模块中的$lhe_t$替换为$cr_t$,公式(4)更新为:

\[s_t = \text{Attn}(ve, cr_t; \theta_a). \tag{6}\]

相似的,在其它过程中,我们将$lhe_t$替换为$cr_t$,该修改确保注意力模块考虑用户交互的全局上下文,从而生成更精准的上下文感知兴趣表示。


4.2 多范围兴趣聚合器

不同长度的上下文可提供多样化的序列洞察:

  • 长上下文反映item对用户的深层影响(如兴趣迁移/衰减)
  • 短上下文捕捉用户行为的即时变化

为提取多范围上下文下的兴趣表示,我们提出多范围兴趣聚合器(MSIA),其架构如图3所示。

图片名称

4.2.1 堆叠层

通过堆叠TCN层可高效扩展上下文范围。随着网络加深,TCN层的感受野(receptive field)逐步增大。设:第$n$层的上下文长度为$cl_n$,当卷积步长=1时,第$n+1$层的上下文长度为:

\[cl_{n+1} = cl_n + fs_{n+1} - 1, \tag{7}\]

其中:$fs_{n+1}$为第$n+1$层的卷积核尺寸。

通过此方式,每层输出包含不同范围的上下文信息,且深层输出的表征性因TCN非线性操作而增强。

为降低深层计算成本,除首层外其他层的步长>1。这显著缩短输出序列长度,减少后续注意力模块的计算量。同时,步长>1加速上下文范围的扩展,以更少层数实现更大范围。首层步长固定为1以保证终身序列中每个中心item均有独立表示,而深层因关注整体上下文信息,允许合并输入表示。

4.2.2 独立注意力

为提取不同上下文范围对候选item的兴趣表示,我们为每层TCN输出配备独立参数的注意力模块(支持并行计算)。注意力模块分为两类:

  1. 主注意力:仅应用于首层TCN输出,使用终身注意力金字塔(LAP)[21]提取兴趣表示$IR_1$(与基线方法兼容,也可替换为ETA [6]/SDIM [3]);
  2. 辅助注意力:应用于后续TCN层输出。因步长>1导致输出序列较短,且关注整体上下文信息而非单个item,采用带线性投影的目标注意力:
\[sa_t = \frac{(W^Q_n v^e) \cdot (W^K_n cr^n_t)^\top}{\sqrt{d}}, \tag{8}\] \[IR_n = \sum_{t=1}^{T_n} sa^n_t \cdot (W^V_n cr^n_t), \tag{9}\]

其中:

  • $W^Q_n, W^K_n, W^V_n$为投影权重
  • $d$为内部维度
  • $cr^n_t$为第$n$层TCN输出

最终,MSIA模块将所有兴趣表示$IR_n$(含$IR_1$)拼接,形成多范围上下文的集成表示,平衡细粒度item信息与宏观上下文理解。

4.3 个性化提取器生成

传统卷积滤波器通常在不同输入间共享参数,其隐含假设是:输入数据服从相似分布。然而,当使用TCN处理用户历史序列时,该假设可能不成立。用户行为在不同类型用户间差异显著,且item对后续行为的影响程度也存在巨大差异。例如:

  • 高活跃用户可能主要基于item内容决定观看行为,受先前展示item的影响极小(即使存在负面体验);
  • 低活跃用户的行为更易受外部因素影响,对给定item前的展示item更敏感。

为使上下文提取更具个性化,我们提出个性化提取器生成器(PEG)模块(受个性化冷启动模块POSO [10]启发)。PEG模块为每个用户生成专属卷积滤波器,适配其独特行为模式,其架构如图4所示。

4.3.1 滤波器生成

PEG模块包含轻量子网络,用于为每个用户生成个性化卷积滤波器$W^{PC}_n$。该子网络由两个全连接层构成,通过捕捉用户基础画像特征的交互关系,将输入映射到滤波器参数空间。生成过程形式化表示为:

\[O_n = \text{ReLU}(W^{P1}_n \times I + b^{P1}_n), \tag{10}\] \[W^{PC}_n = \text{Reshape}(W^{P2}_n \times O_n + b^{P2}_n), \tag{11}\]

其中:

  • $W^{P1}_n, b^{P1}_n$:第一层全连接的权重与偏置
  • $W^{P2}_n, b^{P2}_n$:第二层全连接的权重与偏置
  • $I$:从集合$B$中提取的用户基础画像特征表示

PEG模块使用的基础画像特征包含:

  • 人口统计信息:年龄、性别、地域、教育背景等
  • 行为统计信息:展示item数、点击item数、用户最常交互作者(如最常观看作者)

实验部分将详细讨论这些特征对模型性能的影响。

4.3.2 个性化卷积

生成个性化滤波器后,我们将其替换各TCN层中的原始全局滤波器。尽管可采用”全局+个性化滤波器组合”方案,但实验表明完全替换方案效果更优。因此,公式(5)在CAIN中被改写为:

\[cr_t = \left( \text{concat}(ctx^e_t, lh^e_t) \right) \times W^{PC} + b_c. \tag{12}\]

通过个性化卷积滤波器,模型能更精准捕捉用户行为的独特模式,从而提升预测精度。

#

https://arxiv.org/pdf/2502.12634

摘要

作为推荐系统(RS)的关键最终环节,多任务融合(MTF)负责将多任务学习(MTL)生成的多个评分整合为最终评分,以最大化用户满意度并决定最终推荐结果。近年来,业界开始采用强化学习(RL)进行MTF,以优化推荐会话(session)中的长期(long-term)用户满意度。然而,当前用于MTF的离线RL算法存在三个严重缺陷

1) 为避免分布外(OOD:out-of-distribution)问题,其约束条件过于严格,严重损害模型性能;
2) 算法无法感知训练数据生成所用的探索策略,且未与真实环境交互,导致仅能学习次优策略;
3) 传统探索策略效率低下且损害用户体验。

针对这些问题,我们提出面向大规模推荐系统MTF的创新方法IntegratedRL-MTF,其核心创新包括:

  • 离线/在线策略融合:通过将离线RL模型与在线探索策略相整合,放宽过严的约束条件,显著提升性能;
  • 高效探索策略:剔除低价值探索空间(low-value exploration space),聚焦潜在高价值状态-动作对的探索;
  • 渐进式训练:借助探索策略进一步优化模型表现。

在腾讯新闻短视频频道的离线和在线实验表明,该方法显著优于基线模型。目前IntegratedRL-MTF已在腾讯推荐系统及其他大型推荐场景中全面部署,取得显著效果提升。

1 引言

推荐系统(Recommender Systems, RSs)[1, 2]通过分析用户偏好提供个性化推荐服务,目前已广泛应用于短视频平台[3, 7, 14]、视频平台[4, 5]、电子商务平台[6, 8-11]及社交网络[12, 13]等场景,每日服务数十亿用户。工业级推荐系统通常包含三阶段流程:候选生成(candidate generation)、排序(ranking)和多任务融合(Multi-Task Fusion, MTF)[4, 15]。在候选生成阶段,系统需从数百万乃至数十亿候选项中筛选出数千个候选项目;排序阶段则采用多任务学习模型(Multi-Task Learning, MTL)[4, 8, 16-18]预测用户点击、观看时长、快速滑动、点赞、分享等多种行为的预估分数;最终通过MTF模型将MTL输出的多任务分数融合为单一分数,生成候选项目的最终排序[15],从而决定推荐结果。然而目前针对MTF的研究仍缺乏实质性突破。

MTF的核心目标是:最大化用户满意度。用户满意度通常通过对单次推荐或推荐会话中的多种反馈指标进行加权计算进行评估,包括观看时长、有效点击、点赞、分享等行为。其中:推荐会话定义为用户从开始访问推荐系统到离开的完整过程,可能包含一次或多次连续请求。

图片名称

图1 推荐会话中用户与推荐系统(RS)之间的交互

在腾讯新闻、抖音和快手等推荐系统中,当前推荐结果会对后续推荐产生显著影响,特别是在同一推荐会话内。因此,我们需要同时考虑当前推荐的即时收益整个会话内的长期累积收益。最近,部分研究[15,24,25]开始采用离线强化学习(RL)[26]来寻找最优融合权重,以最大化长期收益。与前述方法相比,RL不仅考虑会话内的累积奖励,还能推荐既满足当前用户需求又能带来长期正向交互的内容。此外,RL相比进化策略(ES)具有更强的模型性能和更高的样本效率[23]。目前,RL已在腾讯[15]等多家公司的推荐系统中应用于MTF任务。

然而,现有RL-MTF方法存在以下严重问题[15,26-31]:

  • 1)为避免分布外(OOD)问题,现有离线RL算法采用了过于严格复杂的约束条件,严重损害了模型性能;
  • 2)在线探索与离线训练相互割裂,离线RL算法无法感知训练数据背后的探索策略,也不再与真实环境交互,因此只能学习到次优策略;
  • 3)现有探索策略效率低下且损害用户体验。

针对这些问题,我们提出了一种专门为推荐系统MTF任务设计的新方法IntegratedRL-MTF。

  • 首先,该方法将离线RL模型与我们的在线探索策略相结合。在离线训练时,可以直接获取探索策略生成的训练数据分布,从而放宽为避免OOD问题而设置的过度约束,显著提升RL模型性能。
  • 其次,我们设计了一种简单但极其高效的探索策略,不仅加快了模型迭代速度,还减少了对用户体验的负面影响,这对商业公司具有重要价值。
  • 最后,我们提出渐进式训练模式,借助高效探索策略通过多轮在线探索和离线训练的迭代,使目标策略快速收敛至最优策略。

我们使用自设计的新评估指标(该指标更简单且更适用于RL-MTF评估)在相同数据集上进行了离线实验对比。此外,在大规模推荐系统中进行的在线实验表明,我们的RL模型显著优于其他模型。IntegratedRL-MTF已在我们的推荐系统中稳定运行近一年,并推广至腾讯其他大型推荐系统,取得了显著效果提升。本文将重点阐述IntegratedRL-MTF的核心思想,不深入讨论实现细节。

本研究的主要贡献包括:

  • 系统分析了现有RL-MTF方法,指出其存在约束条件过严影响性能、在线探索与离线训练割裂导致策略次优、传统探索策略低效损害用户体验等核心问题
  • 提出面向大规模推荐系统MTF的定制化RL算法,通过离线RL与探索策略的融合放宽约束条件提升性能,并采用渐进式训练模式实现策略快速收敛
  • 在腾讯新闻短视频频道进行实验验证:离线实验采用新设计的评估指标,在线A/B测试显示模型显著优于基线(用户有效消费时长提升+4.64%,用户停留时长提升+1.74%)

2 问题定义

本节给出腾讯新闻短视频频道(与抖音类似)中RL-MTF的问题定义。如前所述,在当前推荐会话中,推荐结果会对后续推荐产生显著影响。在每个时间步$t$,推荐系统(RS)接收到用户请求后:

  • 1.首先从数百万内容中筛选出数千候选项目
  • 2.多任务学习(MTL)模型预测每个候选的多种用户行为得分
  • 3.多任务融合(MTF)模型使用公式(1)生成融合权重,将MTL模型输出的多个得分组合为最终得分
  • 4.最后将推荐列表发送给用户,并将用户反馈上报至平台数据系统
\[final\_score=\prod_{i=1}^m (pred\_score_i + bias_i)^{power_i}\]

…(1)

我们将上述融合问题建模为推荐会话内的马尔可夫决策过程(MDP)。在这个MDP中,推荐系统作为智能体与用户(环境)交互,进行序列化推荐,目标是:最大化会话内的累积奖励。该MDP框架包含以下关键组件[26]:

  • 状态空间 State Space(S):是状态$s$的集合,包括用户画像特征(如年龄、性别、top K兴趣、刷新次数等)和用户历史行为序列(如观看、有效点击、点赞等)

  • 动作空间 Action Space (A):是RL模型生成的动作$a$的集合。在我们的问题中,动作$a$是一个融合权重向量$(w_1,…,w_k)$,其中每个元素对应公式(1)中的不同幂次项或偏置项

  • 奖励Reward (R):当推荐系统在状态$s_t$采取动作$a_t$并向用户发送推荐列表后,用户对这些内容的各种行为将上报至RS,基于这些行为计算即时奖励$r(s_t,a_t)$

  • 状态转移概率Transition Probability (P):转移概率$p(s_{t+1} \mid s_t,a_t)$表示采取动作$a_t$后从状态$s_t$转移到$s_{t+1}$的概率。在我们的问题中,状态包含用户画像特征和用户历史行为序列,因此下一状态$s_{t+1}$取决于用户反馈且是确定性的

  • 折扣因子$Discount Factor (\gamma)$:决定智能体对未来奖励相对于即时奖励的重视程度,$\gamma \in [0,1]$

基于以上定义,在推荐系统中应用RL进行MTF的目标可以定义为:给定推荐会话内RS与用户以MDP形式交互的历史,如何学习最优策略以最大化累积奖励

3 提出的解决方案

3.1 奖励函数

在推荐会话中,RS在状态$s_t$采取动作$a_t$计算每个候选的最终得分,并向用户发送推荐列表,随后用户的多种反馈会上报至RS,如图1所示。为了评估即时奖励,我们定义如公式(2)所示的即时奖励函数:

\[r(s_t,a_t) = \sum_{i=1}^k w_i \cdot v_i\]

其中:

  • $w_i$是行为$v_i$的权重。
  • $v_1,…,v_k$:表示在我们的推荐场景中的用户行为,包括:观看时长、有效消费(观看视频超过10秒)以及点赞、分享、收藏等交互行为

通过分析不同用户行为与用户停留时长的相关性,我们为这些行为设置了不同的权重

3.2 在线探索

在训练RL模型之前,首先需要收集大量探索数据,这对模型性能有关键影响。然而,传统探索策略面临两个挑战[15,32]:

  • 低效率:在实践中,使用传统探索策略在大规模RS中收集足够的探索数据通常需要很长时间。例如,在我们的平台上使用动作噪声探索策略收集一次探索数据通常需要五天或更长时间。这影响了模型迭代速度并意味着收入损失

  • 对用户体验的负面影响:传统探索策略生成的过多探索动作(包括异常动作)会对用户体验产生显著负面影响,甚至导致用户流失,这是不可接受的

为解决上述问题,我们首先在推荐场景数据集上,对新学习的RL策略与基线RL策略在相同状态下生成动作的绝对差值分布进行了分析。为简化分析,我们将动作各维度的取值范围归一化至$[-1,1]$区间,并选取最重要的4维动作(包括有效消费、观看时长、播放完成率和正向行为率)进行说明,如图2所示。我们观察到:对于相同状态,新学习RL策略生成的动作通常不会与基线RL策略生成的动作产生显著偏离,这一现象也与我们的直觉相符。

图片名称

图2 在相同状态下,新学习的强化学习(RL)策略与基线RL策略生成的动作之间的绝对差异分布

基于此发现,我们提出了一种简单但极其高效的探索策略,如公式(3)所示,该策略根据基线策略为每个用户定义个性化的探索上下界

\[\mu_{ep} = \mu_{bp} + \epsilon,\quad \epsilon \sim \mathcal{U}(lower_b, upper_b)\]

…(3)

探索动作由基线策略输出的动作加上由$lower_b$和$upper_b$定义的均匀分布随机扰动生成。我们通过统计分析精心选择了$lower_b$和$upper_b$的取值。该探索策略的核心思想是:消除低价值探索空间,仅聚焦于探索潜在高价值的状态-动作对,如图3所示。

图片名称

图3 我们的探索策略(exploration policy)与动作噪声探索策略(action-noise exploration policy)的动作分布

相较于传统探索策略(本文以常用于生成探索数据的动作噪声探索策略为例,如图3珊瑚色曲线所示),我们的策略展现出极高的效率。在相同探索密度要求下,我们推荐场景中的探索策略效率约为动作噪声探索策略的210倍(具体分析见第4节)。此外,相比动作噪声探索策略,我们的策略能减少数据分布对RL-MTF模型训练的干扰。第3节详述的渐进式训练模式进一步扩展了探索策略的探索空间,因此可设置更小的个性化探索空间上下界。

3.3 IntegratedRL-MTF:面向大规模推荐系统MTF定制的强化学习算法

为解决前文所述问题,我们提出名为IntegratedRL-MTF的新方法。下面将分别介绍其执Actor网络(Actor Network)、评价器网络(Critic Network)和渐进式训练模式。

3.3.1 Actor网络(Actor Network)

执行器网络的目标是:为特定state输出最优action。遵循常规设置,我们在学习过程中构建两个执行器网络:

  • 当前Actor网络 $\mu(s)$
  • 目标Actor网络 $\mu’(s)$

$\mu(s)$ 通过将Actor网络与我们的探索策略相融合,实现了以下创新设计(如公式4-5所示):

  1. 约束松弛机制:通过整合在线探索策略的数据分布知识,放宽传统RL-MTF的严格约束条件
  2. 多评价器一致性惩罚项:基于多个评价器输出的一致性引入额外惩罚项,有效缓解外推误差

数学表达为:

\[\begin{align*} \theta_{k + 1}&\leftarrow \underset{\theta_k}{argmin} \ \ E_{s_t\sim D,a\sim\mu(s_t|\theta_k)}\bigg[\\ &- \frac{1}{m} * \sum_{i = 1}^{m}Q_i(s_t,\mu(s_t|\theta_k))\\ &+ \eta * d(\mu(s_t|\theta_k),\mu_{bp}(s_t),\text{lower}_b,\text{upper}_b)\\ &+ \lambda * \sqrt{\frac{1}{m} * \sum_{i = 1}^{m}(Q_i - \text{mean}(Q))^2} \ \ \bigg] \end{align*}\]

…(4)

其中:

\[d(\mu(s_t|\theta_k),\mu_{bp}(s_t),\text{lower}_b,\text{upper}_b)= \\ \begin{cases} 0, &\mu(s_t|\theta_k)\in(\mu_{bp}(s_t)+\text{lower}_b,\mu_{bp}(s_t)+\text{upper}_b)\\ e^{\frac{\mu(s_t|\theta_k)-(\mu_{bp}(s_t)+\text{upper}_b)}{\beta*(\text{upper}_b - \text{lower}_b)}},&\mu(s_t|\theta_k)>\mu_{bp}(s_t)+\text{upper}_b \text{ (5)}\\ e^{\frac{(\mu_{bp}(s_t)+\text{lower}_b)-\mu(s_t|\theta_k)}{\beta*(\text{upper}_b - \text{lower}_b)}},&\mu(s_t|\theta_k)<\mu_{bp}(s_t)+\text{lower}_b \end{cases}\]

…(5)

在训练$\mu(s)$期间,如第3.2节所述,可以直接获取每个用户探索数据分布的上界和下界。因此,我们可以利用这一特性来简化过于严格的约束条件,并充分发挥$\mu(s)$的能力。如果$\mu(s)$在状态$s_t$生成的动作处于用户的上界和下界范围内,则公式4中第二项的值为零,即不施加惩罚以避免影响模型能力。否则,将根据超出用户上界或下界的偏差施加惩罚。通过这种方式,当前actor网络的性能相比现有方法得到显著提升,这一点在第4节的实验中得到验证。

此外,我们还引入了一个惩罚机制,该机制定义为多个独立critics[33]输出估计值的标准差,以减轻外推误差,这是公式4中的第三项。由于我们的探索策略具有极高的效率,在用户上下界范围内收集的探索动作与传统动作噪声探索策略相比具有显著更高的平均密度,这对模型优化极具价值。此外,与高斯扰动相比,个性化上下界内的随机扰动减轻了数据分布对模型训练的干扰。如果$\mu(s)$输出的动作处于用户的探索空间内,公式4中第三项的值会很小甚至可以忽略。否则,将施加相应的惩罚来减轻外推误差。

目标actor网络$\mu’(s)$是一个辅助网络,负责基于下一状态生成下一最优动作,以缓解由bootstrapping引起的过估计问题。其参数会使用当前actor网络进行周期性的软更新。

3.3.2 Critic网络

Critic网络$Q(s,a)$负责估计推荐会话中状态-动作对$(s,a)$的累积奖励。$Q(s,a)$还将critic网络与我们的探索策略相结合以避免外推误差。在我们的解决方案中,创建了多个独立的critic网络,这些网络被随机初始化并独立训练。每个critic网络的目标是最小化TD-error,如公式6所示。如果$\mu’(s)$在下一状态$s_{t+1}$生成的下一动作处于用户的上下界范围内,公式6中第二项的值为零。否则,将根据超出用户规定上下界的偏差施加惩罚。实践中,我们通常将critic网络数量设为24,这足以在我们的推荐场景中取得良好效果。为了获得更好的性能,我们为每个critic定义了一个目标网络,其参数会使用相应的critic网络进行周期性软更新。

3.3.3 渐进式训练模式

离线RL的一个严重缺点是当模型离线训练时,它仅依赖于之前收集的数据而不再与真实环境交互。离线训练期间缺乏实时交互会导致学习策略与实际环境之间的差异,这对离线RL算法的性能产生显著负面影响[15,26-31]。

为了在大规模RS中缓解这个问题,我们的解决方案采用渐进式训练模式,通过高效的探索策略进行多轮在线探索和离线模型训练来学习最优策略,使目标策略能够快速收敛到最优策略。由于我们的探索策略效率很高,我们将之前的单次数据探索和离线模型训练划分为五轮在线数据探索和离线模型训练。最新学习到的策略将作为下一轮在线探索的基线策略。通过迭代高效地探索环境,学习到的策略将不断改进,从而进一步提升我们RL模型的性能。

3.4 基于RL-MTF的推荐系统

我们在腾讯新闻短视频频道实现了IntegratedRL-MTF,如图4所示。我们的RL-MTF框架由两个组件组成:离线模型训练和在线模型服务。离线模型训练组件负责预处理探索数据和训练RL-MTF模型。在线模型服务组件主要负责在接收到用户请求时生成个性化最优动作,计算每个候选的最终得分。此外,在线模型服务组件还负责在线探索以收集训练数据。

图片名称

图4 我们推荐系统中的 RL-MTF 框架

4.实验

数据集描述

以下数据集收集自腾讯新闻短视频频道,该频道服务数亿用户。我们使用四组用户收集探索数据,每组用户随机选取且数量相同(约200万),以确保公平比较。各数据集的在线探索策略定义如下:

数据集1:由动作噪声探索策略生成(如图3珊瑚色曲线所示),即在基线策略输出的动作上叠加高斯噪声。实验中采用的高斯分布均值为0.0,标准差为0.2,与此前推荐系统(RS)中使用的参数一致。
数据集2:由我们的探索策略生成(如图3青色曲线所示)。如前所述,将用户的动作上界设为基线策略输出的动作值加0.15,下界设为基线动作值减0.15。
数据集3:同样由我们的探索策略生成,但该数据集通过五轮在线探索收集。每轮使用当前探索数据完成模型训练后,新学习的强化学习(RL)策略将作为下一轮在线探索的基线策略。每轮数据采集时长为一天。
测试数据集:由基线策略生成,作为不同模型的统一测试数据。

所有探索策略均进行为期5天的环境探索,每个数据集包含约680万次会话。离线实验中,我们使用不同数据集训练不同的RL模型,并采用自定义的新指标在同一测试集上评估模型性能。在线实验中,各模型在腾讯新闻短视频频道部署运行一周,进行A/B测试。


4.2 实现细节

RL-MTF 中,用户状态 $s$ 包括:
• 用户画像特征(如年龄、性别、TOP K兴趣、刷新次数等)
• 用户历史行为序列(最大长度限制为100)

MTF模型生成的动作是一个10维向量,表示公式1中的融合权重。所有RL-MTF网络均为多层感知机(MLP),基于Adam优化器进行优化。参数设置如下:
• 奖励折扣因子 $\gamma = 0.9$
• 参数 $\alpha = 1.2$,$\beta = 0.3$,$\lambda = 0.2$
• Critic网络数量:24
• 目标网络软更新率 $w = 0.08$,延迟更新步长 $L = 15$
• 小批量尺寸:256
• 训练轮次:300,000


4.3 评估设置

4.3.1 离线策略评估

离线评估具有低成本且对用户无负面影响的优势。Group Area Under the Curve (GAUC) [34] 是推荐系统中常用的评估指标,用于衡量排序算法生成排名的质量 [4, 8, 16-18]。由于多任务学习框架(MTF)模型的目标是通过最终得分对候选项进行排名以最大化奖励,因此可以采用类似的评估指标。

基于GAUC指标,我们设计了一种新的离线RL-MTF模型评估指标:

  1. 样本标注:根据用户的观看时间定义每个用户-物品样本的标签。如果用户观看某个物品超过10秒(视为有效消费),则该用户-物品样本的标签为1;否则为0。
  2. 奖励定义:根据公式2定义每个用户-物品样本的奖励值,样本权重为其奖励值加一个常数值(通常设为1)。
  3. 动作生成与归一化:使用RL策略为每个用户-物品样本生成动作并计算其最终得分。将测试集中所有最终得分归一化到 $[0, 1]$ 区间,作为预测得分。
  4. 加权GAUC计算:通过考虑每个用户-物品样本的奖励值,加权GAUC指标更全面地衡量了RL策略在最终排名和区分不同奖励方面的能力。

相比现有评估指标 [15, 26],我们的加权GAUC指标更简单、更准确,并在实践中表现良好,非常适合推荐系统中的RL-MTF评估。


4.3.2 在线A/B测试

我们采用以下两个核心在线指标评估每个MTF模型的性能:
用户有效消费:一天内所有用户总有效消费次数的平均值。有效消费定义为用户观看视频超过10秒。
用户观看时长:一天内所有用户总观看时间的平均值。

4.4 对比方法

我们将 IntegratedRL-MTFES 及其他先进的离线强化学习(RL)算法进行对比。此外,我们还设计了 IntegratedRL-MTF 的两个变体,分别用于验证 离线 RL 模型与探索策略的整合渐进式训练模式(PTM,Progressive Training Mode) 对模型性能的影响:

ES [20-23]:以用户画像特征作为模型输入,生成个性化融合权重。由于其简单高效,本文将其作为基准方法。
BatchRL-MTF [15]:专为推荐系统中的多任务学习框架(MTF)设计,基于 BCQ [28] 框架生成动作。BCQ 已在腾讯多个推荐系统中部署多年,取得了显著改进。其他对比的 RL-MTF 方法均基于 BatchRL-MTF 框架实现。
DDPG(Deep Deterministic Policy Gradient)[27, 35]:一种经典的离策略 Actor-Critic 算法,适用于高维连续动作空间。
CQL+SAC(Conservative Q-Learning with Soft Actor-Critic)[30, 39]:通过正则化 OOD(Out-of-Distribution)动作-状态对的 Q 值,学习保守的 Q 函数下界,以减少外推误差。
IQL(Implicit Q-Learning)[31]:无需评估数据集外的动作,但通过泛化能力使学习到的策略显著优于数据集中最优行为。
IntegratedRL-MTF(无 PTM):将离线 RL 模型与在线探索策略整合,放宽过于严格的约束条件(使用数据集 2 训练)。
IntegratedRL-MTF:结合探索策略与渐进式训练模式,通过多轮迭代优化策略(使用数据集 3 训练)。


4.5 离线评估

本节通过广泛的离线实验,验证 IntegratedRL-MTF 相较于其他 MTF 算法的显著性能提升。同时,还分析了我们在线探索策略的效率。

4.5.1 IntegratedRL-MTF 的有效性

为比较上述算法的性能,我们分别训练各模型,并在相同测试集上使用加权 GAUC 指标进行评估:
ES 通过交替变异和选择过程更新模型参数,已长期部署于我们的推荐系统中,作为离线评估的基准。
DDPGCQL+SACBatchRL-MTFIQL 使用数据集 1 进行训练。
IntegratedRL-MTF(无 PTM) 使用数据集 2 进行训练。
IntegratedRL-MTF 使用数据集 3 并结合渐进式训练模式进行训练。

所有模型均在相同测试集上进行测试,结果如表 1 所示:

表 1:各方法在相同测试集上的加权 GAUC 对比

在离线评估中,IntegratedRL-MTF(无 PTM) 的加权 GAUC 显著高于 ES 模型及其他现有离线 RL 模型。传统离线 RL 算法因严格的约束条件导致性能受限,而我们通过用户上下界信息简化约束,并将离线模型算法与高效探索策略整合,从而显著提升了模型性能。此外,IntegratedRL-MTF 进一步优于 IntegratedRL-MTF(无 PTM),证明渐进式训练模式通过多轮迭代探索持续优化策略。


4.5.2 探索策略的效率

我们的在线探索策略通过在基线策略输出的动作上叠加随机扰动生成动作,扰动范围必须位于用户的个性化上下界内(如图 3 青色曲线所示)。该方法的核心思想是排除低价值探索空间,专注于潜在高价值状态-动作对的探索。

我们对不同 RL 策略在同一状态下生成的动作分布进行统计分析,并精心选择上下界值 $upperb$ 和 $lowerb$。为简化分析,本文假设探索策略每个维度的探索范围相同。通常,我们将 $upperb$ 和 $lowerb$ 分别设为 0.15 和 -0.15,这在推荐场景中已足够。

此前推荐场景中使用的动作噪声探索策略(如图 3 珊瑚色曲线所示)具有均值 0.0 和标准差 0.2 的高斯分布。由于 RL-MTF 模型生成的动作是一个 10 维向量,在相同探索密度要求下,我们的探索策略效率约为动作噪声探索策略的 210 倍

在实际应用中,由于 IntegratedRL-MTF 采用渐进式训练模式,探索策略的上下界可以进一步缩小,从而提高效率。

https://arxiv.org/pdf/2404.17589

kuaishou在《HoME: Hierarchy of Multi-Gate Experts for Multi-Task Learning at Kuaishou》提出了一种新的HoME的多任务实现方式,我们来看一下实现:

摘要

本文介绍了快手短视频服务中遇到的实际问题及从中汲取的经验教训。在工业界,广泛使用的多任务框架是专家混合(Mixture-of-Experts, MoE)范式,该框架通常为每个任务引入一些共享和特定的专家,然后通过门控网络来衡量相关专家的贡献。尽管MoE取得了显著的改进,但在我们的迭代过程中,我们仍然观察到三个严重影响模型性能的异常现象

  • (1)专家崩溃:我们发现专家的输出分布存在显著差异,一些专家在使用ReLU激活函数时,超过90%的激活值为零,这使得门控网络难以分配公平的权重来平衡专家。
  • (2)专家退化:理想情况下,共享专家旨在同时为所有任务提供预测信息。然而,我们发现一些共享专家仅被一个任务占据,这表明共享专家失去了其能力,退化为特定专家。
  • (3)专家欠拟合:在我们的服务中,有数十个行为任务需要预测,但我们发现一些数据稀疏的预测任务往往忽略其特定专家,并将较大的权重分配给共享专家。原因可能是共享专家能够从密集任务中感知更多的梯度更新和知识,而特定专家由于行为稀疏,容易陷入欠拟合。

基于这些观察,我们提出了HoME,旨在实现一个简单、高效且平衡的多任务学习MoE系统。具体而言,我们进行了三项有见地的改进

  • (1)专家归一化和Swish机制,以对齐专家输出分布并避免专家崩溃。
  • (2)层次掩码机制,以增强任务间的共享效率,减少占用问题并远离专家退化。
  • (3)特征门控和自门控机制,以确保每个专家都能获得适当的梯度,从而最大化其有效性。

据我们所知,本文是首个专注于提高多任务MoE系统稳定性的工作,我们进行了广泛的离线和在线实验(离线平均提高0.52%的GAUC,在线平均每位用户的播放时间提高0.954%)和消融分析,以证明HoME的有效性。HoME已部署在快手的短视频服务中,每日为4亿用户提供服务。

1 引言

近年来,诸如抖音和快手等短视频应用迅速崛起;与其他平台不同,用户在这些平台上通常没有明确的意图,例如在谷歌上搜索关键词或在亚马逊上购买衣物/食品,而快手几乎扮演了一种娱乐角色,用户无需输入任何概念。如图1所示,当使用快手时,用户通常通过简单地上下滑动屏幕观看多个自动播放的短视频,有时会留下一些互动,例如长观看、评论等。隐式反馈的比例远大于其他场景。因此,快手能够成长为一个拥有全球4亿用户的大型应用的唯一原因是,我们的系统能够提供个性化和有趣的短视频,给用户带来满意的体验。为此,利用用户留下的稀少但多样的行为线索来准确捕捉他们的兴趣是根本任务。通常,常见的做法是将这种学习过程构建为多任务学习范式,以构建一个能够同时输出不同用户互动的多个估计概率的模型,并通过真实的用户行为日志来监督该模型。

图片名称

图1 典型的快手多任务行为

作为一种典型的多任务解决方案,专家混合(MoE)的思想在工业界广泛用于实现参数软共享。最著名的方法是多重门控专家混合(MMoE),它由两个主要组件组成(如图2(a)所示):

  • 专家网络(expert network)——一组用于建模输入特征和隐式高级特征交叉的专家网络(例如,带有ReLU的MLP)
  • 门控网络(gating network)——任务特定的门控网络(例如,带有Softmax的MLP),用于估计不同专家的重要性,以融合它们的输出用于相应任务

最近,一些工作通过引入任务特定专家(例如,CGC)堆叠更多专家层(例如,PLE,AdaTT)扩展了专家网络,以增强MMoE系统的能力。在快手,我们之前的在线多任务模块配备了MMoE,与基线相比显著改善了我们的A/B测试指标。然而,在推出MMoE后,我们在过去几年中尝试了对多任务建模模块的几种不同更改。但都以失败告终,包括升级到两个或更多专家层,扩展更多共享专家,引入额外的特定专家等。因此,我们开始深入分析以确定可能阻碍我们迭代的潜在原因。不出所料,我们发现了三个严重影响多任务性能的异常现象。

图片名称

图2 一个朴素的MMoE和专家崩溃问题在实践中出现的说明。如(b)所示,expert总是所有任务分配的门值最大,大多数情况下超过0.98。我们还注意到,expert6的输出要小得多。激活值比其他专家更稀疏,如(c)所示。这些现象表明,在真实数据流场景中, MMoE不稳定,容易崩溃,阻碍了专家之间的公平比较,影响了模型的性能

专家崩溃:我们首先检查了MMoE的门输出情况,并在图2(b)中显示了主要任务分配给6个共享专家的门权重。值得注意的是,所有门(gate)都向共享专家6分配了较大的权重,几乎忽略了其他共享专家。因此,我们接下来检查了共享专家的输出值分布,并观察到它们的显著差异。如图2(c)所示,专家1∼5的均值和方差处于相似水平,但专家6的均值小了100倍。这种不一致的输出分布导致门控网络难以分配公平的权重来平衡不同的专家,这进一步导致处于不同数值水平的专家相互排斥。此外,我们还发现专家输出有太多的0激活(即超过90%的输出),导致其平均导数较小,参数训练不足。

专家退化:在我们解决了上述严重的专家崩溃问题后,我们成功地将多任务模块升级为共享特定的MoE变体CGC。因此,我们好奇门控权重是否能达到预期结果,即所有任务门控网络都能为共享专家和其特定专家分配可感知的分数,以达到平衡状态。不幸的是,我们发现了另一个意外的专家退化现象(如图3所示)。在这里,我们展示了一些主要塔的门控机制的平均分数,我们观察到共享专家几乎不对所有任务做出贡献,而是退化为仅属于少数任务的特定专家。因此,这种观察表明,天真的共享和特定专家架构难以收敛到理想状态。

图片名称

图3 在CGC中的专家退化问题,其中两个共享专家几乎被task2和task7所垄断,分别以特定的风格工作。

专家欠拟合:在我们进一步解决了专家退化问题并增强了共享专家对所有任务的效率后,我们发现一些特定专家被分配了较小的门值,使得相应任务仅依赖于共享知识,较少使用特定参数。实际上,我们的模型需要同时预测数十个不同的任务,它们的密度(即正样本率)也差异很大,而密集任务可能是稀疏任务的100倍,例如点击与收藏。与可以从多个密集任务接收多个梯度更新的共享专家相比,特定专家(specific-experts)容易陷入欠拟合,进一步导致稀疏任务更多地依赖共享专家,而忽略其特定专家,使得特定参数被浪费。如图4所示,任务6的门控网络向共享专家分配了较大的值,但忽略了其特定专家。

图片名称

图4 专家欠拟合问题,其中task1和task6几乎只依赖共享专家,而忽略了自己的特定专家,较少利用特定专家网络。

为了解决这些异常现象并提高MoE范式模型的稳定性,我们提出了一种简单、高效且平衡的神经网络架构用于多任务学习:多重门控专家层次模型,简称HoME。具体而言,我们从三个角度提供了有见地和深入的解决方案:公平专家权重的值分布对齐,重新组装任务的层次元专家结构,以及增强稀疏任务专家和深层多层MMoE训练的门控网络:

专家归一化和Swish机制:为了平衡专家输出的方差并避免专家崩溃,我们首先为每个专家引入了归一化操作,将其输出投影到近似正态分布,即专家输出分布≈N(0, I)。然而,在这种设置下,我们发现直接执行归一化也会导致在ReLU函数后存在太多的0。原因可能是归一化专家输出的均值接近0,因此一半的输出将小于0,然后在ReLU下激活为0。为了缓解零导数梯度现象,我们使用Swish函数替换ReLU函数,以提高参数的利用率并加速训练过程。由于归一化和Swish设置,所有专家的输出可以对齐到相似的数值幅度,这有助于我们的门控网络分配可比较的权重。

层次掩码机制

为了减少专家占用问题并避免专家退化(也称为任务冲突跷跷板问题),本文提出了一种简单而有效的级联层次掩码机制(Hierarchy mask)来缓解这种冲突。具体而言,我们插入了一个预排序元专家网络来将不同任务分组,以扩展标准化的MoE系统。如图1所示,我们的短视频行为任务可以根据其先验相关性手动分为两个元类别:

  • (1)被动的观看时间任务,例如长观看;
  • (2)主动的互动任务,例如评论。

因此,我们可以预先建模粗粒度的元类别专家,然后支持每个任务的以下想法:每个任务不仅应具有完全共享的全局专家,还应具有部分共享的类别内专家。

特征门控和自门控机制

为了增强稀疏任务专家的训练,我们提出了两种门控机制,以确保它们能够获得适当的梯度以最大化其有效性:特征门控(Feature-gate)和自门控(Self-gate)机制。考虑到同一层的专家总是共享相同的输入特征,但不同的专家将接收不同的梯度。因此,相同的特征输入可能会导致多个专家参数优化的梯度冲突的潜在风险。为此,我们首先提出了特征门控机制,以私有化灵活的专家输入,以保护稀疏任务专家的训练。此外,最新的MMoE研究表明,更深的堆叠专家网络可以带来更强大的预测能力。然而,在我们的实验中,我们发现原始门控网络容易逐层稀释梯度,这对稀疏任务专家的训练不友好。为了确保顶层梯度能够有效地传递到底层并稳定更深层的MMoE系统训练,我们进一步设计了自门控机制,以残差方式连接相邻的相关专家。

主要贡献

我们的主要贡献如下:

  • 我们深入分析了当前MoE系统的专家问题,并提出了我们的里程碑工作HoME。据我们所知,本文是首个专注于增强多任务MoE系统稳定性的工作,这将为其他研究人员探索更稳健的多任务MoE系统提供启示。
  • 我们在快手短视频服务中进行了广泛的离线和在线实验。离线实验显示,所有预测任务都得到了显著改进,在线实验在快手和快手极速版应用中分别获得了0.636%和0.735%的播放时间改进。
  • 我们的HoME已在快手的各种服务中广泛部署,每天支持4亿活跃用户。

2 相关工作

在本节中,我们简要回顾多任务学习的演进轨迹。多任务学习在使模型能够在各种研究领域(包括推荐系统[[2, 9, 37]]、自然语言处理[[6, 8, 30]]、计算机视觉[[12, 18, 26]]和普适计算[[13, 22]])中感知多种信号方面发挥着越来越重要的作用。

早期工作

在早期,一些研究利用硬专家共享架构,通过多个任务特定塔(由相同的专家输出驱动)来实现最简单的多任务学习系统。这些架构包括:

  • 共享底层架构(Shared-Bottom)[[3]]
  • 混合专家模型(Mixture-of-Expert, MoE)[[17]]

后续发展

随后,提出了交叉拼接网络(Cross-Stitch Network)[[25]]闸门网络(Sluice Network)[[29]],以构建深度专家信息融合网络,生成任务特定的输入,从而实现软专家知识共享

除了复杂的纵向深度专家交叉外,横向专家权重估计是另一种定制任务特定塔输入的方法。近年来提出的多门混合专家模型(Multi-Gate Mixture-of-Expert, MMoE)[[23]]通过多门机制为不同的专家分配不同的权重,以平衡不同的任务。

MMoE变体及其应用

随着基于神经网络的推荐系统的兴起,MMoE的变体方法在提升模型能力和准确性方面也发挥了重要作用。

2 相关工作

在本节中,我们简要回顾了多任务学习的演进轨迹。多任务学习在赋能模型感知多种信号方面发挥着越来越重要的作用,广泛应用于推荐系统 [2, 9, 37]、自然语言处理 [6, 8, 30]、计算机视觉 [12, 18, 26] 和普适计算 [13, 22] 等领域。

在早期,一些工作利用硬专家共享架构,通过多个任务特定的塔(tower)接收相同的专家输出,构建了最简单的多任务学习系统,包括共享底层(shared-bottom)[3] 和专家混合(Mixture-of-Experts, MoE)[17]。随后,提出了cross-stitch network[25] 和sluice network[29],通过构建深度专家信息融合网络生成任务特定的输入,以实现软专家知识共享。除了复杂的垂直深度专家交叉外,水平专家权重估计是另一种定制任务特定塔输入的方式。近年来提出的多重门控专家混合(Multi-gate Mixture-of-Experts, MMoE)[23] 提供了一种多重门控机制,为不同专家分配不同权重,以平衡不同任务。

随着基于神经网络的推荐系统浪潮的兴起,MMoE 的变体方法在提升模型能力和准确性方面也发挥了重要作用。开创性工作来自 YouTube 排序系统 [40],该系统通过不同的门控网络利用多个共享专家来建模真实的用户-物品交互。为了缓解任务冲突跷跷板(task-conflict seesaw)问题 [5, 31, 33],MMoE 的变体 CGC [33] 和 PLE [33] 不仅利用了共享专家,还引入了额外的特定专家,以实现更灵活的专家共享。基于共享/特定的思想,许多 MMoE 变体被提出,包括:

  • MSSM [11]:通过采用字段级和单元级特征选择机制扩展了 PLE 方法,以自动确定输入特征的重要性。
  • AdaTT [19]:在 PLE 基础上利用自适应融合门控机制,建模特定专家和共享专家之间的复杂任务关系。
  • STAR [31]:采用星型拓扑结构,包含一个共享专家网络和多个特定网络,以融合专家参数。
  • MoLA [43]:借鉴了大型语言模型(LLM)中的低秩微调技术,设计了轻量级的低秩特定专家适配器,以替代复杂的特定专家。

3 方法论

在本节中,我们将介绍我们的模型HoME的各个组成部分。我们首先回顾了在工业级推荐系统(RecSys)中,混合专家系统(MoE)是如何工作的,包括特征工程、MoE神经网络的细节以及用于排序的预测分数。随后,我们提出了针对三个问题的解决方案:专家归一化和swish机制用于克服专家崩溃问题,层次掩码机制用于缓解专家退化问题,以及两种门机制用于解决专家欠拟合问题。

3.1 预备知识:工业推荐系统中的多任务学习

工业推荐系统采用两阶段设计:(1)数百个候选物品的生成[35, 36];(2)候选物品的排序[7, 24, 40],以选出几十个最顶部的物品推荐给用户。由于这两个阶段的目标不同,因此使用的技术也完全不同:生成过程侧重于用户侧特征建模和粗略的物品采样,而排序过程则侧重于用户和物品特征的融合以及细粒度的用户多交互拟合。因此,多任务学习模型通常被用于排序过程中,以估计特定用户-物品对的各种交互概率。为简洁起见,模型生成的概率通常有一个简短的名称($xtr$),例如点击概率为$ctr$,有效观看概率为$evtr$,点赞概率为$ltr$,评论概率为$cmtr$等。

3.1.1 标签与特征

形式上,这种排序学习过程通常被组织为多二元分类的形式,每个用户-物品样本包含两类信息——监督标签和输入特征:

  • 监督信号:该用户-物品观看体验的真实标签,例如点击$y_{ctr} \in {0, 1}$,有效观看$y_{evtr} \in {0, 1}$,点赞$y_{ltr} \in {0, 1}$,评论$y_{cmtr} \in {0, 1}$以及其他标签。

  • 特征输入:MoE的输入旨在从多个角度描述用户和物品的状态,大致可以分为四类:

    • (1)ID和类别特征,我们使用简单的查找操作符来获取它们的嵌入,例如用户ID、物品ID、标签ID、是否为活跃用户、是否关注作者、场景ID等;
    • (2)统计特征,需要设计分桶策略将其离散化并分配ID,例如过去一个月观看的短视频数量、过去一个月的短视频观看时长等;
    • (3)反映用户短期和长期兴趣的序列特征,通常通过一阶段或两阶段的注意力机制建模,例如DIN [42]、DIEN [41]、SIM [27]、TWIN [4];
    • (4)预训练的多模态嵌入,例如文本嵌入[10]、asr嵌入[39]、视频嵌入[21]等。

将所有这些结合起来,我们可以获得多任务训练样本(例如,标签为${y_{ctr}, y_{evtr}, \dots}$,输入为$\mathbf{v} = [v_1, v_2, \dots, v_n]$),其中$n$表示特征的总数。

3.1.2 基于混合专家(MoE)的XTR预测

给定训练用户-物品样本的标签 $y_{ctr}, y_{evtr}, \dots$ 和特征 $\mathbf{v}$,接下来我们利用多任务模块进行预测。具体来说,我们展示了一种广泛使用的共享/特定范式MoE变体CGC的细节如下:

\[\begin{aligned} \widehat{y}^{ctr} &= \text{Tower}^{\ ctr}\left(\text{Sum}\left(\text{Gate}^{ctr}(\mathbf{v}), \{\text{Experts}^{\ \{shared,ctr\}}(\mathbf{v})\}\right)\right), \\ \widehat{y}^{evtr} &= \text{Tower}^{\ evtr}\left(\text{Sum}\left(\text{Gate}^{evtr}(\mathbf{v}), \{\text{Experts}^{\ \{shared,evtr\}}(\mathbf{v})\}\right)\right), \\ \widehat{y}^{ltr} &= \text{Tower}^{\ ltr}\left(\text{Sum}\left(\text{Gate}^{ltr}(\mathbf{v}), \{\text{Experts}^{\ \{shared,ltr\}}(\mathbf{v})\}\right)\right), \end{aligned}\]

其中:

\[\begin{aligned} \text{Tower}(\cdot) &= \text{Sigmoid}\left(\text{MLP}_T(\cdot)\right), \\ \text{Experts}(\cdot) &= \text{ReLU}\left(\text{MLP}_E(\cdot)\right), \\ \text{Gate}(\cdot) &= \text{Softmax}\left(\text{MLP}_G(\cdot)\right), \end{aligned}\]

…(1)

其中:

  • $\text{Expert}^{\ shared}: \mathbb{R}^{\mid\mathbf{v}\mid} \rightarrow \mathbb{R}^D$ 和 $\text{Expert}^{\ xtr}: \mathbb{R}^{\mid\mathbf{v}\mid} \rightarrow \mathbb{R}^D$ 分别是ReLU激活的共享和特定专家网络,
  • $\text{Gate}^{\ xtr}: \mathbb{R}^{\mid\mathbf{v}\mid} \rightarrow \mathbb{R}^N$ 是对应任务的Softmax激活的门网络,
  • $N$ 是相关共享和特定专家的数量,
  • $\text{Sum}$ 用于根据门生成的权重聚合 $N$ 个专家的输出,
  • $\text{Tower}^{\ xtr}: \mathbb{R}^D \rightarrow \mathbb{R}$ 是Sigmoid激活的任务特定网络,用于衡量相应的交互概率 $\widehat{y}$。

在获得所有估计分数 $\widehat{y}^{ctr}, \dots$ 和真实标签 $y^{ctr}, \dots$ 后,我们直接最小化交叉熵二元分类损失来训练多任务学习模型:

\[L = -\sum_{xtr \in \{ctr, \dots\}} \left( y^{xtr} \log(\widehat{y}^{xtr}) + (1 - y^{xtr}) \log(1 - \widehat{y}^{xtr}) \right),\]

…(2)

在在线服务中,常见的操作是设计一个可控的复杂方程,将XTRs组合为一个排序分数:

\[\text{ranking_score} = \alpha \cdot \widehat{y}^{ctr} + \beta \cdot \widehat{y}^{evtr} + \gamma \cdot \widehat{y}^{cmtr} + \dots,\]

…(3)

其中:

  • $\alpha, \beta, \gamma$ 是超参数。实际上,公式(3)在工业推荐系统中非常复杂,涉及许多策略。我们仅展示一个简单案例。在接下来的部分中,我们将重点改进公式(1)中的多任务学习过程的稳定性。

3.2 专家归一化与Swish机制

尽管公式(1)中的原始MMoE系统取得了显著的改进,但仍然存在严重的专家崩溃问题。将专家的 $MLP_E$ 函数生成的表示记为 ${ z^{shared}, z^{ctr}, z^{evtr}, \dots }$,我们发现它们的均值和方差值存在显著差异。受Transformer的启发,归一化操作是成功训练非常深度神经网络的关键技术之一。我们为每个专家引入了批归一化(Batch Normalization)[16],以支持HoME生成可比较的输出 $z_{norm} \in R^D$:

\[z_{norm} = \text{Batch_Normalization}(z) = \gamma \frac{z - \mu}{\sqrt{\delta^2 + \epsilon}} + \beta,\]

其中:

\[\begin{aligned} \mu &= \text{Batch_Mean}(z), \\ \delta^2 &= \text{Batch_Mean}\left((z - \mu)^2\right), \end{aligned}\]

(4)

其中:

  • $z$ 是任意专家的 $\text{MLP}_E$ 输出,
  • $\gamma \in R^D$ 和 $\beta \in R^D$ 是可训练的缩放和偏置参数,用于调整分布,
  • $\epsilon \in R^D$ 是一个非常小的因子,用于避免除以零错误
  • $\mu \in R^D$ 和 $\delta^2 \in R^D$ 是当前批次相同专家输出的均值和方差。

经过专家归一化后,$z_{norm}$ 的分布接近于标准正态分布 $N(0, I)$。因此,$z_{norm}$ 的一半值将小于0,并在ReLU激活下变为0,导致它们的导数和梯度为0,阻碍模型收敛。因此,我们使用Swish函数替换公式(1)中的ReLU,得到HoME的专家结构:

\[\text{HoME_Expert}(\cdot) = \text{Swish}\left(\text{Batch_Normalization}\left(\text{MLP}_E(\cdot)\right)\right),\]

…(5)

其中:

  • $\text{HoME_Expert}(\cdot)$ 是我们HoME中使用的最终结构。

在归一化和Swish的设置下,所有专家的输出可以对齐到相似的数值范围,这有助于门网络(gating network)分配可比较的权重。为简洁起见,在接下来的部分中,我们仍使用 $\text{Expert}(\cdot)$ 来表示 $\text{HoME_Expert}(\cdot)$。

3.3 层次掩码机制

针对专家退化问题,已有许多工作提出了新颖的特定专家和共享专家架构来缓解任务冲突。然而,遵循特定和共享范式,我们发现共享专家退化问题仍然存在。我们认为,考虑任务之间的先验相关性可能是有益的,如图1所示;我们的预测任务可以分为两类,例如主动交互任务(如点赞、评论等)和被动观看时间任务(如有效观看、长观看等)。在本节中,我们提出了一种简单而有效的级联层次掩码机制,以建模任务之间的先验归纳偏差。具体来说,我们插入了一个预排序的元专家网络来分组不同的任务,这里包括三种元任务知识来支持我们的两类任务:

\[\begin{aligned} z^{inter}_{meta} &= \text{Sum}\left(\text{Gate}^{\ inter}_{\ meta}(\mathbf{v}), \{\text{Experts}^{\ shared,inter}_{\ meta}(\mathbf{v})\}\right), \\ z^{watch}_{meta} &= \text{Sum}\left(\text{Gate}^{\ watch}_{\ meta}(\mathbf{v}), \{\text{Experts}^{\ shared,watch}_{\ meta}(\mathbf{v})\}\right), \\ z^{shared}_{meta} &= \text{Sum}\left(\text{Gate}^{\ shared}_{\ meta}(\mathbf{v}), \{\text{Experts}^{\ shared,inter,watch}_{\ meta}(\mathbf{v})\}\right), \end{aligned}\]

(6)

其中:

  • $z^{inter}{meta}, z^{watch}{meta}, z^{shared}_{meta}$ 是粗粒度的宏观元表示,用于提取:
    • (1)交互类任务的知识
    • (2)观看时间类任务的知识
    • (3)共享知识

在获得这些元表示后,我们接下来根据其对应的元知识和共享元知识进行多任务预测。具体来说,我们利用元知识构建了三种类型的专家:

  • (1)根据 $z^{shared}_{meta}$ 构建的全局共享专家
  • (2)根据 $z^{inter}{meta}$ 或 $z^{watch}{meta}$ 构建的局部共享专家
  • (3)根据 $z^{inter}{meta}$ 或 $z^{watch}{meta}$ 构建的每个任务的特定专家

对于任务特定的门网络,我们直接使用共享元知识 $z^{shared}_{meta}$ 和相应类别的元知识的拼接来生成专家的权重。这里,我们以点击和有效观看交互为例:

\[\begin{aligned} \widehat{y}^{ctr} &= Tower^{ctr}\left(Sum\left(Gate^{ctr}(z^{inter}_{meta} \oplus z^{shared}_{meta}), \\ \{Experts^{shared}(z^{shared}_{meta}), \\ Experts^{inter,ctr}(z^{inter}_{meta})\}\right)\right), \\ \widehat{y}_{evtr} &= Tower^{evtr}\left(Sum\left(Gate^{evtr}(z^{watch}_{meta} \oplus z^{shared}_{meta}), \\ \{Experts^{shared}(z^{shared}_{meta}), \\ Experts^{watch,evtr}(z^{watch}_{meta})\}\right)\right), \end{aligned}\]

(7)

其中:

  • $\oplus$ 表示拼接操作符,
  • $\text{Experts}^{\ shared}$ 是所有任务的共享专家,
  • $\text{Experts}^{\ inter}$ 和 $\text{Experts}^{\ watch}$ 是类别内任务的共享专家。

值得注意的是,HoME的第一层元抽象与PLE的主要架构差异,这是基于我们在快手真实多任务推荐场景中的观察(见图5)。基于HoME的先验语义划分的元专家网络,我们可以尽可能避免任务之间的冲突,并最大化任务间的共享效率。

图片名称

图5


3.4 特征门与自门机制

针对专家欠拟合问题,我们发现一些数据稀疏任务的门生成权重往往会忽略其特定专家,而为共享专家分配较大的权重。原因可能是我们的模型需要同时预测20多个不同的任务,而这些密集任务的密度可能是稀疏任务的100倍以上。为了增强稀疏任务专家的训练,我们提出了两种门机制,以确保它们能够获得适当的梯度以最大化其有效性:特征门和自门机制。

对于特征门,其目的是为不同任务专家生成不同的输入特征表示,以缓解所有专家共享相同输入特征时可能出现的梯度冲突。形式上,特征门旨在提取每个输入特征元素的重要性,例如 $\text{Fea_Gate}: \mathbb{R}^{\mid\mathbf{v}\mid} \rightarrow \mathbb{R}^{\mid\mathbf{v}\mid}$,如果输入是 $\mathbf{v}$。然而,在工业推荐系统中,$\mathbf{v}$ 通常是一个高维向量,例如 $\mid\mathbf{v}\mid > 3000+$;因此,为元专家引入这些大矩阵是昂贵的。受LLM效率调优技术LoRA [15] 的启发,我们引入了两个小矩阵来近似生成元素重要性的大矩阵:

\[\text{Fea\_LoRA}(\mathbf{v}, d) = 2 \times \text{Sigmoid}\left(\mathbf{v}(BA)\right),\]

其中:

  • $B \in \mathbb{R}^{\mid\mathbf{v}\mid \times d}$,$A \in \mathbb{R}^{d \times \mid\mathbf{v}\mid}$,$BA \in \mathbb{R}^{\mid\mathbf{v}\mid \times \mid\mathbf{v}\mid}$。

(8)

注意,我们在Sigmoid函数后应用了一个2×操作符,旨在实现灵活的放大或缩小操作。实际上,$\text{Fea_LoRA}$ 函数是生成私有化专家输入的有效方法。在我们的迭代中,我们发现它可以进一步通过多任务思想增强,即引入更多的 $\text{Fea_LoRA}$ 从多个方面生成特征重要性作为我们的 $\text{Fea_Gate}$:

\[\text{Fea\_Gate}(\mathbf{v}) = \text{Sum}\left(\text{Gate}_{fea}(\mathbf{v}), \{\text{Fea\_LoRA}_{\{1,2,\dots,L\}}(\mathbf{v}, \mid\mathbf{v}\mid/L)\}\right),\]

(9)

其中 $L$ 是一个超参数,用于控制 $\text{Fea_LoRA}$ 的数量,$\text{Gate}{fea}: \mathbb{R}^{\mid\mathbf{v}\mid} \rightarrow \mathbb{R}^L$ 用于生成权重以平衡不同 $\text{Fea_LoRA}$ 的重要性。注意,我们需要选择一个能被输入长度 $\mid\mathbf{v}\mid$ 整除的 $L$ 来生成 $\text{Fea_LoRA}$ 的维度。因此,我们的专家输入可以如下获得(这里我们展示了第一层元共享专家的输入 $\mathbf{v}^{shared}{meta}$):

\[\mathbf{v}^{shared}_{meta} = \mathbf{v} \odot \text{Fea\_Gate}^{shared}_{meta}(\mathbf{v}),\]

(10)

其中 $\odot$ 表示逐元素乘积。通过这种方式,不同的专家拥有自己的特征空间,这可以减少梯度冲突的风险,从而保护稀疏任务。

此外,最新的MoE研究表明,更深层次的专家网络堆叠可以带来更强大的预测能力 [19, 33]。然而,在我们的实验中,我们发现原始的门网络容易逐层稀释梯度,尤其是对于稀疏任务专家的训练。除了专家输入级别的 $\text{Fea_Gate}$,我们还在专家输出级别添加了基于残差思想的自门机制,以确保顶层的梯度能够有效地传递到底层。具体来说,$\text{Self_Gate}$ 只关注其特定专家的输出。以观看时间元专家的输出为例:

\[z^{shared}_{meta,self} = \text{Sum}\left(\text{Self\_Gate}^{shared}_{meta}(\mathbf{v}), \{\text{Experts}^{shared}(\mathbf{v})\}\right),\]

其中:

\[\text{Self\_Gate}(\cdot) = \begin{cases} \text{Sigmoid}\left(\text{MLP}_G(\cdot)\right) & \text{如果只有1个专家}, \\ \text{Softmax}\left(\text{MLP}_G(\cdot)\right) & \text{其他情况}. \end{cases}\]

(11)

其中 $\text{Self_Gate}: \mathbb{R}^{\mid\mathbf{v}\mid} \rightarrow \mathbb{R}^K$,$K$ 是相关专家的数量,其激活函数为Sigmoid(如果只有1个专家),否则设置为Softmax。类似地,$z^{inter}{meta,self}$ 和 $z^{watch}{meta,self}$ 可以通过相同的方式获得,然后我们将相应的表示(例如 $z^{inter}{meta} + z^{inter}{meta,self}$)添加到下一层的支持中。详见第5节以获取HoME的细粒度细节。

4 实验

在本节中,我们首先在离线环境中将HoME与几种广泛使用的多任务学习方法进行比较。然后,我们通过修改模型进行了一些变体实验,以验证HoME的有效性。我们还测试了HoME超参数对专家数量和特征门LoRA数量的鲁棒性影响。此外,我们提供了模型专家网络门权重的图表,以展示HoME作为一个平衡系统的潜力。最后,我们将HoME推送到在线A/B测试中,以验证HoME能为快手带来多大的收益。


4.1 实验设置

我们在快手的短视频数据流场景中进行实验,这是快手最大的推荐场景,每天包括超过4亿用户和500亿条日志。为了公平比较,我们仅更改公式(1)中的多任务学习模块,并保持其他模块不变。具体来说,我们实现了MMoE [23]、CGC [33]、PLE [33]、AdaTT [19] 等模型变体作为基线。对于评估,我们使用广泛使用的排序指标AUC和GAUC [42] 来反映模型的预测能力。具体来说,在我们的短视频服务中,GAUC是最重要的离线指标。其主要思想是分别计算每个用户的AUC,然后加权聚合所有用户的AUC:

\[\text{GAUC} = \sum_{u} w_u \text{AUC}_u \quad \text{其中} \quad w_u = \frac{\#\text{logs}_u}{\sum_{i} \#\text{logs}_i},\]

(12)

其中 $w_u$ 表示用户日志的比例。


4.2 离线实验

主要实验结果如表1所示。注意,在离线评估中,AUC或GAUC的0.03%~0.05%提升足以为我们的业务带来显著的在线收益。我们首先展示了HoME_Expert在MMoE上的有效性,即MMoE。然后,我们将HoME与所有改进的基线进行比较,这些基线都配备了HoME_Expert,例如“CGC w/o shared”,这是CGC的变体,忽略了共享专家和所有门网络。此外,我们还为HoME实现了消融变体:“w/o fg2”和“w/o fg”分别忽略了第二层特征门和所有特征门;“w/o sg”忽略了所有自门;“w/o mask”保留了HoME架构,但所有专家都是共享的。我们有以下观察:

  1. MMoE*显著优于原始MMoE方法,这表明我们的专家归一化和Swish机制可以克服专家崩溃问题,平衡专家输出,并鼓励专家网络承担应有的责任。
  2. “CGC* w/o shared”可以看作是每个任务具有特定专家的Shared-bottom。MMoE比这种简单的“CGC w/o shared”解决方案弱(在我们的实验中参数增加了24%),这表明MMoE系统在真实的大规模数据流场景中容易退化。
  3. *与“CGC w/o shared”相比,CGC没有显著改进**,这表明CGC的共享专家正在退化为某些特定专家。
  4. 与MMoE相比,PLE和AdaTT*表现更好,这表明在解决专家崩溃问题后,堆叠多个专家网络层并增加模型参数是释放多任务模块潜力的一种有前途的方法。
  5. HoME在所有任务中均显示出统计上的改进,同时引入更少的参数并取得了最佳结果,这表明我们的修改可以增强多任务MoE系统的稳定性并最大化专家效率。

对于HoME的消融实验:

  1. “w/o fg-sg-mask”变体与MMoE*表现相当,而“w/o fg-sg”变体在所有任务中均显示出显著改进(例如,AUC提升+0.15%),这表明我们的层次掩码机制是一种强大且低资源的策略,可以在不引入大量额外参数的情况下缓解专家退化问题。
  2. “w/o fg”变体比“w/o fg-sg”变体表现更好且更稳定,这表明在不同层专家之间添加残差连接有助于训练专家。
  3. 与HoME和“w/o fg2”变体相比,我们发现第二层特征门可以增强模型能力,但第一层特征门显示出更稳健和更大的改进。原因可能是第一层是输入信息源,并在粗粒度元层中使用,其任务梯度冲突问题比第二细粒度层更严重。

4.3 超参数敏感性讨论

本节探讨了专家数量和特征门LoRA数量的超参数敏感性,以研究HoME的鲁棒性。对于专家数量,我们在“HoME w/o fg”变体下进行实验,因为第一层特征门是一个昂贵的参数消耗操作。从表2中,我们可以观察到HoME的扩展规律现象:仅通过引入更多专家,预测精度会随着参数数量的增加而稳步提高。这种现象也表明我们的HoME是一个平衡的MoE系统,可以释放所有专家的能力。

对于特征LoRA数量,我们在“HoME w/o fg2”变体下进行实验,该变体仅涉及第一层特征门,同时在表1中显示出显著改进。具体来说,在我们的实现中,更多的LoRA数量只会减少隐藏维度,而不会增加额外的参数,这可能会降低单个LoRA的能力。从表3中,我们可以观察到两个LoRA的变体显示出最佳结果,这表明在平衡LoRA数量和LoRA建模能力以提供更多增量信息方面存在瓶颈。


4.4 HoME状态讨论

图6展示了HoME的专家输出分布和门权重流。从中我们可以观察到,HoME实现了平衡的门权重均衡状态:

  1. 根据特征门的热图(随机可视化的64个维度),我们可以得出结论,我们的特征门可以为每个专家实现灵活的元素级特征选择。
  2. 所有共享和特定专家的输出在数值上对齐。此外,我们可以发现元共享专家的分布与特定专家的分布不同,这表明共享知识倾向于由元网络编码,而差异知识则被推送到特定专家编码。
  3. 所有专家都发挥了预期的作用;共享和特定专家贡献了可感知的权重。

图片名称

图6


4.5 在线A/B测试

在本节中,我们还将HoME推送到在线排序模型中,服务于三个短视频场景:快手单页/双页(如图1所示)和快手极速版单页。在我们的服务中,主要指标是观看时间指标,例如(平均)播放时间,它反映了用户在快手上花费的总时间,我们还展示了视频观看指标,它衡量了用户观看的短视频总量。年轻用户和总用户组的在线A/B测试结果如表4所示。实际上,播放时间约0.1%的提升在快手上是一个统计上显著的改进。我们提出的HoME在所有用户的三个场景中分别实现了+0.311%、+0.474%和+0.169%的显著改进,这是过去一年中最显著的改进。此外,我们可以观察到HoME在所有交互指标(如点击、点赞、评论等)上均实现了显著的业务收益,这表明HoME可以将多任务系统收敛到一个更平衡的均衡状态,而不会出现跷跷板现象。此外,我们发现稀疏行为任务的提升更大,这表明我们的HoME使所有共享或特定专家能够获得适当的梯度以最大化其有效性。


5 结论

在本文中,我们专注于解决多任务学习方法在快手短视频服务中的实际问题以及我们从中学到的经验教训,这是全球最大的推荐场景之一。我们首先发现,现有的广泛使用的多任务家族(即门控混合专家)容易受到几个严重问题的限制,这些问题限制了模型的预期能力。从专家输出中,我们发现了专家崩溃问题,即专家的输出分布显著不同。从共享专家的学习中,我们观察到专家退化问题,即一些共享专家仅服务于一个任务。从特定专家的学习中,我们注意到专家欠拟合问题,即一些稀疏任务的特定专家几乎不贡献任何信息。

为了克服这些问题,我们提出了三个有洞察力的改进:

  1. 专家归一化和Swish机制,以对齐专家输出分布;
  2. 层次掩码机制,以规范化任务之间的关系,最大化共享专家的效率;
  3. 特征门和自门机制,以私有化更灵活的专家输入并连接相邻的相关专家,确保所有专家都能获得适当的梯度。

此外,通过在快手这一全球最大的短视频平台上进行的大量离线和在线实验,我们展示了HoME相比其他广泛使用的多任务方法带来的显著改进。我们的HoME已广泛部署在快手的各种在线模型中,每天为数亿活跃用户提供服务。

附录: