← Back to list
RankMixer

RankMixer: Scaling Up Ranking Models in Industrial Recommenders

判别式推荐 ByteDance
Abstract 8 Reading 8 Rating —
2025-07-21
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
提出硬件感知的推荐排序模型 RankMixer,通过多头 Token Mixing 和逐 Token FFN 替代自注意力机制,在抖音全量部署 1B 参数模型,MFU 从 4.5% 提升至 45%,活跃天数增长 0.3%
transformer moe parameter-scaling industrial feature-interaction

1. 研究背景与动机

大语言模型的成功激发了推荐系统领域对模型规模化扩展的兴趣,但工业推荐排序模型面临两大实际障碍:

  1. 延迟与 QPS 约束:训练和推理成本必须严格控制在工业级延迟和高 QPS 要求范围内。
  2. CPU 时代遗留架构的效率低下:现有排序模型中大量人工设计的特征交叉模块继承自 CPU 时代,无法充分利用 GPU 的并行能力,导致 Model Flops Utilization (MFU) 极低(通常仅个位数百分比),扩展性很差。

传统 DLRM 架构基于异构的人工特征交叉模块(如 DCN、DeepFM 等),其核心算子多为 memory-bound,GPU 并行度低,MFU 低。将参数量扩大后,计算成本近似线性增长,scaling law 带来的收益难以实现。

核心问题:如何设计一种硬件感知(hardware-aware)的架构,使推荐排序模型在现代 GPU 上实现高 MFU,从而将参数扩展与推理成本解耦,实现高效规模化。

2. RankMixer 整体架构

2.1 总体结构

RankMixer 由 $T$ 个输入 token 经过 $L$ 层 RankMixer Block 处理,最终通过 mean pooling 获得输出表示。每个 RankMixer Block 包含两个核心组件:

  1. Multi-Head Token Mixing 层
  2. Per-Token Feed-Forward Network (PFFN) 层

前向过程为:

$$S_{n-1} = \text{LN}(\text{TokenMixing}(X_{n-1}) + X_{n-1}),$$ $$X_n = \text{LN}(\text{PFFN}(S_{n-1}) + S_{n-1}),$$

其中 $\text{LN}(\cdot)$ 为 Layer Normalization,$X_n \in \mathbb{R}^{T \times D}$ 为第 $n$ 个 RankMixer Block 的输出,$X_0 \in \mathbb{R}^{T \times D}$ 由特征 token $\mathbf{x}_1, \mathbf{x}_2, \ldots, \mathbf{x}_T$ 堆叠而成。

2.2 输入层与特征 Tokenization

推荐系统输入包含用户特征候选特征序列特征交叉特征,涉及数百个异构特征字段。

语义分组 Tokenization:将特征按语义领域知识分组为若干语义连贯的 cluster,每组特征顺序拼接为一个 embedding 向量,再按固定维度 $d$ 切分为 $T$ 个 token:

$$x_i = \text{Proj}(\mathbf{e}_{\text{input}}[d \cdot (i-1) : d \cdot i]), \quad i = 1, \ldots, T,$$

其中 $\mathbf{e}_{\text{input}}$ 为拼接后的 embedding 向量,$N$ 为特征组数,$T$ 为切分后的 token 数,$\text{Proj}$ 将每段映射到 $D$ 维。

2.3 Multi-Head Token Mixing

为实现跨 token 的信息交换(即跨特征交互),引入多头 Token Mixing 模块。每个 token $\mathbf{x}_t$ 被均匀切分为 $H$ 个 head:

$$\left[\mathbf{x}_t^{(1)} \| \mathbf{x}_t^{(2)} \| \ldots \| \mathbf{x}_t^{(H)}\right] = \text{SplitHead}(\mathbf{x}_t).$$

对于第 $h$ 个 head,将所有 token 的第 $h$ 个 head 部分拼接,构造 shuffled token $\mathbf{s}^h$:

$$\mathbf{s}^h = \text{Concat}\left(\mathbf{x}_1^h, \mathbf{x}_2^h, \ldots, \mathbf{x}_T^h\right).$$

输出 $S \in \mathbb{R}^{H \times \frac{TD}{H}}$,设 $H = T$ 以保持 token 数不变。该操作本质上是无参数的跨特征信息混合——通过将不同 token 的子空间重新组合,实现全局特征交互。

为什么不用自注意力? 推荐系统中特征空间天然异构(用户 ID、物品 ID 等来自完全不同的语义空间),计算内积相似度本身没有意义;且 ID 空间规模达数百万至数亿,自注意力的二次复杂度和 attention 权重矩阵的 memory-bound 特性使其在推荐场景效率低下。Multi-Head Token Mixing 通过无参数的 shuffle 操作即可实现跨特征交互,且完全 compute-bound。

2.4 Per-Token FFN (PFFN)

传统 DLRM 和 DHEN 等模型在单一交互模块中混合处理所有特征空间,容易导致高频特征淹没低频和长尾特征。RankMixer 引入 逐 Token 独立参数的 FFN

$$\mathbf{v}_T = f_{\text{pffn}}^{t,2}\left(\text{Gelu}\left(f_{\text{pffn}}^{t,1}(\mathbf{s}_t)\right)\right),$$

其中:

$$f_{\text{pffn}}^{t,i}(\mathbf{x}) = \mathbf{x} \mathbf{W}_{\text{pffn}}^{t,i} + \mathbf{b}_{\text{pffn}}^{t,i}$$

$\mathbf{W}_{\text{pffn}}^{t,1} \in \mathbb{R}^{D \times kD}$,$\mathbf{W}_{\text{pffn}}^{t,2} \in \mathbb{R}^{kD \times D}$,$k$ 为隐藏维度倍数。每个 token 拥有独立的权重矩阵和偏置,实现特征子空间的独立建模。

与 MMoE/Transformer 的区别:Per-Token FFN 中每个"专家"处理的是不同的输入(不同 token),而 MMoE 中所有专家共享同一输入;Transformer 中不同输入共享同一 FFN。RankMixer 同时分离了输入和参数。

整体参数和计算量公式(Dense 版本):

$$\text{#Param} \approx 2kLTD^2, \quad \text{FLOPs} \approx 4kLTD^2.$$

2.5 Sparse MoE in RankMixer

为进一步提升扩展 ROI,可将 Per-Token FFN 替换为 Sparse MoE 结构。但 vanilla Sparse MoE 在 RankMixer 中表现退化,原因:

  1. 均匀 top-k 路由:对所有 token 平等分配 expert 预算,浪费了低信息量 token 上的计算,饿死了高信息量 token。
  2. 专家训练不充分:Per-Token FFN 本身已按 token 数乘以参数量,再叠加非共享 expert 会使 expert 数量爆炸,导致路由极度不均衡。

解决方案

ReLU Routing:将常见的 Top-k + softmax 替换为 ReLU gate + 自适应 $\ell_1$ 惩罚:

$$G_{i,j} = \text{ReLU}(h(\mathbf{s}_i)), \quad \mathbf{v}_i = \sum_{j=1}^{N_e} G_{i,j} \, e_{i,j}(\mathbf{s}_i),$$

其中 $N_e$ 为每个 token 的 expert 数。ReLU Routing 允许高信息量 token 激活更多 expert,稀疏性通过正则项控制:

$$\mathcal{L} = \mathcal{L}_{\text{task}} + \lambda \, \mathcal{L}_{\text{reg}}, \quad \mathcal{L}_{\text{reg}} = \sum_{i=1}^{N_t} \sum_{j=1}^{N_e} G_{i,j}.$$

Dense-Training / Sparse-Inference (DTSI-MoE):训练时使用两个 router $h_{\text{train}}$ 和 $h_{\text{infer}}$,正则项仅施加于 $h_{\text{infer}}$;推理时仅使用 $h_{\text{infer}}$。这样训练时每个 expert 都能得到充分梯度更新,推理时保持稀疏以降低成本。

3. 扩展策略

RankMixer 可沿四个正交维度扩展:Token 数 $T$、模型宽度 $D$、层数 $L$、Expert 数 $E$。

实验发现与 LLM scaling law 一致的结论:模型质量主要与总参数量相关,不同扩展方向(深度 $L$、宽度 $D$、token 数 $T$)在相同参数量下效果相近。从计算效率角度,增大宽度 $D$ 能生成更大的矩阵乘形状,从而实现更高 MFU,优于堆叠更多层。

最终配置:

  • RankMixer-100M:$D=768, T=16, L=2$
  • RankMixer-1B:$D=1536, T=32, L=2$

4. 实验

4.1 实验设置

  • 数据集:抖音推荐系统的万亿级工业数据集,包含 300+ 特征字段(数值特征、ID 特征、交叉特征、序列特征),涉及数十亿用户 ID 和数亿视频 ID。数据量为每天数万亿条记录,实验在两周数据上进行。
  • 评估指标
  • Finish AUC/UAUC:用户是否完整观看视频
  • Skip AUC/UAUC:用户是否快速跳过视频
  • AUC 提升 0.0001 即被视为统计显著

  • Dense-Param:不含 sparse embedding 的 dense 参数量

  • MFU:模型实际 FLOPs 消耗 / 硬件理论 FLOPs 峰值

4.2 与 SOTA 方法对比(~100M 参数,Table 1)

Model Finish AUC Finish UAUC Skip AUC Skip UAUC Params FLOPs/Batch
DLRM-MLP (base) 0.8554 0.8270 0.8124 0.7294 8.7 M 52 G
DLRM-MLP-100M +0.15% - +0.15% - 95 M 185 G
DCNv2 +0.13% +0.13% +0.15% +0.26% 22 M 170 G
RDCN +0.09% +0.12% +0.10% +0.22% 22.6 M 172 G
MoE +0.09% +0.12% +0.08% +0.21% 47.6 M 158 G
AutoInt +0.10% +0.14% +0.12% +0.23% 19.2 M 307 G
DHEN +0.18% +0.26% +0.36% +0.53% 22 M 158 G
HiFormer +0.48% - - - 116 M 326 G
Wukong +0.29% +0.29% +0.49% +0.65% 122 M 442 G
RankMixer-100M +0.64% +0.72% +0.86% +1.33% 107 M 233 G
RankMixer-1B +0.95% +1.22% +1.25% +1.82% 1.1 B 2.1 T

结论:RankMixer-100M 在所有指标上显著超越同参数量级的所有 baseline,且 FLOPs 较 HiFormer 和 Wukong 更低。DCN、RDCN、AutoInt、DHEN 等经典交叉结构模型在扩展到 100M 参数时存在参数量与计算成本的不平衡。RankMixer-1B 进一步将性能大幅提升。

4.3 Scaling Law 对比(Figure 2)

从参数量和 FLOPs 两个维度观察 AUC gain 的 scaling curve。RankMixer 在两个维度上均展现出最陡峭的 scaling law,持续优于 DLRM、DHEN、HiFormer、Wukong 和 MoE。Wukong 虽然参数 scaling 曲线较陡,但其计算成本增长更快,在 AUC vs FLOPs 维度上差距更大。

4.4 消融实验

Table 2: RankMixer-100M 组件消融

Setting $\Delta$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%

Multi-Head Token Mixing 移除后性能下降最大(-0.50%),因为每个 FFN 只能建模局部信息,失去了全局交互能力。Per-Token FFN 替换为共享 FFN 也显著下降(-0.31%),证明独立参数建模不同特征子空间的重要性。

Table 3: Token Mixing 路由策略对比

Routing strategy $\Delta$AUC $\Delta$Params $\Delta$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%

All-Concat-MLP(先拼接所有 token 再用大 MLP 处理)和 All-Share(不做切分、所有 token 共享同一输入送入 Per-Token FFN,类似 MoE)性能均显著下降。Self-Attention 性能仅略低于 Multi-Head Token Mixing,但参数增加 16%、FLOPs 增加 71.8%,效率远不如。

4.5 Sparse MoE 可扩展性(Figure 3)

在不同 sparsity ratio(1, 1/2, 1/4, 1/8 激活参数比例)下比较 RankMixer 变体:

  • Dense-Training + ReLU Routing 的 SMoE RankMixer:在 sparsity 为 1/8 时几乎无 AUC 损失,同时推理时间节省 50%+、内存减少 8 倍以上。
  • Vanilla SMoE RankMixer:随 sparsity 增大单调下降。
  • 添加 Balance Loss 的 Vanilla SMoE:缓解退化但仍不及 DTSI + ReLU 方案,因根本问题在于 expert 训练不充分而非仅路由不均。

4.6 在线 Serving 成本(Table 6)

Metric OnlineBase-16M RankMixer-1B Change
#Param 15.8M 1.1B 70x
FLOPs 107G 2106G 20x
FLOPs/Param(G/M) 6.8 1.9 3.6x 下降
MFU 4.47% 44.57% 10x
Hardware FLOPs fp32 fp16 2x
Latency 14.5ms 14.3ms 持平

关键洞察: 1. FLOPs/Param ratio 降低 3.6 倍:参数增加 70 倍,FLOPs 仅增加 20 倍,即每参数的计算代价大幅降低。 2. MFU 提升 10 倍:从 4.47% 到 44.57%,从 memory-bound 转为 compute-bound。 3. FP16 量化:RankMixer 的大矩阵乘形状天然适合半精度推理,硬件峰值 FLOPs 翻倍。

三项因素共同作用,使得参数增加两个数量级而推理延迟基本不变(14.5ms -> 14.3ms)。

4.7 线上 A/B 测试

Table 4: 抖音信息流推荐 A/B 测试结果

抖音 App 抖音极速版
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%

低活跃用户的提升最为显著(Active Day +1.74%),表明 RankMixer 作为统一骨干架构具有强泛化能力。

Table 5: 广告场景 A/B 测试

Metric $\Delta$AUC ADVV
Lift +0.73% +3.90%

RankMixer 已在抖音信息流推荐和广告两个核心个性化排序场景全量部署,整体活跃天数增长 0.3%,App 使用时长增长 1.08%

5. 核心贡献总结

  1. 硬件感知架构设计:Multi-Head Token Mixing(无参数跨特征交互)+ Per-Token FFN(独立参数特征子空间建模),实现高 GPU 并行度和 MFU。
  2. Sparse MoE 扩展:DTSI + ReLU Routing 策略解决 expert 训练不足和路由不均问题,在 8 倍稀疏度下几乎无精度损失。
  3. 工业验证:在抖音万亿级数据上验证 scaling law,1B Dense 参数模型全量上线,推理延迟与 16M 基线持平,业务指标全面提升。
  4. 参数与推理成本解耦:通过高 MFU + 低 FLOPs/Param ratio + FP16 量化,实现参数规模两个数量级增长而推理成本不变。