proceedings.neurips.cc/paper_files…
github:
- EdoardoBotta/RQ-VAE-Recommender: [Pytorch] Generative retrieval model using semantic IDs from "Recommender Systems with Generative Retrieval"
- XiaoLongtaoo/TIGER: [Pytorch] Unofficial Implementation of "Recommender Systems with Generative Retrieval"
Summary
本文提出了一种名为 TIGER(Transformer Index for GEnerative Recommenders)的生成式检索推荐框架。该框架的核心是为每个物品创建语义ID,将序列推荐转化为生成式检索任务。通过基于 Transformer 的seq2seq模型预测下一个物品的语义ID。
Introduction
Traditional Method
- “检索 - 排序” 策略
- 检索阶段选择一组可行的候选物品,然后使用排序模型对这些候选物品进行排序
- 检索模型构建
- 矩阵分解架构
- 把“用户-物品交互”记录成一个矩阵
- 训练模型,让用户低维向量和物品低维向量内积预测用户对物品兴趣
- 双编码器架构(query tower+candidate tower)
- 利用候选塔创建一个存储所有物品嵌入的索引
- 使用查询塔获得query的嵌入
- 使用近似最近邻(ANN)算法进行检索
- 序列推荐
- Query Tower 是由用户的行为序列(点击、浏览、购买记录)编码成向量。
- 矩阵分解架构
Propose
- End2End预测物品id
- Transformer的记忆(参数)作为推荐系统中检索的E2E索引
- 为每个物品分配语义 ID,并训练检索模型预测用户可能交互的物品的语义 ID。。
- 给定物品的文本特征,使用预训练的文本编码器(SentenceT5)生成密集的内容嵌入。
- 对物品的嵌入应用量化方案,形成一组有序的标记 / 码字,我们将其称为物品的语义ID。
- 这些语义ID用于在序列推荐任务上训练Transformer模型。
- 优势:
- 解决传统推荐系统用“随机ID”表示物品,不具备语义,无法很好泛化且占用大量内存的问题
- 语义相似物品之间可以共享信息
- 直接预测下一个物品的语义 ID,无需大规模计算内积搜索
Framework
- 利用内容特征生成语义ID(物品的内容特征->嵌入向量->语义ID)(fig 2a)
- 基于语义 ID 训练生成式推荐系统
语义ID生成
语义 ID 定义
长度为P的码字元组,每个码字来自不同码本,能表示的物品数量为各码本大小乘积,且相似物品的语义ID应具有重叠性。
RQ-VAE 生成语义 ID
作为多级向量量化器,通过对残差进行量化生成语义 ID。
-
先编码输入得到潜在表示 z:=E(x)
-
再从 0 级开始递归计算残差并在对应码本中找到最接近嵌入,得到各码字(索引号);
- 量化过程一共m层,每层有独立codebook ,初始残差=z
- 第x层量化结果:,即为选中的codebook索引(codebook )
- 新的残差:(即为在索引为的embedding)
- 重复m次得到m个码字构成语义ID
- 每个codebook的大小可能不同且相互独立
-
同时通过特定损失函数联合训练编码器、解码器和码本,并采用 k-means 聚类初始化码本以防止码本崩溃。
- 将传给decoder重新生成x
- RQ-VAE 的损失为
- ,sg为stop gradient,sg[x]表示不更新x
- 码本崩溃:codebook 随机初始化,某些 codeword 可能一开始就离所有输入样本较远,采用k-means 聚类的码本初始化方法。
-
取出 第一个训练批次的潜在表示
-
对这些向量执行 k-means 聚类,将训练数据划分成K个簇
-
用这K个簇的质心作为 codebook 初始化
-
-
其他量化方案对比:LSH 表现不如 RQ-VAE,层次化 k-means 会丢失聚类间语义信息,VQ-VAE 缺乏 ID 的层次结构。
-
冲突处理:在有序语义码的末尾附加额外标记以确保唯一性。例如,若两个物品共享语义 ID(12, 24, 52),则将它们表示为(12, 24, 52, 0)和(12, 24, 52, 1)
2 基于语义 ID 的生成式检索
- 序列构建:按时间顺序整理用户的物品交互历史,形成物品序列。
- 生成式预测任务:将上述构建的物品序列,训练seq2seq模型直接预测下一个物品的语义 ID。
- 特殊情况说明:由于生成式框架的特性,可能出现生成的语义 ID 与语料库中物品不匹配的情况,e.g.:如果物品库中只有
(1, 5, 3)和(2, 4, 6)这样的 Semantic ID,模型有可能生成(1, 4, 6),这不是任何真实物品。(应对:)
实验(解释)
- 数据集选择:选取亚马逊产品评论数据集中的三个类别(“美妆”“运动与户外”“玩具与游戏”),这些数据集包含丰富的用户交互和物品元数据,能有效验证推荐模型在不同场景下的表现。
- 评估指标:采用 Recall@K 和 NDCG@K,其中 Recall@K 衡量模型检索到相关物品的能力,NDCG@K 则考虑了物品的相关性排序质量,两者结合可全面评估推荐性能。
- RQ-VAE 实现细节:
- 利用物品的内容特征(如标题、价格、品牌和类别)构建一个句子,然后将其输入预训练的 Sentence-T5 模型,得到 768 维的物品语义嵌入
- RQ-VAE 模型由三个部分组成:DNN 编码器、残差量化器,DNN 解码器。
- 编码器
- 三个中间层,大小分别为 512、256 和 128,采用 ReLU 激活函数,最终的潜在表示维度为 32。
- 残差量化:
- 为了量化该表示,我们进行三级残差量化。每一级都有一个基数K为 256 的码本,码本中的每个向量维度为 32。
- 计算总损失时,我们使用β=0.25。RQ-VAE 模型训练 20k 个 epoch,以确保较高的码本使用率(≥80%)。我们使用 Adagrad 优化器,学习率为 0.4,批大小为 1024。
- 训练完成后,使用学习到的编码器和量化组件为每个物品生成一个 3 元组的语义 ID。为避免多个物品映射到相同的语义 ID,我们为共享前三个码字的物品添加一个唯一的第 4 个码,例如,与元组(7,1,4)相关联的两个物品分别被分配为(7,1,4,0)和(7,1,4,1)(如果没有冲突,我们仍将第 4 个码字分配为 0)。这使得推荐语料库中的每个物品都有一个长度为 4 的唯一语义 ID。
- 序列到序列模型实现细节:
- 使用开源的 T5X 框架。
- 序列到序列模型的词汇表包含每个语义ID的标记,即 1024 个(256×4)来表示语料库中的物品。
- 我们还在词汇表中添加了 2000 个用户 ID 标记。
- 使用哈希技巧 将原始用户 ID 映射到 2000 个用户 ID 标记中的一个。
- 最终构建的输入序列:用户 ID 标记,后跟其交互物品的语义 ID 标记序列。
Performance
所有基线模型(除 P5 外)都使用双编码器学习高维向量空间,将用户过去的物品交互和候选物品编码为高维表示,并使用最大内积搜索(MIPS)检索用户可能交互的下一个候选物品。
物品表示
- 对于物品的某个语义 ID((c_1, c_2, c_3)),有(0 ≤ c_1 ≤ 3),(0 ≤ c_2 ≤ 15),(0 ≤ c_3 ≤ 255),分析各码字的语义
- 随机 ID 与 RQ-VAE 和 LSH 语义 ID 的比较
新能力
-
冷启动推荐能力
- 背景:现实中推荐语料库新物品不断增加,现有模型因新物品缺乏交互记录难以推荐,而 TIGER 利用物品语义信息可实现冷启动推荐。
- 实验设计:在 “美妆” 数据集上,移除 5% 测试物品作为未见过的新物品,训练模型后生成包括新物品在内的所有物品的语义 ID,通过超参数(\epsilon)控制新物品在推荐结果中的最大比例。
- 结果:TIGER 在不同设置下(尤其是≥0.1)时),在 Recall@K 指标上均优于基于语义空间近邻搜索的 Semantic_KNN 方法。
-
推荐多样性控制能力
- 背景:推荐多样性对用户长期参与很重要,TIGER 可通过解码时的温度采样控制推荐多样性。
- 机制:借助 RQ-VAE 语义 ID 的层次特性,可在不同层级采样(如粗粒度类别或类别内物品),基于温度的采样能调节多样性。
- 结果:通过 Entropy@K 指标可知,温度越高(如 T=2.0),预测物品的类别分布熵越大,多样性越高,定性分析也验证了这一点。
消融研究(翻译)
- 序列到序列模型中层数变化带来的影响:随着网络规模的增大,各项指标略有提升。
- 提供用户信息带来的影响
无效 ID
- 无效 ID 的产生原因:由于模型自回归解码语义 ID 的特性,可能生成无法对应数据集中任何物品的无效 ID,但这种情况发生的概率极低。
- 无效 ID 的比例:实验中语义 ID 组合涵盖的可能 ID 数量极大(约 4 万亿),而数据集物品仅 1 万 - 2 万,即便如此,top-10 预测中无效 ID 比例仅为 0.1%-1.6%。
- 处理方式:可通过增大束搜索大小并过滤无效 ID,确保获取有效的 top-K 推荐结果;未来可探索前缀匹配扩展方法,利用语义 ID 的层次结构检索相似语义物品,进一步提升性能。
- 结论:尽管存在无效 ID,TIGER 仍能保持最先进的推荐性能,且无效 ID 问题可通过简单方法缓解。