← Back to list
MixFormer

MixFormer: Co-Scaling Up Dense and Sequence in Industrial Recommenders

判别式推荐 ByteDance
Abstract 8 Reading 8 Rating —
2026-02-15
Xu Huang, Hao Zhang, Zhifang Fan, Yunwen Huang, Zhuoxing Wei, Zheng Chai, Jinan Ni, Yuchao Zheng, Qiwei Chen
ByteDance
提出统一的 Transformer 架构 MixFormer,将序列建模和特征交互融合到单一参数空间中,解决工业推荐系统中密集特征与序列长度的协同扩展问题
ad-rec transformer feature-interaction industrial parameter-scaling

1. 研究背景与动机

工业推荐系统正进入 scaling-driven 时代,Transformer 架构因其强大的表达能力和并行性,成为大规模推荐模型的主流选择。现有 Transformer 推荐模型面临一个核心结构性问题:序列建模(sequence modeling)和特征交互(feature interaction)被实现为独立的模块,参数各自独立

这种分离式设计带来了 co-scaling 困境

  • 序列 Transformer 的计算成本随序列长度快速增长
  • 密集特征 Transformer 的计算主要随模型宽度/特征维度增长
  • 在固定计算预算下,两个模块争夺资源,导致全局次优

现有的组合方式主要有两种: 1. Stacked(层叠式):序列模块输出作为密集模块输入(如 STCA→RankMixer) 2. Parallel(并行式):两个模块并行运行后拼接(如 RankMixer⊕STCA、OneTrans)

两种方式都保持了序列与非序列参数的严格分离,限制了跨模块交互深度。

MixFormer 的核心论点:有效的 co-scaling 需要将序列建模和特征交互统一到单一参数空间中联合优化

2. MixFormer 架构

2.1 总体结构

MixFormer 是一个 decoder-only Transformer 变体,面向多任务推荐系统设计。整体架构由以下部分组成:

  • 输入层:负责特征嵌入和分头(Feature Embedding and Splitting)
  • L 个 MixFormer Block:核心计算单元
  • 多个任务网络(Task Networks):下游任务头

2.2 Feature Embedding and Splitting

输入特征分为两类:

Sequential features(序列特征):用户历史交互序列,每个 action 包含 item ID、action type、timestamp 及附属信息。时间步 $t$ 的 action 表示为 $\mathbf{s}_t$,用户行为序列表示为:

$$S = [\mathbf{s}_1, \mathbf{s}_2, \cdots, \mathbf{s}_T]$$

Non-sequential features(非序列特征):包括 user features、item features 和 context features。设非序列特征集合 $\mathcal{F}_{\text{ns}} = \{f_1, f_2, \ldots, f_M\}$,每个特征 $f_i$ 映射为 $\mathbf{e}_i \in \mathbb{R}^{d_i}$,拼接后得到:

$$\mathbf{e}_{\text{ns}} = [\mathbf{e}_1; \mathbf{e}_2; \ldots; \mathbf{e}_M] \in \mathbb{R}^{D_{\text{ns}}} \quad (1)$$

其中 $D_{\text{ns}} = \sum_{i=1}^{M} d_i$。

为适配 Transformer 多头设计,$\mathbf{e}_{\text{ns}}$ 被均匀切分为 $N$ 个子向量(维度 $d = D_{\text{ns}}/N$),每个子向量通过线性投影到 $D$ 维:

$$\mathbf{x}_j = \mathbf{W}_j \cdot \mathbf{e}_{\text{ns}}[d \cdot (j-1) : d \cdot j], \quad j = 1, \ldots, N \quad (2)$$

其中 $\mathbf{W}_j \in \mathbb{R}^{D \times d}$,最终 $X = [\mathbf{x}_1, \ldots, \mathbf{x}_N] \in \mathbb{R}^{ND}$ 作为非序列输入。

2.3 MixFormer Block

每个 MixFormer Block 包含三个核心模块,分别对应标准 Transformer decoder 的 Self-Attention、Cross-Attention 和 FFN:

2.3.1 Query Mixer(对应 Self-Attention)

在推荐场景中,query 来源于高度异构的特征域(用户属性、物品属性、上下文信号等),不同特征语义空间差异大。传统的基于内积的 self-attention 在这种异构性下不可靠,计算注意力权重效果不佳且计算开销大。

MixFormer 采用轻量级的 Query Mixer 模块替代 self-attention,灵感来自 RankMixer [29]:

$$P = [\mathbf{p}_1, \cdots, \mathbf{p}_N] = \text{HeadMixing}(\text{Norm}(X)) + X \quad (3)$$ $$\mathbf{q}_i = \text{SwiGLUFFN}_i(\text{Norm}(\mathbf{p}_i)) + \mathbf{p}_i \quad (4)$$

HeadMixing 操作:将 $X$ reshape 为 $\mathbb{R}^{N \times N \times \frac{D}{N}}$,转置前两个维度,再 flatten 回 $\mathbb{R}^{N \times D}$。这是一个零参数的跨头信息交换操作。

FFN 为 per-head FFN:每个 head 独立的 SwiGLUFFN,显式处理特征异构性。

2.3.2 Cross Attention(序列聚合)

Cross Attention 模块基于 Query Mixer 产生的高阶特征表示,聚合用户行为序列信息。$N$ 个 Query Mixer 的输出 head 直接作为 cross attention 的 $N$ 个 head,每个 head 关注特定子空间的非序列特征,构成语义特化的 sub-query。

序列中每个 action $\mathbf{s}_t$ 先通过 per-layer SwiGLUFFN 变换到与 query 对齐的潜空间:

$$\mathbf{h}_t = \text{SwiGLUFFN}^{(l)}(\text{Norm}(s_t)) + \mathbf{s}_t \in \mathbb{R}^{ND} \quad (5)$$ $$\mathbf{h}_t^i = \mathbf{h}_t[iD : (i+1)D] \in \mathbb{R}^D \quad (6)$$ $$\mathbf{k}_t^i = \mathbf{W}_k^i \mathbf{h}_t^i; \quad \mathbf{v}_t = \mathbf{W}_v^i \mathbf{h}_t^i \quad (7)$$

其中 $\mathbf{W}_k^i, \mathbf{W}_v^i \in \mathbb{R}^{D \times D}$ 是每层独立参数化的投影矩阵。注意与标准 cross-attention 不同,这些 per-layer SwiGLUFFN 是独立参数化的,使模型能随深度逐步细化序列表示。

第 $i$ 个 query head 的输出:

$$z_i = \sum_{t=1}^{T} \text{softmax}\left(\frac{\mathbf{q}_i^T \mathbf{k}_t^i}{\sqrt{D}}\right) \mathbf{v}_t^i + \mathbf{q}_i, \quad i = 1, \ldots, N \quad (8)$$

2.3.3 Output Fusion(对应 FFN)

对 Query Mixer 产生的高阶非序列表示和 Cross Attention 产生的序列聚合表示进行深度非线性融合:

$$\mathbf{o}_i = \text{SwiGLUFFN}_i(\text{Norm}(z_i)) + z_i \quad (9)$$

同样采用 per-head SwiGLUFFN,独立处理每个 head 以保持特征子空间的多样性。Output Fusion 的输出作为下一个 MixFormer Block 的输入。

关键设计要点:Query Mixer 和 Output Fusion 中的 per-head FFN 同时服务于序列和非序列特征,形成统一参数化,不再有两个独立模块之间的参数分配问题。

2.4 User-Item Decoupling(UI-MixFormer)

为适配工业部署中的 Request Level Batching (RLB) 加速策略,提出 UI-MixFormer 变体。

Feature Decoupling:将非序列特征分为 user-side 和 item-side 子集,分别投影为 $N_U$ 和 $N_G$ 个 head。$N_G = \lfloor \frac{D_{\text{ns}}^G}{D_{\text{ns}}} N \rfloor$,$N_U = N - N_G$,实际中 $N_U : N_G$ 设为 1:1。

Query Mixer with Mask:设计 mask 矩阵 $\mathcal{M} \in \mathbb{R}^{N \times D}$:

$$\mathcal{M}[i, j] = \begin{cases} 0, & i \lt N_U \ \text{and} \ j \geq N_U * \frac{D}{N} \\ 1, & \text{otherwise} \end{cases} \quad (10)$$

$$\text{HeadMixing}_{\text{decouple}}(\cdot) = \mathcal{M} \odot \text{HeadMixing}(\cdot) \quad (11)$$

这确保 user-side head 不包含 item-side 信号,从而可在同一 request 内跨多个候选 item 共享 user-side 计算。序列特征(用户历史行为)也属于 user-side,cross-attention 中 user-side head 与 sequence head 的计算同样可以共享。

UI-MixFormer 实现了约 36% 的 FLOPs 减少,同时保持近乎相同的精度。

3. 实验

3.1 实验设置

数据集:来自抖音推荐系统的大规模离线数据集,跨两个连续周,包含万亿级用户-物品交互记录。每条样本关联 300+ 特征(非序列特征包括 categorical、numerical、cross features;序列特征为用户历史)。

评估指标

  • 精度:AUC 和 User-level AUC (UAUC)
  • 效率:参数量(#Params)和 FLOPs(GFLOPs/Batch)

任务:CTR 预测(二分类)。包含两个场景:Finish(完播)和 Skip(跳过)。

超参数:$N = 16, L = 4$。MixFormer-small: $D = 386$;MixFormer-medium: $D = 768$。

Baselines

  • Stacked 方法:TA→DLRM, TA→DCNv2, TA→DHEN, TA→Wukong, STCA→DCNv2, STCA→RankMixer
  • Parallel 方法:OneTrans, STCA⊕RankMixer

3.2 主实验结果(Table 1, L=512)

以 TA→DLRM 的绝对值 (Finish AUC=0.8554, UAUC=0.8270, Skip AUC=0.8124, UAUC=0.7294) 为基准,其余模型报告相对提升:

Type Model Finish AUC↑ Finish UAUC↑ Skip AUC↑ Skip UAUC↑ #Params(M) GFLOPs/Batch
Stacked TA→DLRM 0.8554 0.8270 0.8124 0.7294 9 52
Stacked TA→DCNv2 +0.13% +0.13% +0.15% +0.26% 22 170
Stacked TA→DHEN +0.18% +0.26% +0.36% +0.52% 22 158
Stacked TA→Wukong +0.29% +0.29% +0.49% +0.65% 122 442
Stacked STCA→DCNv2 +0.89% +0.91% +1.05% +1.65% 145 4,560
Stacked STCA→RankMixer +0.95% +1.22% +1.25% +1.82% 1,118 2,180
Stacked STCA→RankMixer +1.12% +1.40% +1.43% +2.14% 1,255 6,736
Parallel OneTrans +1.05% +1.31% +1.30% +1.95% 316 23,371
Parallel STCA⊕RankMixer +1.11% +1.38% +1.42% +2.11% 1,255 6,736
Unified MixFormer-small +1.01% - +1.18% - 282 733
Unified MixFormer-medium +1.28% +1.60% +1.60% +2.46% 1,226 3,503
Unified UI-MixFormer-medium +1.28% +1.60% +1.60% +2.46% 1,226 2,242

核心发现: 1. Stacked 和 Parallel 方式在可比子结构下性能差异不大,说明仅改变组合模式(连接方式)不足以产生质的提升。 2. MixFormer-medium 在所有指标上全面超越最强 baseline STCA→RankMixer,Finish UAUC +0.20%,Skip UAUC +0.32%(相对于最强 baseline),同时 FLOPs 仅为其约一半。 3. UI-MixFormer-medium 在保持精度不变的情况下,FLOPs 从 3,503 降至 2,242(-36%)。 4. MixFormer-small 仅用 282M 参数和 733 GFLOPs 即达到接近最强 baseline 的性能。

3.3 在线 A/B 测试(Table 2)

抖音抖音极速版两个产品上进行 Feed 推荐场景的在线 A/B 实验,baseline 为线上部署的 STCA→RankMixer(超过 1B 参数)。实验持续两周,改进持续增长尚未收敛。

抖音 抖音极速版
Active Day↑ Duration↑ Like↑ Finish↑ Comment↑ Active Day↑ Duration↑ Like↑ Finish↑ Comment↑
Overall +0.0415% +0.2799% +0.1766% +0.3897% +0.7035% +0.0252% +0.4105% +0.2125% +0.2924% +1.9097%
Low-active +0.2263% +0.2468% +0.0771% +0.4123% +1.2483% +0.2543% +0.6044% +3.0565% +0.6157% +2.6452%
Middle-active +0.0998% +0.2719% +0.2445% +0.2796% +0.6718% +0.1218% +0.4184% +0.2329% +0.2951% +1.3286%
High-active +0.0203% +0.2938% +0.381% +0.3335% +0.8356% +0.0237% +0.4042% +0.4871% +0.2097% +2.117%

所有指标均有统计显著的提升。Low-active 用户群体受益最大(Active Day +0.2263%/+0.2543%),Comment 指标提升最为显著(抖音极速版整体 +1.9097%)。

3.4 Ablation Study

基于 MixFormer-small 的消融实验(Figure 3 中 AUC Gain 变化):

消融变体 Finish AUC 变化 Skip AUC 变化
[QM] w/o HM(去掉 HeadMixing) -0.03 -0.03
[QM] HM→SA(HeadMixing 替换为 SelfAttention) ~0.00 ~0.00
[QM] w/o FFN(去掉 Query Mixer 中 per-head FFN) -0.04 -0.03
[CA] PL-FFN→FFN(per-layer FFN 替换为 shared FFN) -0.03 -
[OF] PFFN→FFN(per-head SwiGLUFFN 替换为 shared) -0.06 -
Pre-RN→Post-LN -0.01 -

关键结论: 1. HeadMixing 和 per-head FFN 都对性能有显著贡献。 2. 将 HeadMixing 替换为更昂贵的 SelfAttention 不带来性能提升,验证了 HeadMixing 在处理异构 head 时的高效性。 3. Output Fusion 中的 per-head FFN 影响最大(-0.06),说明独立处理异构 head 的融合至关重要。

3.5 Scaling Analysis

Dense Scaling(Figure 4,固定序列长度 512)

  • 在固定 FLOPs 下,MixFormer 始终优于 STCA+RankMixer 组合、STCA+DCNv2 和 TA+RankMixer。
  • MixFormer 具有更高的截距和具有竞争力的 scaling slope,得益于统一参数化带来的序列与非序列的深度交互。
  • 组合式 baseline(STCA+RankMixer 1:1 组合)在固定序列长度下表现出 dense 和 sequence 之间的明显 trade-off。

Sequence Scaling(Figure 5,固定 dense 参数预算)

  • 序列长度从 512 扩展到 10,000。
  • 序列模型(如 STCA)从更长序列中获益更多,但 MixFormer 实现了与 STCA 相当的 scaling slope,受益于其统一参数化。
  • 独立参数化模型面临明显的 co-scaling trade-off,而 MixFormer 在 dense 和 sequence 两个维度都表现出 SOTA scaling 行为。

3.6 Serving Latency(Figure 6)

结合 Request Level Batching,UI-MixFormer 实现超过 30% 的服务加速。随着候选 item 数量增加,GPU 利用率趋于饱和,UI-MixFormer 的延迟增长远慢于原始 MixFormer,在大候选集下优势更明显。

4. 核心创新总结

  1. 统一参数化:将序列建模和特征交互融入同一组 Transformer 参数,消除传统双模块设计中的参数分配困境。Query Mixer 和 Output Fusion 中的 per-head FFN 同时服务于两类特征。

  2. 零参数 HeadMixing:用简单的 reshape-transpose-flatten 操作替代 self-attention 做跨头信息交换,在异构特征场景下效果不逊于 self-attention,但计算量为零。

  3. Per-head FFN 设计:Query Mixer、Cross Attention(per-layer FFN)和 Output Fusion 均采用独立 FFN 处理每个 head / 每层,保持特征子空间的多样性。

  4. User-Item Decoupling:通过 mask 机制实现 user-side 和 item-side 计算的分离,使得 user-side 计算可在同一请求内跨候选共享,FLOPs 降低 36%,延迟降低 30%+。

5. 局限性

  • 实验仅在抖音工业数据集上进行,缺乏公开学术数据集的验证
  • 论文未讨论训练成本和收敛速度
  • User-Item Decoupling 的 mask 设计较为 heuristic,$N_U : N_G = 1:1$ 的设定缺乏理论支撑