1. 这篇论文在解决什么问题

UniFormer 讨论的是工业推荐排序模型的一个很现实的问题:推荐模型已经进入大模型化阶段,但很多扩容方式仍然是“组件级”的,而不是“模型级”的。

传统工业精排模型通常可以拆成几块:

Embedding / Tokenization
-> 用户行为序列建模
-> 非序列特征交叉
-> 多任务建模
-> 多目标预估输出

过去几年,业界对这些模块分别做过扩容:

  1. 行为序列建模扩容:DIN、DIEN、SIM、C-Former、LONGER 等,重点是把用户历史行为建模得更细。
  2. 特征交叉扩容:DCN、RankMixer、Transformer-style token mixing 等,重点是加强 feature interaction。
  3. 多任务建模扩容: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 框架至少要满足三点:

  1. 效率可控:快手主推荐这类场景候选量大、并发高、延迟严,不能用全量 token 做无脑 full attention。
  2. 兴趣不坍缩:短期行为、长期兴趣、target-aware 搜索序列、跨域行为等异构序列不能被粗暴拼成一个序列,否则强信号可能淹没弱信号。
  3. 参数分配可扩展:扩容不能只集中在某个共享 FFN 或某个大 expert 上,而要能按序列、非序列、任务等不同视角分配容量。

这三个约束决定了 UniFormer 的设计路线:空间建模、分类型 token 化、分视角 FFN 扩容。

3. 总体架构:FIM + TIM

快手 UniFormer :从组件扩容到特征空间与任务空间统一扩容 配图 1

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 tokens

Unified 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 tower

UniFormer 则更像:

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 围绕两个目标设计:

  1. 为 attention 建模提供语义清晰的 token。
  2. 为在线推理提供 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 Interaction

5.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 interaction

TIM 输入两类信息:

task tokens
FIM high-order feature tokens

6.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,会产生两个问题:

  1. 异构 token 共享同一套非线性变换,容易互相干扰。
  2. 继续扩容时,参数增长不一定流向最需要容量的组件。

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 tokens

item-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
Follow

9.1 离线 GAUC

ModelEffective-viewLong-viewLikeFollowDense Params
SIM+DCN0.74180.77340.84860.8361115.8M
SIM+HoME0.74240.77400.84940.8374114.8M
SIM+RankMixer0.74430.77570.85070.8374492.0M
HyFormer0.74470.77620.85120.8381496.5M
MixFormer0.74500.77640.85140.8388489.4M
UniFormer0.74570.77710.85310.8435516.0M
UniFormer-Large0.74650.77790.85380.8448995.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%。线上结果如下:

CategoryMetricKuaishou LiteKuaishou
EngagementApp Stay Time+0.260%+0.101%
EngagementWatch Time+1.113%+0.729%
EngagementVideo View+0.252%+0.249%
InteractionLike+1.089%+0.155%
InteractionComment+1.818%+1.488%
InteractionCollect+0.930%+0.647%
InteractionForward+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 能否稳定用于诊断多目标冲突,还需要更多线上分析。