生成式推荐把历史物品改成语义子词,HR@5最高涨10.4%

Rethinking Item Tokenization in Generative Recommenders: From Fixed Atoms to Semantic Subwords

Xinrui Miao, Mingjia Yin, Jiaqing Zhang, Wei Guo, Yong Liu, Yuyang Ye, Hao Wang, Enhong Chen

cs.IR

2026-08-24

中科大与华为提出 SST:历史 SID 收成可变长语义子词,目标仍用定长解码。TIGER-KM 在 Beauty 上 HR@5 从 0.0372 升到 0.0423。目标侧若也改成子词,合并项 HR@10 会掉到 0.0002。

这篇在解决什么

生成式推荐把物品编成定长 Semantic ID,例如四段 ⟨a⟩⟨b⟩⟨c⟩⟨d⟩,再用编码器–解码器自回归生成下一项。定长 SID 当「解码文法」很方便,beam search 和约束解码都好做。同一串 atom token 也被拿去表示用户历史。历史一展平,长度从 n 变成 n×L,编码器还没建模「运动装备 → 可穿戴」这种物品级跳转,先得反复把同一物品内部的 atom 拼回去。论文把这叫 Intra-item Attention Overload。

SARQ、VSID 一类可变长 SID 在改物品编码长度,按区分度或流行度截断前缀。它们不针对这段历史侧注意力浪费。SST 的主张更窄:历史用子词压缩,目标保持定长。

方法

SST 两段,只改编码器一侧。

Item-level Subword Tokenization(IST)在物品内部学合并。相邻 atom 对按频率、物品覆盖数筛选,迭代合并,规则可以是 BPE、WordPiece,或他们为生成式推荐设计的 CondEntropy(要求成对互预测、局部条件熵低)。合并后的 span 变成一个语义子词,未覆盖的 atom 保留。跨物品的 pair 永不合并。历史变短且变长不固定,目标仍是原来的 L 槽 SID。

Behavior-induced Co-occurrence Augmentation(BCA)在腾出注意力之后,往训练里灌粗粒度行为。取每件物品 SID 的前 P=2 个 token 当语义前缀,在窗口里挖高频前缀转移,把对应历史子序列回放到训练集,右端物品当预测目标。压缩负责卸低阶拼接,回放负责把容量导向物品间转移。

三个骨干:TIGER-VAE、TIGER-KM、LETTER,都是 4 层码本、每层 256。数据是 5-core 后的 Amazon Beauty / Instruments 和 Yelp,leave-one-out,全库排序,beam 20。对照包括定长 SID,以及只改历史、目标仍定长的 SARQ 与 VSID。

结果

SST 在三套骨干、三个数据集上相对最强非 SST 基线都有正增益。TIGER-KM + Beauty 这一格最大:HR@5 从定长 0.0372 到 0.0423(+10.4%),NDCG@5 从 0.0238 到 0.0281(+13.3%)。TIGER-VAE 同数据集 HR@5 +7.6%。LETTER 绝对点最高,相对增益更小,Beauty HR@5 +5.1%、HR@10 只有 +1.4%。IST 与 BCA 单独通常都优于定长,合在一起多数指标最好,但不是格格可加:LETTER + Beauty 上单 IST 的 HR@5 是 0.0444,完整 SST 是 0.0431。

骨干 / 数据定长 HR@5SST HR@5相对最强基线
TIGER-KM / Beauty0.03720.0423+10.4%
TIGER-VAE / Beauty0.03570.0384+7.6%
LETTER / Beauty0.04000.0431+5.1%
LETTER / Yelp0.02660.0287+7.9%

注意力剖分支持机制叙事:TIGER-VAE 上,SST 降低 Intra-Item Attention Budget 和 Atom Reassembly Load,同一物品内的注意力改由子词承担。覆盖率分桶里,历史上子词越多,IST 相对定长的 NDCG 增益越大。效率上 Beauty 平均历史长度 28.61→26.73,端到端时间 0.718h→0.659h,BCA 多出来的回放样本大致被更短序列抵消。

不对称是硬约束。Yelp + TIGER-KM 上,历史可变、目标定长 HR@10 0.0412;目标也改成可变长掉到 0.0329。按目标是否含合并子词切开:合并桶 HR@10 从约 0.04 塌到 0.0002,未合并桶仍有 0.0530。子词在解码位置上是长尾符号,进不了早期 beam,被高频 atom 挤掉。

为什么重要

生成式推荐里「物品 ID 怎么切」常被当成 tokenizer 细节。SST 给出一个可操作的分工:目标侧保住定长文法,历史侧用子词卸拼接负担。比「一律改成可变长 SID」便宜,也避开了目标侧长尾 token 的坑。增益是渐进的,最大格约 10% 相对 HR@5, LETTER 上更小,不要指望换 tokenizer 就换一代模型。

局限与存疑

骨干是 hidden 128 的 T5 风格小模型,200 epoch、验证集选配置,没有放大到工业生成式推荐的模型规模。三个公开数据集,没有在线 A/B。SARQ / VSID 被改成只动历史,作为「缩短序列是否够」的对照,不是对它们原论文设定的完整复现。子词数量、BCA 的 top-k 都要按验证损失搜,过大 kn 会引入噪声子词。LETTER 上 IST 单独有时超过 IST+BCA,两个模块如何交互,论文没有给因果拆解。

术语

原文与代码

社区讨论

相关论文

全部论文解读