美团推荐模型 Scaling 的工作 SIF,目前挂在 Arxiv 26.04 上,提出了将历史序列 token 从 item-level 升级到 sample-level 的新思路,实现了更强的信息利用和模型效果
背景
推荐系统精排模型的 Scaling 主要分为两种(这两种不是分开独立的,后者是前者的进展):
-
样本信息 Scaling:通过加深行为序列来丰富样本信息,具体有两条子路线:序列变长(从几十到几千的交互行为,如 SIM、ETA、LONGER)和序列变宽(每个历史 token 引入额外上下文,如 DSAN、CAIN、HSTU)
-
模型容量 Scaling:通过统一的类 Transformer 架构来增强模型表达能力,现在的方法(如 HyFormer、OneTrans、MixFormer)把所有特征字段都喂进一个统一的架构里,一次前向传播就能实现更丰富的跨域交互
但是样本信息 Scaling 只把每个历史交互的一部分信息编码进序列 token,难免会造成上下文信息的损失;模型容量 Scaling 存的依旧是 item ID + 少量 side info,它们和包含丰富多字段的当前请求 token 放在同一个注意力空间里,信息密度天差地别,会造成表示上的不对称,模型没法充分发挥表达能力。最关键的是它们没法建模样本级的时变特征,作者以两个刚好点击同一家餐厅的用户举例:一个是深夜优惠活跃时段,另一个是午间通勤高峰。仅凭 item embedding 这两条行为完全等价,但其真实样本上下文传递着截然不同的用户意图信号
-
静态特征:附着在物品本身上的,比如餐厅的菜品口味、价格区间、人均消费、商区位置,这些信息相对稳定不变
-
样本级的时变特征:附着在这一次具体的交互上的,它是瞬时、一次性、且只对这一次交互有意义的
如果能保留每次交互的完整 Raw Sample 而不仅仅是 item embedding,不仅能避免上下文信息的损失,还能消除历史 token 与当前请求 token 之间的信息密度的不对等问题。因此本文提出了 SIF,把每个历史 Raw Sample 直接编码进序列 token,这样既能最大程度保留样本信息,又能同时解决序列特征和非序列特征之间的异构性问题
方法

Sample-Level Token
在交互时刻
其中
这里区分两类特征:非序列特征(用户属性、商品属性、上下文信号等)和序列特征(用户历史交互序列
Sample Tokenizer
Sample Tokenizer
(1)Group-Wise Decomposition
SIF 并不用一个大码本统一覆盖所有特征字段,而是先把
然后每个语义组内部进一步按 sub-token granularity
所有 sub-token 共享相同维度
(2)Residual Vector Quantization(RVQ)
在每个 sub-token
初始残差
(3)Label-Supervised Codebook Training
Sample Tokenizer 和排序目标联合训练(这与 VQ-Rec/TIGER 等纯无监督量化不同),在训练期间 RVQ 重建
Sample Splicing and Serialization
标准行为日志仅记录 item ID 序列,而 SIF 把每条记录升级为一次特征快照,并压缩为 Token Sample
每个
SIF-Mixer
SIF-Mixer 受到 MLP-Mixer 风格分解设计启发,它堆叠
(1)Input Layout
SIF-Mixer 的输入
-
Seq Token Samples (
,矩阵中的第 1~L 行):离线样本序列 通过码本查表获得(via codebook lookup with recency encoding) -
Target Token Sample (
,矩阵中的第 0 行):由于当前请求特征 仅在服务时间可用,无法离线预量化。所以这里直接通过学到的线性投影映射到与码本同空间。对齐损失 确保每个 target-subtoken 投影矩阵 映射到对应码本空间
(2)SIF Block
每个 Block
具体而言,每个 Block 会做三个操作,分别是:
-
Token-level Mixer 沿每一行做 self-attention,建模同一样本内
个 sub-token 之间的交互。因为来自不同特征组、同组不同子概念的 sub-token 占据不同列,注意力能同时捕获跨组相关性(user-item-context)和组内子概念交互(商品价格信号与评论信号) -
Sample-level Mixer 沿每一列做 self-attention,建模
个样本在同一 sub-token 位置的跨时间交互,关键是 Target Token Sample ( ) 能通过 attention 所有 Seq Token Samples 获取历史上下文 -
Token-level FFN 对每个位置做 position-wise 非线性变换:
(3)Prediction Head
Training Objective
训练目标函数为
-
: 主排序 BCE 损失 -
: 标准 VQ commitment loss ( ),拉近组编码器输出与 RVQ 重建 -
: 对齐损失,使 target 投影 映射到和码本一致的空间,从而 target 与历史 token 表征在推理时可跨时间交互
其中
关键点:因为每个 Raw Sample
Complexity
每个 SIF Block 都会产生
实验

可以看到 SIF 在与 OneTrans、HyFormer 效率基本一致的情况下取得了 CTR 和 CVR 的大幅改进
从消融实验可以看出 item ID 和 item ID + key features 都比较差,而 Raw Sample 恢复了大量性能,但是 SIF 的压缩 token 方式(HGAQ)却是最好的,作者解释这与更好优化、离散码本的隐式聚类约束、语义对齐有关。此外 SIF 在序列 Scaling 相较于 OneTrans、HyFormer 体现出了越 Scaling 差距越大的优越性,这更能强调 Sample-Level Tokens 所带来的效益

SIF 在模型深度和序列长度上的 Scaling,可以看出效果很惊人,并且 Sequence Length 会更晚遇到表征天花板
总结
SIF 将视角重点从模型架构转移到了输入表征上,将历史序列 token 从 item-level 升级到 sample-level,很有直觉和 insight,结果也证明十分有效,很 Solid 的工作,值得好好学习与思考