1. 这篇论文在解决什么问题
UniFormer 讨论的是工业推荐排序模型的一个很现实的问题:推荐模型已经进入大模型化阶段,但很多扩容方式仍然是“组件级”的,而不是“模型级”的。
传统工业精排模型通常可以拆成几块:
Embedding / Tokenization
-> 用户行为序列建模
-> 非序列特征交叉
-> 多任务建模
-> 多目标预估输出过去几年,业界对这些模块分别做过扩容:
- 行为序列建模扩容:DIN、DIEN、SIM、C-Former、LONGER 等,重点是把用户历史行为建模得更细。
- 特征交叉扩容:DCN、RankMixer、Transformer-style token mixing 等,重点是加强 feature interaction。
- 多任务建模扩容:MMoE、PLE、HoME、MoE-style task experts 等,重点是处理点击、时长、点赞、关注等目标之间的共享与冲突。
这些方法都有效,但它们大多还是在“某个组件”里加容量。UniFormer 的核心判断是:当模型继续变大时,只扩一个组件会遇到瓶颈,因为推荐排序的真实建模空间不是单一模块,而是:
序列行为 + 非序列特征 + 多任务目标更关键的是,已有 HyFormer、MixFormer、OneTrans 这类方法虽然开始做跨模块联合建模,但主要仍然集中在 feature space,也就是“行为序列和特征交叉”这一侧;task modeling 通常仍然是后接 tower、expert 或 head,没有真正被纳入统一交互空间。
2. 背景:为什么组件级扩容不够
工业推荐排序里,模型容量不是越大越好,问题在于容量放在哪里。
如果只加强行为序列模块,模型可能更懂用户历史,但对用户侧、item 侧、上下文、交叉统计特征的组合不一定更强。如果只加强特征交叉模块,模型可能更会处理非序列特征,但对短期兴趣、长期兴趣和 target-aware 行为的理解仍然不足。如果只加强多任务模块,模型可能更会平衡点击、时长、互动等目标,但输入给 task tower 的高阶表征仍然可能不够好。
UniFormer 把这个问题抽象成两种 scaling 范式:
Component-centric scaling:
单独扩行为模块 / 特征交叉模块 / 多任务模块
Model-centric co-scaling:
同时扩序列行为、非序列特征、任务目标,并让它们在统一框架中交互论文认为,一个真正工业可用的 model-centric scaling 框架至少要满足三点:
- 效率可控:快手主推荐这类场景候选量大、并发高、延迟严,不能用全量 token 做无脑 full attention。
- 兴趣不坍缩:短期行为、长期兴趣、target-aware 搜索序列、跨域行为等异构序列不能被粗暴拼成一个序列,否则强信号可能淹没弱信号。
- 参数分配可扩展:扩容不能只集中在某个共享 FFN 或某个大 expert 上,而要能按序列、非序列、任务等不同视角分配容量。
这三个约束决定了 UniFormer 的设计路线:分空间建模、分类型 token 化、分视角 FFN 扩容。
3. 总体架构:FIM + TIM

UniFormer 的整体框架由两个核心部分组成:
Tokenization Block
-> Unified Interaction Block
-> Feature-space Interaction Module, FIM
-> Task-space Interaction Module, TIM
-> Task-specific Output Heads其中 Tokenization Block 把输入特征整理成三类 token:
sequential feature tokens
non-sequential feature tokens
task feature tokensUnified Interaction Block 则分成两段:
FIM:
建模 sequential features 和 non-sequential features 的交互
TIM:
用 task tokens 读取 FIM 输出的高阶 feature 表征
再建模 task-task 之间的关系论文给出的统一建模形式可以写成:
\[\mathbf{y}=\mathcal{F}_{\text{co-scaling}}\left(\mathbf{e}_{\text{seq}},\mathbf{e}_{\text{non-seq}},\mathbf{e}_{\text{task}}\right)\]
这个公式看起来很简单,但它和传统多任务精排模型的差别很大。传统模型通常是:
feature interaction -> shared representation -> task towerUniFormer 则更像:
feature tokens 先在 feature space 中充分交互
task tokens 再进入 task space,与高阶 feature representation 做 cross-attention
task tokens 之间继续 self-attention
最后每个 task token 输出对应任务的预估因此,每个任务不是被动接收同一个 shared representation,而是拥有自己的 task token,通过 attention 主动选择它需要的高阶特征。
4. Tokenization
tokenization 围绕两个目标设计:
- 为 attention 建模提供语义清晰的 token。
- 为在线推理提供 user-item decoupling 的可能。
4.1 序列特征:item-independent 与 item-dependent 分开处理
论文把用户行为序列分成两类。
第一类是 item-independent behavior,例如短期浏览序列、长期压缩兴趣表示。这些行为本身不依赖当前候选 item,因此可以保留原始序列结构。以短期序列为例,每个行为 token 可以由视频 ID、内容标签、作者、观看时长等信息拼接而成:
\[\mathbf{e}^{\mathrm{short}}_i = [\mathbf{e}^{\mathrm{pid}}_i || \mathbf{e}^{\mathrm{tag}}_i || \mathbf{e}^{\mathrm{paid}}_i || \mathbf{e}^{\mathrm{duration}}_i || \dots]\]
长期兴趣表示则可以直接使用预训练压缩后的 embedding,例如 lifelong interest token。
第二类是 item-dependent behavior,例如 SIM 这类 target-aware search sequence。它会根据候选 item 从用户历史里检索相关行为,因此天然依赖当前 item。直接保留这类序列会让后续 KV 表示也依赖候选 item,导致同一个用户请求下每个候选都要重复算一遍序列侧网络。
UniFormer 的处理方式是:对 item-dependent 行为序列先做 target attention 聚合,压成一个 compact token:
\[\mathbf{e}_{\mathrm{search}} = \mathrm{TA}(\mathbf{e}_{\mathrm{target}}, \mathbf{K}_{\mathrm{search}}, \mathbf{V}_{\mathrm{search}})\]
这个设计的用意很工程化:把 target-aware 的信息前置聚合,避免后续跨层 attention 的 KV 被 candidate item 污染,从而为 request-level 复用创造条件。
4.2 非序列特征:按语义分组,而不是全局混成一个 token
非序列特征也被分成两类:
item-independent:
user ID、用户画像、上下文、请求侧特征
item-dependent:
item ID、item 统计特征、user-item cross 特征每一类内部再按语义分组,例如用户画像一组、上下文一组、item 统计一组、交叉特征一组。每组 embedding concat 后经过 SwiGLU 投影成一个统一维度的 token。
这样做有两个收益。
第一,语义分组让后续 cross-attention 的 query token 更清楚。不同 query token 可以分别从短期序列、长期序列中读取不同兴趣视角,而不是一个混乱的大 query 去吸所有信息。
第二,item-independent token 和 item-dependent token 可以在推理时拆开计算。对于一个请求里 512 或 1024 个候选 item,用户侧 token 可以算一次复用,候选侧 token 才需要逐 item 计算。
4.3 任务特征:每个任务也是一个 token
对每个任务,UniFormer 会把 task ID、task bias 等任务相关特征聚成一个 task token:
effective-view token
long-view token
like token
follow token
...这一步非常关键。任务不再只是最后的 tower,而是进入模型内部参与交互的 token。后续 TIM 会让 task token 对 feature representation 做 cross-attention,并在 task tokens 之间做 self-attention。
5. FIM:在特征空间里融合序列与非序列特征
Feature-space Interaction Module, FIM,负责处理 feature space。它包含两个互补部分:
Sequential-oriented Interaction
Non-sequential-oriented Interaction5.1 Multi-sequence Cross-Attention:防止兴趣坍缩
很多推荐模型会把短期序列、长期序列、跨域序列拼成一个大序列,然后让一个 attention 模块统一读取。这样虽然实现简单,但会有一个问题:不同序列的分布、长度、行为强度差异很大,模型容易偏向某一类强信号。
例如短视频场景中,短期浏览行为很密集,能强烈反映用户当下兴趣;长期兴趣更稀疏,但能保留稳定偏好。如果二者直接拼接,模型可能过度追逐短期兴趣,导致用户偏好变窄,也就是论文说的 preference collapse。
UniFormer 的做法是 multi-sequence cross-attention:不同序列先分别被 query tokens 读取。
以短期序列为例,第 \(l\) 层可以写成:
\[\mathbf{H}_{\mathrm{short}}^{\mathrm{feat},(l)} = \mathrm{CA} \left( \mathrm{RMSNorm}(\mathbf{Q}^{\mathrm{feat},(l-1)}_{\mathrm{cross}}), \mathbf{K}_{\mathrm{short}}^{(l)}, \mathbf{V}_{\mathrm{short}}^{(l)} \right) +\mathbf{Q}^{\mathrm{feat},(l-1)}_{\mathrm{cross}}\]
长期序列也用类似方式处理。区别在于,不同序列可以拥有独立的 Sequential-oriented FFN, S-FFN:
short-term sequence -> cross-attention -> short-specific S-FFN
long-term sequence -> cross-attention -> long-specific S-FFN这样每种行为序列都能在自己的 latent space 里抽取模式,再做融合。
5.2 短期与长期兴趣的自适应融合
FIM 对不同序列输出提供两种融合方式。
第一种是 global adaptive fusion,用一个全局可学习系数 \(\alpha\) 平衡短期和长期:
\[\mathbf{H}^{\mathrm{feat},(l)}_{\mathrm{cross}} = \alpha \widetilde{\mathbf{H}}_{\mathrm{short}}^{\mathrm{feat},(l)} + (1-\alpha)\widetilde{\mathbf{H}}_{\mathrm{long}}^{\mathrm{feat},(l)}\]
第二种是 personalized adaptive fusion,根据用户活跃度、交互行为等用户侧特征动态预测 \(\alpha_i\):
\[\mathbf{H}^{\mathrm{feat},(l)}_{\mathrm{cross}} = \alpha_i \widetilde{\mathbf{H}}_{\mathrm{short}}^{\mathrm{feat},(l)} + (1-\alpha_i)\widetilde{\mathbf{H}}_{\mathrm{long}}^{\mathrm{feat},(l)}\]
这个设计很符合短视频推荐的真实情况。高活跃用户的近期行为更密集,短期兴趣可信度更高;冷启动或低活跃用户近期行为少,长期兴趣、画像和统计特征可能更重要。
5.3 Interaction Enhancement:把非序列特征重新拉回来
经过 sequence-oriented interaction 后,表示主要由序列信息主导。为了避免模型只围绕行为序列打转,UniFormer 会把 cross-attention 输出和上一层保留的 non-sequential query 拼接起来:
\[\mathbf{X}^{\mathrm{feat},(l)} = [\mathbf{H}^{\mathrm{feat},(l)}_{\mathrm{cross}} || \mathbf{Q}^{\mathrm{feat},(l-1)}_{\mathrm{self}}]\]
然后在拼接后的 token 上做 self-attention:
\[\mathbf{H}^{\mathrm{feat},(l)}_{\mathrm{self}} = \mathrm{SA} \left( \mathrm{RMSNorm}(\mathbf{X}^{\mathrm{feat},(l)}) \right) + \mathbf{X}^{\mathrm{feat},(l)}\]
这一步可以理解成:先用 query tokens 从各类序列中“读兴趣”,再让读出来的兴趣和非序列特征充分交叉。
5.4 为什么不是全量 full attention
如果把所有序列 token、非序列 token、任务 token 放在一起做 full attention,形式上最统一,但工业上很难承受。行为序列长、候选 item 多、任务多,一旦全空间交互,计算复杂度和显存都会很快爆炸。
UniFormer 的折中是:
序列 token 不直接彼此全量交互
非序列语义 query 通过 cross-attention 读取序列
再在较小的 feature token 集合上做 self-attention这相当于用少量语义 query 对长序列做信息抽取,再把抽取后的 compact representations 放到统一特征空间中交互。它牺牲了一部分 token 级全局表达能力,但换来了在线可部署性。
6. TIM:让任务进入模型内部,而不是只接最后一层
Task-space Interaction Module, TIM,是 UniFormer 相对许多 feature-space co-scaling 方法最关键的新增部分。
FIM 输出的是高阶 feature representation:
FIM output = feature tokens after sequence + non-sequence interactionTIM 输入两类信息:
task tokens
FIM high-order feature tokens6.1 Task-aware Feature Interaction
在第 \(l\) 层 TIM 中,task token 作为 query,对 FIM 输出的高阶 feature tokens 做 cross-attention:
\[\mathbf{H}_{\mathrm{cross}}^{\mathrm{task},(l)} = \mathrm{CA} \left( \mathrm{RMSNorm}(\mathbf{Q}^{\mathrm{task},(l-1)}_{\mathrm{cross}}), \mathbf{K}_{\mathrm{feat}}^{(l)}, \mathbf{V}_{\mathrm{feat}}^{(l)} \right) + \mathbf{Q}^{\mathrm{task},(l-1)}_{\mathrm{cross}}\]
第一层里:
\[\mathbf{Q}^{\mathrm{task},(0)}_{\mathrm{cross}} = \mathbf{N_T}\]
也就是说,Effective-view、Long-view、Like、Follow 等任务各自拿自己的 token 去读取 feature representation。这样每个任务看到的用户-视频表征可以不同。
这和 MMoE 有相似之处:不同任务对共享专家加权不同。但 TIM 用 attention 表达这个过程,粒度更细,因为 task token 可以对 feature tokens 做 task-aware aggregation。
6.2 Task-oriented Interaction
任务不只是各读各的 feature,还需要彼此交互。短视频推荐里,各任务天然相关:
effective view 和 long view 相关
like 和 follow 相关
comment staytime 和 comment rate 相关
watch time 和 interaction 可能既协同又冲突TIM 在 task tokens 上继续做 self-attention:
\[\mathbf{H}^{\mathrm{task},(l)}_{\mathrm{self}} = \mathrm{SA} \left( \mathrm{RMSNorm}(\mathbf{H}^{\mathrm{task},(l)}_{\mathrm{cross}}) \right) + \mathbf{H}^{\mathrm{task},(l)}_{\mathrm{cross}}\]
随后每个 task token 进入自己的 Task-oriented FFN, T-FFN:
\[\mathbf{f}^{\mathrm{task},(l)}_i = \mathrm{FFN}^{\mathrm{task},(l)}_i \left( \mathbf{h}^{\mathrm{task},(l)}_i \right) + \mathbf{h}^{\mathrm{task},(l)}_i\]
最后每个任务用自己的 head 输出:
\[\hat{y}_i = \sigma(\mathrm{FFN}_i(\mathbf{f}^{\mathrm{task},(N)}_i))\]
训练目标是标准加权多任务 loss:
\[\mathcal{L} = \sum_{i=1}^{t}\lambda_i \mathcal{L}_i(y_i,\hat{y}_i)\]
TIM 的价值在于,它把多任务建模从“最后一层 tower 设计”推进到了“中间层 token 交互”。这会让任务相关性更早影响特征选择,而不只是最后阶段做输出变换。
7. Multi-view FFNs:参数扩容要有位置感
UniFormer 的另一个核心设计是 multi-view FFNs。论文没有让所有 token 共用一个大 FFN,而是为不同视角设置专门 FFN:
S-FFNs:
sequential-oriented FFNs
面向短期、长期、跨域等不同序列模式
NS-FFNs:
non-sequential-oriented FFNs
面向用户、上下文、item、统计、交叉特征等异构非序列 token
T-FFNs:
task-oriented FFNs
面向不同任务目标这件事的本质是参数分配。大模型化不是只看总参数量,而是看参数能不能落在正确的子空间里。
如果所有 token 共用 FFN,会产生两个问题:
- 异构 token 共享同一套非线性变换,容易互相干扰。
- 继续扩容时,参数增长不一定流向最需要容量的组件。
Multi-view FFNs 的好处是,每类 token 都能拥有更匹配自身统计性质的变换空间。短期行为、长期兴趣、用户画像、item 统计、任务目标,本来就不是同一种分布,用专门 FFN 很自然。
从消融实验看,去掉 S-FFNs 或 NS-FFNs 会带来明显下降,这也说明 UniFormer 的收益不只是来自 attention 结构,FFN 的分视角扩容同样关键。
8. 工程优化
UniFormer 很强调 efficient,因为快手主站短视频排序不是离线 benchmark,而是高并发线上服务。论文提到的优化主要有四类。
8.1 Lazy KV:跨层复用 KV 表示
在 FIM 和 TIM 的 cross-attention 中,UniFormer 默认采用 lazy design:多个 cross-attention 层共享 KV 表示。论文默认设置:
S_kv = 1
L_kv = 1这意味着所有层共享同一组 KV 表示,从而降低内存和计算开销。直观理解是:长序列侧或 feature memory 侧不必每层重新生成一套昂贵 KV,query 逐层更新即可。
这种设计会牺牲一部分层间动态 KV 表达,但对工业排序很划算,因为 cross-attention 的 KV 侧通常很大,尤其是长行为序列。
8.2 User-level Common Compression
推荐训练样本通常是 <user, item> pair。同一个 batch 里,同一个用户可能对应多个候选 item,而用户侧行为序列完全相同。如果每条样本重复存储和处理用户行为,会浪费大量 embedding lookup、内存拷贝和序列聚合计算。
UniFormer 使用 user-level common compression:同一个用户的 common behavior features 只处理一次,再通过 index mapping 关联到多个 item 样本。
论文给出理论加速形式。若 batch 中有 \(B\) 个样本、\(U\) 个 unique users,平均每个用户对应 \(\bar{k}=B/U\) 个样本,用户侧公共成本为 \(C_{\mathrm{com}}\),其余样本级成本为 \(C_{\mathrm{sample}}\),则成本从:
\[B(C_{\mathrm{com}}+C_{\mathrm{sample}})\]
降到:
\[UC_{\mathrm{com}} + BC_{\mathrm{sample}}\]
理论 speedup 为:
\[\frac{C_{\mathrm{com}}+C_{\mathrm{sample}}} {C_{\mathrm{sample}}+C_{\mathrm{com}}/\bar{k}}\]
当同一用户对应候选越多、用户侧序列越重,这个优化越值钱。
8.3 Variable-length FlashAttention
用户行为序列长度天然不等。传统 padding 后 attention 的复杂度近似:
\[O(BqL_{\max}d)\]
其中 \(B\) 是 batch size,\(q\) 是 query 长度,\(L_{\max}\) 是 batch 内最大序列长度。
UniFormer 使用 variable-length FlashAttention,把复杂度降为:
\[O(q\sum_i L_i d)\]
这避免了短序列样本被迫补齐到最长序列带来的浪费。对于长短序列混杂严重的推荐日志,这通常不是小优化,而是决定训练吞吐和显存水位的关键。
8.4 User-Item Decoupling:请求级推理加速
在线推理时,一个用户请求通常要同时打分 512 或 1024 个候选 item。如果每个候选 item 都完整跑一遍用户侧网络,成本会非常高。
UniFormer 的 semantic tokenization 使得 non-sequential features 可以拆成:
item-independent tokens
item-dependent tokensitem-independent tokens 可以每个 request 只算一次,然后在多个候选 item 上复用。
但还有一个麻烦:self-attention 会让 user-side token 和 item-side token 相互影响,一旦 user token attend 到 item token,用户侧表示就又变成 item-dependent 了。UniFormer 通过 attention mask 移除 user-side queries 到 item-side keys 的注意力,让用户侧 attention 计算保持可复用。
这就是论文中 48% QPS 提升的核心来源之一:不是单纯优化 kernel,而是从 tokenization 和 attention dependency graph 上把用户侧计算拆出来。
9. 实验结果
论文使用快手单列短视频推荐工业数据集评估。该场景是快手最大的推荐场景,日活超过 4 亿,每天产生超过 500 亿交互日志。实验关注四个核心任务:
Effective-view
Long-view
Like
Follow9.1 离线 GAUC
| Model | Effective-view | Long-view | Like | Follow | Dense Params |
|---|---|---|---|---|---|
| SIM+DCN | 0.7418 | 0.7734 | 0.8486 | 0.8361 | 115.8M |
| SIM+HoME | 0.7424 | 0.7740 | 0.8494 | 0.8374 | 114.8M |
| SIM+RankMixer | 0.7443 | 0.7757 | 0.8507 | 0.8374 | 492.0M |
| HyFormer | 0.7447 | 0.7762 | 0.8512 | 0.8381 | 496.5M |
| MixFormer | 0.7450 | 0.7764 | 0.8514 | 0.8388 | 489.4M |
| UniFormer | 0.7457 | 0.7771 | 0.8531 | 0.8435 | 516.0M |
| UniFormer-Large | 0.7465 | 0.7779 | 0.8538 | 0.8448 | 995.3M |
相对 SIM+DCN,UniFormer 在四个任务上的提升分别是:
Effective-view: +0.53%
Long-view: +0.48%
Like: +0.53%
Follow: +0.89%UniFormer-Large 继续提升到:
Effective-view: +0.63%
Long-view: +0.58%
Like: +0.61%
Follow: +1.04%这里有两个观察点。
第一,RankMixer、HyFormer、MixFormer 已经把参数量扩到了 490M 左右,并且显著强于 SIM+DCN,说明 component scaling 和 feature-space co-scaling 本身是有效的。
第二,UniFormer 参数量只比这些强 baseline 略高,但效果继续提升,尤其 Follow 任务提升明显。这说明 task-space modeling 不是锦上添花,而是在多目标排序里确实补上了一块能力。
9.2 消融实验
论文考察了几种变体:
w/o Multi-seq CA:
用共享 cross-attention 替代 multi-sequence cross-attention
w/o IE:
去掉 Interaction Enhancement
w/o TIM:
去掉 Task-space Interaction Module
w/o S-FFNs:
序列侧用共享 FFN
w/o NS-FFNs:
非序列侧用共享 FFN结论是 UniFormer 在所有任务上都优于这些消融版本。尤其去掉 Multi-seq CA 会对互动类指标造成明显下降,说明异构行为序列分开建模确实有助于防止偏好坍缩。去掉 S-FFNs 或 NS-FFNs 的下降也很明显,说明 multi-view FFNs 对参数扩容质量非常重要。
9.3 Scaling Analysis
论文通过增加 multi-view FFNs 的 hidden dimension 做 scaling analysis,观察到参数增加时 GAUC gain 持续提升。这个结果是 UniFormer 论文标题里 “scaling” 的关键支撑。
值得注意的是,论文不是证明“所有推荐模型都有稳定 scaling law”,而是证明在 UniFormer 这种分空间、分视角的架构里,继续加参数能比较稳定地转化为排序收益。
9.4 线上 A/B
论文在快手和快手极速版两个生产场景做了 7 天线上 A/B,实验流量为 5%。线上结果如下:
| Category | Metric | Kuaishou Lite | Kuaishou |
|---|---|---|---|
| Engagement | App Stay Time | +0.260% | +0.101% |
| Engagement | Watch Time | +1.113% | +0.729% |
| Engagement | Video View | +0.252% | +0.249% |
| Interaction | Like | +1.089% | +0.155% |
| Interaction | Comment | +1.818% | +1.488% |
| Interaction | Collect | +0.930% | +0.647% |
| Interaction | Forward | +1.274% | +0.157% |
这些数字看起来没有离线论文那么夸张,但在亿级 DAU 主推荐场景里,App Stay Time、Watch Time 这种核心指标能稳定正向已经很有分量。尤其 Watch Time 在两个场景分别 +1.113% 和 +0.729%,说明模型不只是优化了某个互动小目标,而是对核心消费时长有实质贡献。
效率方面,线上每个 request 同时打分 512 个候选 item。通过 user-item decoupling,UniFormer 相比原版本 QPS 提升 48%,同时 GAUC 损失可以忽略。这说明它不是一个只能离线跑分的“大而慢”模型,而是有明确 serving 设计的工业模型。
10. 贡献
10.1 把 task modeling 前移了
很多多任务排序模型是在 feature representation 已经形成后,再通过 tower 或 expert 做任务适配。这样做的问题是,如果 shared representation 本身没有保留某个任务需要的信息,后面的 tower 很难凭空恢复。
TIM 让 task token 在中间层主动读取 feature tokens,相当于让任务更早参与特征选择。对于多目标排序,这比最后接几个 tower 更自然。
10.2 用 cross-attention 代替全空间暴力 self-attention
UniFormer 看起来像 Transformer,但它不是把所有 token 混在一起全连接。它的核心是大量使用 cross-attention:
semantic query tokens -> read behavior sequences
task tokens -> read high-order feature tokens这种 read-from-memory 的结构很适合推荐系统,因为推荐系统有大量长序列、多域、多类型稀疏特征。全量 self-attention 太贵,而 query-based cross-attention 更像“从复杂日志里抽取当前决策需要的信息”。
10.3 把 serving dependency 纳入了模型结构设计
很多论文先设计模型,再想办法优化 serving。UniFormer 反过来很早就考虑:
哪些 token 依赖 user?
哪些 token 依赖 item?
哪些计算可以 request-level 复用?
哪些 attention 边会破坏复用?因此 semantic tokenization、item-dependent 行为聚合、attention mask、lazy KV 并不是附属优化,而是架构本身的一部分。
11. 局限
第一,架构复杂度明显上升。FIM、TIM、multi-sequence CA、multi-view FFNs、adaptive fusion、user-item decoupling、variable-length FlashAttention 都需要系统配合。对于中小规模业务,SIM+DCN、DIN+MMoE、PLE 这类简单架构可能更划算。
第二,论文主要验证快手内部工业数据,公开数据集缺失。工业推荐论文常见这个问题:线上结果最有说服力,但外部复现很难。
第三,user-item decoupling 会引入一定表达约束。为了复用用户侧计算,模型需要限制 user-side queries 对 item-side keys 的注意力。这会不会损失某些强 user-item 交叉能力,取决于候选规模、特征设计和后续 item-dependent 分支是否足够补偿。
第四,task token 的可解释性还有进一步空间。论文展示了 feature-task attention pattern,例如时长类任务更关注 item 统计特征,互动类任务更关注某些用户特征。但 task attention 能否稳定用于诊断多目标冲突,还需要更多线上分析。