一、HoME [2025]

《HoME: Hierarchy of Multi-Gate Experts for Multi-Task Learning at Kuaishou》

  1. 本文介绍了 Kuaishou 短视频业务中遇到的实际问题及经验教训。在工业界,混合专家(Mixture-of-Experts: MoE)范式是一种广泛应用的多任务学习框架,该框架通常为每个任务引入一些 shared experts 和一些 specific experts,再通过门控网络(gate network)衡量 related experts 的贡献度。尽管 MoE 取得了显著的性能提升,但在迭代过程中我们发现了三个严重影响模型性能的异常现象:

    • (1)专家崩溃(Expert Collapse):我们发现 experts 的输出分布(output distributions)存在显著的差异,某些 experts 使用 ReLU 激活函数时 zero activations 比例超过 90% ,导致 gate networks 难以分配公平的权重(fair weights)以平衡各个 experts

      即,某个 expert 能力退化为零。

    • (2)专家退化(Expert Degradation):理想情况下,shared-expert 应同时为所有任务提供 predictive information。但我们发现:某些 shared-experts 仅被单个任务所占用,这表明 shared-experts 丧失了其共享能力,退化为 specific-experts

      即,某个shared expert 被某个任务独占。

    • (3)专家欠拟合(Expert Underfitting):在我们的业务场景中,需要预测数十种任务,但发现某些 data-sparse 的预测任务往往忽略其 specific-experts,而将较大权重分配给 shared-experts。其原因可能是 shared-experts 能从 data-dense 任务中获得更多梯度更新和知识,而 specific-experts 由于数据稀疏,容易陷入欠拟合状态。

      即,某个任务仅仅依赖于某些 shared experts

    基于上述观察,我们提出了 Hierarchy of Multi-Gate Experts: HoME 模型,旨在构建一个简单、高效的、且平衡的 MoE 系统从而用于多任务学习(multi-task learning )。具体而言,我们进行了三项具有洞察力的改进:

    • (1):专家归一化与 Swish 机制(Expert normalization & Swish mechanism),用于对齐 expert output distributions,避免专家崩溃(expert collapse)。

    • (2):层次掩码机制(Hierarchy mask mechanism),提升任务间的共享效率,减少 shared-experts occupancy 问题,避免专家退化(expert degradation)。

      所谓的层次掩码,就是引入 category-shared experts,从而有三组 expertsglobal-shared experts, category-shared experts, task-specific experts

    • (3):特征门控与自门控机制(Feature-gate & Self-gate mechanisms ),确保每个 experts 都能获得适当的梯度,以最大化其效用。

    据我们所知,本文是首个专注于提升多任务 MoE 系统稳定性的研究工作。我们通过大量离线和在线实验(离线 GAUC 平均提升0.52% ,在线 play-time per user 提升 0.954% )及消融分析,验证了 HoME 的有效性。目前,HoME 已部署在 Kuaishou 短视频业务中,每日服务 400 million 用户。

  2. 近年来,抖音(Tiktok)、 快手(Kuaishou)等短视频应用发展迅速。对于其他平台,用户具有明确的意图;例如,用户在谷歌(Google)上会输入关键词搜索,在亚马逊(Amazon )上会购买服装、食品等。而与这些平台不同, Kuaishou 主要承担娱乐功能,用户无需输入任何概念性信息(concept inputs)。如 Figure 1 所示,用户使用 Kuaishou 时,通常只需在屏幕上上下滑动,即可连续观看多个自动播放的短视频;有时还会进行一些互动(interactions),例如长时间观看(Long-view)、评论(Comment)等。在该场景中,隐式反馈(implicit feedback)的占比远高于其他场景。因此, Kuaishou 能够发展成为拥有全球 400 million 用户的大型应用,其核心原因在于我们的系统能够提供个性化的、有趣的短视频内容,为用户带来满意的体验。为此,充分利用由用户留下的稀少但多样的行为线索(behavior cues),精准捕获用户兴趣,是我们的核心任务。通常,业界普遍采用多任务学习(multi-task learning)范式来构建模型,该模型能够同时输出用户不同 interactions 的预测概率,并通过真实的用户行为日志进行监督训练。

    作为一种典型的多任务解决方案,MoE 的思想在工业界被广泛用于实现参数软共享(parameter soft-sharing)。其中最著名的方法是多门混合专家(Multi-gate Mixture-of-Experts: MMoE)(《Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts》),该方法由两个核心组件构成(如 Figure 2(a)所示):

    • 专家网络(Expert Networks):一组 expert networks (例如 MLP with ReLU ),用于建模 input featuresimplicit high-level feature crossing,从而得到 multiple representations

    • 门控网络(Gate Networks):task-specific gate networks(例如 MLP with Softmax ),用于评估不同 experts 的重要性,进而针对相应的任务来融合 experts' outputs

    近年来,已有多项研究通过引入 task-specific experts(例如CGC 《Progressive Layered Extraction (PLE): A Novel Multi-Task Learning (MTL) Model for Personalized Recommendations》)、或堆叠更多 experts layers (例如 PLE 《Progressive Layered Extraction (PLE): A Novel Multi-Task Learning (MTL) Model for Personalized Recommendations》AdaTT 《AdaTT: Adaptive Task-to-Task Fusion Network for Multitask Learning in Recommendations》)等方式扩展 expert networks ,以增强 MMoE 系统的能力。 Kuaishou 此前的在线多任务模块采用的正是 MMoE,与baseline 模型相比,其 A/B test 指标取得了显著提升。然而,在部署 MMoE 后的几年里,我们尝试对 multi-task modeling 模块进行了多种修改;但均以失败告终,包括升级为 two or more expert layers 、增加更多 shared-experts、引入额外的 specific-experts 等。因此,我们开始进行深入分析,以找出阻碍模型迭代的潜在原因。不出所料,我们发现了三个严重影响多任务性能的异常现象。

    • 专家崩溃(Expert Collapse):

      • 我们首先检查了 MMoEgate output 情况,并在 Figure 2(b) 中展示了 major tasks6 shared-experts 所分配的 gate weight。可以明显看出,所有 gates 都将更大的权重分配给了 shared-expert 6 ,而几乎忽略了其他 shared-experts

      • 随后,我们检查了 shared expertsoutput value distribution,发现它们存在显著差异。如 Figure 2(c) 所示,experts 1∼5 的均值和方差处于相近水平,但 expert 6 的均值仅为其他 experts1/100。这种不一致的 output distributions 导致 gate network 难以分配公平的权重(fair weights)来平衡不同 experts ,进而使得处于不同数值水平(numerical levels)的 experts 相互排斥。

      • 此外,我们还发现 expert output 存在过多的 0 activations (即超过 90%output0 ),导致其平均导数较小,参数训练不充分。

    • 专家退化(Expert Degradation):在解决了上述严重的 expert collapse 问题后,我们成功将多任务模块升级为一种 shared-specific MoE 变体—— CGC。因此,我们好奇 gating weights 是否能达到预期效果,即所有 task gate networks 都能为 shared-expertsspecific-experts 分配可感知的分数(perceivable scores),以实现平衡状态。

      不幸的是,我们发现了另一种意想不到的 expert degradation 现象(如 Figure 3 所示)。图中展示了某些 major towersgating 机制的平均得分。我们观察到:shared-expert 几乎无法为所有任务做出贡献,而是退化为仅属于少数任务的 specific-expert。因此,这一观察结果表明,naive shared and specific experts 的架构难以收敛到理想状态。

    • 专家欠拟合(Expert Underfitting):在进一步解决了 expert degradation 问题并提升了 shared-experts 对所有任务的效用后,我们发现某些 specific-experts 被分配到的 gate value 较小,导致对应任务仅依赖共享的知识(shared knowledge),而较少利用 specific parameters

      实际上,我们的模型需要同时预测数十种不同的任务,这些任务的数据密度(即正样本率)差异极大。dense tasks 的正样本率可能是 sparse tasks100 倍,例如点击(Click)与收藏(Collect)任务。与能够从多个 dense tasks 中获得多次梯度更新的 shared-experts 相比,specific-experts 容易陷入欠拟合状态;进而导致 sparse task 更多地依赖 shared-experts ,而忽略该任务的 specific-experts ,造成 specific parameters 的浪费。如 Figure 4 所示,task 6gate networkshared-experts 分配了较大的权重,而忽略了该任务的 specific-experts

    为了解决这些异常现象并提升 MoE 范式的模型稳定性,我们提出了一种简单、高效的且平衡的神经网络架构用于多任务学习——Hierarchy of Multi-gate Experts: HoME。具体而言,我们从三个角度提供了具有洞察力和深度的解决方案:value distribution alignment 用于实现公平的 expert weightshierarchy meta expert structure 用于重新组合任务(re-assemble tasks),gate networks 用于提升 sparse task expert and deep multi-layer MMoE training

    • 专家归一化与 Swish 机制(Expert normalization & Swish mechanism):为了平衡 experts outputs 的方差并避免 expert collapse,我们首先为每个 expert 引入了归一化操作,将 expert output 投影到近似正态分布;即,expert outputs distribution 近似于标准正态分布 N(0,I)

      然而,在这种设置下,我们发现直接进行归一化后,后续 ReLU 函数的输出中仍会出现过多的零值。这可能是因为 normalized expert output 的均值接近 0,因此有一半的 outputs 会小于 0 ,从而在 ReLU 激活函数之后变为 0。为了缓解梯度为零的现象,我们使用 Swish 函数替代 ReLU 函数,以提高参数利用率并加速训练过程。通过归一化和 Swish 函数的组合设置,所有experts 的输出能够对齐到相似的数值量级(numerical magnitude),这有助于 gate network 分配具有可比性的权重。

    • 层次掩码机制(Hierarchy mask mechanism):为了减少 expert occupancy 问题并避免 expert degradation(也称为任务冲突跷跷板问题 task conflict seesaw issue),本文提出了一种简单有效的级联层次掩码(cascading hierarchy mask )机制来缓解此类冲突。

      具体而言,我们插入了一个前置的元专家网络(pre-order meta expert network)对不同任务进行分组,以扩展标准的 MoE 系统。如 Figure 1 所示,根据任务的先验相关性(prior relevance),我们可以将 Kuaishou 的短视频行为任务(short-video behaviors tasks)手动分为两个元类别(meta categories):

      • (1):被动观看时长类任务(passive watching-time tasks),例如长时间观看(Long-view)。

      • (2):主动互动类任务(proactive interaction tasks),例如评论(Comment)。

      因此,我们可以先建模粗粒度的元类别专家(meta-category experts),然后通过以下思路为每个任务提供支持:每个任务不仅应拥有完全共享的 global experts ,还应拥有 category 内部共享的 in-category experts

      其实就是在 task-specific expertsglobal-share experts 这两种 experts 中再添加一种 in-category experts

    • 特征门控与自门控机制(Feature-gate&Self-gate mechanisms):为了增强 sparse-task experts 的训练效果,我们提出了两种 gate 机制,以确保它们能获得适当的梯度,从而最大化其效用:特征门控(feature-gate)和自门控(self-gate )机制。

      • 考虑到 the same layer experts 通常共享相同的 input features,但不同 experts 会接收不同的梯度,因此相同的 feature input 可能会给 multiple expert parameter optimization 带来梯度冲突(gradient conflicts )的潜在风险。为此,我们首先提出 feature-gate 机制,为 experts 生成私有化的灵活输入,以保护 sparse-task expert 的训练。

      • 此外,最新的 MoE 研究表明,堆叠更深的 expert networks 能够带来更强的预测能力。然而,在我们的实验中发现,原始的 gate network 容易逐层地稀释梯度,这对 sparse-task expert 的训练不利。我们进一步设计了 self-gate ,以残差方式连接相邻的 related experts,以确保 top layers gradient 能够有效传递到底层并且稳定 deeper MMoE system training

    本文的主要贡献如下:

    • 深入分析了当前 MoE 系统存在的 expert issues,并提出了具有里程碑意义的 HoME 模型。据我们所知,本文是首个专注于增强多任务 MoE 系统稳定性的研究,为其他研究者探索更稳健的多任务 MoE 系统提供了思路。

    • Kuaishou 短视频业务中进行了大量离线和在线实验。离线实验表明,所有预测任务的性能都得到了显著提升;在线实验中, Kuaishou and Kuaishou-Lite applications 的用户播放时长分别提升了 0.636%0.735%

    • HoME 已在 Kuaishou 的多个业务中广泛部署,每日支持 400 million 活跃用户。

1.1 相关工作

  1. 本节简要回顾多任务学习( multi-task learning )的发展历程。多任务学习在多个研究领域中发挥着越来越重要的作用,助力模型感知多种信号,包括推荐系统、自然语言处理、计算机视觉、以及普适计算(ubiquitous computing)等。

    • 早期的一些研究工作利用了 hard expert sharing 架构,该架构包含多个 task-specific towers ,这些 towers 由相同的expert output 作为输入,从而实现了最简单的多任务学习系统。,包括 shared-bottom《Multitask Learning》)、mixture-of-expert: MoE《Adaptive Mixtures of Local Experts》)等。

    • 之后,cross-stitch network《Cross-Stitch Networks for Multi-Task Learning》)和 sluice network《Sluice Networks: Learning What to Share Between Loosely Related Tasks》 )被提出,用于构建 deep expert information fusion network 来生成 task-specific inputs ,以实现 soft expert knowledge sharing

    • 除了复杂的纵向的 deep expert crossing 之外,横向的 expert weight estimating 是另一种定制 task-specific tower input 的方法。近年来提出的 multi-gate mixture-of-expert: MMoE《Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts》)采用 multi-gate 机制,为不同 experts 分配不同权重,以平衡不同任务。

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

    • 代表性工作来自 YouTuberanking 系统(《Recommending What Video to Watch Next: A Multitask Ranking System》),该系统通过不同的 gating networks 利用多个 shared experts ,建模 real user-item interactions

    • 为了缓解任务冲突的跷跷板问题,MMoE 变体 CGC《Progres-sive Layered Extraction (PLE): A Novel Multi-Task Learning (MTL) Model for Personalized Recommendations》 )和 PLE《Progres-sive Layered Extraction (PLE): A Novel Multi-Task Learning (MTL) Model for Personalized Recommendations》 )不仅利用 shared-experts ,还引入了额外的 specific-experts ,以实现更灵活的 expert sharing

    • 基于 shared-/specific-experts 的思想,已有大量 MMoE 变体被提出,包括:

      • MSSM《MSSM: A Multiple-level Sparse Sharing Model for Efficient Multi-Task Learning》 )通过采用field-level and cell-level 特征选择机制,扩展了 PLE 方法,能够自动确定 input features 的重要性。

      • AdaTT《AdaTT: Adaptive Task-to-Task Fusion Network for Multitask Learning in Recommendations》)在PLE 的基础上利用自适应融合门控机制(adaptive fusion gate mechanism ),建模 specific-expert and shared-expert 之间复杂的任务关系。

      • STAR《One Model to Serve All: Star Topology Adaptive Recommender for Multi-Domain CTR Prediction》)采用星形拓扑结构,包含一个 shared expert network 和多个specific expert networks,用于融合 expert parameters

      • MoLA《Exploring Training on Heterogeneous Data with Mixture of Low-rank Adapters》)借鉴了大语言模型(LLM)中的低秩微调技术(low-rank fine-tuning technique),设计了轻量级的 low-rank specific-expert adapters ,以替代复杂的 specific-expert

1.2 方法论

  1. 本节将介绍我们的模型 HoME 的组成部分。

    • 首先,我们回顾 MoE 系统在工业级推荐系统(RecSys)中的工作原理,包括 feature engineeringMoE 神经网络细节、以及 prediction scores

    • 随后,我们将详细阐述针对三个问题的解决方案:

      • 用于克服专家崩溃问题(expert collapse issue )的 expert normalization & swish 机制。

      • 用于缓解专家退化问题(expert degradation issue )的 hierarchy mask 机制。

      • 用于解决专家欠拟合问题(expert underfitting issue )的两种门控机制。

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

  1. 工业级推荐系统通常采用两阶段设计:

    • (1):生成数百个 candidate items

    • (2):对所生成的 candidate items 进行排序,从而筛选出数十个最优 items 来推荐给用户。

    由于这两个阶段的目标不同,所采用的技术也完全不同:

    • candidate generation 阶段侧重于 user-side feature modeling ,以及粗粒度的 item sampling

    • ranking 阶段侧重于 user and item feature fusion ,以及细粒度的 user multi-interaction fitting

    因此,多任务学习模型(multi-task learning model )通常应用于 ranking 阶段,用于估计 a specific user-item pair 的各种 interactions 的概率。为简洁起见,model-generated 的概率通常有简称(xtr),例如点击概率(ctr)、有效观看概率(evtr)、点赞概率(ltr)、评论概率(cmtr)等。

  2. Label&Feature:形式上,这种 ranking learning 过程通常组织为多个二分类任务,每个 learning user-item samples 包含两类信息——supervised labelinput features

    • 监督信号(Supervised Signals):user-item 观看体验的真实标签,例如点击 yctr{0,1}、有效观看 yevtr{0,1}、点赞 yltr{0,1}、评论 ycmtr{0,1} 、以及其他标签。

    • 特征输入(Feature Inputs ):MoE 的输入旨在从多个角度描述 useritem 的状态,大致可分为四类:

      • (1)ID and category features ,通过直接 lookup 操作获取其 embeddings 向量,例如 user IDitem IDtag IDis active useris follow authorScenario ID 等等。

      • (2):统计特征,需要设计分桶策略(bucketing strategies)将其离散化并分配 ID,例如过去一个月观看短视频的数量、过去一个月的短视频观看时长等等。

      • (3):反映用户短期兴趣和长期兴趣的序列特征,通常采用 one-stagetwo-stage 注意力机制来建模,例如 DINDIENSIMTWIN 等等;

      • (4)pre-trained 的多模态 embeddings 向量,例如 text embeddingasr embeddingsvideo embedding 等等。

    综合以上所有特征,我们可以得到 multi-task training samples。例如标签为 {yctr,yevtr,}inputsv=[v1,v2,,vn],其中 n 表示特征总数。

  3. Mixture-of-Experts for XTR prediction:给定 training user-item sample 的标签 {yctr,yevtr,} 和特征 v,接下来我们利用多任务模块进行预测。具体而言,我们以广泛使用的 shared/specific experts 范式 MoE 变体 CGC 为例,详细介绍其原理:

    y^ctr=Towerctr(Sum(Gatectr(v),{Experts{shared,ctr}(v)}))y^evtr=Towerevtr(Sum(Gateevtr(v),{Experts{shared,evtr}(v)}))y^ltr=Towerltr(Sum(Gateltr(v),{Experts{shared,ltr}(v)}))Tower()=Sigmoid(MLPT()),Experts()=ReLU(MLPE()),Gate()=Softmax(MLPG())

    其中:

    • Expertshared:RFRDReLU-activated shared experts networksExpertxtr:RFRDReLU-activated specific experts networksFinput features 数量,Dexpert output size

    • Gatextr:RFRNSoftmax-activated gate network 用于对应的任务;Nrelated shared and specific experts 总数。

    • Sum() 操作旨在根据 gate-generated weights 来聚合 Nexperts 的输出。

    • Towerxtr:RDRSigmoid-activated task-specific network,用于衡量对应的 interaction probability y^

    • MLPT(),MLPE(),MLPG() 分别为对应于 tower networkexpert networkgating networkMLP

    在得到所有 estimated scores {y^ctr,} 和真实标签 {yctr,} 后,我们直接最小化二元交叉熵损失来训练 multi-task learning model

    L=xtr { ctr ,}[yxtrlogy^xtr+(1yxtr)log(1y^xtr)]

    注意:这里对每个任务的 loss 采用等权重的融合。也可以对不同任务采用不同的 loss weight

    L=xtr { ctr ,}γxtr×[yxtrlogy^xtr+(1yxtr)log(1y^xtr)]

    其中:{γxtr}xtr { ctr ,} 为不同任务的 loss weight

    online serving 中,一个常见的操作是设计一个可控的复杂方程,将多个 XTR 组合为一个 ranking score

    ranking-score=α1×y^ctr+α2×y^evtr+α3×y^cmtr+

    其中:α1,α2,α3 都是超参数。

    这里是加法融合。也可以采用乘法融合:

    ranking-score=(y^ctr)α1×(y^evtr)α2×(y^cmtr)α3×

    实际上,在工业级推荐系统中,ranking-score 非常复杂,包含多种策略,此处仅展示一个简化示例。在后续章节中,我们将重点关注公式 y^ctr,y^evtr,y^ltr 中的 multi-task learning 过程,以提升其稳定性。

1.2.2 Expert Normalization & Swish Mechanism

  1. 尽管公式 y^ctr,y^evtr,y^ltr 中的朴素 MMoE 系统取得了显著的性能提升,但仍存在严重的 expert collapse 问题。设 expertsMLP_E 函数所生成的 representation{zshared,zctr,zevtr,},我们发现它们的均值和方差存在显著差异。受 Transformer 的启发,归一化操作是成功支持训练 very deep 神经网络的关键技术之一。我们同样为每个 expert 引入 batch normalization,使 HoME 能够生成具有可比性的输出 znormRD

    znorm=BatchNormalization(z)=γzμδ2+ϵ+βμ=BatchMean(z),δ2=BatchMean((zμ)2)

    其中:

    • zRD 为任意 expertsMLP_E output

    • γRD,βRD 为可训练的 scale 参数和 bias 参数,用于调整 distribution

    • ϵRD 为一个极小的正值,用于避免除零错误。

    • μRD,δ2RD 为是当前 batchsame expert 的输出的均值和方差。

  2. 经过 expert normalization 后,znorm 的分布接近标准正态分布 N(0,I)。然而,这会导致 znorm 中有一半的值小于 0,在 ReLU 激活函数后变为 0 ,使其梯度均为 0 ,阻碍模型收敛。因此,我们使用 Swish 函数替代 Expert 函数中的 ReLU 激活函数,得到 HoME Expert

    HoMEExpert()=Swish(BatchNormalization(MLPE()))

    其中:HoMEExpert(·) 就是 HoME 中使用的 final structures

    通过归一化和 Swish 函数的组合设置,所有 experts 的输出能够对齐到相似的数值量级,这有助于 gate network 分配具有可比性的权重。为简洁起见,在后续章节中,我们仍使用 Expert(·) 表示 HoMEExpert(·)

1.2.3 Hierarchy Mask Mechanism

  1. 针对 expert degradation 问题,已有一系列研究通过引入新颖的 specific-expert 架构和 shared-expert 架构来缓解任务冲突。然而,遵循 specific and shared experts 范式,我们发现 shared expert degradation 问题仍然存在。我们认为,考虑先验的任务相关性(prior task relevance )可能会有所帮助。如 Figure 1 所示,我们可以将 prediction task 分为两类,例如主动互动类任务(如点赞、评论等)和被动观看时长类任务(如有效观看、长时间观看等)。本节提出了一种简单有效的级联层次掩码机制(cascading hierarchy mask mechanism ),用于建模任务之间的先验归纳偏置(prior inductive bias )。

    具体而言,我们插入了一个前置的元专家网络(pre-order meta expert network )对不同任务进行分组,其中包含三种元任务知识(meta-task knowledge ),以支持两类任务:

    zmetainter=Sum(Gatemetainter(v),{Expertsmeta{shared, inter}(v)})zmetawatch=Sum(Gatemetawatch(v),{Expertsmeta{shared, watch}(v)})zmetashared=Sum(Gatemetashared(v),{Expertsmeta{shared, inter, watch}(v)})

    其中:

    • zmetainter,zmetawatch,zmetashared 是粗粒度的宏观元表征(macro-level meta representation ),分别用于提取:(1) 互动类任务的类别内知识;(2)观看时长类任务的类别内知识;(3) 共享的知识。

    • Expertmeta:RFRDSwish-activated shared experts networks

    • Gatemeta:RFRNSoftmax-activated gate network 用于对应的任务;Nexperts 总数。

    • Sum() 操作旨在根据 gate-generated weights 来聚合 Nexperts 的输出。

  2. 获得这些 meta representations 后,我们根据其对应的 meta knowledgeshared meta knowledge 进行多任务预测。具体而言,我们利用 meta knowledge 构建三种类型的 experts

    • (1) :基于 zmetashared 的所有任务共享的 globally shared experts

    • (2):基于 zmetainterzmetawatch 的类别内任务共享的 locally shared experts

    • (3):基于 zmetainterzmetawatch 的每个任务专属的 specific experts

    对于 task-specific gate networks ,我们直接使用 shared meta knowledge zmetashared 和对应类别的 meta knowledge 的拼接结果来生成 weights of experts 。此处以点击(Click)和有效观看(Effective-view)这两个任务为例:

    y^ctr=Towerctr(Sum(Gatectr(zmetainterzmetashared),{Expertsshared(zmetashared),Experts{inter,ctr}(zmetainter)}))y^evtr=Towerevtr(Sum(Gateevtr(zmetawatchzmetashared),{Expertsshared(zmetashared),Experts{watch,evtr}(zmetawatch)}))

    其中:

    • 表示拼接操作。

    • Expertsshared 是所有任务的 shared expertsExpertsinterinteraction 类别内任务的 shared expertsExpertswatchwatch 类别内任务的 shared expertsExpertsctrctr 任务的 task-specific experts

    这里是两层的 MMoE

    • 第一层根据原始输入 v 来得到 meta representations z。这一层的结构与原始 MMOE 完全相同。

    • 第二层根据 meta representations 来获取 prediction

      • gating network 的输入不是 v ,而是 shared meta knowledge + category meta knowledge

      • gating network 聚合的 experts 有:global shared expertscategory shared expertstask-specific experts

      • experts 的输入不是 v,而是 meta representations

  3. 值得注意的是,HoME 第一层的元抽象(meta abstraction )(与 PLE 的主要架构差异)是基于我们在 Kuaishou 真实多任务推荐场景中的观察(见 Figure 5 )。基于 HoME 中的先验语义(prior semantics )(由 meta expert network 划分而来),我们可以最大限度地避免任务之间的冲突,同时最大化任务间的共享效率(sharing efficiency)。

1.2.4 Feature-gate & Self-gate mechanisms

  1. 针对 expert underfitting 问题,我们发现某些 data-sparse tasksgate-generated weights 往往忽略该任务的 specific experts,而将较大的 gate weights 分配给 shared experts。这可能是因为我们的模型需要同时预测 20 多个不同的任务,而这些任务的数据密度(data density)差异极大,dense tasks 的数据密度可能是 sparse tasks100 倍。为了增强 sparse task expert training ,我们提出了两种门控机制,以确保它们能获得适当的梯度,从而最大化其效用: feature-gate 机制和 self-gate 机制。

  2. 对于 feature-gate,其目的是为不同任务的 experts 生成不同的 representations of input features,以缓解潜在的梯度冲突(gradient conflicts )。当所有 experts 共享相同的 input features 时,可能出现梯度冲突。

    形式上,feature-gate 旨在提取每个 input feature element 的重要性。例如,给定输入为 vRF ,则 FeaGate:RFRF。然而,在工业级推荐系统中,v 通常是高维向量(例如 F>3000+),因此引入这些大型矩阵用于 meta experts 会带来较高的计算成本。受大语言模型(LLM )高效微调技术 LoRA《LoRA: Low-Rank Adaptation of Large Language Models》)的启发,我们同样引入两个小型矩阵来近似一个大型矩阵,以生成 element importance

    FeaLoRA(v,d)=2×Sigmoid(v(BA))RF

    其中:BRF×d,ARd×F,(BA)RF×Fd 为小型矩阵的另一个维度(其中一个维度为 F ),dF

    需要注意的是,我们在 Sigmoid 函数后应用了一个 2× 操作,目的是实现灵活的放大或缩小功能。实际上,FeaLoRA 函数是生成私有化的 expert inputs 的有效方法。在迭代过程中,我们发现可以通过多任务思想进一步增强该函数,即引入更多的 FeaLoRA 从多个角度生成 feature importance ,作为我们的 FeaGate

    FeaGate(v)=Sum(Gatefea(v),{FeaLoRA{1,2,,L}(v,FL)})

    其中:

    • L 为一个超参数,控制 FeaLoRA 数量,每个 FeaLoRAd=F/L 。需要注意的是,我们需要选择一个能被 F 整除的 L,以生成 FeaLoRA 的维度 d

    • Gatefea:RFRL 用于生成权重,以平衡不同 FeaLoRA 的重要性。

    因此,我们的 expert input 可以通过以下方式获得(此处以第一层 meta shared experts input vmetashared 为例):

    vmetashared=vFeaGatemetashared(v)

    其中: 表示逐元素乘积。

    通过这种方式,不同的 experts 拥有各自的特征空间,这有助于降低梯度冲突的风险,从而保护 sparse tasks

  3. 此外,最新的 MoE 研究表明,堆叠更深的 expert networks 能够带来更强的预测能力(《AdaTT: Adaptive Task-to-Task Fusion Network for Multitask Learning in Recommendations》《Progressive Layered Extraction (PLE): A Novel Multi-Task Learning (MTL) Model for Personalized Recommendations》)。不幸的是,在我们的实验中发现,原始的 gate network 容易逐层地稀释梯度,这对 sparse task expert training 尤为不利。除了在 expert-input level 引入 FeaGate 外,我们还在 expert-output level 添加了 residual idea-based self-gate ,以确保 top layers 的梯度能够有效传递到 bottom layers

    具体而言,SelfGate 仅关注该任务的 specific experts 的输出。以 watching-time meta experts output 为例:

    zmeta,selfshared=Sum(SelfGatemetashared(v),{Expertsshared(v)})SelfGate()={Sigmoid(MLPG()), if only 1 ExpertSoftmax(MLPG()), else 

    其中:SelfGate:RFRKKrelated Expert 的数量。如果 K=1 ,那么 SelfGate 的激活函数为 Sigmoid;否则SelfGate 的激活函数为 Softmax

    类似地,zmeta,selfinterzmeta,selfwatch 可以通过相同方式获得。随后我们将相应的 representations 相加(例如, zmetainter+zmeta,selfinter),为下一层提供支持。

    SelfGate 与常规 Gate 的唯一区别在与:SelfGate 仅仅聚合 task-specific experts,而常规 Gate 聚合 shared experts and task-specific experts

  4. HoME 的细粒度结构细节如 Figure 5 所示。

1.3 实验

  1. 本节:

    • 首先在 offline settings 下将 HoME 与多种广泛使用的 multi-task learning 方法进行对比。

    • 然后通过模型变体验证 HoME 各项改进的有效性。

    • 接着测试 HoME 超参数( experts 数量和 feature-gate LoRA 数量)的鲁棒性。

    • 此外,还提供了模型的 expert network gate weights graph ,以展示 HoME 是一个平衡的系统。

    • 最后,将 HoME 部署到 online A/B test 中,验证其为 Kuaishou 带来的业务收益。

  2. Experiments Setup:实验基于 Kuaishou 短视频数据流场景( Kuaishou 最大的推荐场景),该场景包含超过 400 Million 用户和每日 50 Billion logs 。为了保证对比的公平性,我们仅修改公式 y^ctr,y^evtr,y^ltr 中的多任务学习模块,其他模块保持不变。

    具体而言,我们实现了 MMoECGCPLEAdaTT 等模型变体作为 baselines 。评估指标采用广泛使用的排序指标 AUCGAUC,以反映模型的预测能力。在 Kuaishou 短视频业务中,GAUC 是最重要的离线指标,其核心思想是先计算每个用户的 AUC,然后加权聚合所有用户的 AUC

    GAUC=uwu×AUCu

    其中:wu 为用户 u 的样本数量占所有样本数量的比例。

1.3.1 Offline Experiments

  1. 主要实验结果如 Table 1 所示。需要注意的是,在离线评估中,AUCGAUC 提升 0.03%~0.05% 就足以给业务带来可观的 online revenue

    • 我们首先展示了基于 HoMEExpertMMoE(即 MMoE*)的性能。

    • 然后我们将 HoME 与同样配备 HoMEExpertimproved baselines 进行对比。例如 'CGC* w/o shared'CGC 的变体,忽略 shared experts 和所有 gate network

    • 此外,我们还实现了 HoME 的消融变体:

      • 'w/o fg2''w/o fg' 分别表示忽略第二层 feature-gates 、以及忽略所有 feature-gates

      • 'w/o sg' 表示忽略所有 self-gates

      • 'w/o mask' 表示保持 HoME 架构,但所有 experts 均为 shared experts

    注:最佳/次佳结果分别以粗体/下划线标注。

  2. 基于实验结果,我们得出以下观察结论:

    • (1)MMoE* 的性能大幅优于朴素 MMoE 。这表明我们的 Expert normalization & Swish 机制能够有效克服 expert collapse 问题,平衡 expert outputs ,并促使 expert networks 发挥应有的作用。

    • (2)'CGC* w/o shared' 可视为每个任务配备 a specific-expert 的共享底部模型(Shared-bottom)。在实验中,'CGC* w/o shared' 的参数比 MMoE*24%,且性能优于 MMoE*。这表明在真实的大规模数据流场景中,MMoE 系统较为脆弱,容易退化。

    • (3):与 'CGC* w/o shared' 相比,CGC* 并未表现出显著的性能提升。这表明 CGC*shared-experts 已退化为 some specific-experts

    • (4):与 MMoE* 相比,PLE*AdaTT* 取得了更好的性能。这表明在解决 expert collapse 问题后,堆叠多个 expert network layers 并增加 model parameters 是释放 multi-task modules 潜力的有效途径。

    • (5)HoME 在所有任务上的性能均显著优于其他 strong baselines,同时引入的参数更少,取得了最佳结果。这表明我们的改进能够增强多任务 MoE 系统的稳定性,并最大化 expert efficiency

  3. 对于 HoME 的消融实验,我们得出以下结论:

    • (1)'w/o fg-sg-mask' 变体的性能与 MMoE* 相当,而 'w/o fg-sg' 变体在所有任务上均取得了显著提升(大多数情况下AUC 提升 0.15%)。这表明我们的 Hierarchy Mask 机制是一种强大的且低资源消耗的策略,能够在不引入大量额外参数的情况下缓解 expert degradation 问题。

    • (2)'w/o fg' 变体的性能优于 'w/o fg-sg' 变体,且更稳定。这表明在不同 layer experts 之间添加残差连接(residual connection)有助于训练 experts

    • (3):对比 HoME'w/o fg2' 变体可以发现,第二层 feature-gates 能够提升模型能力,但第一层 feature-gates 的提升效果更稳健、更显著。这可能是因为第一层作为信息源的输入,并且第一层被用于 coarsen meta layer 中,其任务梯度冲突(tasks gradient conflict)问题比第二层 fine-grained layer更为严重。

1.3.2 Discussion of Hyper-Parameter Sensitivity

  1. 本节探讨 experts 数量和 feature-gate LoRA 数量对 HoME 性能的影响,以验证模型的鲁棒性。

  2. 对于 experts 数量,我们基于 'HoME w/o fg' 变体进行实验,因为第一层 feature-gate 是计算成本较高的参数消耗(parameter-consuming )操作。

    Table 2 可以看出,HoME 存在 scaling-law 现象:随着 experts 数量的增加,预测准确性随参数数量的增加而稳步提升。这一现象也表明 HoME 是一个平衡的 MoE 系统,能够充分释放所有 experts 的能力。

  3. 对于 feature-gate LoRA 数量,我们基于 'HoME w/o fg2' 变体进行实验。该变体仅包含第一层 feature-gate ,且在 Table 1 中表现出显著的性能提升。具体而言,在我们的实现中,增加 LoRA 数量只会降低 hidden size ,而不会增加额外参数,这可能会降低单个 LoRA 的建模能力。

    Table 3 可以看出,采用 2 LoRA 的变体取得了最佳结果。这表明存在一个平衡点,需要在 LoRA 数量和 LoRA 建模能力之间进行权衡。

1.3.3 Discussion of HoME Situation

  1. Figure 6 展示了 HoMEexpert output distributionsgraph weights flow。从图中可以看出,HoME 实现了平衡的 gate weight 均衡状态:

    • (1):根据 feature-gate 的热力图(随机可视化 64 个维度),我们可以得出结论:feature-gate 能够为每个 expert 实现灵活的 element-wise feature selection

    • (2):所有 shared and specific expert outputs 都对齐到相似的数值量级。此外,meta-shared-expert distributionsspecific-expert distributions 不同。这表明 shared-knowledge 倾向于由 meta networks 编码,而difference-knowledge 则由 specific experts 编码。

    • (3):所有 experts 都发挥了预期的作用,the shared and specific experts 都贡献了可感知的权重(perceivable weights)。

1.3.4 Online A/B Test

  1. 本节将 HoME 部署为 online ranking model,应用于三个短视频场景: Kuaishou Single/Double Page (如 Figure 1 所示)和 Kuaishou Lite Single Page。在我们的业务中,核心指标是观看时长相关指标(例如人均播放时长),反映用户在 Kuaishou 平台上的总停留时间。同时我们还展示了视频观看量指标,衡量用户观看的短视频总数。Young 用户组和 Total 用户组的 online A/B test 结果如 Table 4 所示。实际上,在 Kuaishou 平台上,播放时长提升约 0.1% 就属于具有统计显著性的改进。

    • 我们提出的 HoME 在三个场景中分别为所有用户带来了 +0.311%+0.474%+0.169% 的显著提升,这是过去一年中最显著的改进。

    • 此外,HoME 在所有交互指标(如点击、点赞、评论等)上都取得了显著的业务收益,这表明 HoME 能够使多任务系统收敛到更平衡的均衡状态(equilibrium state),而不会出现跷跷板现象。

    • 此外,我们还发现稀疏行为任务(sparse behavior tasks)的提升更为明显,这表明 HoME 能够使所有 shared or specific experts 获得适当的梯度,以最大化其效果。

1.4 结论

  1. 本文聚焦于解决 Kuaishou 短视频业务(全球最大的推荐场景之一)中多任务学习方法面临的实际问题及经验教训。

    • 我们首先发现,当前广泛使用的多任务学习家族(即 Gated Mixture-of-Expert )容易出现多个严重问题,限制了模型的预期能力。

      • expert outputs 来看,存在 expert degradation 问题,即 expertsoutput distributions 差异显著。

      • shared-expert learning 来看,存在 expert degradation 问题,即某些 shared experts 仅服务于一个任务。

      • specific-expert learning 来看,存在 expert underfitting 问题,即某些 sparse tasks specific-experts 几乎无法提供任何信息。

    • 为了解决这些问题,我们提出了三项具有洞察力的改进:

      • (1)Expert normalization & Swish 机制,用于对齐 expert output distribution

      • (2)Hierarchy mask 机制,用于规范任务之间的关系,以最大化 shared-expert efficiency

      • (3)Feature-gateSelf-gate 机制,用于生成更灵活的 experts 私有化的输入,并连接相邻的 related experts,确保所有 experts 都能获得适当的梯度。

    • 此外,通过在全球最大的短视频平台之一 Kuaishou 进行的大量离线和在线实验,我们证明了 HoME 相较于其他广泛使用的多任务方法取得了显著的性能提升。目前,HoME 已在 Kuaishou 的多个在线模型中广泛部署,为多项业务提供支持,每日服务 400 Million 活跃用户。