SIGIR 2025 多tokenizer的生成式推荐 MTGRec
文章目录
- 1. 背景
- 2. 方法
- 2.1 任务定义
- 2.2 MTGRec 框架
- 2.3 多标识符编码
- 2.3.1 RQ-VAE
- 2.3.2 语义相关的 Tokenizer
- 2.3.3 如何使用多 token 序列
- 2.4 课程式生成器训练
- 2.4.1 量化数据影响力
- 第一步:用一阶泰勒展开估算验证损失变化
- 第二步:结合 Adam 优化器推导出参数更新量
- 第三步:定义“数据影响力”公式
- 第四步:多次迭代取平均,得到稳定估计
- 2.4.2 基于数据影响力的动态采样机制
- 2.5 微调与推理
- 3. 实验
- 4. 总结
这篇文章《Pre-training Generative Recommender with Multi-Identifier Item Tokenization》是 SIGIR 2025 的一篇关于 生成式推荐的文章。主要针对两个问题:1. 冷门商品建模不好。2. 训练数据不够多样。生成式推荐目前一般都是两个阶段:第一阶段训练 Item tokenizer。第二阶段训练生成器。作者大概的思路是: 第一阶段:训练多个 tokenizer,之前的生成式推荐一般只有一个 tokenizer 然后对应一个 2/3 层的 codebook ,将一个 item --> token_0, token_1, token_2,然后作者这里就通过训练多个 tokenizer。 第二阶段:利用不同的 tokenizer 生成多个 token 序列版本, “每个用户行为序列 x 多个 tokenizer = 多组训练数据”,然后通过基于梯度的数据影响力评估 + 动态采样策略,让模型优先从质量高的数据学习。整体看来思想有点像 MoE。
论文地址:https://arxiv.org/pdf/2504.04400
1. 背景
尽管生成式推荐取得一些进展,但目前主流做法仍然有一个很大的限制:每个 item 只能对应唯一 token 序列。
这样会带来两个问题:
-
数据系数,长尾分布问题:用户交互数据本身就存在“热门商品很集中,冷门商品数据很少”的问情况,这种情况对应到 token 序列上就是:冷门商品对应的 token 出现频率低、学不到语义,导致推荐效果不好。
这篇文章第一阶段的 item encoder 采用的也是文本编码器(Sentence-T5),并不以来交互频率,刚开始有点疑惑:既然文本编码器给每个 item 都生成了 embedding,为什么会有“冷门商品学不好”的问题。其实本质原因:问题不在于有没有 embedding,而在于 embedding 的 token 被训练器看到的机会有多少。文本编码器生成 embedding 是静态的。每个 item 都会通过文本编码器得到一个向量,不管它是不是热门,所以 embedding 本身是人人平等的。但是 token 是由 embedding 经过 RQ-VAE 量化出来的 --> 是需要训练的。RQ-VAE 需要学会如何把 embedding 映射成离散的 token (语义 ID)。如果一个 item 在训练数据中很少出现,它对应的 embedding 被看到的次数就少,那么 RQ-VAE 中对它的 token 映射就缺乏监督信号,很可能映射的不准。
-
缺乏多样性,训练数据单调:一个用户行为序列只有唯一 token 序列可供训练,比起 LLMs 中丰富的 token 组合,这种一对一方式太“单一”,数据不够多样,模型可学的信息量小,无法通过扩大模型来提升性能。
为解决上述两个问题,作者的思路是:让一个商品有多名字。每个商品可以有多个 token 序列。形成多标识符映射(multi-identifier)。
这样做有两个优点:
- token 曝光频率提高,语义学习更充分。同一个商品有多个 token 序列,它们会更频繁的出现在训练中。这些 token 也更有机会在其他商品中复用,token 被共享使用,提高语义一致性。也就是:token 更活跃,更有语义,模型理解更好。
- 用户行为序列可扩展成多个 token 序列。一个用户行为序列可以被不同 tokenizer 转化为多个版本,相当于用不同“翻译风格”来理解用户行为。训练数据多样性大大增强,模型能学得更多、更稳健。
要真正实现上面目标并不简单,作者接下来要解决两个核心难题:
- 怎么获取多个“语义相关”的 tokenizer ?多个 tokenizer 必须 “风格不同但语义一致”,否则就是噪声。
- 怎么用这些多 tokenizer 的输出来训练推荐器?多版本数据怎么组合使用?要设计合理的训练机制。
2. 方法
2.1 任务定义
在生成式推荐任务中,我们将传统的序列推荐建模为一个 序列到序列(Sequence-to-Sequence)生成问题。给定一个用户的历史行为序列 S = [ v 1 , v 2 , . . . , v t ] S = [v_1, v_2, ..., v_t] S=[v1,v2,...,vt],目标是预测用户可能感兴趣的下一个商品 v t + 1 v_{t+1} vt+1。
与传统方法使用唯一商品 ID 不同,生成式推荐采用 token 序列(token sequence) 作为商品的表示。每个商品 v v v 由一个 item tokenizer T T T 映射为一个长度为 H H H 的 token 序列:
T ( v ) = [ c 1 , c 2 , . . . , c H ] T(v) = [c_1, c_2, ..., c_H] T(v)=[c1,c2,...,cH]
整个用户历史序列 S S S 也被转化为对应的 token 序列 X X X,目标是通过模型自回归地生成下一个商品 v t + 1 v_{t+1} vt+1 的 token 表示 Y Y Y。形式上,这一生成过程可表示为:
P ( Y ∣ X ) = ∏ h = 1 H P ( c h t + 1 ∣ X , c 1 t + 1 , . . . , c h − 1 t + 1 ) P(Y \mid X) = \prod_{h=1}^{H} P(c^{t+1}_h \mid X, c^{t+1}_1, ..., c^{t+1}_{h-1}) P(Y∣X)=h=1∏HP(cht+1∣X,c1t+1,...,ch−1t+1)
该框架为推荐任务引入了更丰富的语义表达与更强的生成能力,是近年来生成式推荐方法的重要基础。
2.2 MTGRec 框架
图 1 展示了 MTGRec 的整体方法框架,其核心在于引入了多标识符编码(Multi-Identifier Tokenization)与数据课程学习机制(Data Curriculum Learning)来增强生成式推荐的训练效果。首先,给定一个用户的历史交互序列,模型通过多个训练轮次(epoch)保存下来的 RQ-VAE 模型参数构建出多个语义相近但表达方式各异的 tokenizer(T₁ 至 Tₙ)。这些 tokenizer 会对同一个商品序列编码,得到多个不同的 token 表示版本,从而显著增强了训练数据的多样性。接下来,系统将所有由不同 tokenizer 所生成的 token 序列用于模型训练,其中一部分用于正式训练(Train Data),另一部分用于评估数据质量(Valid Data)。在课程式学习阶段,模型通过对不同 token 数据组计算一阶梯度近似,估算其对模型优化的“贡献度”或“有效性”,进而用 softmax 函数计算每个 tokenizer 的采样概率。这个过程实现了一个动态的数据调度机制:高质量的数据(即来自贡献度高的 tokenizer)将更频繁地用于训练,低质量数据则被抑制。最终,训练好的生成式推荐器将在这种课程指导下学习如何根据用户历史的 token 序列,自回归地生成目标商品的 token 序列。整个系统既保留了多标识符带来的表达丰富性,又通过课程机制有效避免了噪声过多带来的训练干扰,从而实现更精准、可扩展的推荐效果。
2.3 多标识符编码
Multi-Identifier Item Tokenization 模块的目标是将一个 item 序列 映射成多个不同版本的 token 序列,从而提升训练数据的丰富性和多样性。具体而言分三个部分:
- 使用可学习的 RQ-VAE 作为基础编码器:RQ-VAE 是用于将商品的语义向量转化为离散 token 的关键模型结构,能够将每个商品编码成 token 序列。
- 从训练过程中相邻 epoch 中选取多个 tokenizer:为了获得多个语义相关但风格各异的 token 表达方式,作者从训练过程中保存的多个模型 checkpoint 中提取不同版本的 RQ-VAE。这些版本训练时间相近,具有语义相关性,能提供“有差异但不冲突”的多样编码方式。
- 使用这些 tokenizer 对同一商品进行多重编码:这样就能将同一商品序列生成多个不同版本的 token 序列,用于后续生成式推荐训练。
2.3.1 RQ-VAE
RQ-VAE 是一种神经网络结构,主要作用是将连续的 item 表示(向量)压缩成一组离散的代码(token)。它的职责是:
将每个商品的语义向量(例如通过 Sentence-T5 提取的文本 embedding)转化为一个固定长度的 token 序列,供生成式推荐模型使用。
首先,给定一个商品的语义表示向量 z z z,RQ-VAE 会将其编码为一个中间向量 r r r。接下来, r r r 会被转化为离散 token,这一过程称为残差量化(Residual Quantization),它会分 H H H 层(一般为 2 或 3 层)逐层进行。
在第 h h h 层,模型会使用一个码本(codebook) C h = { e k h } k = 1 K \mathcal{C}^h = \{ e_k^h \}_{k=1}^K Ch={ekh}k=1K,其中每个 e k h e_k^h ekh 是一个可学习的向量(类似“词表”中的词)。每层量化分两步:
-
查找最近的中心向量:
c h = arg min k ∥ r h − e k h ∥ 2 2 c_h = \arg\min_k \| r_h - e_k^h \|_2^2 ch=argkmin∥rh−ekh∥22 -
更新残差向量:
r h + 1 = r h − e c h h r_{h+1} = r_h - e_{c_h}^h rh+1=rh−echh
通过 H H H 层后,我们将原始表示 r r r 分解为 H H H 个 token,对应于每层选中的码本向量。最终量化后的表示为:
r ~ = ∑ h = 1 H e c h h \tilde{r} = \sum_{h=1}^H e_{c_h}^h r~=h=1∑Hechh
解码与损失函数设计:
RQ-VAE 的目标是构建一个能够实现“压缩 → 解码还原”的流程,使得量化后的表示仍保留原始语义。
首先,使用量化向量 r ~ \tilde{r} r~ 去还原原始语义向量 z z z,得到重建向量 z ^ \hat{z} z^。整个模型的损失函数由以下两部分组成:
-
重建误差(Reconstruction Loss):
L recon = ∥ z − z ^ ∥ 2 2 \mathcal{L}_{\text{recon}} = \| z - \hat{z} \|_2^2 Lrecon=∥z−z^∥22 -
量化误差(Residual Quantization Loss):
L rq = ∑ h = 1 H ∥ sg [ r h ] − e c h h ∥ 2 2 + β ∥ r h − sg [ e c h h ] ∥ 2 2 \mathcal{L}_{\text{rq}} = \sum_{h=1}^{H} \| \text{sg}[r_h] - e_{c_h}^h \|_2^2 + \beta \| r_h - \text{sg}[e_{c_h}^h] \|_2^2 Lrq=h=1∑H∥sg[rh]−echh∥22+β∥rh−sg[echh]∥22
其中 sg [ ⋅ ] \text{sg}[·] sg[⋅] 表示 stop-gradient 操作,防止梯度反向传播干扰编码器。超参数 β \beta β 用于平衡两个子项,通常设为 0.25。
最终,RQ-VAE 的总损失为:
L T = L recon + L rq \mathcal{L}_{\text{T}} = \mathcal{L}_{\text{recon}} + \mathcal{L}_{\text{rq}} LT=Lrecon+Lrq
这个机制确保了生成的 token 不仅具有良好的语义表达力,还能被模型高效学习与使用,是实现多标识符 tokenization 的关键模块。
2.3.2 语义相关的 Tokenizer
为实现多标识符编码,MTGRec 需要构建多个能够为同一商品生成不同 token 序列的 tokenizer。一个直观的做法是独立训练多个 RQ-VAE 模型,并以此作为不同的 tokenizer。但这种方式存在严重问题:由于这些模型是随机初始化、独立训练的,它们在语义空间中可能相互偏离,所生成的 token 序列风格不一致、语义冲突,缺乏统一性和可共享性。为解决这一问题,作者提出了一种高效且自然的方法:将同一个 RQ-VAE 模型在训练过程中不同 epoch 的中间模型(checkpoint)作为多个 tokenizer 使用。由于这些 checkpoint 来自同一训练轨迹,初始化一致、演化连续,因此在保持一定语义相关性的同时,也能提供适度的风格多样性。最终,我们从最后的 n n n 个 epoch 中选取多个模型,构成语义相关的 tokenizer 集合 T = T ϕ N − n + 1 , . . . , T ϕ N \mathcal{T} = {T_{\phi^{N-n+1}}, ..., T_{\phi^N}} T=TϕN−n+1,...,TϕN,用于对每个商品进行多样化的 token 编码。这种方式既保证了不同 token 表达之间的语义一致性,又引入了必要的多样性,是构建高质量训练数据的关键策略。
感觉这个思路也太简单了。
2.3.3 如何使用多 token 序列
在获得多个语义相关的 tokenizer 后,MTGRec 会将每个用户的历史行为序列和目标商品分别通过这些 tokenizer 编码,生成多个版本的 token 序列。然而,为了避免数据量爆炸和训练调度困难,作者并不直接使用所有生成的 token 组合进行训练,而是采用一种高效的近似策略:在每次训练中,仅从所有版本中随机采样一组 token 序列进行训练。通过多轮采样,模型能够充分接触到不同的编码版本,从而实现数据增强的效果而无需承担完整数据扩增的开销。这也为后续的数据课程机制提供了基础,使得采样过程可以根据不同 token 序列的训练贡献进行优化调整。
感觉这就像是 MoE 中有 n 个专家,然后每次只使用 1 个专家。
2.4 课程式生成器训练
2.3.3 中虽然说了:每次训练中,仅从所有版本中随机采样一组 token 序列进行训练。但是面对如此多样的 token 序列,我们应该选那些用于模型训练?每种 “版本” 应该训练多少次?MTGRec 设计课程式学习策略,核心思想是:通过评估每组数据的 “训练贡献”,来决定那些数据更值得学习,那些数据可以少学。
实现方式分为两步:
- 评估每个 tokenizer 生产的数据对训练的 “影响力”:通过一阶梯度近似(first-order gradient approximation)来计算不同 token 序列对模型优化的贡献程度。可以理解为:训练时,看看某组数据有没有推动模型参数朝 “好方向” 更新。
- 动态调整采样概率:有贡献的数据,采样概率提升;影响小或冗余的数据,采样概率下降;最终实现 “偏向有价值的数据学习”,提升训练效率和模型效果。
2.4.1 量化数据影响力
我们有多个 tokenizer(T₁、T₂、…),每个 tokenizer 会生成一组训练数据(token 序列)。我们想知道:
哪组数据对模型更有帮助?
哪些数据应该被“多学”,哪些应该“少学”?
为此,MTGRec 引入了一个度量:数据影响力(data influence),表示某组数据在训练中对模型提升的“实际贡献”。
思路核心:用验证集来判断训练数据的贡献
“如果用了某一组训练数据,它能让验证集上的表现变好,那它就是有用的数据。”
因此,关键就是看某组训练数据 D train i \mathcal{D}_{\text{train}}^i Dtraini 对验证集损失的改善程度。
第一步:用一阶泰勒展开估算验证损失变化
用数学方式估计训练后的验证损失变化,公式如下:
L ( D v a l ; θ t + 1 ) ≈ L ( D v a l ; θ t ) + ∇ L ( D v a l ; θ t ) ⋅ ( θ t + 1 − θ t ) \mathcal{L}(\mathcal{D}_{val}; \theta^{t+1}) \approx \mathcal{L}(\mathcal{D}_{val}; \theta^t) + \nabla \mathcal{L}(\mathcal{D}_{val}; \theta^t) \cdot (\theta^{t+1} - \theta^t) L(Dval;θt+1)≈L(Dval;θt)+∇L(Dval;θt)⋅(θt+1−θt)
含义解释:
- 左边是:训练后验证集的损失
- 第一项是:训练前验证集的损失
- 第二项是:模型参数变化引起的损失变化估计(梯度乘以参数更新量)
第二步:结合 Adam 优化器推导出参数更新量
因为训练模型时用的是 Adam 优化器,作者基于 Adam 的规则推导出参数变化 ( θ t + 1 − θ t ) (\theta^{t+1} - \theta^t) (θt+1−θt) 的表达式,涉及一阶/二阶动量( m t m^t mt、 v t v^t vt)和学习率 η t \eta_t ηt。这些都是常见的训练超参,默认值一般为 0.9 和 0.999。
重要的是,这一步提供了一个表达:训练数据的梯度影响了参数更新,而参数更新又影响了验证损失。
第三步:定义“数据影响力”公式
综合前面的梯度信息,作者定义了第 t t t 步时,第 i i i 个 tokenizer 对训练的影响力为:
I ( T i ; θ t ) = η t ⋅ ∇ L ( D v a l ; θ t ) ⋅ Γ ( D t r a i n i ; θ t ) I(T_i; \theta^t) = \eta_t \cdot \nabla \mathcal{L}(\mathcal{D}_{val}; \theta^t) \cdot \Gamma(\mathcal{D}_{train}^i; \theta^t) I(Ti;θt)=ηt⋅∇L(Dval;θt)⋅Γ(Dtraini;θt)
其中:
- Γ ( D t r a i n i ; θ t ) \Gamma(\mathcal{D}_{train}^i; \theta^t) Γ(Dtraini;θt) 表示基于 Adam 的训练数据梯度
- ∇ L ( D v a l ; θ t ) \nabla \mathcal{L}(\mathcal{D}_{val}; \theta^t) ∇L(Dval;θt) 是验证集损失的梯度
- η t \eta_t ηt 是学习率
直观理解就是:
如果这组训练数据引起了很强的参数更新,且这个更新方向对验证集有利(梯度同向),那这组数据就是“有效”的。
第四步:多次迭代取平均,得到稳定估计
因为训练是分多步进行的,作者进一步对多个训练 checkpoint 的影响进行累加平均:
I ~ ( T i ) = ∑ k = 1 K I ( T i ; θ k ) \tilde{I}(T_i) = \sum_{k=1}^K I(T_i; \theta_k) I~(Ti)=k=1∑KI(Ti;θk)
这就得到一个稳定的、整体的 tokenizer 影响力评价。
最终效果与用处
通过这种方式,MTGRec 就可以:
- 评估每组训练数据(即每个 tokenizer 输出)的质量;
- 动态调整采样比例:谁影响力大,就优先学习谁。
这就实现了“课程式训练”的智能调度机制 —— 训练过程中,模型会越来越倾向于使用有用的数据。
这里可以简单理解:假设你有 5 个老师(tokenizer),每节课只能听一个人讲:
你听一节课,就去考一张测试卷(验证集);谁讲完你考试分数提高最多,你就记录一下这个老师的贡献;你多次测试后,发现某个老师讲的特别对你胃口,以后就更多听他的课。
存在问题:
这样没法横向比较?也就是比如听了这节课,如果测试,效果不好,可能是这个老师讲的不好,但也可能别的老师讲完你成绩更差。这个不知道是否可以改善?
当然多步累计,取趋势,确实能减少这个问题。
2.4.2 基于数据影响力的动态采样机制
在 MTGRec 中,通过多标识符 tokenization 得到了多个不同版本的 token 序列,这些序列构成了训练数据的多个“视角”。然而,并不是所有版本的数据对模型训练都是同等有用的。为了让模型在训练过程中优先学习“高质量”的数据,MTGRec 引入了课程式训练机制(Curriculum Pre-training)。
其核心思想是:动态调整每组数据(即每个 tokenizer 所生成的 token 序列)的采样概率,使模型逐渐聚焦于训练效果最好的数据组。
整个训练被划分为多个阶段(stages),每个阶段包含若干个训练 epoch。在每个阶段的末尾,系统会根据当前模型的表现评估各组数据的“训练贡献”,即数据影响力(data influence),并据此更新下一阶段中每个 tokenizer 的采样概率。这样,模型在训练过程中会越来越倾向于使用那些带来性能提升的数据,而抛弃那些训练价值较低的序列。
具体而言,设第 k k k 阶段模型的参数为 θ k \theta_k θk,第 i i i 个 tokenizer 的累计数据影响力为 I ~ k ( T i ) \tilde{I}_k(T_i) I~k(Ti),那么其更新方式为:
I ~ k ( T i ) = I ~ k − 1 ( T i ) + I ( T i ; θ k ) \tilde{I}_k(T_i) = \tilde{I}_{k-1}(T_i) + I(T_i; \theta_k) I~k(Ti)=I~k−1(Ti)+I(Ti;θk)
其中 I ( T i ; θ k ) I(T_i; \theta_k) I(Ti;θk) 是该 tokenizer 在当前阶段被采样时所估计出的“数据贡献度”,具体计算方式在前面章节已有介绍。
随后,使用 softmax 函数将累计影响力归一化为采样概率:
p i k = e I ~ k ( T i ) / τ ∑ j = 1 n e I ~ k ( T j ) / τ p_i^k = \frac{e^{\tilde{I}_k(T_i)/\tau}}{\sum_{j=1}^n e^{\tilde{I}_k(T_j)/\tau}} pik=∑j=1neI~k(Tj)/τeI~k(Ti)/τ
其中, τ \tau τ 是温度系数,用于调节采样概率的分布平滑程度。较小的 τ \tau τ 会让采样更偏向于高影响力的 tokenizer,而较大的 τ \tau τ 会使采样更为均匀。
在训练的下一阶段 ( k + 1 ) (k+1) (k+1) 中,MTGRec 会根据这个分布来从 tokenizer 集合 T = T 1 , . . . , T n \mathcal{T} = {T_1, ..., T_n} T=T1,...,Tn 中采样一个 tokenizer T i T_i Ti:
T ∼ T , P ( T = T i ) = p i k T \sim \mathcal{T}, \quad P(T = T_i) = p_i^k T∼T,P(T=Ti)=pik
然后用该 tokenizer 对输入序列 S S S 和目标商品 v t + 1 v_{t+1} vt+1 进行编码,生成训练数据:
X = T ( S ) , Y = T ( v t + 1 ) X = T(S), \quad Y = T(v_{t+1}) X=T(S),Y=T(vt+1)
最终,编码后的 token 序列 X X X 和 Y Y Y 被送入生成式推荐器中,通过最大化目标 token 的生成概率来优化模型。具体的训练目标为标准的负对数似然损失(NLL):
L ( X , Y ) = − ∑ h = 1 H log P ( c h t + 1 ∣ X , c 1 t + 1 , … , c h − 1 t + 1 ) \mathcal{L}(X, Y) = -\sum_{h=1}^{H} \log P(c_h^{t+1} \mid X, c_1^{t+1}, \dots, c_{h-1}^{t+1}) L(X,Y)=−h=1∑HlogP(cht+1∣X,c1t+1,…,ch−1t+1)
这种课程式训练策略并不会显式增加模型参数或训练复杂度,而是通过训练过程中不断更新的采样概率,引导模型学习过程中更关注那些“真正有用”的数据视角,从而在不增加太多成本的前提下提升了训练效率和推荐性能。
2.5 微调与推理
在实际部署中,生成式推荐系统必须能够将输出的 token 序列准确还原为对应的商品(item)。也就是说,系统中的 item 和其表示(token sequence)之间,最终必须满足一一对应关系(one-to-one mapping),否则就无法进行有效推荐。
然而在 MTGRec 的预训练阶段,为了增强数据多样性,我们采用了多个 tokenizers 对同一个商品进行多种形式的编码。这样就会出现一种情况:同一个商品可能对应多个不同的 token 序列标识符(比如 T₁(v)、T₂(v)、…、Tₙ(v))。这虽然对训练阶段有利,但在实际使用时会带来歧义。
为了解决这个问题,MTGRec 在预训练完成后会进行一个微调步骤(fine-tuning):
分别基于每一个 tokenizer,对预训练好的生成推荐模型进行微调,并在验证集上评估性能,最终选出表现最好的那个 tokenizer 对应的模型版本,作为实际部署和测试用的推荐器。
这样,最终推荐模型只使用一个确定的 tokenizer,从而恢复了推荐系统中商品与 token 序列之间的唯一映射关系。
疑惑:这个最佳的 tokenizer 是否无法在量化数据影响力的步骤确定,必须得添加这样的一个步骤么?
在推理(预测)阶段,MTGRec 的目标是:从所有商品中生成 top-K 个推荐结果。为此,它使用了 beam search(束搜索)方法,从生成模型中一步步解码出可能的 token 序列,然后将这些序列映射回商品。
需要注意的是,与一些其它方法不同,MTGRec 没有使用前缀树(prefix tree) 来限制 token 解码路径。原因是前缀树虽然可以提前剪枝提高精度,但会限制并行解码的能力,反而降低了推荐效率。
对于那些偶尔出现的非法 token 序列(即找不到对应商品的 identifier),系统会直接忽略,这种情况很少发生,并不会对整体性能造成实质影响。
3. 实验
这里只放一个主要的实验结果了,具体细节可以参考原文。
表格展示了 MTGRec 与多种传统和生成式推荐模型在三个公开推荐数据集(Instrument、Scientific 和 Game)上的综合表现,评估指标包括 Recall@5、Recall@10、NDCG@5 和 NDCG@10。对比对象涵盖了传统序列推荐模型(如 SASRec、FMLP-Rec、HSTU 等),以及近期提出的生成式推荐方法(如 TIGER、LETTER、TIGER++)。
从实验结果来看,MTGRec 在所有数据集和评估指标上都取得了最优性能,并在多个指标上相较于最强对手 TIGER++ 实现了明显提升。例如,在 Instrument 数据集上,MTGRec 的 Recall@10 达到 0.0635,相比 TIGER++ 的 0.0588 提高了 7.99%;NDCG@10 上也从 0.0316 提升至 0.0346,增长 9.49%。类似地,在 Scientific 和 Game 数据集中,MTGRec 分别带来 11.58% 和 8.75% 的 NDCG@5 提升。
进一步分析传统推荐方法,我们可以看到如 FMLP-Rec、HSTU 等模型在改进网络结构后超过了经典的 SASRec;而 FDSA 和 S³-Rec 则引入辅助的文本信息或自监督机制,在部分数据集上有不错表现,说明加入多模态特征(如文本)对推荐任务确实有正面作用。
在生成式推荐方法中,TIGER++ 的表现优于原始 TIGER,得益于其对 RQ-VAE 的优化,如表示白化(whitening)和 EMA 更新。LETTER 进一步引入协同信号(collaborative signals)和多样性正则,缓解了 RQ-VAE 的编码偏差,在某些指标上优于 TIGER++。
然而,MTGRec 通过多 tokenizers 数据增强和基于影响力的课程式训练策略,显著扩展了训练数据的多样性和有效性,使生成推荐器能够更好地泛化和建模复杂的用户行为序列。因此,其在整体效果上超越了所有基线方法,兼具效果提升和可扩展性,验证了其提出方法的有效性与先进性。
4. 总结
总体来说这篇文章的核心就是保留 RQ-VAE 训练的多个 checkpoint 然后把他们都利用起来。通过这种方式捕捉多样化的 token 表达。