一、TIGER [2023]

《Recommender Systems with Generative Retrieval》

  1. 现代推荐系统通过将 queriesitem candidates 嵌入到同一个统一空间中来执行大规模检索,然后通过 approximate nearest neighbor : ANN 搜索来选择给定 query embeddingtop candidates 。在本文中,我们提出了一种新颖的生成式检索(generative retrieval )方法,其中 retrieval model 自回归地解码 target candidates 的标识符(identifiers )。为此,我们创建了语义上有意义的 tuple of codewords ,作为每个 itemSemantic ID 。给定 user sessionitemsSemantic IDsTransformer-basedsequence-to-sequence 模型经过训练之后,可以预测用户将与之交互的 next itemSemantic ID

    我们表明,使用所提范式来训练的推荐系统在各种数据集上的表现都明显优于当前的 SOTA 模型。此外,我们表明,将 Semantic IDs 纳入 sequence-to-sequence 模型可增强其泛化能力,这一点可以从 items with no prior interaction history 的检索性能得到改善中看出。

  2. 推荐系统帮助用户发现感兴趣的内容,在视频、apps 、商品、以及音乐等各种推荐领域中无处不在。现代推荐系统采用 retrieve-and-rank 策略,在 retrieval 阶段选择一组可行的 candidates ,然后使用 ranker model 对其进行排序。由于 ranker model 只对所收到的 candidates 起作用,因此希望 retrieval 阶段提供高度相关的 candidates

    构建 retrieval 模型有标准且成熟的方法。矩阵分解(Matrix factorization: MF )在同一空间中学习 query embeddingscandidate embeddings 。为了更好地捕获数据中的非线性,双编码器(dual-encoder )架构(即一个塔用于 query ,另一个塔用于 candidate )使用内积从而将 query embeddingscandidate embeddings 嵌入到同一空间中,近年来变得流行起来。要在推理过程中使用这些模型,需要使用 candidate tower 创建一个存储所有 items 的索引。对于给定的 query ,使用 query tower 获得其 embedding ,并使用 Approximate Nearest Neighbor: ANN 算法进行检索。近年来,双编码器架构也得到了扩展,用于序列推荐(sequential recommendation ),这些推荐显式地考虑了 user-item interactions 的顺序。 我们提出了一种新范式来构建生成式检索模型从而用于序列推荐。我们的方法不使用传统的 query-candidate matching 方法,而是使用端到端的生成式模型,直接预测 candidate IDs 。我们建议利用 Transformer memory (parameters) 作为端到端的索引从而用于推荐系统中的检索,这让人想起 《Transformer memory as a differentiable search index》 使用 Transformer memory 进行 document retrieval 的做法。我们将我们的方法称为 Transformer Index for GEnerative Recommenders: TIGERTIGER 的高级概述如 Figure 1 所示。TIGER 的独特之处在于它具有一种称为 "Semantic ID"semantic representation of items ,即从每个 item 的内容信息中派生出的 a sequence of tokens 。具体来说,给定一个 item 的文本特征,我们使用 pre-trained text encoder (例如 SentenceT5 )来生成 dense content embeddings 。然后将量化(quantization )方案应用于 embedding of an item 以形成 ordered tokens/codewords 的集合,我们将其称为 itemSemantic ID 。最终,这些 Semantic IDs 用于在序列推荐任务上训练 Transformer 模型。

    items 表示为 a sequence of semantic tokens 有许多优点。在语义上有意义的数据上训练 Transformer memory 允许在 similar items 之间共享知识。这使我们能够放弃以前在推荐模型中用作 item featuresatomic and random item Ids 。使用 itemssemantic token representations ,该模型不太容易受到推荐系统中固有的 feedback loop 的影响,从而使模型可以推广到语料库中新添加的 items 。此外,针对 item representation 使用 a sequence of tokens,有助于缓解与 item corpus 规模相关的挑战:能够用 tokens 来表达的 items 的数量,等于序列中每个tokencardinality 的乘积。通常,item corpus size 可以达到数十亿的数量级,并且为每个 item 学习 unique embedding 可能会占用大量内存。虽然可以采用 random hashing-based 的技术来减少 item representation space ,但在本研究中,我们表明使用语义上有意义的 tokens 来用于 item representation 是一种有吸引力的替代方案。本研究的主要贡献总结如下:

    • 1):我们提出了 TIGER ,这是一种新颖的 generative retrieval-based 的推荐框架,它为每个 item 分配 Semantic IDs ,并训练一个检索模型来为给定用户预测可能与之交互的 itemSemantic ID

    • 2):我们表明,根据召回率和 NDCG 指标的衡量标准,TIGER 在多个数据集上的表现优于现有的 SOTA 推荐系统。

    • 3):我们发现,这种生成式检索的新范式为序列推荐系统带来了两种额外的能力:

      • a):能够推荐新 items 的和低频的 items ,从而改善冷启动推荐。

      • b):能够使用一个 tunable parameter 来生成多样化的推荐。

1.1 提出的框架

  1. 我们提出的框架包括两个阶段:

    • 1):使用内容特征生成 Semantic ID :这涉及将 item content features 编码为 embedding vectors ,并将 embedding 量化为 semantic codewords 的元组。生成的 codewords 的元组称为 itemSemantic ID

      如何评估第一阶段 Semantic ID 的质量?

    • Semantic ID 上训练生成式推荐系统:在序列推荐任务上使用 Semantic IDs 的序列训练一个 Transformer 模型。

1.1.1 Semantic ID Generation

  1. 在本节中,我们描述了 recommendation corpusitemsSemantic ID generation 过程。我们假设每个 item 都关联了内容特征,这些特征可以捕获有用的语义信息(例如标题、描述、或图像)。此外,我们假设我们可以访问一个 pre-trained content encoder 来生成 semantic embedding xRd。例如,通用的 pre-trained text encoders (如 Sentence-T5BERT )可用于转换 item 的文本特征以获得 semantic embedding 。然后,为每个 item 来量化 semantic embeddings 以生成 Semantic IDFigure 2a 给出了该过程的 high-level 概述。

  2. 我们将 Semantic ID 定义为长度为 mtuple of codewords 。元组中的每个 codeword 来自不同的 codebook 。因此,Semantic IDs 可以唯一表达的 items 数量等于 codebook sizes 的乘积。虽然生成 Semantic IDs 的不同技术会导致所生成的 Semantic IDs 具有不同的语义属性,但我们希望它们至少具有以下属性:相似的 items (具有相似内容特征、或者 semantic embeddings 接近的 items )应具有重叠(overlapping)的 Semantic IDs 。例如, Semantic ID (10, 21, 35)itemSemantic ID (10, 21, 40)item 之间的相似性,应该比 Semantic ID (10, 21, 35)itemSemantic ID (10, 23, 32)item 之间的相似性更加相似。接下来,我们讨论用于 Semantic ID generation 的量化方案。

  3. 用于 Semantic IDsRQ-VAEResidual-Quantized Variational AutoEncoder: RQ-VAE 是一种 multi-level vector quantizer ,它在残差(residuals)上应用量化(quantization )来生成 a tuple of codewords (又称 Semantic IDs )。Autoencoder 通过更新 quantization codebookDNN encoder-decoder parameters 进行联合训练。Figure 3 说明了通过 residual quantization 来生成 Semantic IDs 的过程。

    RQ-VAE 的输入是 embedding,该 embedding 是来自预训练好的模型。

    这里 DNN EncoderDNN Decoder 采用什么架构?论文实验部分采用的是 MLP

    • RQ-VAE 首先通过 encoder E 来对输入 x 进行编码,以学习 latent representation z=E(x)

    • 0-th leveld=0),初始残差(initial residual )简单定义为 r0=z。在每个 level d ,我们都有一个 codebook Cd={ek(d)}k=1K,其中 Kcodebook size 。然后,通过将 r0 映射到该 levelcodebook 的最近 embedding 来量化它。

      例如:

      • 对于 d=0,第零个 codewordc0=argminkr0ek(0),表示 C0 中最接近 r0 的索引。

      • 对于下一个级别 d=1 ,残差定义为 r1=r0ec0(0) 。第一个 codewordc1=argminkr1ek(1),表示 C1 中最接近 r1 的索引。

      • 对于下一个级别 d=2 ,残差定义为 r2=r1ec1(1) 。第二个 codewordc2=argminkr2ek(2),表示 C2 中最接近 r2 的索引。

      此过程递归重复 m 次,以获得表示 Semantic ID 的长度为 mtuple of codewords 。这种递归方法从粗到细的粒度来近似input 。请注意,我们选择对 m levels 中的每个 level 使用大小为 Kseparate codebook ,而不是使用一个共享的大小为 mKcodebook 。这样做是因为 residuals 的范数往往会随着 levels 的增加而下降,因此允许不同 levels 的不同粒度。

    一旦我们有了 Semantic ID (c0,,cm1) ,就可以计算出 zquantized representation z^=d=0m1ecd(d)。然后将 z^ 传递给 decoderdecoder 尝试使用 z^ 来重建 input xRQ-VAE loss 定义为:

    L(x)=Lrecon+LrqvaeLrecon=xx^2,Lrqvae=d=0m1[sg[rd]ecd(d)2+βrdsg[ecd(d)]2]

    其中:

    • x^decoderoutput

    • sg()stop-gradient 操作。

    loss 联合训练 encoderdecodercodebook

    《Soundstream: An end-to-end neural audio codec》 中所述,为了防止 RQ-VAE 出现 codebook collapse (即大部分 input 仅映射到少数 codebook vectors ),我们对 codebook 使用 k-means clustering-based 的初始化。具体来说,我们在第一个 training batch 上应用 k-means 算法,并使用质心(centroids )作为初始化。

  4. quantization 的其他替代方案:

    • 生成 Semantic IDs 的一个简单替代方法是使用局部敏感哈希 (Locality Sensitive Hashing: LSH )。我们在实验章节中进行了一项消融研究,发现 RQ-VAE 确实比 LSH 效果更好。

    • 另一种选择是分层地使用 k-means clustering ,但它会失去不同 clusters 之间的语义意义(semantic meaning )(《A neural corpus indexer for document retrieval》)。

    • 我们还尝试了 VQ-VAE ,虽然它在检索过程中 generating the candidates 的性能与 RQ-VAE 类似,但它失去了 IDshierarchical nature ,而 hierarchical nature 赋予了许多新能力,这些新能力将在实验章节中讨论。

  5. 处理冲突:根据 semantic embeddings 的分布、codebook size 的选择、以及 length of codewords ,可能会发生语义冲突 semantic collisions (即多个 items 可以映射到相同的 Semantic ID )。为了消除冲突,我们在有序的 semantic codes 的末尾附加一个额外的 token 以使其唯一。

    例如,如果两个 items 共享 Semantic ID (12, 24, 52) ,我们会附加额外的 tokens 来区分它们,将这两个 items 表示为 (12,24,52, 0)(12, 24, 52, 1) 。为了检测冲突,我们维护一个 lookup table ,将 Semantic IDs 映射到相应的 items 。请注意,在训练好 RQ-VAE 模型后,仅进行一次冲突的检测和修复。此外,由于 Semantic IDs 是整数元组,因此与高维 embeddings 相比,lookup table 在存储方面更高效。

1.1.2 Generative Retrieval with Semantic IDs

  1. 我们通过按时间顺序对用户交互的 items 进行排序来为每个用户构建 item sequences 。然后,给定形式为 (item1,item2,,itemn) 的序列,推荐系统的任务是预测 next item itemn+1 。我们提出了一种生成式方法,直接预测 next itemSemantic ID

    正式地,令 (ci,0,,ci,m1)itemi 的长度为 mSemantic ID 。然后,我们将 item sequence 转换为序列 (c1,0,,c1,m1,c2,0,,c2,m1,,cn,0,,cn,m1)。然后训练 sequence-to-sequence 模型来预测 itemn+1Semantic ID ,即 (cn+1,0,,cn+1,m1)。鉴于我们框架的生成式的性质,decoder 所生成的 Semantic ID 可能与 recommendation corpus 中的 items 不匹配。但是,正如我们在附录(Figure 6 )中所示,发生此类事件的概率很低。我们将在附录 E 中进一步讨论如何处理此类事件。

1.2 实验

  1. 数据集:我们在 Amazon Product Reviews 数据集中三个公开的真实的 benchmarks 上对所提出的框架进行了评估,其中包含 19965月至 20147 月的用户评论和 item metadata 。具体来说,我们将 Amazon Product Reviews 数据集的三个类别用于序列推荐任务:“美容”(Beauty )、“运动和户外”(Sports and Outdoors )、以及“玩具和游戏”(Toys and Games )。

    Table 6 总结了数据集的统计数据。我们使用用户的 review history 创建按时间戳排序的 item sequences ,并过滤掉评论数少于 5 的用户。遵循标准评估协议(《Self-attentive sequential recommendation》《Recommendation as language processing (rlp): A unified pretrain, personalized prompt & predict paradigm (p5)》),我们使用 leave-one-out 进行评估。对于每个 item sequence ,最后一个 item 用于测试,倒数第二个 item 用于验证,其余 items 用于训练。在训练期间,我们将用户历史行为序列中的 items 数量限制为 20 个。

  2. 评估指标:top-k Recall (Recall@K)Normalized Discounted Cumulative Gain (NDCG@K) ,其中 K=5,10

  3. RQ-VAE 的实现细节:如前所述,RQ-VAE 用于对 itemsemantic embedding 进行量化。我们使用 pre-trained Sentence-T5 模型来获取数据集中每个 itemsemantic embedding 。具体来说,我们使用 item 的内容特征(例如标题、价格、品牌、以及 category )来构造一个句子,然后将其传递给 pre-trained Sentence-T5 模型以获取 768 维的 item’s semantic embedding

    RQ-VAE 模型由三个组件组成:

    • 一个 DNN encoder :将 input semantic embedding 编码为 latent representation

    • residual quantizer :输出 quantized representation

    • 一个 DNN decoder:将 quantized representation 解码回 semantic input embedding space

    encoder 有三个中间层,大小分别为 512256128,具有 ReLU 激活函数,final latent representation 的维度为 32

    为了量化final latent representation,进行了三个级别的 residual quantization 。对于每个级别,我们维护一个 cardinality 256codebook ,其中 codebook 中的每个向量的维度为 32

    在计算 total loss 时,我们使用 β=0.25RQ-VAE 模型经过 20k epochs 的训练,以确保高的 codebook usage≥ 80% )。

    我们使用 Adagrad 优化器,学习率为 0.4batch size = 1024 。训练后,我们使用学到的 encoderquantization component 为每个 item 生成一个 3-tuple Semantic ID 。为了避免多个 items 被映射到同一个 Semantic ID ,我们为共享相同的 first three codewordsitems 添加一个 unique 4th code ,即与元组(7, 1, 4) 相关的两个 items 分别被分配为 (7, 1, 4, 0)(7, 1, 4, 1) (如果没有冲突,我们仍然将0 分配为第四个 codeword )。这会导致 recommendation corpus 中每个 item 都有一个长度为 4 的唯一的 Semantic ID

  4. Sequence-to-Sequence Model 实现细节:

    • 我们使用开源的 T5X 框架来实现基于 Transformerencoder-decoder 架构。

    • 为了允许模型处理序列推荐任务的输入,sequence-to-sequence 模型的 vocabulary 包含每个 semantic codewordtokens 。具体来说,vocabulary 包含 1024256 × 4 )个 tokens 来表示语料库中的 items

    • 除了 itemssemantic codewords 之外,我们还将 user-specific tokens 添加到 vocabulary 中。为了限制 vocabulary 的大小,我们只添加了 2000 tokens 用于 user IDs 。我们使用哈希技巧(Hashing Trick )将原始 user ID 映射到 2000 user ID tokens 之一。

    • 我们将输入序列构造为:user Id token ,后面跟着与给定用户的 item interaction history 相对应的 sequence of Semantic ID tokens 。我们发现,将 user ID 添加到输入中,可以让模型个性化 retrieved items

    • 我们对基于Transformerencoder and decoder models 分别使用 4 层,每层有 6self-attention heads,维度为 64 。我们对所有层都使用了 ReLU 激活函数。MLP 维度和 input 维度分别设置为 1024128

    • 我们使用了 0.1dropout

    • 总体而言,该模型有大约 13 million 个参数。

    • 我们针对 “美容” 和 “运动和户外” 数据集对该模型进行了 200k steps 训练。由于 “玩具和游戏” 数据集较小,因此仅进行了 100k steps 训练。我们使用的 batch size = 256 。前 10k steps 的学习率为 0.01 ,然后遵循平方根倒数的衰减计划。

1.2.1 序列推荐的效果

  1. baseline

    • GRU4Rec:是第一个基于 RNN 的方法,它使用定制的GRU 进行序列推荐任务。

    • Caser:使用 CNN 架构通过应用水平卷积和垂直卷积运算来捕获高阶马尔可夫链,从而用于序列推荐。

    • HGNHierarchical Gating Network 通过新的门控架构捕获长期用户兴趣和短期用户兴趣。

    • SASRecSelf-Attentive Sequential Recommendation 使用一个 causal mask Transformer 来建模用户的序列交互。

    • BERT4RecBERT4Rec 通过使用双向自注意力 Transformer 来解决单向架构的局限性,从而用于序列推荐任务。

    • FDSAFeature-level Deeper Self-Attention Network 除了 item embeddings 之外,还结合了 item features 作为 Transformersinput sequence 的一部分。

    • S3-RecSelf-Supervised Learning for Sequential Recommendation 提出在自监督任务上预训练一个双向的 Transformer 从而改进序列推荐。

    • P5P5是一种最近的方法,它使用 pretrained Large Language Model 将不同的推荐任务统一在单个模型中。

    值得注意的是,所有基线(P5 除外)都使用双编码器(dual encoder )学习高维向量空间,其中用户过去的 item interactionscandidate items 被编码为高维 representation ,并使用 Maximum Inner Product Search: MIPS 来检索用户可能与之交互的 next candidate item 。相比之下,我们新颖的生成式检索框架使用 sequence-to-sequence 模型直接 token-by-token 地预测 itemSemantic ID

  2. 我们对我们提出的 TIGER 在序列推荐任务上进行了广泛的分析,并与上述基线进行了比较。除 P5 之外,所有基线的结果均取自 《S3-rec: Self-supervised learning for sequential recommendation with mutual information maximization》提供的可公开访问的结果。对于 P5,我们使用作者提供的源代码。但是,为了进行公平的比较,我们更新了数据预处理方法,以与其他基线和我们的方法保持一致。我们在附录 D 中提供了更多详细信息。 结果显示在 Table 1 中。我们观察到 TIGER 的表现始终优于现有基线。我们看到我们考虑的所有三个基准都有显著的改进。特别是,与第二好的基线相比,TIGERBeauty 基准上的表现要好得多,与 SASRec相比,NDCG@5 提高了29%,与 S3-Rec 相比,Recall@5提高了17.3%。同样,在玩具和游戏数据集上,TIGERNDCG@5NDCG@10中分别提高了 21%15%

    我们在 Table 9 中显示,对于 TIGER ,指标的标准差并不显著。

  3. 附录 DP5 源代码对Amazon数据集进行预处理:首先为每个用户创建 sessions ,其中包含用户评论过的按时间顺序排列的 items 的列表。创建这些 sessions 后,数据集中的原始 item IDs 将重新映射到整数 1, 2, 3, ... 。因此,第一个 session 中的第一个 itemID“1” ,第二个 item (如果之前未见过)的 ID“2” ,依此类推。值得注意的是,此预处理方案在创建 training and testing splits 之前应用的。这将创建一个序列的数据集,其中许多序列的形式为 a, a + 1, a + 2, ... 。鉴于 P5 使用 Sentence Piece tokenizeruser session 中的 test and train items 可能会共享 sub-word ,并可能导致推理过程中的信息泄露。 为了解决泄漏问题,我们不再为 items 分配按顺序增加的整数 ID ,而是分配随机整数 ID ,然后创建 splits 以进行训练和评估。P5 的其余代码与论文中提供的源代码保持一致。此数据集的结果在 Table 7 中报告为 ‘P5’ 行。我们还从头开始自己实现了一个 P5 版本,并仅在序列推荐任务上训练模型。我们实施的结果被描述为 “P5-ours” 。我们还能够在 P5 实施中验证,使用 consecutive integer 的序列作为 item IDs 有助于我们获得与 P5 中报告的指标相同或更好的指标。

1.2.2 Item Representation

  1. 在本节中,我们将分析 RQ-VAE Semantic IDs 的几个重要特征。具体来说:

    • 我们首先进行定性分析,以观察 Semantic IDs 的层次特性(hierarchical nature )。

    • 接下来,我们通过与另一种 hashing-based quantization 方法进行性能对比,从而评估 using RQ-VAE for quantization 的设计选择的重要性。

    • 最后,我们通过将 TIGER 与使用 Random ID 进行 item representationsequence-to-sequence 模型进行比较,进行消融研究从而探讨 using Semantic IDs 的重要性。

  2. 定性分析:在 Figure 4 中,我们分析了针对 Amazon Beauty 数据集学到的 RQ-VAE Semantic IDs 。为了便于说明,我们将 RQ-VAE levels 数量设置为 3codebook size 分别为 416256。即,对于给定的一个 itemSemantic ID (c1,c2,c3)0c13,0c215,0c3255

    • Figure 4a 中,我们使用 c1 来标注每个 itemcategory ,从而在数据集的 overall category distribution 中可视化 c1-specificcategories 。如 Figure 4a 所示,c1 捕获 itemhigh-level category 。例如,c1=3 包含与“头发” (Hair )相关的大多数商品。类似地,c1=1 的大多 items 是用于面部、嘴唇和眼睛的“化妆品”(Makeup )和“皮肤” (Skin )的商品。

    • Figure 4b 中,我们还通过固定 c1 并针对 c2 所有 possible values 来可视化 category distribution 从而可视化 RQ-VAE Semantic IDs 的层次特性。

      我们再次发现第二个 codeword c2c1 所捕获的 high-level semantics 进一步分类为细粒度 categoriesRQ-VAE 学到的 hierarchical nature of Semantic IDs 开启了广泛的新能力,这些功能将在后续章节中讨论。与基于随机的原子的 IDs 上学习 item embeddings 的现有推荐系统相反,TIGER 使用 Semantic IDs,其中相似的 items 具有 overlapping codewords ,这使模型能够有效地从数据集中语义相似的items 来共享知识。

  3. Hashing vs. RQ-VAE Semantic IDs:我们通过将 RQ-VAE 与局部敏感哈希(Locality Sensitive Hashing: LSH )在 Semantic ID generation 方面进行比较来研究 RQ-VAE 在我们的框架中的重要性。LSH 是一种流行的哈希技术,可以轻松适应我们的 setting

    为了生成 LSH Semantic IDs ,我们使用 h 个随机的超平面 w1,,whembedding 向量 x 进行随机投影,并计算如下的二进制向量:(1w1x>0,,1whx>0) 。这个二进制向量然后被转换为一个 integer code ,即 c0=i=1h2i11wix>0。重复此过程 m 次,每次都使用独立的随机超平面,得到 mcodewords (c0,c1,,cm1),我们将其称为 LSH Semantic ID Table 2 中,我们将 LSH Semantic ID 的性能与我们提出的 RQ-VAE Semantic ID 进行了比较。在此实验中,对于 LSH Semantic IDs 我们使用了 h=8 以及 m=4 ,从而确保与 RQ-VAE 具有可比的 cardinality 。超平面的参数是从标准正态分布中随机采样的,这确保了超平面是球对称的。

    我们的结果表明,RQ-VAE 的表现始终优于LSH 。这说明,在给定相同的 content-based semantic embedding 的情况下,通过非线性的 Deep Neural Network: DNN 架构来学习 Semantic IDs ,要比使用随机投影可以产生更好的 quantization

  4. Random ID vs. Semantic ID:我们还评估了 Semantic IDs 在我们的生成式检索推荐系统中的重要性。具体来说,我们将随机生成的 IDsSemantic IDs 进行比较。为了生成 Random ID baseline ,我们为每个 item 分配 m 个随机的 codewordsitem 的长度为 mRandom ID(c1,,cm),其中 ci 是从 {1,2,,K} 中均匀随机采样的。对于 Random ID baseline ,我们设置 m=4K=255 ,从而确保与 RQ-VAE Semantic IDs 具有可比的 cardinality

    Table 2 显示了 Random IDRQ-VAE and LSH Semantic IDs 的比较。我们看到 Semantic IDs 的表现始终优于 Random ID baseline ,凸显了利用 content-based 的语义信息的重要性。

1.2.3 New Capabilities

  1. 我们描述了我们所提出的生成式检索框架直接产生的两个新能力,即冷启动推荐(cold-start recommendations )和推荐多样性(recommendation diversity )。我们将这些功能称为“新”,因为现有的序列推荐模型(参见前面实验章节中的 baselines )不能直接用于满足这些 real-world use cases 。这些能力源于 RQ-VAE based Semantic IDs 与我们框架的生成式检索方法之间的协同作用。我们将在以下章节中讨论如何在这些 settings 中使用 TIGER

  2. Cold-Start Recommendation :在本节中,我们将研究我们提出的框架的冷启动推荐的能力。由于现实世界 recommendation corpus 的快速变化性质,新 items 不断被引入。由于新添加的 itemstraining corpus 中缺乏 user impressions ,使用 random atomic ID 来表示 item 的现有推荐模型无法检索 new items 作为潜在的 candidates 。相比之下,TIGER 框架可以轻松执行冷启动推荐,因为它在预测 next item 时利用了 item semantics 对于该项分析,我们考虑了来自 Amazon ReviewsBeauty 数据集。为了模拟新添加的 items ,我们从 training data split 中删除了 5%test items 。我们将这些被删除的 items 称为 unseen items 。从 training split 中删除 items 可确保不存在关于 unseen items 的数据泄漏。与之前一样,我们使用长度为 4Semantic ID 来表示 items ,其中 first 3 tokens 是使用 RQ-VAE 来生成的,第 4token 用于确保所有 seen items 都存在一个独一无二的 ID 。我们在 training split 上训练 RQ-VAE quantizersequence-to-sequence 模型。训练完成后,我们使用 RQ-VAE model 为数据集中的所有 items 生成 Semantic IDs ,包括 item corpus 中的任何 unseen items 给定模型所预测的 Semantic ID (c1,c2,c3,c4),我们检索具有相同对应 IDseen item 。请注意,根据定义,模型所预测的每个 Semantic ID 最多可以匹配 training dataset 中的一个 item 。此外,具有相同 first three semantic tokens (即 (c1,c2,c3))的 unseen items 将包含在 retrieved candidates 的列表中。最后,在检索 top-K candidates 时,我们引入了一个超参数 ϵ,它指定了我们的框架选择的 unseen items 的最大比例。 Figure 5 中,我们在 cold-start recommendation setting 上比较了 TIGERk-Nearest Neighbors: kNN 方法的性能。对于 KNN ,我们使用 semantic representation space 来执行最近邻搜索。我们将 KNN-based baseline 称为 Semantic_KNN

    • Figure 5a 显示,对于所有 Recall@K 指标,我们的框架(ϵ=0.1 )始终优于 Semantic_KNN

    • Figure 5b 中,我们对各种 ϵ 值下我们的方法和 Semantic_KNN 进行了比较。对于所有 ϵ0.1settings ,我们的方法均优于基线。

  3. Recommendation diversity:虽然 RecallNDCG 是评估推荐系统的主要指标,但 predictions 的多样性是另一个关键目标。多样性较差的推荐系统可能不利于用户的长期 engagement 。在这里,我们讨论如何使用我们的生成式检索框架来预测多样化的 items 。我们表明,解码过程中 temperature-based sampling 可以有效地用于控制 model predictions 的多样性。虽然 temperature-based sampling 可以应用于任何现有的推荐模型,但由于 RQ-VAE Semantic IDs 的属性,TIGER 允许跨各个 levels of hierarchy 进行采样。例如,sampling the first token of the Semantic ID 允许从 coarse-level categories 中检索 items ,而 sampling a token from second/third token 允许 sampling items within a category

    我们使用 Entropy@K 指标来定量地测量 predictions 的多样性,其中 entropy 是根据模型所预测的 top-K itemsdistribution of the ground-truth categories 来计算的。我们在 Table 3 中报告了各种温度值的 Entropy@K 。我们观察到,解码阶段的 temperature-sampling 可有效用于增加 itemsground-truth categories 的多样性。我们还在 Table 4 中进行了定性分析。

1.2.4 消融研究

  1. 我们在 Table 5 中测量了当 sequence-to-sequence model 中改变层的数量时的效果。我们发现,随着网络规模的扩大,指标略有改善。我们还测量了提供 user information 的效果,结果列于 Table 8 中。

1.2.5 Invalid IDs

  1. 由于模型以自回归的方式解码 codewords of the target Semantic ID ,因此模型可能会预测无效的 IDs (即,未映射到 recommendation dataset 中任何 itemIDs )。在我们的实验中,我们使用长度为 4semantic IDs ,每个 codewordcardinality256 (即,每个 levelcodebook size = 256)。此组合能够覆盖的 possible IDs 数量为 2564,约为 4 trillion 。另一方面,数据集中我们所考虑的 items 的数量为 10K-20K (参见 Table 6 )。

    即使 valid IDs 的数量只是所有完整 ID space 的一小部分,然而我们观察到模型几乎总是预测 valid IDs 。在 Figure 6 中,我们将 TIGER 所生成的 invalid IDs 的比例可视化为 number of retrieved items K 的函数。对于 top-10 predictions (即,K=10 ),三个数据集中 invalid IDs 的比例从 ~0.1% − 1.6% 不等。为了抵消 invalid IDs 的影响并始终获得 top-10 valid IDs ,我们可以增加 beam size 并过滤 invalid IDs

  2. 值得注意的是,尽管生成了 invalid IDs ,但与其他用于序列推荐的流行方法相比,TIGER 实现了 SOTA 的性能。处理 invalid tokens 的一个扩展可能是:当模型生成了 invalid tokens 时候执行 prefix matchingPrefix matching of Semantic IDs 将允许我们检索出与模型生成的 tokens 相似语义含义的 items 。鉴于我们的 RQ-VAE tokenshierarchical natureprefix matching 可以被认为是模型预测 item category 而不是 item index 。请注意,这样的扩展可以进一步提高 recall/NDCG 指标。我们将这种扩展留作未来的工作。

附录 E:讨论

  1. Semantic ID length and codebook size 的影响:我们尝试改变 Semantic ID lengthcodebook size ,例如让 ID6 codewords 组成,每个 codebook 的大小为 64 。我们注意到,TIGER 的性能对这些变化很鲁棒。但是,请注意,input sequence length 会随着 ID 的增加而增加(即每个 item ID 需要更多的 codewords ),这使得 transformer-basedsequence-to-sequence 模型的计算成本更高。

  2. 可扩展性:为了测试 Semantic IDs 的可扩展性,我们进行了以下实验:我们将所有三个数据集组合起来,并为来自这三个数据集的entire set of items 生成 Semantic IDs 。然后,我们将这些 Semantic IDs 用于 Beauty 数据集上的推荐任务。我们将此实验的结果与仅从 Beauty 数据集来生成 Semantic IDs 的原始实验进行比较。结果列于 Table 10 中。我们发现这里的性能仅略有下降。

  3. 推理成本:尽管我们的模型在序列推荐任务上取得了显著的成功,但我们注意到,由于使用 beam search 进行自回归地解码,我们的模型在推理过程中的计算成本可能比 ANN-based 的模型更高。我们强调,优化 TIGER 的计算效率并不是这项工作的主要目标。相反,我们的工作开辟了一个新的研究领域:Recommender Systems based on Generative Retrieval 。作为未来工作的一部分,我们将考虑如下的方法:缩小模型、或探索其它方法来提高推理效率。

  4. lookup tables 的内存成本:我们为 TIGER 维护两个 lookup hash tables :一个 Item ID to Semantic ID table 、以及一个Semantic ID to Item ID table 。请注意,这两个表都只生成一次,然后冻结:它们是在 RQ-VAE-based Semantic ID generation model 完成训练后所生成的,之后,它们被冻结以进行 sequence-to-sequence transformer model 的训练。每个 Semantic IDa tuple of 4 integers 组成,每个整数以 8 bits 存储,因此每个 item 总共 32 bits 。每个 item 都由一个Item ID 来表示,存储为一个 32 bit integer 。因此,每个 lookup table 的大小将为 64N bits 的量级,其中 N 是数据集中 items 的数量。

  5. embedding tables 的内存成本:与传统推荐系统相比,TIGER 使用的 embedding tables 要小得多。这是因为传统推荐系统为每个 item 存储一个 embedding ,而 TIGER 仅为每个 semantic codeword 存储一个 embedding 。在我们的实验中,我们使用 4 codewords (每个 codewordcardinality256)来表示 Semantic ID ,从而得到 1024 embeddings1024 = 256×4 )。对于传统推荐系统,embeddings 的数量为 N ,其中 N 是数据集中 items 的数量。在我们的实验中,N 的范围从 10K20K,具体取决于数据集。因此,TIGERembedding table 的内存成本为 1024d ,其中 dembedding 的维度,而传统推荐系统中 embedding lookup tables 的内存成本为 Nd