"TokenFormer: Unify the Multi-Field and Sequential Recommendation Worlds" 论文笔记

腾讯推荐模型 Scaling 的工作 TokenFormer ,目前挂在 Arxiv 26.04 上,主要提出了**顺序坍塌传播(SCP)**问题,挑战和动机很有亮点但是模型架构方面感觉不够有说服力

背景

对于序列建模和特征交叉,尽管最近的工作如 InterFormer、OneTrans、HyFormer 已经走向统一,但它们通常仍然通过混合堆栈或交替组件保持内部分离,未能实现在单一计算流形内对 field-field、sequence-sequence and sequence-field 三种交互的完全统一

论文发现这种统一面临一个关键障碍:顺序坍塌传播(SCP)。工业场景中,非序列特征(如低基数或偏斜分布的静态属性)的嵌入天然倾向于占据低维子空间。在解耦模型中,这种坍塌被安全地隔离在非序列侧;但在统一模型中,坍塌敏感的静态令牌通过共享算子直接与行为序列令牌交互,导致序列表示遭受维度侵蚀

论文通过分析揭示了这一现象(上图):左图以互信息(MI)衡量表征辨别力,右图以奇异值谱和有效秩衡量维度鲁棒性(反映表示在多少个互不冗余的维度上展开,决定模型泛化能力)。可见,纯序列 Transformer 保留了较高维度的表示空间,但缺乏静态信号导致辨别力不足;而简单联合建模虽借助静态特征提升了 MI,却引发了更剧烈的频谱衰减,表明序列表示已经变得更加崩溃

针对这个问题,论文提出了 TokenFormer ,其中包含三项核心创新:统一 Token 流、Bottom-Full-Top-Sliding(BFTS)注意力调度、Non-Linear Interaction Representation(NLIR)门控机制

方法

统一 Token 流

推荐输入由非序列多域特征 \(\mathcal{F}\)、序列行为 token \(\mathcal{T}\)、目标特征 \(\mathcal{V}\) 构成,但是现有工作通常只操作其中一个子集。特征交互模型主要处理 \((\mathcal{F}, \mathcal{V})\),序列模型主要处理 \(\mathcal{T}\),或 \((\mathcal{T}, \mathcal{V})\),跨特征序列模型主要处理 \((\mathcal{F}, \mathcal{T})\)。因此论文指出,统一推荐可以被形式化为在完整实体集 \(\mathcal{E} = \mathcal{F} \cup \mathcal{T} \cup \mathcal{V}\) 上学习所有六种交互类型: \((\mathcal{F} \leftrightarrow \mathcal{F}, \mathcal{T} \leftrightarrow \mathcal{T}, \mathcal{V} \leftrightarrow \mathcal{V}, \mathcal{F} \leftrightarrow \mathcal{T}, \mathcal{F} \leftrightarrow \mathcal{V}, \mathcal{T} \leftrightarrow \mathcal{V})\)

TokenFormer 将所有输入拉平为统一 token 序列。设 \(M\) 为特征域数量,\(T\) 为历史序列长度,\(K\) 为目标 item 数量,\(N_{\text{sep}}\) 为特殊分隔符数量,则总输入长度为(with actions 的输入长度为 \(2T\) 是因为序列的每个时间步从 item 变成了 item、action):

\S_L = \\begin{cases} M + T + K + N_{\\text{sep}} \& \\text{without actions} \\\\ M + 2T + K + N_{\\text{sep}} \& \\text{with actions} \\end{cases} \\

论文认为加法式的位置编码会引入交叉项噪声,迫使语义 embedding 与低秩的位置向量进行加法交互,破坏语义流形的内在几何结构。因此 TokenFormer 采用 RoPE 位置编码的方式,同时为了在 RoPE 增强注意力 内部对齐顺序和非顺序多字段标记,TokenFormer 制定的位置索引策略如下:

  • 静态特征 token :位置映射到 \(p = 0\)

  • 行为序列 token :位置映射到时间索引 \(p = \text{pos}(x_l)\)

  • 目标 token :位置映射到 \(p = S_L + 1\)

这样不同类型的 token 天然处于不同的位置区间 ,RoPE 通过相对位置差 \(\Delta p\) 就能让模型隐式地区分出 token 类型,同时避免了加法式编码的秩污染问题

TokenFormer 采用同构 decoder-only 骨干,堆叠 \(L\) 个 Unified Interaction Block(UIB) 。每个 UIB 是标准注意力块的变体,增加了两项创新:BFTS 注意力调度和 NLIR 门控机制。第 \(l\) 层的核心变换为:

\\\tilde{A}\^{(l)} = \\text{Attn}(\\mathbf{X}\^{(l)}, \\mathcal{M}_{BFTS}\^{(l)}) \\tag{9} \\

\\\mathbf{X}\^{(l+1)} = \\text{FFN}(\\text{NLIR}(\\tilde{A}\^{(l)}, \\mathbf{X}\^{(l)})) \\tag{10} \\

通过堆叠这样的 block,TokenFormer 在浅层逐步整合全局上下文信息,在深层强调局部时序结构,同时通过非线性交互增强注意力输出的表达能力

BFTS 注意力调度

先将归一化输入 \(\mathbf{X}^{(l)}\) 投影为 \(\mathbf{Q}\)、\(\mathbf{K}\)、\(\mathbf{V}\),然后用 RoPE 编码相对位置信息,计算注意力输出。为了降低对长行为序列的密集关注成本,TokenFormer 使用了滑动窗口注意力(SWA) ,限制每个 token 只关注最近 \(w\) 个前驱 token(其中 \(\mathcal{R}(\cdot, \Theta)\) 为 RoPE 变换,\(\mathcal{M}^{(l)}\) 为第 \(l\) 层的滑动窗口可见性掩码,这里加法是工程上的写法,乘 0 也相当于加负无穷)

\\\tilde{A}\^{(l)} = \\text{Softmax} \\left( \\frac{\\mathcal{R}(\\mathbf{Q}, \\Theta) \\mathcal{R}(\\mathbf{K}, \\Theta)\^\\top}{\\sqrt{d_k}} + \\mathcal{M}\^{(l)} \\right) \\mathbf{V} \\tag{11} \\

\\\mathcal{M}_{i,j}\^{(l)} = \\begin{cases} 0, \& \\text{if } j \\leq i \\text{ and } i - j \< w, \\\\ -\\infty, \& \\text{otherwise}. \\end{cases} \\tag{12} \\

SWA 将注意力范围从全序列缩减为局部窗口,适用于推荐中大量细粒度行为依赖具有局部性的场景。但是又不能直接对所有层统一使用 SWA ,因为 TokenFormer 的输入序列不仅包含序列行为 token,还包含异构静态特征 token。早期层需要足够宽的感受野来建立全局跨域交互。若从第一层就限制为局部窗口,模型将过早丧失在统一序列上传播全局上下文的能力

因此为了平衡全局交互和局部细化,论文提出了 Bottom-Full-Top-Sliding(BFTS) 注意力调度。关键思想很简单:浅层使用完整的因果注意力,而更深的层切换到 SWA 。设 \(L\) 层骨干中有 \(l_f\) 层全注意力层和 \(l_s\) 层滑动窗口层 \((L = l_f + l_s)\)

\\\mathbf{X}\^{(L)} = \\left( \\mathbf{F}_{\\text{SWA}}\^{(w_1)} \\circ \\cdots \\circ \\mathbf{F}_{\\text{SWA}}\^{(w_{l_s})} \\right) \\circ \\left( \\mathbf{F}_{\\text{Full}}\^{(w_1)} \\circ \\cdots \\circ \\mathbf{F}_{\\text{Full}}\^{(w_{l_s})} \\right) (\\mathbf{X}\^{(0)}) \\tag{13} \\

对于滑动窗口层采用收缩窗口策略,窗口大小 \(\{w_k\}{k=1}^{l_s}\) 递减 \((w{l_s} < w_{l_s-1} < \cdots < w_1)\),具体的 \(w_k\) 怎么设置的论文貌似没有说。最终窗口大小逐层缩减,迫使模型将宽泛的全局依赖提炼为越来越精细和局部化的表示

此外,由于静态特征 token \(X^F\) 主要在初始层充当全局上下文先验,一旦信息被充分整合到序列表示中,保留它们就变得冗余。因此在第 \(l_f\) 层之后,模型完全停止关注前 \(M\) 个非序列 token(这里的思想与 OneTrans 的 Pyramid Stack 相同)。论文说这种操作能够迫使跨特征交互(静态特征和顺序行为之间)在早期层内彻底完成,更深的层将专注于行为进化和目标感知

NLIR 门控机制

TokenFormer 结合了统一的非线性交互范式,旨在增强表征辨别力并恢复维度鲁棒性。具体而言,NLIR 在标准注意力的基础上插入了一个乘性变换,从而实现了

\\\tilde{\\mathbf{I}}\^{(l)} = \\sigma(\\mathbf{G}\^{(l)}) \\odot \\mathbf{A}\^{(l)} \\

其中 \(\mathbf{G}^{(l)} = \mathbf{X}^{(l)} \mathbf{W}_g^{(l)}\),是从当前层输入(即残差路径上的原始输入)学出来的门控信号。然后才是残差连接 \(\mathbf{I}^{(l)} = \mathbf{X}^{(l)} + \tilde{\mathbf{I}}^{(l)}\)。论文说这样做能够增强特征交互的判别性和潜在表示的多样性。通过乘性门控调制注意力输出,模型有效保持了特征空间的秩丰富度,为后续阶段产出更具表达力的交互表示(注意这里是逐元素乘法,即两个形状完全相同的向量或矩阵把对应位置的数字相乘,和 FFN 不同,这种做法可以提升有效秩)

SwiGLU 前馈网络

在门控注意力操作之后,TokenFormer 使用 SwiGLU-based FFN 进一步计算

\\\bar{\\mathbf{I}}\^{(l)} = \\text{RMSNorm}(\\mathbf{I}\^{(l)}), \\

\\\mathbf{H}\^{(l)} = \\left( \\text{Swish}(\\bar{\\mathbf{I}}\^{(l)} \\mathbf{W}_1) \\odot (\\bar{\\mathbf{I}}\^{(l)} \\mathbf{W}_2) \\right) \\mathbf{W}_3, \\

\\\mathbf{X}\^{(l+1)} = \\mathbf{I}\^{(l)} + \\mathbf{H}\^{(l)}, \\

其中 \(\mathbf{W}_1\)、\(\mathbf{W}_2\)、\(\mathbf{W}_3\) 为可学习权重矩阵。论文这里说该设计保持标准残差前馈更新的同时,与注意力分支中的乘性交互原则一致

PS :我个人并不理解这里的 NLIR 是在干什么,它和直接对注意力输出做一个 FFN 的区别在哪里呢?为什么这么设计就能增强信息表示,以及 SwiGLU 前馈网络 不也是逐元素乘,和 NLIR 又有什么区别呢,本质上不是重复的两个操作吗?这两个 section 一直让我疑惑不解

统一优化目标

TokenFormer 的一个显着特点是,相同的统一 token 架构可以在共享监督框架下支持不同的推荐范式,每个模型只会选择其中一种进行训练,推荐场景的 one-epoch 特性使得重复训练会快速过拟合(在海量、高度冗余、时效性强的推荐数据下,只训练一个完整的轮次是工业界的标准做法)。论文在这里提出了实验中使用的两种设置:

  • User-Centric setting :这是一种稠密自回归监督方式。模型将历史行为、用户静态特征和候选相关 token 拼接成一条统一的序列,并在整个序列上以 next-token prediction 的方式施加监督信号。也就是说,序列中大量的历史交互 token 也会参与损失计算,模型被强制从完整的交互上下文中学习全面的用户表征。模型只在 action token 位置产生预测,而不是在 item token 位置

  • New Impression Only setting :这是一种稀疏目标监督方式。模型将用户历史序列仅作为上下文输入来提供背景信息,而监督信号只施加在当前曝光的候选物品或决策 token 上,历史交互 token 不贡献损失梯度。给模型一个用户的历史行为 + 一个候选广告,让模型预测这个用户看到这个广告时会做出什么 action

论文统一 Token 流的三段式序列构造严格来说只适用于 New Impression Only ,因为引入了目标 Token,而 User-Centric 的实际序列应为 \(F, SEP, item_1, action_1, item_2, action_2, \\dots\)。此外,非序列特征 \(F\) 作为共享前缀只有一份,隐含假设了 context 特征在整个序列时间跨度内是静态的。但实际中用户的城市、设备、兴趣标签等会随时间变化。工业实践中通常通过两种方式缓解:(1) 将时变特征从 \(F\) 下沉到每个 item token 中,\(F\) 只保留真正静态的特征;(2) 按时间窗口截断序列,缩短窗口内 context 特征的变化幅度

最终的损失函数为 softmax + Cross-Entropy 进行多类别 action 预测而非二分类 CTR loss,提供了更丰富的监督信号(点赞、转发代表比点击更强的兴趣),也与工业场景中多目标优化的需求对齐

实验

可以看到在 User-CentricNew Impression Only 设置下 TokenFormer 均表现出最佳效果

PS :对于 User-Centric 的设置,假设测试集中有一个用户的历史序列 item_A → action_like, item_B → action_click, item_C → ?(已发生),此时 item_C 已经被曝光了,预测 action 虽然没有意义但是能反映建模能力

从 post-attention 表征和目标标签的互信息,以及初始 layer 的 effective rank 可以看出 TokenFormer 设计的模块大大增强了模型的表征能力和鲁棒性。后续对 BFTS 的细致分析和 A/B 实验这里就省略了,反正肯定是正向效果

总结

TokenFormer 的挑战和动机很有亮点,非序列特征的低信息密度序列特征的高信息密度 不一致会造成模型训练问题,这个现象在美团的 SIF 论文中也有提到。但是模型在架构方面的设计感觉不够有说服力,也有可能是我没理解清楚

相关推荐
Komorebi_99994 小时前
多模态基础、图文大模型原理
大模型
格桑阿sir6 小时前
13-大模型智能体开发工程师:工具使用(Tool Use)范式
ai·大模型·agent·工具·智能体·tool·tool use
Komorebi_99999 小时前
多模态 Embedding、CLIP 概念
大模型·embedding
Komorebi_999910 小时前
Day1:LLMOps 核心概念、工程架构、行业流程
人工智能·大模型
晓山清11 小时前
什么是好的提示词
大模型·提示词
weixin_4684668511 小时前
Cherry-Studio 新手极速上手指南
人工智能·python·深度学习·ai·自然语言处理·大模型
Komorebi_999913 小时前
Day3:监控、日志、限流、成本管控、版本灰度
大数据·运维·人工智能·大模型
weixin_468466851 天前
Ava 2.0 智能应用场景落地指南
人工智能·自然语言处理·大模型·智能交互·ava
张彦峰ZYF1 天前
检索增强生成(RAG)系统的基础:全面深入矢量数据库
数据库·大模型·rag