生成式推荐补上关键一环,语义ID首次实现可微分联合优化
问题在于,现有多数方法里的语义ID往往是先学好、再冻结的:它们通常服务于内容重建,却不直接面向推荐目标优化。这样一来,推荐模型虽然在学「该推荐什么」,却无法反过来影响「物品该如何表示」。
来自格拉斯哥大学、山东大学和莱顿大学等单位的研究者在论文DIGER中,首次将可微分语义索引机制系统引入生成式推荐框架,让推荐损失能够直接参与语义ID学习,并在多个公开数据集上取得一致提升。
论文链接:https://arxiv.org/abs/2601.19711
代码链接:https://github.com/junchen-fu/DIGER
该论文有如下三个liangdian:
1. 首次将可微分语义ID联合优化带入生成式推荐,让推荐损失直接参与语义ID学习;
2. 通过Gumbel noise和不确定性衰减机制,提升训练稳定性,缓解码本塌缩;
3. 在公开数据集上稳定优于传统两阶段生成式推荐流程。
该论文已被SIGIR 2026接收为长文。SIGIR是信息检索领域的顶级国际会议,也是CCF-A类会议,主要收录搜索以及推荐等方向的前沿研究成果。
生成式推荐为什么依赖语义ID
在传统推荐系统里,一个商品往往对应一个固定 ID,模型学习的是「用户会不会点这个 ID」。
但在生成式推荐中,研究者越来越希望模型能利用更丰富的物品内容,例如标题、描述、类目甚至更长文本,于是出现了一条很自然的思路:先把商品内容压缩成一组离散语义表示,再把推荐问题转成序列生成问题。
这组离散表示,就是论文所说的语义 ID。
可以把它理解成一种由模型自动学出来的短码,它不是数据库中的原始商品编号,而是根据商品内容得到的一串离散token。
对模型来说,这样的表示更紧凑,也更适合用生成模型来预测用户接下来可能感兴趣的物品。
也正因为如此,语义ID已经成为生成式推荐里一个很重要的技术部件。很多工作会先训练一个tokenizer,把商品内容映射到语义ID,再训练生成式推荐模型去预测这些ID。
Rajput, Shashank, et al. "Recommender systems with generative retrieval." Advances in Neural Information Processing Systems 36 (2023): 10299-10315.
问题:语义ID学得很好,未必就更适合推荐
现有方法里,一个默认前提长期存在:语义ID先单独学习,再固定下来使用。
这个流程看起来很顺:
第一步,用RQ-VAE等模型学习语义ID;
第二步,把这些已经固定的ID交给生成式推荐模型训练。
但这里有一个关键问题:语义ID的学习目标,通常是内容重建;推荐模型的优化目标,则是用户下一步行为预测。前者关心「内容表示得是否准确」,后者关心「推荐是否足够准」。两者并不完全一致。
这就意味着,推荐模型虽然承担了最终效果,但它无法反向更新语义ID 的学习过程。换句话说,模型最终使用的语义ID,未必是最有利于推荐的那一种。DIGER关注的,正是这一点。
传统生成式推荐中,语义 ID 往往先学习再冻结,推荐损失无法回传到索引学习
DIGER 则打通了这一路径,让语义ID可以随推荐目标一起优化。
DIGER,让语义ID进入推荐优化闭环
DIGER要解决的,是生成式推荐里的一个关键问题:语义ID虽然决定了物品如何被表示,但过去它往往只是提前学好的固定输入,不能随着推荐目标一起更新。
这会带来一个直接影响。推荐模型在不断优化「该推荐什么」,但语义 ID 学习仍然服务于内容重建,两者目标并不完全一致。结果就是,模型最终使用的那套语义表示,未必最适合推荐任务本身。
一个很自然的想法是,既然语义ID通常来自RQ-VAE这类离散表示模型,而STE本身也是RQ-VAE中常用的梯度近似方法,那是不是可以直接沿用这套做法,把语义ID拉进推荐训练里联合优化?
论文发现,事情没有这么简单。
直接用STE,为什么不行?
问题不在于STE不能反传,而在于直接这样做,很容易训塌。
从实验现象来看,naive STE虽然在形式上打通了梯度路径,但训练很快就会出现问题:推荐效果提升有限,模型较早early stop;
与此同时,code balance明显偏低,说明大量code没有被充分利用,语义空间很快出现了明显的collapse。
这也说明,语义ID的联合优化不能只靠把梯度「接上」。如果训练早期缺少足够探索,模型就会很快收缩到少数几个code上,后面的推荐优化空间也会被一起压缩。
直接采用naive STE进行联合优化时,模型很快early stop,推荐性能和code balance都明显落后;DIGER则训练更稳定,性能持续提升。
DIGER做了什么?
DIGER的核心框架。相比直接使用STE的硬更新,DIGER通过引入Gumbel noise和uncertainty decay,让语义ID学习既可微、又具备更强的探索能力。
基于这个问题,DIGER的设计可以概括成两步。
第一步,是让语义ID能够参与推荐目标优化。
论文提出了DRIL(Differentiable Semantic ID with Exploratory Learning),在语义ID学习过程中引入Gumbel noise,用带探索性的可微分方式替代过于刚性的硬选择。
这样一来,推荐损失就可以更有效地回传到语义 ID 学习模块,原本「先编码、后推荐」的两段式流程,也第一次真正被接通了。
第二步, 为了解决联合训练中「前期需要充分探索、后期又要稳定收敛」这一矛盾,DIGER进一步设计了两种uncertainty decay策略。
第一种是SDUD(Standard Deviation-based Uncertainty Decay),即基于标准差的不确定性衰减。
它的思路是,随着训练推进,逐步减弱Gumbel noise带来的随机性,让模型在前期保留更强的探索能力,尽可能接触更多candidate code;
到了训练后期,再慢慢降低不确定性,使语义ID的分配更加稳定,便于模型收敛到更可靠的表示上。
第二种是FrqUD(Frequency-based Uncertainty Decay),即基于频率的不确定性衰减。
和SDUD主要从整体噪声强度出发不同,FrqUD更关注不同code的实际使用情况:
如果某些code在训练中被过早、过频繁地选中,模型就会相应提高这些位置的探索压力,避免少数热门code过早主导整个语义空间;而对使用相对不足的code,则保留更多被探索和激活的机会。
DIGER的两种不确定性衰减策略。SDUD逐步降低训练随机性,帮助模型从探索过渡到收敛;FrqUD根据code使用频率调节探索强度,避免少数热门code过早主导语义空间。
实验结果
论文在三个公开数据集上进行了实验:亚马逊Beauty、亚马逊Instrument和Yelp。
和传统Two-Stage生成式推荐流程相比,DIGER在三个数据集上都取得了稳定提升:
- 在亚马逊Beauty上,R@10从0.0610提升到 0.0657–0.0696,N@10 从 0.0331 提升到 0.0361–0.0376
- 在亚马逊 Instrument上,R@10从0.1058提升到0.1124–0.1138,N@10从0.0797提升到0.0823–0.0844
- 在Yelp上,R@10从0.0407提升到0.0432–0.0439,N@10提升到0.0227
这些结果说明,把语义ID纳入推荐目标的联合优化后,收益并不局限于某一个场景,而是在多个数据集上都表现出一致性。
进一步与ETEGRec、LETTER等代表性方法比较时,DIGER也展现出较强竞争力:在Yelp上与LETTER接近,在其余数据集上则取得了更优结果。
DIGER把语义空间「用开了」
如果说前面的结果说明DIGER能把性能做上去,那么这张图进一步回答的是另一个问题:DIGER学到的语义ID,到底有没有真正把码本利用起来。
图中展示了四种方法在最佳checkpoint下、三个量化层上的code usage distribution。每个16×16网格对应256个codebook entry,颜色越深,表示该code被使用的概率越高。可以看到,带有uncertainty decay的DIGER,尤其是SDUD和FrqUD两个版本,在不同层上的code使用都更均衡,整体分布也更平滑;相比之下,STE的分布明显更集中,部分位置颜色更深,而大量位置则较浅,说明模型更容易依赖少数几个code,码本利用不充分。
这个现象在更深的量化层里尤其明显。随着层数加深,STE的code使用越来越不均衡,而DIGER仍然能够保持更好的覆盖度。换句话说,DIGER 解决的并不只是「语义ID能不能联合优化」,还包括联合优化之后,语义空间能不能被更稳定、更充分地利用。这也是它相比直接使用STE更有意义的地方。
不同方法在最佳checkpoint下的code使用分布。DIGER,尤其是带有SDUD和FrqUD的版本,在各量化层上的code使用更均衡;STE则更容易集中到少数code上,出现明显的码本塌缩。
总结
这篇论文虽然属于推荐系统方向,但它背后的问题并不只属于推荐。
本质上,DIGER讨论的是一个更普遍的机器学习问题:当一个系统依赖离散中间表示时,这个表示究竟应该是预先学好后固定下来,还是应该跟着最终任务一起优化?
在生成式推荐里,这个问题落在语义ID上;在更广泛的场景中,它也可能对应离散token、latent code、结构化中间变量等。DIGER给出的答案是:只要训练机制设计得足够稳定,离散语义表示完全可以进入最终目标的优化闭环。
这也是DIGER超出单篇推荐论文意义的地方。它提供的,不只是一个新模型,也是一种重新思考「离散表示如何服务下游任务」的方法视角。
写在最后
生成式推荐过去几年发展很快,但很多工作默认接受了一个前提:语义ID先学好,再拿来用。DIGER提供了一种新的处理方式——让语义ID从静态索引,变成能够和推荐模型一起训练、一起优化的表示。
从论文结果来看,这条路线已经展现出明确价值:它能够缓解语义索引学习与推荐目标之间的不一致,提升训练稳定性,并在多个公开数据集上带来持续收益。对生成式推荐而言,这项工作补上的,确实是一块重要拼图。
参考资料:https://arxiv.org/abs/2601.19711
本文来自微信公众号“新智元”,编辑:LRST ,36氪经授权发布。















