统一序列建模与特征交叉 —— MixFormer 精读笔记

文章链接:https://arxiv.org/pdf/2602.14110v1

机构:字节

发布时间:2026.02

Copyright (c) Wang-Luning. All Rights Reserved.

MixFormer同样致力于用一个统一的类transformer模型来统一进行序列建模和特征交叉,从而解决两个模块孤立带来的模型能力瓶颈。在系统层面,其指出在有限资源下同时scale序列建模部分和特征交叉部分会造成二者竞争,因为二者在架构上是分离的,各自有一套参数,其中一边分配的计算量扩大就会导致另一边分得的变少,因此很难在全局上达到最优的scaling设计。

MixFormer希望通过架构设计来实现序列建模和特征交叉的co-scaling,如果想做到这一点就需要让二者处于同一个参数空间中,从而实现同时联合优化。因此,MixFormer使用一套共享的参数来同时进行序列建模和特征交叉,从而打破严格的参数分离限制,使得二者可以互相增强,让高阶特征语义直接参与到序列建模中,同时保持细粒度的行为信号。

具体而言,MixFormer在每个block中依次使用token mixing模块(用于非序列特征的交叉)、交叉注意力模块(用于用非序列特征生成的query来提取历史序列中的信息,实现序列建模)、Output Fusion模块(对于上面的输出结果进行Per-token FFN变换,保持各个token的语义信息)。其中第token mixing和PFFN部分来自于RankMixer,用于特征交叉和保持特征语义下的变换;交叉注意力部分类似Longer、HyFormer等类target attention的做法,用于序列建模。另外,MixFormer在所有模块中都强调多头分离计算,从而在多个特征子空间中独立提取信息。

可见,MixFormer其实就是将RankMixer、Longer等工作中的特征交叉、序列建模核心模块缝合到了一个统一的模块中,从而各取精华,实现了统一的特征交叉+序列建模模型。它是近半年相关工作的集大成者。

 

 

设长度为T的用户历史行为序列的embeddings为S=[s1,,sT],非序列特征(如用户画像特征、目标物品特征、上下文特征等)为Fns={f1,,fM},各自对应的embedding为eiRdi

参考RankMixer中的处理方式,将所有非序列特征的embedding连接成一个统一向量:ens=[e1;;eM]RDns,其中Dns=i=1Mdi,这部分在后续模型中会被用作query。进一步将其分割成N段,每段都通过一个线性层映射成维数为xjRD的向量(代表一个特征子空间,在原文中称为一个head,实际处理时就是一个token):

xj=Wjens[d(j1):dj],  j=1,,N

从而得到序列X=[x1;;xN]RN×D,它就是非序列特征给到模型的输入,在模型中作为主要数据流存在(在cross-attention模块中作为query来对历史序列做attention)。

这样将embedding空间分成多份可以保持表征的多样性,使得模型捕获异质的特征语义。

image-20260226221741601

每个MixFormer block包括3个部分:Query Mixer、Cross Attention、Output Fusion,对应了原始transformer中的self-attention、cross-attention、FFN,从而充分保持transformer架构的强大表达能力,同时实现序列建模和特征交叉的集成:

 

 

另外,借鉴SCTA等工作中的RLB(Request Level Batching)思想,希望能够将用户侧特征和目标物品侧特征进行解耦,从而在多个候选物品/多次请求间共享同一套计算好的用户侧表征。然而MixFormer的原始设计中,用户和物品特征被混合为非序列特征,在Query Mixier模块中进行了充分混合,使得在后续层中完全无法分出纯粹的用户侧特征或物品侧特征,难以在计算上进行解耦。

因此,为了能够应用RLB,进一步设计了一种用户-物品解耦的MixFormer变体:

image-20260227145413509