AiPaper
论文状态:已完成

RankMixer: Scaling Up Ranking Models in Industrial Recommenders

发表:2025/11/08
原文链接
价格:0.10
已有 1 人读过
本分析由 AI 生成,可能不完全准确,请以原文为准。

TL;DR 精炼摘要

为解决工业推荐系统中训练成本和效率低下的问题,本文提出了RankMixer,采用硬件感知设计,优化特征交互架构。RankMixer替代了自注意力机制,提高了模型浮点运算利用率,支持一亿参数的稀疏专家变体。实验表明,RankMixer在大规模数据集上的表现显著提高了推荐系统的有效性和可扩展性。

摘要

Recent progress on large language models (LLMs) has spurred interest in scaling up recommendation systems; yet two practical obstacles remain. First, training and serving cost on industrial recommenders must respect strict latency bounds and high QPS demands. Second, most human-designed feature-crossing modules in ranking models were inherited from the CPU era and fail to exploit modern GPUs, resulting in low Model Flops Utilization (MFU) and poor scalability. We introduce RankMixer, a hardware-aware model design tailored towards a unified and scalable feature-interaction architecture. RankMixer retains the transformer's high parallelism while replacing quadratic self-attention with a multi-head token mixing module for higher efficiency. Besides, RankMixer maintains both the modeling for distinct feature subspaces and cross-feature-space interactions with Per-token FFNs. We further extend it to one billion parameters with a Sparse-MoE variant for higher ROI. A dynamic routing strategy is adapted to address the inadequacy and imbalance of experts training. Experiments show RankMixer’s...

思维导图

论文精读

中文精读

1. 论文基本信息

1.1. 标题

RankMixer: Scaling Up Ranking Models in Industrial Recommenders (RankMixer:在工业推荐系统中扩展排序模型)

1.2. 作者

Jie Zhu*, Zhifang Fan*, Xiaoxie Zhu*, Yuchen Jiang*, Hangyu Wang, Xintian Han, Haoran Ding, Xinmin Wang, Wenlin Zhao, Zhen Gong, Huizhi Yang, Zheng Chai, Zhe Chen, Yuchao Zheng, Qiwei Chen, Feng Zhang, Xun Zhou, Peng Xu, Xiao Yang, Di Wu, Zuotao Liu。 大部分作者隶属于 字节跳动 (ByteDance),还有部分为独立研究员。

1.3. 发表期刊/会议

发表于 第34届ACM信息与知识管理国际会议 (CIKM '25)。CIKM 是数据管理、信息检索和知识管理领域的重要国际会议,在相关领域具有良好的声誉和影响力。

1.4. 发表年份

2025年。

1.5. 摘要

大型语言模型 (LLM) 的最新进展激发了人们对扩展推荐系统 (RS) 的兴趣,但仍存在两个实际障碍。首先,工业级推荐系统训练和部署成本必须满足严格的延迟限制和高每秒查询量 (QPS) 需求。其次,排序模型中大多数人工设计的特征交叉模块继承自中央处理器 (CPU) 时代,未能充分利用现代图形处理器 (GPU),导致模型浮点运算利用率 (MFU) 低和可扩展性差。本文引入了 RankMixer,这是一种硬件感知 (hardware-aware) 的模型设计,专为统一且可扩展的特征交互架构量身定制。RankMixer 保留了 Transformer 的高并行性,同时用多头词元混合 (multi-head token mixing) 模块取代了二次自注意力 (quadratic self-attention),以实现更高的效率。此外,RankMixer 通过逐词元前馈网络 (Per-token FFNs) 保持了对不同特征子空间 (feature subspaces) 的建模以及跨特征空间 (cross-feature-space) 的交互。为了获得更高的投资回报率 (ROI),本文进一步将其扩展到十亿参数的稀疏混合专家 (Sparse-MoE) 变体。采用动态路由策略 (dynamic routing strategy) 来解决专家训练不足和不平衡的问题。实验表明,RankMixer 在万亿规模的生产数据集上具有卓越的扩展能力。通过用 RankMixer 替换之前多样化的人工设计低 MFU 模块,我们将模型的 MFU 从 4.5% 提高到 45%,并将在线排序模型的参数规模扩大了两个数量级,同时基本保持了相同的推理延迟。我们通过跨两个核心应用场景(推荐和广告)的在线 A/B 测试验证了 RankMixer 的通用性。最后,我们部署了 10 亿稠密参数 (Dense-Parameters) 的 RankMixer 进行全流量服务,在不增加服务成本的情况下,将用户活跃天数提高了 0.3%,应用内总使用时长提高了 1.08%

1.6. 原文链接

/files/papers/691b1d0680efabfa5c6ee4e9/paper.pdf 发布状态:该论文计划于 CIKM '25 会议上发表,摘要中给出了会议信息。

2. 整体概括

2.1. 研究背景与动机

  • 论文试图解决的核心问题是什么?
    1. 如何将推荐系统 (Recommender System, RS) 中的深度学习推荐模型 (Deep Learning Recommendation Models, DLRMs) 扩展到更大的参数规模,以充分利用海量数据带来的收益,同时克服工业应用中严格的延迟 (latency) 和每秒查询量 (QPS) 限制?
    2. 如何解决传统排序模型中,大量继承自中央处理器 (CPU) 时代的人工设计特征交叉模块在现代图形处理器 (GPU) 上利用率低 (Model Flops Utilization, MFU),导致可扩展性差的问题?
  • 为什么这个问题在当前领域是重要的?现有研究存在哪些具体的挑战或空白 (Gap)?
    1. 大语言模型 (Large Language Models, LLMs) 的启发: LLM 在参数规模扩大后性能显著提升,这促使研究者思考是否能将这种“规模效应”带入推荐系统。
    2. 工业界推荐系统的独特挑战: 与自然语言处理 (NLP) 或计算机视觉 (CV) 任务不同,工业级推荐系统对推理延迟QPS有极高的要求。简单地增加模型参数往往会导致推理时间过长,无法满足线上服务需求。
    3. 传统 DLRMs 的局限性: 历史上的推荐模型架构受限于 CPU 时代的设计原则,其特征交叉模块大多是内存密集型 (memory-bound) 而非计算密集型 (compute-bound),导致在 GPU 上并行度低,MFU 极低(通常是个位数百分比)。这使得模型难以有效利用 GPU 的计算能力,也限制了模型规模的扩大。
    4. 投资回报率 (ROI) 问题: 由于 CPU 时代模型计算成本与参数量大致成正比,大规模扩展参数难以获得预期的 ROI。
    5. 异构特征空间问题: 推荐系统数据包含数百种异构特征(如用户 ID、物品 ID、行为序列、交叉特征),这些特征的语义空间差异巨大,使得通用的特征交互建模变得复杂。
  • 这篇论文的切入点或创新思路是什么? 论文旨在通过一种硬件感知 (hardware-aware) 的模型设计,构建一个统一且可扩展 (unified and scalable) 的特征交互架构,以最大限度地提高现代 GPU 的 MFU 和计算吞吐量,同时有效地处理推荐数据的异构特征空间和个性化交叉特征交互。

2.2. 核心贡献/主要发现

  • 论文最主要的贡献是什么?

    1. 提出了 RankMixer 模型架构: 一种硬件感知的新型架构,包含两个核心可扩展组件:
      • 多头词元混合 (Multi-head Token Mixing): 通过无参数操作实现跨词元 (cross-token) 特征交互,比自注意力 (self-attention) 机制在性能和计算效率上更优,特别适用于推荐系统的异构特征空间。
      • 逐词元前馈网络 (Per-token FFNs): 为每个词元分配独立的参数,显著扩展模型容量,并有效解决特征子空间 (feature subspace) 之间的支配问题,更好地建模异构特征。
    2. 引入 Sparse-MoE 变体及其优化策略: 将逐词元前馈网络扩展为稀疏混合专家 (Sparse Mixture-of-Experts, Sparse-MoE) 结构,以最小的计算成本显著增加模型容量。针对 Sparse-MoE 在 RankMixer 中的挑战(专家训练不足和不平衡),提出了 ReLU 路由 (ReLU Routing)稠密训练/稀疏推理 (Dense-training / Sparse-inference, DTSI-MoE) 策略。
    3. 实现了大规模参数扩展和显著的效率提升: 通过 RankMixer 架构和优化,将在线排序模型的参数规模扩大了 70 倍(从 16M 到 1B),同时推理延迟基本保持不变。模型浮点运算利用率 (MFU) 从 4.5% 大幅提升至 45%,FLOPs/Param 比率降低 3.6 倍,并通过半精度 (fp16) 量化进一步提升了硬件 FLOPs 2 倍。
    4. 在工业级推荐系统中的成功部署和显著业务收益: RankMixer 已在抖音 (Douyin) 的推荐系统中全面部署,并经过长达 8 个月的在线 A/B 测试,在推荐和广告两大核心场景中均展现出通用性。在抖音应用中,用户活跃天数增加了 0.3%,应用内总使用时长增加了 1.08%。对低活跃用户的提升尤为显著。
  • 论文得出了哪些关键的结论或发现?

    1. 硬件感知的设计对于工业级推荐系统的大规模扩展至关重要。
    2. 传统的自注意力机制和共享参数的前馈网络在处理推荐系统异构特征时效率不高,且容易导致计算成本过高或特征支配问题。
    3. 多头词元混合和逐词元前馈网络能够有效捕捉异构特征交互,同时保持高并行性和计算效率。
    4. 经过优化的 Sparse-MoE 能够以较低的推理成本实现模型容量的大幅增长,并通过动态路由和 DTSI 策略解决专家训练不平衡的问题。
    5. 模型参数规模的扩大与 MFU 的显著提升和 FLOPs/Param 比率的降低相结合,可以在不增加推理延迟的情况下实现性能的巨大飞跃。

3. 预备知识与相关工作

3.1. 基础概念

  • 推荐系统 (Recommender System, RS): 一种信息过滤系统,旨在预测用户对物品的偏好,并向用户推荐他们可能感兴趣的物品。在本文中,主要关注工业级推荐系统,其特点是数据量大、实时性要求高、对延迟和吞吐量有严格限制。
  • 排序模型 (Ranking Model): 推荐系统中的一个关键组件,用于对候选物品进行打分和排序,以决定最终向用户展示哪些物品及其顺序。
  • 深度学习推荐模型 (Deep Learning Recommendation Models, DLRMs): 基于深度学习技术构建的推荐模型,通过多层神经网络学习用户、物品和上下文特征之间的复杂交互。
  • 大型语言模型 (Large Language Models, LLMs): 指具有数亿到数万亿参数的巨型神经网络模型,通过在海量文本数据上进行训练,展现出强大的语言理解和生成能力。本文提及 LLMs 是因为其“规模效应”激发了推荐系统领域对模型规模扩展的兴趣。
  • 每秒查询量 (Queries Per Second, QPS): 每秒钟服务器或系统能处理的查询请求数量,是衡量系统吞吐量的重要指标。工业级推荐系统通常要求极高的 QPS。
  • 延迟 (Latency): 从发送请求到接收到响应之间的时间间隔,是衡量系统响应速度的重要指标。工业级推荐系统对延迟有严格的上限要求。
  • 模型浮点运算利用率 (Model Flops Utilization, MFU): 模型实际执行的浮点运算次数与硬件理论峰值浮点运算次数之比,衡量硬件计算资源的利用效率。低 MFU 意味着 GPU 算力未被充分利用。
  • Transformer (Transformer): 一种基于注意力机制的神经网络架构,最初用于自然语言处理。其核心是自注意力 (self-attention) 机制,能够捕捉序列中任意两个位置之间的依赖关系。RankMixer 借鉴了 Transformer 的高并行性,但改进了其自注意力机制。
  • 自注意力 (Self-Attention): Transformer 中的核心机制,允许模型在处理序列中的每个元素时,关注序列中的所有其他元素,并计算它们之间的“注意力权重”,以动态地聚合信息。其计算复杂度通常是序列长度的二次方。 其计算公式如下: Attention(Q,K,V)=softmax(QKTdk)V \mathrm{Attention}(Q, K, V) = \mathrm{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V
    • 符号解释:
      • QQ (Query), KK (Key), VV (Value): 分别是查询矩阵、键矩阵和值矩阵,由输入序列通过线性变换得到。
      • QKTQ K^T: 计算查询与所有键的点积,表示查询与每个键的相似度。
      • dk\sqrt{d_k}: 缩放因子,用于防止点积过大,导致 softmax 函数梯度过小。dkd_k 是键向量的维度。
      • softmax()\mathrm{softmax}(\cdot): 归一化函数,将相似度转换为注意力权重,使得所有权重的和为 1。
      • VV: 值矩阵,注意力权重会作用于值矩阵,聚合相关信息。
  • 前馈网络 (Feed-Forward Network, FFN): 神经网络中的一种基本组件,通常由两个或多个全连接层 (Fully Connected Layer) 组成,中间夹有激活函数 (Activation Function)。在 Transformer 中,FFN 对自注意力层的输出进行独立的、位置维度的非线性变换。
  • 混合专家模型 (Mixture-of-Experts, MoE): 一种模型架构,其中包含多个“专家”网络,一个“门控网络 (gating network)”负责为每个输入数据样本选择或加权激活一个或多个专家。MoE 旨在通过条件计算实现模型容量的增长,而无需显著增加计算成本。
  • 稀疏混合专家 (Sparse Mixture-of-Experts, Sparse-MoE): MoE 的一种变体,其中门控网络只激活少数(通常是 Top-k 个)专家来处理每个输入,从而在保持高模型容量的同时,显著降低了每个样本的实际计算量。

3.2. 前人工作

  • 早期 DLRMs (Early DLRMs):
    • Wide&Deep [5]: 结合线性模型 (wide part) 和深度神经网络 (DNN, deep part) 分别捕获低阶和高阶特征交互。
    • DeepFM [10]: 将因子分解机 (Factorization Machine, FM) 嵌入到深度学习框架中,同时学习低阶(如二阶)和高阶特征交互。
  • 显式特征交叉方法 (Explicit Feature Crossing Methods): 旨在通过特定操作显式地建模高阶特征交互,而不是完全依赖 DNN 隐式学习。
    • PNN [20]: 引入产品层 (product layer) 来显式地学习特征交叉。
    • DCN [25] 及其继任者 DCNv2 [26]: 使用交叉网络 (Cross Network) 堆叠多层交叉单元,有效地捕捉高阶特征交互。
    • xDeepFM [16]: 引入压缩交互网络 (Compressed Interaction Network, CIN) 显式地学习向量级别的特征交互。
    • FGCNN [18] 和 FiGNN [15]: 利用卷积神经网络 (CNN) 或图神经网络 (GNN) 来建模特征交互。
    • AutoInt [23] 和 Hiformer [9]: 结合了异构自注意力层和低秩近似矩阵计算来建模特征交互。
    • DHEN [31]: 结合多种特征交叉块(如 DCN、自注意力、FM、LR)并堆叠多层。
  • DLRMs 规模扩展研究 (Scaling DLRMs):
    • 早期研究 [2, 6, 32] 探索 DLRMs 的扩展策略。
    • DHEN [31] 和 Wukong [30]: 进一步探讨了 DLRMs 的扩展。Wukong 堆叠了 FM 块 (FMB) 和线性压缩块 (LCB) 来学习特征交互。
    • Zhang et al. [32]: 将顺序推荐模型扩展到 0.8B 参数。
    • HSTU [29]: 增强了生成式推荐器 (Generative Recommenders, GRs) 的扩展效果,主要关注序列部分。

3.3. 技术演进

推荐系统中的特征交互建模经历了从早期线性模型 (如逻辑回归) 到因子分解机 (FM) 和宽度深度模型 (Wide&Deep),再到深度交叉网络 (DCN) 等显式交叉方法的发展。随着深度学习的兴起,基于注意力机制和 Transformer 结构的模型也开始应用于推荐系统,以期捕捉更复杂的特征交互。

然而,传统的 DLRMs 架构,特别是其特征交叉模块,很多设计理念源于 CPU 时代,在现代 GPU 上表现出低 MFU 和差的可扩展性。这一领域的技术演进逐渐认识到,仅仅堆叠 DNN 或设计复杂的显式交叉模块是不够的,还需要从硬件效率的角度出发,设计硬件感知 (hardware-aware) 的模型架构,以充分利用 GPU 的并行计算能力。同时,从 LLM 的成功中吸取经验,通过增加模型规模来提升性能成为新的趋势,但需要解决推荐系统特有的延迟和 QPS 约束以及异构特征空间问题。

本文的 RankMixer 正是这一演进路径上的最新尝试,它吸取了 Transformer 的并行优势,改进了自注意力机制以适应推荐系统的异构特征,并通过逐词元 FFN 和 Sparse-MoE 实现高效的参数扩展和计算效率。

3.4. 差异化分析

RankMixer 与相关工作的主要区别和创新点在于:

  • 硬件感知设计: 不同于大多侧重于建模能力的传统 DLRMs (DCNv2, DHEN, Wukong),RankMixer 的核心设计理念是硬件感知,旨在提高 GPU 的 MFU,实现参数的高效扩展而不增加推理延迟。这是其解决工业级挑战的关键。
  • 高效的特征交互机制:
    • 多头词元混合 (Multi-head Token Mixing) vs. 自注意力 (Self-Attention): RankMixer 认为自注意力机制对于推荐系统中的异构特征空间(如用户 ID 和物品 ID,包含数亿元素)不适用,因为计算不同语义空间之间的内积相似度效果不佳且计算成本高。RankMixer 采用无参数的多头词元混合,以更高的效率处理跨词元信息交换,避免了自注意力带来的内存和计算开销。
    • 逐词元前馈网络 (Per-token FFNs) vs. 共享 FFNs 或 MMoE 专家: 传统 Transformer 的 FFN 参数是所有词元共享的,这可能导致高频特征掩盖低频特征。RankMixer 的逐词元 FFNs 为每个词元分配独立的参数,从而更好地建模不同特征子空间的多样性,解决特征支配问题。它与 MMoE 的区别在于,MMoE 的所有专家共享相同的输入,而 Per-token FFNs 对应不同的词元输入。
  • 优化的 Sparse-MoE 策略: RankMixer 引入 Sparse-MoE 进一步提升 ROI,并针对 MoE 在推荐系统中的具体问题(专家训练不足和不平衡)提出了 ReLU 路由DTSI-MoE 策略,确保大规模专家能够充分训练并被有效激活,这优于常规的 MoE 扩展方法。
  • 参数扩展与成本控制的平衡: RankMixer 能够将参数规模扩大 70 倍,同时保持推理延迟不变,这得益于其架构设计将参数增长与 FLOPs 解耦,以及高 MFU 和工程优化将 FLOPs 增长与实际成本解耦的能力。这在之前的大规模 DLRM 工作中是难以实现的。

4. 方法论

4.1. 方法原理

RankMixer 的核心思想是设计一个硬件感知、统一且可扩展的架构,以高效地处理推荐系统中的大规模、异构特征交互。它借鉴了 Transformer 架构的并行处理优势,但针对推荐系统数据的特点和工业部署的严格效率要求进行了关键改进。其主要原理包括:

  1. 词元化 (Tokenization): 将异构特征(用户、物品、行为序列、交叉特征)转化为固定维度的特征词元,为后续的并行计算做好准备。
  2. 多头词元混合 (Multi-head Token Mixing): 替代 Transformer 的自注意力机制,通过一种更高效的无参数操作实现词元间的全局信息交换,避免了自注意力在异构特征空间中的低效和高计算成本问题。
  3. 逐词元前馈网络 (Per-token FFNs): 为每个特征词元提供独立的参数进行非线性变换,以更好地建模各个特征子空间内部的复杂模式,解决特征支配问题,并提升模型容量。
  4. 稀疏混合专家 (Sparse-MoE) 扩展: 将逐词元 FFN 进一步扩展为 Sparse-MoE,在保持计算效率的同时,大幅增加模型参数,实现更高的投资回报率。并通过动态路由和稠密训练/稀疏推理策略,解决 Sparse-MoE 固有的专家训练不平衡问题。

4.2. 核心方法详解 (逐层深入)

4.2.1. 整体架构 (Overall Architecture)

RankMixer 的整体架构由 TT 个输入词元 (input tokens) 经过 LL 个连续的 RankMixer 块 (RankMixer blocks) 处理,最后通过一个输出池化操作 (output pooling operator) 得到最终的表示。每个 RankMixer 块包含两个主要组件:(1) 一个多头词元混合层 (Multi-Head Token Mixing layer),和 (2) 一个逐词元前馈网络 (Per-Token Feed-Forward Network, PFFN) 层。

首先,输入向量 einput\mathbf { e_{input} } 被词元化为 TT 个特征词元 x1,x2,...,xT\mathbf { x } _ { 1 } , \mathbf { x } _ { 2 } , . . . , \mathbf { x } _ { T },每个词元代表一个语义连贯的特征向量。RankMixer 块通过以下迭代过程对词元表示进行 LL 层精炼:

Sn1=LN(TokenMixing(Xn1)+Xn1),ΦXn=LN(PFFN(Sn1)+Sn1), \begin{array} { r l } & { \mathbf { S } _ { n - 1 } = \mathrm { L N } \left( \mathrm { TokenMixing } \left( \mathbf { X } _ { n - 1 } \right) + \mathbf { X } _ { n - 1 } \right) , } \\ & { \mathbf { \Phi } _ { \mathbf { X } _ { n } } = \mathrm { L N } \left( \mathrm { PFFN } \left( \mathbf { S } _ { n - 1 } \right) + \mathbf { S } _ { n - 1 } \right) , } \end{array}

  • 符号解释:
    • LN()\mathrm { LN } ( \cdot ): 层归一化函数 (Layer Normalization),用于稳定训练。

    • TokenMixing()\mathrm { TokenMixing } ( \cdot ): 多头词元混合模块 (Multi-head Token Mixing module),负责词元间的特征交互。

    • PFFN()\mathrm { PFFN } ( \cdot ): 逐词元前馈网络模块 (Per-token FFN module),负责对每个词元进行独立的非线性变换。

    • Xn1RT×D\mathbf { X } _ { n - 1 } \in \mathbb { R } ^ { T \times D }: 第 n-1 个 RankMixer 块的输出,表示 TT 个词元,每个词元维度为 DD

    • Sn1RT×D\mathbf { S } _ { n - 1 } \in \mathbb { R } ^ { T \times D }: 经过词元混合和残差连接 (residual connection) 并层归一化后的输出。

    • XnRT×D\mathbf { X } _ { n } \in \mathbb { R } ^ { T \times D }: 第 nn 个 RankMixer 块的最终输出。

    • X0RT×D\mathbf { X } _ { 0 } \in \mathbb { R } ^ { T \times D }: 初始输入词元,由 x1,x2,...,xT\mathbf { x } _ { 1 } , \mathbf { x } _ { 2 } , . . . , \mathbf { x } _ { T } 堆叠而成。

    • DD: 模型的隐藏维度 (hidden dimension)。

    • nn: 当前 RankMixer 块的索引,从 1 到 LL

      最终输出表示 Ooutput\mathbf { O_{output} } 来自于最后一层 RankMixer 块的表示 XL\mathbf { X } _ { L } 的均值池化 (mean pooling),用于计算不同任务的预测。

4.2.2. 输入层和特征词元化 (Input Layer and Feature Tokenization)

构建大规模推荐模型的第一步是准备包含丰富信息的输入。这包括用户特征(如用户 ID 和其他用户信息)、候选物品特征(如视频 ID、作者 ID 等)、通过序列模块 [4, 34] 处理以捕获时间兴趣的序列特征(生成 es\mathbf { e_s }),以及用户与候选物品之间的交叉特征 (Cross Features)。所有这些特征都将被转换为具有不同维度的嵌入 (embeddings)。

为了在后续阶段实现高效的并行计算,不同维度的嵌入必须被转换为维度对齐的向量,即特征词元 (feature-tokens)。这个嵌入对齐过程被称为词元化 (tokenization)

简单的策略是为每个特征分配一个嵌入,但由于通常有数百个特征,这会引入挑战:

  • 词元过多: 数百个词元不可避免地导致分配给每个词元的参数和计算量变得非常小,从而导致重要特征的建模不足和 GPU 核心的利用率低下。

  • 词元过少: 相反,词元过少(例如单个词元)会将模型结构退化为简单的深度神经网络 (DNN),无法清晰地表示多样化的特征空间,并存在主导特征掩盖其他特征的风险。

    为克服这些问题,本文提出了一种结合领域知识的基于语义的词元化方法 (semantic-based tokenization approach)。该方法将特征分组为几个语义上连贯的簇 (semantically coherent clusters)。这些分组后的特征按顺序连接成一个嵌入向量:

einput=[ e1;e2;...;eN] \begin{array} { l l l } { { e _ { \mathrm { i n p u t } } } } & { { = } } & { { \left[ \ e _ { 1 } ; e _ { 2 } ; . . . ; e _ { N } \right] } } \end{array}

  • 符号解释:
    • einpute _ { \mathrm { i n p u t } } : 连接后的嵌入向量。

    • e _ { 1 } , e _ { 2 } , . . . , e _ { N }: 来自 NN 个特征组的嵌入向量。

      随后,这个连接后的向量被分割成适当数量的固定维度词元。每个特征词元 xiRD\mathbf { x } _ { i } \in \mathbb { R } ^ { D } 捕获一组代表相似语义方面的特征嵌入。

xi = Proj(einput[d(i1):di]),i=1,...,T, \begin{array} { r } { \mathrm { x } _ { i } ~ = ~ \mathrm { Proj } ( e _ { \mathrm { i n p u t } } \left[ \boldsymbol { d } \cdot ( i - 1 ) : \boldsymbol { d } \cdot i \right] ) , \quad i = 1 , . . . , T , } \end{array}

  • 符号解释:
    • xi\mathbf { x } _ { i } : 第 ii 个特征词元。
    • Proj()\mathrm { Proj } ( \cdot ) : 投影函数,将分割后的嵌入映射到 DD 维。
    • einpute _ { \mathrm { i n p u t } } : 连接后的嵌入向量。
    • d\boldsymbol { d } : 每个词元固定的维度大小。
    • [d(i1):di][ \boldsymbol { d } \cdot ( i - 1 ) : \boldsymbol { d } \cdot i ]: 表示从连接向量中切片出第 ii 个词元对应的部分。
    • TT: 最终生成的词元数量。

4.2.3. RankMixer 块 (RankMixer Block)

4.2.3.1. 多头词元混合 (Multi-head Token Mixing)

为了促进词元间有效的信息交换(这对于特征交叉和全局信息建模至关重要),本文引入了多头词元混合模块。 每个词元 xt\mathbf { x } _ { t } 被均匀地分成 HH 个头 (heads),其中词元 xt\mathbf { x } _ { t } 的第 hh 个头表示为 xt(h)\mathbf { x } _ { t } ^ { ( h ) }

[xt(1)xt(2)xt(H)]=SplitHead(xt). \left[ \mathbf { x } _ { t } ^ { ( 1 ) } \parallel \mathbf { x } _ { t } ^ { ( 2 ) } \parallel \ldots \parallel \mathbf { x } _ { t } ^ { ( H ) } \right] = \mathrm { SplitHead } \left( \mathbf { x } _ { t } \right) .

  • 符号解释:
    • xt\mathbf { x } _ { t } : 第 tt 个词元。

    • xt(h)\mathbf { x } _ { t } ^ { ( h ) } : 第 tt 个词元的第 hh 个头。

    • \parallel: 表示向量拼接操作。

    • SplitHead()\mathrm { SplitHead } ( \cdot ) : 将一个词元分割成 HH 个头的功能。

      这些头可以看作是词元 xt\mathbf { x } _ { t } 在低维特征子空间中的投影,因为推荐任务需要从不同角度考虑。词元混合用于融合这些子空间向量以实现全局特征交互。 形式上,经过多头词元混合后,对应于第 hh 个头的第 hh 个词元 sh\mathbf { s } ^ { h } 构造如下:

sh=Concat(x1h,x2h,...,xTh). \mathbf { \boldsymbol { s } } ^ { h } = \operatorname { Concat } \left( \mathbf { \boldsymbol { x } } _ { 1 } ^ { h } , \mathbf { \boldsymbol { x } } _ { 2 } ^ { h } , . . . , \mathbf { \boldsymbol { x } } _ { T } ^ { h } \right) .

  • 符号解释:
    • sh\mathbf { s } ^ { h } : 经过词元混合后,对应于第 hh 个头的新词元。

    • Concat()\operatorname { Concat } ( \cdot ) : 拼接操作。

    • x1h,x2h,...,xTh\mathbf { x } _ { 1 } ^ { h } , \mathbf { x } _ { 2 } ^ { h } , . . . , \mathbf { x } _ { T } ^ { h } : 所有 TT 个词元的第 hh 个头。

      多头词元混合模块的输出是 SRH×D\mathbf { S } \in \mathbb { R } ^ { H \times D },它由所有重新洗牌 (shuffled) 后的词元 s1,s2,...,sH\mathbf { s } _ { 1 } , \mathbf { s } _ { 2 } , . . . , \mathbf { s } _ { H } 堆叠而成。 在本文中,设置 H=TH = T,以保持词元混合后词元数量不变,便于残差连接。 经过残差连接和层归一化模块后,我们可以得到:

s1,s2,...,sT=LN(TokenMixing(x1,x2,...,xT)+(x1,x2,...,xT)), { \bf s } _ { 1 } , { \bf s } _ { 2 } , . . . , { \bf s } _ { T } = \mathrm { L N } \left( \mathrm { T o k e n M i x i n g } \left( { \bf x } _ { 1 } , { \bf x } _ { 2 } , . . . , { \bf x } _ { T } \right) + \left( { \bf x } _ { 1 } , { \bf x } _ { 2 } , . . . , { \bf x } _ { T } \right) \right) ,

  • 符号解释:
    • x1,x2,...,xT\mathbf { x } _ { 1 } , \mathbf { x } _ { 2 } , . . . , \mathbf { x } _ { T } : 原始输入词元。

    • TokenMixing()\mathrm { TokenMixing } ( \cdot ) : 多头词元混合操作。

    • +: 残差连接,将词元混合的输出与原始输入相加。

    • LN()\mathrm { LN } ( \cdot ) : 层归一化。

    • s1,s2,...,sT\mathbf { s } _ { 1 } , \mathbf { s } _ { 2 } , . . . , \mathbf { s } _ { T } : 经过混合、残差连接和归一化后的新词元表示。

      尽管自注意力 (self-attention) 在大语言模型中已被证明非常有效,但本文发现它不适用于推荐系统。在自注意力中,注意力权重通过词元间的内积计算。这种方法对于 NLP 任务很有效,因为所有词元共享统一的嵌入空间。然而,在推荐任务中,特征空间本身是异构的。计算两个异构语义空间之间的内积相似度是出了名的困难——特别是在推荐系统中,用户和物品侧的特征 ID 空间可能包含数亿个元素。因此,将自注意力应用于如此多样化的输入,不仅不会优于无参数的多头词元混合方法,反而会消耗更多的计算、内存输入/输出 (Memory IO) 操作和 GPU 内存。

4.2.3.2. 逐词元前馈网络 (Per-token FFN)

之前的深度学习推荐模型 (DLRM) 和 DHEN 模型倾向于在一个单一的交互模块中混合来自许多不同语义空间的特征,这可能导致高频字段主导,掩盖低频或长尾信号,最终损害整体推荐质量。 本文引入了一种参数隔离的前馈网络架构,称为逐词元前馈网络 (Per-token FFN)。在传统设计中,FFN 的参数在所有词元间共享,但本文的方法使用专用变换处理每个词元,从而隔离了每个词元的参数。 对于第 tt 个词元 st\mathbf { s } _ { t },逐词元 FFN 可以表示为:

vt=fpffnt,2(Gelu(fpffnt,1(st))), \mathbf { v } _ { t } = f _ { \mathrm { pffn } } ^ { t , 2 } \left( \operatorname { Gelu } \left( f _ { \mathrm { pffn } } ^ { t , 1 } \left( \mathbf { s } _ { t } \right) \right) \right) , 其中,函数 fpffnt,i(x)f _ { \mathrm { pffn } } ^ { t , i } ( \mathbf { x } ) 定义为: fpffnt,i(x)=xWpffnt,i+bpffnt,i f _ { \mathrm { pffn } } ^ { t , i } ( \mathbf { x } ) = \mathbf { xW } _ { \mathrm { pffn } } ^ { t , i } + \mathbf { b } _ { \mathrm { pffn } } ^ { t , i }

  • 符号解释:
    • vt\mathbf { v } _ { t } : 经过逐词元 FFN 处理后,第 tt 个词元的输出。

    • stRD\mathbf { s } _ { t } \in \mathbb { R } ^ { D } : 第 tt 个输入词元。

    • fpffnt,1()f _ { \mathrm { pffn } } ^ { t , 1 } ( \cdot ): 对应于第 tt 个词元的逐词元 FFN 的第一个全连接层。

    • fpffnt,2()f _ { \mathrm { pffn } } ^ { t , 2 } ( \cdot ): 对应于第 tt 个词元的逐词元 FFN 的第二个全连接层。

    • Gelu()\mathrm { Gelu } ( \cdot ) : Gelu 激活函数 (Gaussian Error Linear Unit)。

    • Wpffnt,1RD×kD\mathbf { W } _ { \mathrm { pffn } } ^ { t , 1 } \in \mathbb { R } ^ { D \times kD }: 第 tt 个词元 FFN 第一个线性层的权重矩阵。

    • bpffnt,1RkD\mathbf { b } _ { \mathrm { pffn } } ^ { t , 1 } \in \mathbb { R } ^ { kD }: 第 tt 个词元 FFN 第一个线性层的偏置向量。

    • Wpffnt,2RkD×D\mathbf { W } _ { \mathrm { pffn } } ^ { t , 2 } \in \mathbb { R } ^ { kD \times D }: 第 tt 个词元 FFN 第二个线性层的权重矩阵。

    • bpffnt,2RD\mathbf { b } _ { \mathrm { pffn } } ^ { t , 2 } \in \mathbb { R } ^ { D }: 第 tt 个词元 FFN 第二个线性层的偏置向量。

    • kk: 一个超参数,用于调整逐词元 FFN 的隐藏维度大小(通常是输入维度的倍数,即 kD)。

      我们将逐词元 FFN 模块总结为:

v1,v2,...,vT=PFFN(s1,s2,...,sT), { \bf v } _ { 1 } , { \bf v } _ { 2 } , . . . , { \bf v } _ { T } = \mathrm { PFFN } \left( \substack { \bf s } _ { 1 } , \bf { s } _ { 2 } , . . . , \bf { s } _ { { T } } \right) ,

PFFN(s1,s2,...,sT)=fpffnt,2(Gelu(fpffnt,1(s1,s2,...,sT))). \mathrm { PFFN } \left( { \bf s } _ { 1 } , { \bf s } _ { 2 } , . . . , { \bf s } _ { T } \right) = f _ { \mathrm { pffn } } ^ { t , 2 } \left( \mathrm { Gelu } \left( f _ { \mathrm { pffn } } ^ { t , 1 } \left( { \bf s } _ { 1 } , { \bf s } _ { 2 } , . . . , { \bf s } _ { T } \right) \right) \right) . 需要注意的是,最后一个公式中 fpffnt,2()f _ { \mathrm { pffn } } ^ { t , 2 } ( \cdot )fpffnt,1()f _ { \mathrm { pffn } } ^ { t , 1 } ( \cdot ) 实际上是针对每个 tt 独立计算的,而不是对整个词元序列的统一操作。原文在这里的表示方式可能略有混淆,但根据上文对 fpffnt,i(x)f _ { \mathrm { pffn } } ^ { t , i } ( \mathbf { x } ) 的定义和“参数隔离”的描述,可以推断其含义。

与参数全部共享的 FFN 相比,逐词元 FFN 通过引入更多参数来增强建模能力,同时保持计算复杂度的不变。值得强调的是,逐词元 FFN 与混合专家模型 (MMoE) 中的专家不同,因为每个逐词元 FFN 接收一个不同的词元输入,而 MMoE 中的所有专家共享相同的输入。与 MMoE 中许多专家处理相同输入不同,也与 Transformer 中不同输入共享一个 FFN 不同,RankMixer 同时分割输入和参数,这有利于学习不同特征子空间中的多样性。

4.2.4. RankMixer 中的稀疏混合专家 (Sparse MoE in RankMixer)

为了进一步提高大规模模型的投资回报率 (ROI),我们可以用稀疏混合专家 (Sparse Mixture-of-Experts, Sparse-MoE) 块替换每个逐词元 FFN 的稠密 FFNs,从而使模型的容量增长,同时计算成本大致保持不变。 然而,香草 (Vanilla) Sparse-MoE 在 RankMixer 中会退化,原因有二: (i) 统一的 kk 专家路由 (uniform kk-expert routing)。 Top-k 选择策略平等地对待所有特征词元,将计算预算浪费在信息量低的词元上,并使信息量高的词元“饥饿”,这阻碍了模型捕捉词元间差异的能力。 (ii) 专家训练不足 (expert under-training)。 逐词元 FFNs 已经将参数乘以了词元数量;再添加非共享的专家会进一步使专家数量爆炸式增长,导致高度不平衡的路由和训练不足的专家。

为了解决上述问题,本文结合两种互补的训练策略:

4.2.4.1. ReLU 路由 (ReLU Routing)

为了赋予词元灵活的专家数量并保持可微性 (differentiability),本文用一个 ReLU 门 (ReLU gate) 加上一个自适应的 1\ell _ { 1 } 惩罚 [28] 来替代常见的 Topk+softmaxTopk+softmax 机制。 给定第 jj 个专家 ei,j()e _ { i , j } ( \cdot ) 用于词元 siRdh^\mathbf { s } _ { i } \in \mathbb { R } ^ { \hat { d_h } } 和路由器 (router) h()h ( \cdot )

Gi,j=ReLU(h(si)),vi=j=1NeGi,j :ei,j(si), G _ { i , j } = \mathrm { ReLU } \big ( h ( \mathbf { s } _ { i } ) \big ) , \quad \mathbf { v } _ { i } = \sum _ { j = 1 } ^ { N _ { e } } G _ { i , j } \ : e _ { i , j } ( \mathbf { s } _ { i } ) ,

  • 符号解释:
    • G _ { i , j }: 第 ii 个词元激活第 jj 个专家的门控值。

    • ReLU()\mathrm { ReLU } ( \cdot ) : 修正线性单元激活函数,确保门控值非负。

    • h(si)h ( \mathbf { s } _ { i } ) : 路由器网络对词元 si\mathbf { s } _ { i } 的输出,用于决定专家激活。

    • vi\mathbf { v } _ { i } : 第 ii 个词元的最终输出,是所有专家输出的加权和。

    • ei,j(si)e _ { i , j } ( \mathbf { s } _ { i } ) : 第 ii 个词元对应的第 jj 个专家的输出(注意这里原文的下标 ii 可能是指“针对词元 ii 的专家集合中的第 jj 个专家”,而不是专家本身依赖于 ii)。

    • N _ { e }: 每个词元拥有的专家数量。

    • si\mathbf { s } _ { i } : 第 ii 个词元输入。

    • dh^\hat { d_h } : 词元隐藏维度,这里表示为 dh^\hat{d_h},与之前的 DD 含义相同。

      ReLU 路由将为信息量高的词元激活更多专家,提高参数效率。稀疏性由带有系数 λ\lambda 的正则化损失 Lreg\mathcal { L } _ { \mathrm { reg } } 控制,该损失将平均活跃专家比例保持在预算附近:

L=Ltask+λLreg,Lreg=i=1Ntj=1NeGi,j. \mathcal { L } = \mathcal { L } _ { \mathrm { task } } + \lambda \mathcal { L } _ { \mathrm { reg } } , \quad \mathcal { L } _ { \mathrm { reg } } = \sum _ { i = 1 } ^ { N _ { t } } \sum _ { j = 1 } ^ { N _ { e } } G _ { i , j } .

  • 符号解释:
    • L\mathcal { L } : 总损失函数。
    • Ltask\mathcal { L } _ { \mathrm { task } } : 主要任务损失(例如,推荐任务的交叉熵损失)。
    • λ\lambda: 正则化系数,平衡任务损失和稀疏性正则化损失。
    • Lreg\mathcal { L } _ { \mathrm { reg } } : 稀疏性正则化损失,是所有词元所有专家门控值的总和,鼓励稀疏激活。
    • N _ { t }: 词元总数。

4.2.4.2. 稠密训练 / 稀疏推理 (Dense-training / Sparse-inference, DTSI-MoE)

受 [19] 的启发,本文采用了两个路由器 htrainh _ { \mathrm { train } }hinferh _ { \mathrm { infer } },并且 Lreg\mathcal { L } _ { \mathrm { reg } } 仅应用于 hinferh _ { \mathrm { infer } }。两个路由器 htrainh _ { \mathrm { train } }hinferh _ { \mathrm { infer } } 在训练期间都会更新,但在推理时只使用 hinferh _ { \mathrm { infer } }。事实证明,DTSI-MoE 使得专家不会遭受训练不足的问题,同时降低了推理成本。

4.2.5. 扩展方向 (Scaling Up Directions)

RankMixer 本质上是一个高度并行和可扩展的架构。其参数数量和计算成本可以沿着四个正交轴进行扩展:

  1. 词元数量 (Token count, TT)

  2. 模型宽度 (Model width, DD)

  3. 层数 (Layers, LL)

  4. 专家数量 (Expert Numbers, EE)

    对于全稠密激活 (full-dense-activated) 版本,单个样本的参数数量和前向浮点运算量 (FLOPs) 可以计算为:

#Param  2kLTD2, FLOPs  4kLTD2, \# \mathrm { Param } ~ \approx ~ 2kLTD^2 , ~ \mathrm { FLOPs } ~ \approx ~ 4kLTD^2 ,

  • 符号解释:
    • #Param\# \mathrm { Param } : 模型参数总数。

    • FLOPs\mathrm { FLOPs } : 前向传播所需的浮点运算次数。

    • kk: 调整 FFN 隐藏维度的比例因子(即 FFN 隐藏维度为 kD)。

    • LL: 模型层数。

    • TT: 词元数量。

    • DD: 模型隐藏维度。

      在稀疏混合专家 (Sparse-MoE) 版本中,有效参数和每个词元的计算量由稀疏性比率 ss 决定,其中:

s=#Activated_Param#Total_Param s = { \frac { \# { \mathrm { Activated } } \_ { \mathrm { Param } } } { \# \mathrm { Total } \_ \mathrm { Param } } }

  • 符号解释:
    • ss: 稀疏性比率,表示激活参数占总参数的比例。

    • #Activated_Param\# { \mathrm { Activated } } \_ { \mathrm { Param } } : 实际激活的参数数量。

    • #Total_Param\# \mathrm { Total } \_ \mathrm { Param } : 模型总参数数量。

      Figure 1: The architecture of the RankMixer consists of two modules: Multi-head Token Mixing and SMoE based Pertoken FFN. 该图像是RankMixer模型的示意图,展示了模型架构及其组件,包括RankMixer Block、Per-token FFN、Token Mixing等模块。图中还提及Sparse-MoE变体及其输出,通过动态路由策略优化模型性能。

图 1 展示了 RankMixer 的整体架构。它清晰地描绘了输入词元如何经过多个 RankMixer 块。每个 RankMixer 块由 Multi-head Token Mixing 模块和基于 Sparse-MoE 的 Per-token FFN 模块组成。图中还通过箭头指明了数据流和残差连接,以及最终的输出。这个架构图是理解 RankMixer 工作原理的关键。

5. 实验设置

5.1. 数据集

离线实验使用了来自抖音 (Douyin) 推荐系统的训练数据。

  • 来源与特点: 这些数据来源于抖音的在线日志和用户反馈标签。数据集包含超过 300 种特征,包括数值特征、ID 特征、交叉特征和序列特征。其中涉及数十亿用户 ID 和数亿视频 ID,所有这些都被转换为嵌入 (embeddings)。
  • 规模: 数据量巨大,每天覆盖数万亿条记录。实验数据收集时间跨度为两周。
  • 选择原因: 选择抖音的生产数据集是为了在真实工业场景下验证 RankMixer 的性能和扩展能力,确保其能够处理超大规模、高维度、异构的真实推荐数据。

5.2. 评估指标

为了评估模型性能,本文使用了以下作为主要性能指标,并列出了效率指标:

  1. 完成/跳过 AUC/UAUC (Finish/Skip AUC/UAUC):

    • 概念定义 (Conceptual Definition): finishi=1/0finish_{i=1/0}skipi=1/0skip_{i=1/0} 标签表示用户是否完成了视频观看或在短时间内滑到下一个视频。模型对这些用户行为进行预测,并使用 AUC 和 UAUC 进行评估。AUC (Area Under the Receiver Operating Characteristic Curve) 衡量模型区分正负样本的整体能力。UAUC (User-level AUC) 是对每个用户计算 AUC 后取平均值,更能反映模型在个性化推荐上的效果。在推荐系统中,AUC 提高 0.0001 通常被认为是显著的改进。
    • 数学公式 (Mathematical Formula):
      • AUC (Area Under the Curve): AUC 衡量分类模型将正样本排在负样本之前的概率。其计算公式通常基于梯形法则或直接计算排序对 (ranking pair) 的比例: AUC=iPositivejNegativeI(scorei>scorej)NPositiveNNegative \mathrm{AUC} = \frac{\sum_{i \in \text{Positive}} \sum_{j \in \text{Negative}} I(score_i > score_j)}{N_{\text{Positive}} \cdot N_{\text{Negative}}} 或者通过 ROC 曲线下的面积计算: AUC=01TPR(t)FPR(t)dt \mathrm{AUC} = \int_0^1 \mathrm{TPR}(t) \mathrm{FPR}'(t) dt
      • UAUC (User-level AUC): UAUC 是对每个用户单独计算 AUC,然后将所有用户的 AUC 取平均值。 UAUC=1Uu=1UAUCu \mathrm{UAUC} = \frac{1}{U} \sum_{u=1}^{U} \mathrm{AUC}_u
    • 符号解释 (Symbol Explanation):
      • I()I(\cdot): 指示函数,如果条件为真则返回 1,否则返回 0。
      • scoreiscore_i: 正样本 ii 的预测分数(例如,用户完成观看视频的概率)。
      • scorejscore_j: 负样本 jj 的预测分数(例如,用户跳过视频的概率)。
      • NPositiveN_{\text{Positive}}: 正样本的总数。
      • NNegativeN_{\text{Negative}}: 负样本的总数。
      • TPR(t)\mathrm{TPR}(t): 在给定分类阈值 tt 下的真阳性率 (True Positive Rate)。
      • FPR(t)\mathrm{FPR}'(t): 在给定分类阈值 tt 下的假阳性率 (False Positive Rate) 的导数。
      • UU: 参与评估的用户总数。
      • AUCu\mathrm{AUC}_u: 第 uu 个用户的 AUC 值。
  2. 稠密参数 (Dense-Param):

    • 概念定义 (Conceptual Definition): 指模型中稠密部分(例如,全连接层、注意力机制等)的参数数量,不包括稀疏嵌入(例如,ID 嵌入)的参数。这衡量了模型的核心计算复杂度和容量。
  3. 训练 FLOPs/批次 (Training FLOPs/Batch):

    • 概念定义 (Conceptual Definition): 指模型处理一个批次 (batch) 数据(大小为 512)所需的浮点运算 (FLOPs) 数量,代表了训练过程中的计算成本。
  4. 模型浮点运算利用率 (Model FLOPs Utilization, MFU):

    • 概念定义 (Conceptual Definition): 衡量模型实际浮点运算量与硬件理论峰值浮点运算量之比。它表示了模型在给定硬件上利用其浮点运算能力的效率,高 MFU 意味着硬件被更有效地利用。
    • 数学公式 (Mathematical Formula): MFU=Actual FLOPsTheoretical Hardware FLOPs \mathrm{MFU} = \frac{\text{Actual FLOPs}}{\text{Theoretical Hardware FLOPs}}
    • 符号解释 (Symbol Explanation):
      • Actual FLOPs\text{Actual FLOPs}: 模型在执行特定计算时实际产生的浮点运算次数。
      • Theoretical Hardware FLOPs\text{Theoretical Hardware FLOPs}: 特定硬件(例如 GPU)在单位时间内(通常是秒)理论上能够执行的最大浮点运算次数,由硬件架构决定。

5.3. 对比基线

为了全面评估 RankMixer 的性能,本文将其与以下广泛认可的最先进 (SOTA) 基线模型进行了比较:

  • DLRM-MLP:
    • DLRM-MLP (base): 作为实验的基线,这是传统的、仅使用多层感知机 (MLP) 进行特征交叉的 DLRM 模型。
    • DLRM-MLP-100M: DLRM-MLP 的一个扩展版本,参数量大约为 100M,用于观察简单扩展 DLRM 的效果。
  • 交叉特征模型 (Feature Cross Models):
    • DCNv2 [26]: 深度交叉网络 v2,一种显式学习高阶特征交互的经典模型。
    • RDCN [3]: 循环深度交叉网络 (Recurrent Deep Cross Network),是 DCN 的一个变体。
  • 专家混合模型 (Mixture-of-Experts Models):
    • MoE: 专家混合模型,通过使用多个并行专家来扩展模型容量。
  • 注意力机制与低秩近似模型 (Attention and Low-Rank Approximation Models):
    • AutoInt [23]: 自动特征交互模型,使用自注意力机制来显式地学习特征交互。
    • Hiformer [9]: 结合了异构自注意力层和低秩近似矩阵计算的 Transformer 变体。
  • 多模块堆叠模型 (Multi-Module Stacking Models):
    • DHEN [31]: 深度异构集成网络 (Deep Heterogeneous Ensemble Network),它结合了不同类型的特征交叉块(如 DCN、自注意力、因子分解机 FM、逻辑回归 LR)并堆叠多层。
    • Wukong [30]: 调查特征交互扩展定律的模型,其架构遵循 DHEN,并结合了因子分解机块 (FMB) 和线性压缩块 (LCB)。

训练环境: 所有实验均在数百个 GPU 上进行,采用混合分布式训练框架:

  • 稀疏部分 (sparse part): 异步更新。
  • 稠密部分 (dense part): 同步更新。 优化器超参数在所有模型中保持一致:
  • 稠密部分 (dense part): 使用 RMSProp 优化器,学习率为 0.01。
  • 稀疏部分 (sparse part): 使用 Adagrad 优化器。

6. 实验结果与分析

6.1. 核心结果分析

6.1.1. 与最先进方法 (SOTA) 的比较

为了探索如何扩展模型,本文比较了参数规模相似(约 100M 参数)的模型,以确定在相同计算成本下,哪种模型结构表现最佳。

以下是原文 Table 1 的结果:

ModelFinishSkipEfficiency
AUC↑UAUC↑AUC↑UAUC↑ParamsFLOPs/Batch
DLRM-MLP (base)0.85540.82700.81240.72948.7 M52 G
DLRM-MLP-100M+0.15%+0.15%95 M185 G
DCNv2+0.13%+0.13%+0.15%+0.26%22 M170 G
RDCN+0.09%+0.12%+0.10%+0.22%22.6 M172 G
MoE+0.09%+0.12%+0.08%+0.21%47.6 M158 G
AutoInt+0.10%+0.14%+0.12%+0.23%19.2 M307 G
DHEN+0.18%+0.26%+0.36%+0.52%22 M158 G
HiFormer+0.48%116 M326 G
Wukong+0.29%+0.29%+0.49%+0.65%122 M442 G
RankMixer-100M+0.64%+0.72%+0.86%+1.33%107 M233 G
RankMixer-1B+0.95%+1.22%+1.25%+1.82%1.1B2.1T

表 1: 约 100M 参数推荐模型的性能和效率比较(最优值加粗)

分析:

  • RankMixer 的卓越性能: RankMixer-100M 在所有任务和指标上均显著优于其他最先进模型。例如,在 Finish AUC 和 Skip AUC 上分别达到了 +0.64% 和 +0.86% 的增益,UAUC 增益也最高。这表明 RankMixer 在相同参数规模下具有更强的建模能力。
  • 计算效率的平衡: 尽管 RankMixer-100M 取得了最佳性能,其 FLOPs/Batch(233 G)在所有模型中仍处于相对适中的水平。这反映了 RankMixer 在模型容量和计算负载之间取得了良好的平衡。
  • DLRM-MLP 的局限性: 简单地将 DLRM-MLP 扩展到 100M 参数(DLRM-MLP-100M)带来的收益有限(仅 +0.15% AUC),这强调了为推荐数据特性设计专门模型的必要性。
  • 其他交叉模型的参数-计算不平衡:DCNv2RDCNAutoIntDHEN 等经典交叉结构设计,即使参数规模相对较小,也表现出较大的 FLOPs。这表明它们在设计上存在不足,限制了其扩展性。例如,AutoInt 参数只有 19.2M,但 FLOPs 却高达 307G,效率较低。
  • 与 SOTA 扩展模型的比较:HiFormerWukong 等常用于扩展的最先进模型相比,RankMixer 在相似参数设置下不仅性能更好,而且计算需求更低。

6.1.2. 不同模型的扩展定律 (Scaling Laws)

下图(原文 Figure 2)展示了不同模型在参数规模和 FLOPs 方面的扩展定律曲线。

Figure 2: Scaling laws between Auc-gain and Params/Flops of various models. The \(\\mathbf { x }\) axis uses a logarithmic scale.

图 2: 不同模型 AUC 增益与参数/FLOPs 之间的扩展定律。x 轴采用对数刻度。

分析:

  • RankMixer 的陡峭扩展定律: RankMixer 模型在参数和 FLOPs 方面都显示出最陡峭的扩展定律曲线,这意味着它能随着参数和计算量的增加获得更显著的性能提升,且持续优于其他模型。
  • Wukong 的计算成本问题: 尽管 Wukong 模型在参数曲线上表现相对陡峭,但其计算成本 (FLOPs) 增长更快。因此,在 AUC vs FLOPs 曲线上的表现,它与 RankMixerHiFormer 的差距更大。
  • Hiformer 的效率问题: HiFormer 的性能略逊于 RankMixer,这可能反映了它对特征级别的词元分割以及对注意力机制的依赖影响了其效率。
  • DHEN 的扩展限制: DHEN 的扩展不理想,反映了其交叉结构在可扩展性方面的局限性。
  • MoE 的专家平衡挑战: MoE 通过增加专家来扩展的策略带来了维持专家平衡的挑战,导致其扩展性能不理想。

扩展方向与配置:

  • LLM 扩展定律的共识: 实验观察到与 LLM 扩展定律相似的结论:模型质量主要与总参数数量相关,不同的扩展方向(深度 LL、宽度 DD、词元数 TT)产生的性能几乎相同。
  • 计算效率考量: 从计算效率的角度来看,更大的隐藏维度 (DD) 会生成更大的矩阵乘法形状,从而比堆叠更多层 (LL) 实现更高的 MFU
  • 最终配置:
    • RankMixer-100M: (D=768D = 768, T=16T = 16, L=2L = 2)
    • RankMixer-1B: (D=1536D = 1536, T=32T = 32, L=2L = 2)

6.1.3. 在线服务成本 (Online Serving Cost)

以下是原文 Table 6 的结果:

MetricOnlineBase-16MRankMixer-1BChange
#Param15.8M1.1B↑ 70X
FLOPs107G2106G↑ 20.7X
Flops/Param(G/M)6.81.9↓3.6X
MFU4.47%44.57%↑ 10X
Hardware FLOPsfp32fp16↑2X
Latency14.5ms14.3ms-

表 6: 在线模型部署和成本指标

分析:

  • 参数规模大幅提升,延迟保持稳定: 与之前完全部署的 16M 参数模型(集成了 DLRM 和 DCN 等人工设计交叉结构)相比,RankMixer 模型参数规模扩大了约 70 倍,达到 1B,但最终的推理延迟保持稳定(从 14.5ms 略微降至 14.3ms)。这得益于其硬件感知模型设计和优化策略。

  • 延迟分解公式: 论文解释了在大幅增加模型参数时,延迟可以分解为以下公式: Latency=#Param×FLOPs/ParamratioMFU×(TheoreticalHardwareFLOPs) \mathrm { Latency } = { \frac { \# \mathrm { Param } \times \mathrm { FLOPs } / \mathrm { Param } \mathrm { ratio } } { \mathrm { MFU } \times ( \mathrm { Theoretical } \mathrm { Hardware } \mathrm { FLOPs } ) } }

    • 符号解释:
      • Latency\mathrm { Latency } : 推理延迟。
      • #Param\# \mathrm { Param } : 模型参数数量。
      • FLOPs/Paramratio\mathrm { FLOPs } / \mathrm { Param } \mathrm { ratio } : 每个参数所需的浮点运算次数。
      • MFU\mathrm { MFU } : 模型浮点运算利用率。
      • TheoreticalHardwareFLOPs\mathrm { Theoretical } \mathrm { Hardware } \mathrm { FLOPs } : 硬件理论峰值浮点运算能力。
  • 各项优化措施: 表 6 展示了三个关键因素如何抵消参数增长带来的延迟影响:

    1. FLOPs/Param 比率降低: RankMixer 实现了参数 70 倍的增长,而 FLOPs 仅增长了约 20 倍。这使得每个参数所需的 FLOPs 比率降低了 3.6 倍(从 6.8 G/M 到 1.9 G/M),这意味着在相同的 FLOPs 预算下,RankMixer 可以容纳比基线多三倍的参数。
    2. MFU 显著提升: RankMixer 将 MFU 从 4.47% 提高到 44.57%,几乎是 10 倍的提升。通过使用大型通用矩阵乘法 (GEMM) 形状、良好的并行拓扑(将并行的逐词元 FFNs 融合到一个核中)、减少内存带宽成本和开销,RankMixer 将模型从内存密集型 (Memory-bound) 模式转变为计算密集型 (Compute-bound) 模式。
    3. 量化 (Quantization) 带来的硬件 FLOPs 提升: RankMixer 的主要计算由多个大型矩阵乘法组成,非常适合半精度 (fp16) 推理。半精度推理将 GPU 的理论峰值硬件 FLOPs 提高了 2 倍

6.1.4. 在线性能 (Online Performance)

为了验证 RankMixer 作为可扩展推荐模型框架的通用性,本文在个性化排序的两个核心应用场景——信息流推荐 (Feed Recommendation)广告 (Advertising) 中进行了在线实验。

  • 信息流推荐 (Feed-Recommendation) 指标:
    • Active Days (活跃天数): 实验期间每个用户的平均活跃天数,作为 DAU (日活跃用户) 增长的替代指标。
    • Duration (时长): 应用内的累计停留时间。
    • Finish/Like/CommentFinish/Like/Comment: 用户完成播放、点赞和评论等行为。
  • 广告 (Advertising) 指标:
    • ΔAUCΔAUC: 模型质量指标的 AUC 增益。

    • ADVV (Advertiser Value): 广告主价值,衡量广告带来的收益。

      之前的基线模型是 16M 参数的 DLRM 和 DCN 结合模型。本文用 RankMixer-1B 替换了稠密部分,使 AUC 提升了 0.7%。

以下是原文 Table 4 的结果:

Douyin appDouyin lite
Active Day↑Duration↑Like↑Finish↑Comment↑Active Day↑Duration↑Like↑Finish↑Comment↑
Overall+0.2908%+1.0836%+2.3852%+1.9874%+0.7886%+0.1968%+0.9869%+1.1318%+2.0744%+1.1338%
Low-active+1.7412%+3.6434%+8.1641%+4.5393%+2.9368%+0.5389%+2.1831%+4.4486%+3.3958%+0.9595%
Middle-active+0.7081%+1.5269%+2.5823%+2.5062%+1.2266%+0.4235%+1.9011%+1.7491%+2.6568%+0.6782%
High-active+0.1445%+0.6259%+1.828%+1.4939%+0.4151%+0.0929%+1.1356%+1.8212%+1.7683%+2.3683%

表 4: RankMixer 在信息流推荐中的在线 A/B 测试结果

分析:

  • 显著的业务指标提升: 在抖音主应用和抖音极速版 (Douyin Lite) 的信息流推荐中,RankMixer 在所有业务关键指标上都取得了统计学意义上的显著提升。例如,抖音应用整体活跃天数提升 0.2908%,应用内时长提升 1.0836%

  • 对低活跃用户的强大泛化能力: 表 4 显示,对低活跃用户 (Low-active users) 的提升最大,抖音应用中活跃天数提升超过 1.7412%,这表明 RankMixer 具有很强的泛化能力,能有效地捕捉长尾用户的兴趣。

  • 通用性验证: 这些结果证明 RankMixer 作为统一的骨干网络,能够可靠地泛化到不同的应用场景。

    以下是原文 Table 5 的结果:

    MetricAdvertising
    ΔAUC↑ADVV↑
    Lift+0.73%+3.90%

表 5: RankMixer 在广告中的在线提升

分析:

  • 广告场景同样表现优异: 在广告场景中,RankMixer 同样实现了显著的提升,ΔAUCΔAUC 提升了 0.73%ADVV 提升了 3.90%。这进一步验证了 RankMixer 在不同商业场景下的通用性和有效性。

6.2. 消融实验/参数分析

6.2.1. RankMixer 组件的消融研究 (Ablation Study on Components of RankMixer)

RankMixer-100M 模型中,本文对残差连接 (residual connections) 和多头词元混合 (Multi-Head Token-Mixing) 进行了消融研究。

以下是原文 Table 2 的结果:

SettingΔAUC
w/o skip connections-0.07%
w/o multi-head token mixing-0.50%
w/o layer normalization-0.05%
Per-token FFN → shared FFN-0.31%

表 2: RankMixer-100M 组件的消融实验

分析:

  • 多头词元混合的重要性: 移除 Multi-Head Token-Mixing 导致模型性能下降最为显著(-0.50% ΔAUC),这表明该模块对于捕捉全局信息至关重要。若没有它,每个 FFN 只建模局部特征而没有交互,模型性能会大大受损。
  • 残差连接和层归一化的重要性: 移除残差连接 (w/o skip connections) 会导致性能下降 -0.07% ΔAUC,移除层归一化 (w/o layer normalization) 会导致性能下降 -0.05% ΔAUC。这表明这些组件对于模型的稳定训练和性能提升都是必要的,它们有助于缓解梯度消失或爆炸问题。
  • 逐词元 FFN 的优势:Per-token FFN 替换为共享 FFN (Per-token FFN → shared FFN) 导致性能下降 -0.31% ΔAUC。这验证了为不同特征子空间分配独立参数的重要性,相比共享参数的 FFN,逐词元 FFN 能更好地建模特征多样性。

6.2.2. 词元到 FFN 路由策略的比较 (Token2FFN Routing-strategy comparison)

本文进一步分析了词元混合策略,即特征词元到 FFN 的路由策略。

以下是原文 Table 3 的结果:

Routing strategyΔAUCΔParamsΔFLOPs
All-Concat-MLP-0.18%~ 0.0%~ 0.0%
All-Share-0.25%~ 0.0%~ 0.0%
Self-Attention-0.03%+16%+71.8%

表 3: 词元到 FFN 路由策略比较

分析:

  • Multi-Head Token Mixing 的优越性: 相比于多头词元混合,其他路由策略均表现出劣势:
    • All-Concat-MLP (所有词元拼接 MLP): 性能下降 -0.18% ΔAUC。这表明学习大型矩阵存在挑战,并且削弱了局部信息学习的能力。
    • All-Share (所有词元共享输入): 性能显著下降 -0.25% ΔAUC。这强调了特征子空间分割和独立建模的重要性,与所有词元共享输入形成对比。
    • Self-Attention (自注意力): 性能略低于 Multi-Head Token-Mixing-0.03% ΔAUC),但却带来了显著的计算成本增加(参数增加 +16+16%,FLOPs 增加 +71.8+71.8%)。这证实了在数百个不同特征子空间之间学习相似度的难度,以及自注意力在推荐系统异构特征场景下的低效性。

6.2.3. Sparse-MoE 可扩展性和专家平衡 (Sparse-MoE Scalability and Expert Balance)

下图(原文 Figure 3)展示了 RankMixer 变体在逐渐稀疏的激活比率下的 AUC 性能。

Figure 3: AUC performance of RankMixer variants under decreasingly sparse activation ratio \(( 1 , 1 / 2 , 1 / 4 , 1 / 8\) of experts): dense-training \(^ +\) ReLU-routed SMoE preserves almost all accuracy of the 1 B dense model.

图 3: RankMixer 变体在逐渐稀疏的激活比率(1、1/2、1/4、1/8 专家)下的 AUC 性能:稠密训练 + ReLU 路由的 SMoE 几乎保留了 1B 稠密模型的所有精度。

分析:

  • DTSI + ReLU 路由的关键作用: 图 3 显示,结合稠密训练/稀疏推理 (Dense-Training-Sparse-Inference, DTSI)ReLU 路由 对于在激进稀疏性下保持模型精度至关重要。它使得 RankMixer 能够在参数容量(和内存占用)增加 超过 8 倍 的情况下,几乎不损失 AUC 性能,同时实现显著的推理时间节省(吞吐量提升 450%)。

  • Vanilla SMoE 的退化: 香草 (Vanilla) SMoE 的性能随着激活专家数量的减少而单调下降,这说明了论文中指出的专家不平衡和训练不足问题。

  • 负载均衡损失的局限性: 添加负载均衡损失 (load-balancing loss) 可以在一定程度上减少 Vanilla SMoE 的性能退化,但仍不如 DTSI + ReLU 版本,因为问题主要在于专家训练而不是路由器本身。

  • 未来可扩展性: 这验证了 Sparse-MoE 是将 RankMixer 从当前的 1B 参数扩展到未来 10B 规模部署而不超出成本预算的有效途径。

    下图(原文 Figure 4)展示了不同词元的激活专家比率。

    Figure 4: Activated expert ratio for various tokens.

    图 4: 不同词元的激活专家比率。

    分析:

  • DTSI + ReLU 路由解决专家不平衡: 图 4 表明,将 DTSI(稠密训练、稀疏推理)与 ReLU 路由相结合,有效地解决了专家不平衡问题。

  • 稠密训练保证专家充分更新: 稠密训练确保了大多数专家都能获得足够的梯度更新,从而防止了专家“饥饿”或“死亡”现象(即专家几乎从不被激活)。

  • ReLU 路由的动态激活: ReLU 路由使得激活比率在不同词元之间是动态变化的——图中显示的激活比例根据词元的信息内容自适应地变化,这与推荐数据多样化和高度动态的分布模式非常吻合。这有助于确保信息量高的词元能够利用更多的专家资源。

7. 总结与思考

7.1. 结论总结

本文介绍了 RankMixer 模型,该模型已全面部署在抖音的信息流排序系统中。RankMixer 结合了针对异构特征交互的模型设计和用于服务效率的高度并行架构。其核心创新包括:

  1. 多头词元混合 (Multi-head Token Mixing),取代传统的自注意力机制,以更高效的方式处理推荐系统中异构特征的交互。

  2. 逐词元前馈网络 (Per-token FFNs),为每个特征子空间提供独立的建模能力,解决了特征支配问题。

  3. 通过 稀疏混合专家 (Sparse-MoE) 变体和创新的 ReLU 路由稠密训练/稀疏推理 (DTSI-MoE) 策略,克服了大规模专家训练不平衡的挑战,实现了模型容量的大幅增长,同时严格控制计算成本。

    实验结果证明了 RankMixer 卓越的性能和陡峭的扩展定律。通过硬件感知设计和工程优化,RankMixer 将模型参数从 16M 扩展到 1B,提升了 70 倍,同时将模型浮点运算利用率 (MFU) 从 4.5% 提高到 45%,并维持了推理延迟的稳定。在抖音应用上全面部署后,模型带来了用户活跃天数 0.3% 和应用内总使用时长 1.08% 的显著提升,尤其对低活跃用户群体效果更佳,并在线上 A/B 测试中验证了其在推荐和广告两大核心场景的通用性。

7.2. 局限性与未来工作

论文中未明确指出具体的局限性,但根据上下文和研究方向,可以推断出以下潜在局限和未来工作:

  • 特定平台依赖性: RankMixer 的成功部署主要基于抖音的推荐系统。尽管验证了通用性,但其特征词元化策略(基于语义分组)和特定超参数配置可能对其他平台(拥有不同特征集合和数据分布)的通用性仍需进一步验证。
  • MoE 复杂性: 尽管 DTSI-MoE 和 ReLU 路由解决了专家平衡问题,但 MoE 模型的训练和调优通常比稠密模型更复杂,需要仔细设计路由策略和专家分配。如何进一步简化 MoE 的训练和部署,提高其鲁棒性是一个持续的研究方向。
  • 更大的规模探索: 论文已将模型扩展到 1B 参数,并提出了向 10B 规模扩展的潜力。未来的工作可以继续探索更大的模型规模带来的收益和新的挑战,例如更高效的分布式训练、更高级别的量化技术,以及如何管理超大规模模型带来的维护和迭代成本。
  • 更复杂的特征交互: RankMixer 通过词元混合和逐词元 FFN 提升了特征交互能力。未来可以探索更复杂的跨词元和词元内部交互机制,例如引入图神经网络 (GNN) 来建模特征之间的结构关系,或者更动态地调整词元之间的交互强度。
  • 多任务和多模态场景: 目前 RankMixer 主要针对排序任务。未来可以探索其在多任务学习、多模态推荐(如结合图像、文本、音频信息)等更复杂场景下的应用和扩展能力。

7.3. 个人启发与批判

个人启发:

  1. 硬件感知设计至关重要: 这篇论文给我最大的启发是,在追求模型效果的同时,硬件感知 (hardware-aware) 的模型设计在工业级推荐系统中具有决定性的意义。单纯堆叠复杂模型而不考虑底层硬件特性是不可持续的。高 MFU 是实现模型大规模扩展而成本不增加的关键。
  2. “规模效应”的普适性与定制化: LLMs 的“规模效应”在推荐系统中得到了验证,但并非简单照搬。推荐系统异构特征的挑战要求对 Transformer 的核心机制(如自注意力)进行定制化改进(例如 Multi-head Token Mixing),以适应其独特的数据结构和业务需求。
  3. 稀疏专家模型的潜力: Sparse-MoE 结合 DTSIReLU 路由 提供了一种优雅的解决方案,在大幅提升模型容量的同时,有效控制了计算成本和专家训练问题。这为未来构建更大、更强大的推荐模型提供了宝贵的经验。
  4. 工程优化与模型设计的协同: FLOPs/Param 比率降低、MFU 提升和量化(fp16)等工程优化与模型架构设计是相辅相成的,共同促成了在线性能的突破。这强调了在工业界,算法研究与系统工程之间紧密协作的重要性。
  5. 对低活跃用户的价值: 模型对低活跃用户有更显著的提升,这表明大规模、高容量的模型能够更好地捕捉长尾用户的细微兴趣和偏好,具有重要的商业价值和社会意义。

批判与潜在改进:

  1. “Token”概念的模糊性: 论文中“Token”的定义是语义上连贯的特征集群,但具体如何界定和分组特征,以及这种分组的普适性,可能需要更详细的讨论。不同的分组方式对模型性能和效率的影响可能是显著的,但论文未深入探讨。
  2. Multi-head Token Mixing 的理论完备性: 论文指出自注意力在异构特征空间中的不足,并提出了无参数的 Token Mixing。虽然实验结果支持其有效性,但在理论层面,这种无参数的拼接混合操作是否能完全替代自注意力捕捉所有类型的复杂高阶交互,以及其在不同场景下的鲁棒性,可以进一步深入探讨。
  3. 超参数敏感性: 尽管 RankMixer 表现出色,但像 D, T, L 等模型维度以及 Sparse-MoE 中的专家数量 NeN_e、ReLU 路由的正则化系数 λ\lambda 等超参数的调优可能非常复杂。论文中只给出了最终配置,但未详细说明其调优过程和敏感性分析。
  4. 长期维护和迭代成本: 1B 甚至 10B 规模的模型,在实际工业环境中进行持续的训练、部署、监控和迭代,将带来巨大的资源和人力成本。虽然论文提到了成本控制,但超大规模模型的长期运营挑战仍值得关注。例如,模型更新的频率、新特征的整合难度等。
  5. 更广泛的通用性测试: 虽然论文在推荐和广告场景都进行了 A/B 测试,但在不同行业(如电商、内容、社交等)以及不同地域、不同用户群体的推荐系统上,RankMixer 的通用性和效果如何,仍需更广泛的验证。

相似论文推荐

基于向量语义检索推荐的相关论文。

暂时没有找到相似论文。