第一季停在 OneReason:模型已经能生成商品 code、推荐理由,甚至一段“思考过程”。但整个系统仍有一块地基几乎没有被下游任务触碰:
商品的 Semantic ID,通常在推荐模型开始训练之前就已经被冻结了。
这像让制砖厂只按“砖块是否还原泥土纹理”优化,而建筑师只能接受现成砖块。砖很漂亮,不代表适合盖房子。DIGER 的问题非常直接:推荐损失能不能反向改变商品 ID 本身?
30 秒看懂本文
- 旧方法的问题:RQ-VAE 根据内容重构学习 Semantic ID,推荐器根据点击序列学习下一商品。两个目标各自优化,推荐梯度在 tokenizer 前被截断。
- DIGER 的答案:前向仍选择离散 code,反向却通过 Gumbel-Softmax 的软概率更新整个 codebook,让推荐损失穿过离散选择。
- 真正的难点:可微不等于稳定。直接用 STE 很容易在训练早期押注少数 code,造成 codebook collapse。DIGER 用早期探索、后期收敛的不确定性衰减来控制这场“编码淘金热”。
用八件商品看懂目标错位
沿用第一季的玩具商品:网球拍、网球、攀岩鞋、防滑粉、羽毛球拍、羽毛球、泳帽、速干毛巾。
只看内容,网球拍和羽毛球拍最相似;只看行为,攀岩鞋和防滑粉可能更常被连续点击。传统两阶段流程会先问:
“哪两个商品的文本与图片最像?”
再让推荐器适应这些固定 ID。DIGER 希望 tokenizer 同时听见另一个问题:
“哪种编码更有利于预测用户下一步会选什么?”
因此,内容相似仍是约束,但不再是商品语言的唯一立法者。
模型从输入到输出发生了什么
对商品 (v) 的第 (j) 层 code,编码器先计算它与 (K) 个 codebook 向量的相似度:
[ \ell_{v,j,i}=\operatorname{sim}(r_{v,j},e_i). ]
然后加入 Gumbel 噪声并得到软分布:
[ \tilde y_{v,j,i}
\frac{\exp((\ell_{v,j,i}+g_{v,j,i})/\tau)} {\sum_{k=1}^{K}\exp((\ell_{v,j,k}+g_{v,j,k})/\tau)}. ]
前向传播使用
[ c_{v,j}=\arg\max_i(\ell_{v,j,i}+g_{v,j,i}), ]
所以推荐器看到的仍是一串真正的离散 token。反向传播则使用软 embedding
[ \bar e_{v,j}=\sum_i \tilde y_{v,j,i}e_i, ]
于是每个候选 code 都能按概率获得梯度,而不是只有被 argmax 选中的那个 code 被更新。
这是一座双层桥:前向保持离散,反向保持可导。
为什么 Gumbel 噪声不是装饰
如果训练一开始就做确定性 hard assignment,某几个 code 会因为偶然领先而获得更多梯度,继而更常被选择,形成“越热门越热门”的自我强化。最终大量 code 闲置,商品被挤进少数拥堵地址。
DIGER 的 DRIL 先让模型探索多个可能编码,再逐步降低随机性。论文提供两种不确定性衰减:
- SDUD:让噪声尺度随生成损失下降,当模型越来越确定时,编码也越来越接近推理期的确定性选择;
- FrqUD:只对使用过热的 code 注入更多探索,低频 code 保持稳定,直接围绕 codebook 利用率调度。
关键不是“噪声越大越好”,而是训练早期需要搜索,训练后期必须收口。
训练与推理的差别
训练时,推荐损失、重构损失和量化约束共同更新 tokenizer 与生成器。推理时则不再采样 Gumbel 噪声,商品对应稳定的 hard SID,再由自回归模型逐 token 生成。
这也暴露了工程难题:
- codebook 更新后,历史日志里的旧 SID 是否仍兼容;
- 新商品加入时,能否局部编码而不重建全库;
- 线上缓存、索引和模型版本怎样共同迁移;
- 一个更好的离线 codebook,是否会在大规模 beam search 中保持收益。
实验究竟证明了什么
论文在 B-Shop、I-Shop 和 Yelp 等公开数据上比较两阶段方法、直接 STE 以及 DIGER 变体,并报告 Recall@10、NDCG@10 与 code 使用稳定性。结果支持两个判断:
- 让推荐梯度影响 SID,确实比完全冻结 tokenizer 更有潜力;
- “可微”本身不是答案,探索策略与 codebook 平衡决定训练是否会崩。
但这些实验仍是公开数据上的离线 next-item 任务。它们没有证明 SID 在线频繁变化时的兼容成本,也没有证明端到端重编码能在真实商品库中长期稳定运行。
我认为它最重要的贡献
DIGER 改变的是模块边界。Tokenizer 不再是数据预处理脚本,而成为推荐模型的一部分。
这一步很小,也很危险。小在于公式仍围绕 Gumbel-Softmax 与自回归损失;危险在于一旦商品 ID 可以被推荐目标重写,索引、日志、缓存和实验可比性都会被卷入训练闭环。研究问题从“怎样学一个好 ID”升级为:
怎样让商品语言持续学习,又不让整个系统每天换一种方言?
下一篇 CARE 会接住另一个问题:即使 ID 已经更合理,逐 token 生成仍可能把第一个小错误放大成整条错误路径。