淘宝闪购爆品团精排模型规模化迭代实践
淘宝闪购爆品团排序模型由DLRM切换至基于Token的RankMixer架构,经负采样、多任务学习、序列建模等消融实验优化,模型参数从85M扩展至243M,在爆品团频道页取得稳定的线上收益提升,且线上点击率和转化率均显著改善。
淘宝闪购爆品团排序模型全面升级:从“堆模块”到Token-Based架构
淘宝闪购爆品团排序模型近期完成了一次关键升级,从传统的DLRM架构全面切换至Token-Based的RankMixer架构,实现了模型规模与效果的双重突破。此次升级的核心并非简单添加一个局部模块,而是对模型主干进行了系统性重构,并围绕新架构在负采样、多任务学习、序列建模等关键环节开展了深入的消融实验。
经过多期迭代,模型规模从85M扩展到107M,再到243M,并在爆品团频道页取得了稳定的线上收益。以下是本次升级的核心结论与详细实践。
一、为何要重构排序模型
近年来,NLP领域通过Scaling Law确立了“大规模参数 + 稠密计算架构”的技术路线。相比之下,搜推广排序模型中仍有不少系统沿用DLRM类范式:稀疏特征、人工交叉、多个异构模块层层叠加。
爆品团线上旧排序模型也走的是类似路径。Embedding和Sequence层之后,模型继续串联EPNet、多层PLE、Task Specific Net、Task Bias Net、ResFlow Tower等模块。这里的ResFlow是组内提出的一种多任务交互结构,核心思想是在不同任务Tower的每一层之间传递残差信息,让CTR、Item CTCVR、Shop CTCVR等任务在逐层建模时保持信息流动,而不是只在底层共享或在最后独立预测。
这些模块各自解决过局部问题,但放在一起之后,系统开始暴露出几个长期成本:
- 结构碎片化。 多个异构模块堆叠,缺乏统一计算范式。
- 计算冗余。 不同模块之间存在重复的特征交互计算。
- 维护成本高。 模块多、联合调优困难。
- 扩展性差。 很难仅靠增加层数或维度完成Scaling Up。
因此,这次重构的目标不是“继续补模块”,而是把主干换成更适合规模化的统一结构。
二、新架构:把特征组织成Token
新模型保留原有Embedding和Sequence部分,将序列与非序列特征聚合后的表示concat,再切割成指定维度的Token。之后,Token进入多层RankMixer,最后接3个独立任务的Task Tower,即MMCN,分别预测CTR、Item CTCVR和Shop CTCVR。
可以将这次升级理解为:从“人工设计多个特征交互模块”,转向“用统一Token主干自动学习高阶组合”。
RankMixer Block主要由两个部分组成:
- Token Mixer 负责不同Token之间的信息混合。
- PerToken FFN 负责每个Token内部的非线性变换。
下面这张图展开到Block内部:Token Mixer负责跨Token混合,PerToken FFN负责每个Token内部的非线性变换。后续实验也围绕一个问题展开:哪些结构值得作为主线继续放大,哪些只是局部有效,哪些在当前规模下还不适合。
三、结构消融:哪些选择真正有效
结构消融部分按决策顺序展开:数据怎么用,多任务怎么训,Token怎么切,主干怎么放大,Tower怎么接。
3.1 负采样:随机采样不如全量负样本 + Loss 加权
爆品团业务正负样本极度悬殊,尤其是CTCVR目标。初期尝试过随机负采样,负样本采样比例为0.1,但AUC明显下降。
最终采用的方案是保留全量负样本,并配合Loss加权,也就是正样本加权、负样本降权,最终AUC提升约0.1%。
随机采样的问题在于,它容易丢失与正样本相似的难负样本,影响排序边界学习;同时也会改变训练集正负比例,破坏真实分布,影响概率校准。
Loss加权的优势则是:保留足够多的负样本,让模型继续接触Hard Negatives;同时在不破坏样本分布的前提下,平衡正负样本梯度贡献。
小提示:对于以AUC为核心指标的排序任务,负样本不是简单噪声。与其粗暴采样,不如保留信息,再用Loss权重调节梯度。
3.2 多任务学习:GradNorm收益明确,但训练更贵
爆品团频道页同时优化Shop CTCVR、Item CTR和Item CTCVR。多任务学习的难点不只是“多几个Loss”,而是不同目标的数据密度和收敛速度都不一样。
- 转化数据稀疏。 模型学习的是CTCVR,线上再用CTCVR / CTR得到CVR,pCVR没有直接梯度监督,数值稳定性也更敏感。
- 多任务梯度存在竞争。 各任务收敛节奏不一致,固定Loss权重很难兼顾所有目标。
我们尝试了ESMM约束和GradNorm。
- ESMM约束通过PCTCVR = PCTR × PCVR直接学习CVR,带来CTCVR AUC +0.2%,但CTR AUC -0.4%。
- GradNorm通过动态调整Loss权重来平衡任务学习速率,CTCVR持平,CTR AUC +0.7%。
ESMM的问题是CTCVR梯度会反向传播到CTR Tower,改变CTR特征表示,使CTR学到的特征混入CTCVR目标。
因此,这里最终更偏向GradNorm:它不改变模型结构,主要通过动态权重缓解任务学习节奏不一致的问题。它的收益比较明确,但代价也明确,训练GFLOPs约翻倍。
3.3 序列层:轻量改造有效,重替换未必收益
当前模型仍是两段式结构:先做序列建模,再将序列输出合入非序列Token中继续建模。
我们尝试用其他结构替代原MHA和EAT Based Target Attention。
- HSTU使用QKVU无Softmax的类Transformer结构,AUC -0.44%。
- Gated Attention在MHA和ETA后增加Gated Attention,AUC +0.06%。
- STCA堆叠多层Cross Attention,AUC -0.32%。
这组实验说明,序列层不是换得越新越好。在当前实验中,收益最稳的是在原Attention后增加Gated Attention。
3.4 Tokenization:Pad-Split是简单有效的选择
Tokenization决定了特征如何进入RankMixer,也会影响信息损失、参数量和收敛难度。
- Auto-Split 是block → allconcat → MLP → split → token,理论上可以学习最优投影,但大矩阵难学,效果最差。
- Group-wise 是block → proj → token,每个Token语义更清晰,但存在信息损失和参数冗余。
- Pad-Split 是block → allconcat → padding → split → token,优势是零信息损失,也不需要额外投影矩阵。
- 均衡Group-wise 会先合并为约10个大block再投影,可以缓解block不均衡,但仍然依赖人工划分。
实验结论很直接:Auto-Split最差,Pad-Split基本持平两类Group-wise,差异在万分位量级。考虑实现复杂度,我们选择Pad-Split做后续迭代。
小提示:Pad-Split能奏效,原因在于RankMixer的核心是Token-Mixing。初始Token的语义边界不是唯一关键,Mixer后续可以继续打乱、重组并学习有效组合。
Token切割粒度也会影响效果。原始allconcat padding后维度为5120,我们比较了32 × 160和16 × 320。结论是适当增大Token Dim、减少Token数量效果更好,AUC +0.14%。这里收益大概率来自PerToken-AFFN参数量和计算量的Scaling Up。
3.5 RankMixer层数:4层收益显著,6层边际下降
RankMixer层数是Scaling Up的重要方式之一。
- 2层 作为baseline。
- 4层 AUC +0.21%,收益显著。
- 6层 AUC +0.12%,仍有收益,但边际收益递减,拉长周期后的收益不显著。
从结果看,4层是当前比较明确的收益点;6层仍有提升,但边际收益已经下降。由于当前使用PostNorm,对过深结构不够友好,因此6层之后没有继续扩层验证。
实验里还有一个有意思的现象:代码实现中曾经无意间丢失了Mixup后的Add & Norm,后续补回后效果反而下降,AUC -0.2%。
我们的解释是,Mixup会重组各位置Token的语义,混合后的表示与原位置残差不一定对齐。直接相加可能稀释跨Token混合信号,甚至引入噪声。
3.6 Dense FFN:SwiGLU和AFFN v2更值得保留
PerToken FFN负责Token内部的信息变换,也是RankMixer中最直接影响参数量和计算量的部分之一。这里我们比较了FFN、AFFN、SwiGLU和Soft MoE等方案。
以FFN D→2D作为baseline,核心结论如下:
- 零成本替换优先看SwiGLU D→4/3D。 同76M参数、1.70 GFLOPs,AUC +0.07%。
- 有预算时AFFN v2性价比最高。 额外19M参数、0.34 GFLOPs,AUC +0.13%。
- 单纯扩大容量不如换结构。 FFN D→4D多13M参数、0.23 GFLOPs,但只带来+0.06%,不如零额外成本的SwiGLU D→4/3D。
- Soft MoE当前不适合16 Token场景。 同GFLOPs下全线负收益,AUC约-0.10%到-0.14%。
因此,当前Dense方向里,SwiGLU适合作为低成本替换,AFFN v2适合有额外计算预算时使用。
3.7 Sparse MoE:当前配置下没有超过Dense
Sparse MoE我们尝试了多种结构,包括Shared Router + Shared Experts、PerToken Router + Shared Experts、Shared Router + PerToken Experts,以及PerToken Router + PerToken Experts。
但在当前16 Token、专家数量和样本规模设定下,还没有观察到明显Scaling Law,也没有超过Dense AFFN。
最优配置是Shared Router & Experts、E=16、Top2、H=4/3D、aux=0.01,对应77M参数、1.9 GFLOPs,但仍不如线上AFFN,也不如同资源下的SwiGLU D→4/3D。
小提示:Sparse MoE并不是加上就一定涨。对于推荐场景,Token数量、位置语义、专家容量、路由稳定性和样本规模都很关键。当前阶段,Dense仍然是更稳的主线;后续如果Token数量和样本量扩大,可以重新探索Sparse MoE。
3.8 Task Tower输入:Flat比Pooling更适合后续放大
RankMixer Block后,如何把输出送入Task Tower,也做了对比。
我们比较了三种方式:Mean Pooling对Token维度做平均;Task-Specific Attention Pooling为不同任务使用不同Attention Pooling;Flat Concat则保留完整RankMixer输出,让Task Tower自己降维。
最终训练效果是:Mean Pooling < TSAP < Flat。
- Mean Pooling效果较差,是因为最后一层Token之间并不会自然趋同,直接平均会损失信息。
- Flat的参数量和计算量更高,但保留的信息更完整,也更适合后续做Task Tower Scaling Up。
吞吐量验证里还有一个反直觉结果:TSAP + 小Task Tower的参数量和计算量更小,但RT增加约5ms,吞吐量从100降到80。相比之下,Flat + 大Task Tower更适合GPU计算。这说明FLOPs、参数量和线上RT/吞吐量并不总是强正相关。
3.9 Task Tower:MMCN收益最明显
Task Tower输入为RankMixer Flat后的向量。这里我们对齐层数和降维比例,比较了MLP、ResFlow MLP和字节侧常用的MMCN结构。MMCN虽然没有公开论文,但在业界推荐排序实践中认知度较高,核心是通过多路交叉增强Tower内的特征交互。
- MLP采用四层逐层降维,作为baseline。
- ResFlow MLP可以看作对旧ResFlow思路的轻量化复用:在多任务Tower之间做逐层残差传递,让不同任务的中间表示发生交互,AUC +0.07%。
- MMCN使用4-head交叉结构,AUC +0.32%,是这组实验里收益最明显的结构。
MMCN的4-head结构包括:2个head做互相交叉,1个head与原始输入交叉,1个head引入domain信息或自身表示作为交叉项。它在当前RankMixer Flat输入下收益最明显。
继续扩大MMCN维度也能看到Scaling Up现象:
- 基础配置为[1024, 512, 256, 128]。如果减少层数到[1024, 512, 256],AUC -0.18%。
- 将每层Dim × 2,配置为[2048, 1024, 512, 256],AUC +0.12%。
- 进一步扩到[4096, 2048, 1024, 512],更接近输入维度5120,AUC +0.21%。
- 继续加到5层[4096, 2048, 1024, 512, 256]时,训练出现NaN。
这也呼应了Flat输入的优势:保留完整Token表达后,Task Tower仍有继续扩维的空间。
四、三期实验:从85M到243M
下面先放页面侧核心收益,便于快速建立整体印象。
一期:RankMixer Base,验证新主干
时间:2026-04-09 配置:4层RankMixer + 3个独立MMCN,Token为32 × 160。
这一期先验证RankMixer主干是否值得替换旧模型。
离线:Dense参数量从85M增加到107M,GFLOPs从2.82降到2.2611,CTCVR AUC从0.8540提升到0.8601,约+0.6%。
线上爆品团频道页:
- 页面侧直引导访购率 +0.97%,人均净G +1.14%。
- 大盘侧人均订单 +0.26%,人均净G +0.30%。
从结果看,模型参数量增加,但计算量下降,离线和线上都有正收益。
二期:吞吐量结构优化 + GradNorm
时间:2026-05-07 配置:优化为2层RankMixer,Token调整为16 × 320,并结合GradNorm。
二期重点转向结构效率:在模型规模和推理计算量基本稳定的前提下,调整Token切分,并用GradNorm处理多任务学习节奏问题。
离线:Dense参数量和推理计算量相对一期基本持平。训练计算量约翻倍,GFLOPs从2.26增加到4.78。吞吐量从80提升到90,约+12%。主目标CTCVR持平,CTR AUC +0.7%。
线上爆品团频道页:
- 页面侧直引导访购率 +0.27%,人均净G +0.51%。
- 大盘实验分流样本中,人均订单 +0.32%,人均净G +0.36%。
- 大盘回放样本中,人均订单 +0.04%,人均净G +0.07%。
这一期重点不是单纯放大,而是在吞吐量、训练成本和多任务学习之间重新找平衡。
三期:Scaling Up到243M
时间:2026-05-21 配置:RankMixer从2层扩到4层,Task Tower维度扩大,模型规模从107M到243M。
三期回到Scaling Up主线,继续增加RankMixer层数和Task Tower维度。
离线:Dense参数量从107M增加到243M,GFLOPs从2.26增加到5.1807,吞吐量从90降到60。效果上,CTCVR AUC +0.37%,CTR AUC持平。
线上爆品团频道页:
- 页面侧直引导访购率 +0.44%,人均净G +0.40%。
- 大盘实验分流样本中,人均订单 +0.16%,人均净G +0.15%。
- 大盘回放样本中,人均订单 +0.03%,人均净G -0.00%。
此外,RankMixer 243M也上线到超抢手业务:
- 离线对比基线,CTCVR AUC +0.66%,CTR AUC +1.6%。
- 在线实验中,页面侧直引导访购率 +1.09%,人均净G +1.16%;大盘分流样本中,人均订单 +0.31%,人均净G +0.21%;大盘回放样本中,人均订单 +0.14%,人均净G +0.09%。
这说明RankMixer 243M的收益并不只局限于爆品团单一场景。
五、后续方向
这次实践后,我们对排序模型Scaling Up的理解更清晰了一些:它不是简单堆参数,也不是继续叠局部模块,而是要让模型主干、计算形态和任务Tower都更适合放大。
短期方向:
- 继续探索更优的PerToken FFN结构。目标是在同FLOPs下获得更高AUC。
- 探索推理侧优化。例如通过算子融合、量化等方式降低RT。
中长期方向:
- 继续跟进TokenMixer-Large、UniMixer、TokenFormer等排序模型工作。
- 沿着Pure Model范式寻找更优结构。重点关注吞吐量和MFU利用率。
- 在更大规模下重新探索Sparse MoE。当Token数量和样本量扩展后,Sparse MoE的可行性仍值得重新评估。

