一、BreakingHourglass [2024]

《Breaking the Hourglass Phenomenon of Residual Quantization: Enhancing the Upper Bound of Generative Retrieval》

  1. 生成式检索(Generative Retrieval: GR)已成为搜索和推荐系统中的变革性范式,其利用 numeric-based 的 identifier representations 来提升效率和泛化能力。值得注意的是,诸如 TIGER 等方法采用 Residual Quantization-based Semantic Identifiers: RQ-SID ,通过有效管理 item IDs,在电子商务场景中展现出了巨大潜力。然而,RQ-SID 中存在一种关键问题,称为“沙漏”("Hourglass")现象——中间层码本 tokens(intermediate codebook tokens)过度集中,这阻碍了生成式检索方法的充分利用。本文通过识别路径稀疏性(path sparsity)和长尾分布(long-tailed distribution)为主要成因,对该问题进行了分析并提出解决方案。通过全面的实验和详细的消融研究,我们分析了这些因素对码本利用率(codebook utilization )和数据分布的影响。研究结果表明,“沙漏” 现象显著影响了生成式检索中 RQ-SID 的性能。我们提出了有效的解决方案来缓解这一问题,从而显著提升了生成式检索在实际电子商务应用中的效果。

  2. 近年来,生成式检索(Generative Retrieval: GR)作为一种突破性的检索范式逐渐兴起,在推荐系统、搜索问答、以及电子商务检索等搜索和推荐领域取得了重大进展。在该范式中,target items 首先被表示为identifiers(例如数字、子词 subwords、n-grams、token IDs 、URLs、semantic codes)。随后,利用 queries 和 user details 等输入信息,采用大型模型以端到端的方式输出 final items。这种方法不仅提高了检索效率,还增强了模型的泛化能力。

    在生成式检索中,numeric-based identifier representation 方法因其简洁性、高效性和强泛化能力而被工业界广泛采用,尤其是在长行为序列推荐(long behavior sequence recommendations)中。这些方法显著缩短了序列长度并加速了推理过程。典型方法包括 DSI(《Transformer memory as a differentiable search index》)、NCI(《A neural corpus indexer for document retrieval》)、TIGER(《Recommender systems with generative retrieval》)、GDR(《Generative dense retrieval: Memory can be a burden》)和 GenRet(《Learning to tokenize for generative retrieval》)。其中,TIGER 方法通过残差量化(Residual Quantization: RQ)生成语义标识符(Semantic Identifiers: SID),有效捕获了语义信息(semantic information)和层次结构(hierarchical structures)。这种方法在 item-dominated 的电子商务场景中尤为有利,能够准确反映电子商务数据中固有的复杂层次关系(hierarchical relationships)和语义特征(semantic features),从而显著提升推荐性能。

    需要强调的是,RQ-based 的方法的性能上限关键取决于 SID 的生成。然而,我们发现通过 RQ 生成的 SID 中存在显著的“沙漏”("hourglass")现象,如 Figure 1 所示。具体而言,中间层(intermediate layers)的 codebook tokens 过度集中,形成了 “一对多“ 和 “多对一“ 的映射结构。这种集中导致了:

    • 路径稀疏性(path sparsity): item 的匹配路径(matching paths)仅占总路径空间的极小部分。

    • 以及中间层 tokens 的长尾分布:大多数 SID 集中在少数 head tokens 上。

    这种沙漏效应在具有长尾特性的数据集上尤为严重,极大地限制了生成式检索方法的表示能力。该问题的根本原因在于对高维向量残差进行逐步量化(progressively quantizing)时的固有特性。

    此外,我们分析了从残差(residuals)生成 SID 的过程,表明稀疏性(sparsity)和长尾分布(long-tail distributions)是不可避免的。为了评估 SID 对下游生成式检索任务的普遍影响,我们基于 RQ-SID 训练了不同规模(如 0.8B/7B )和不同类型( Qwen1.5/Baichuan2/LLaMA2)的模型。通过一系列实验(包括通过交互 first and second layers 、以及交换 first and second layers 来改变 Semantic IDs 的分布),我们不仅证实了沙漏效应的存在,还详细阐述了其对模型性能的具体影响。该分析为未来的模型优化提供了坚实基础。

    为了缓解沙漏效应,我们提出了两种简单而有效的方法:启发式方法、以及自适应变长 token策略(adaptive variable-length token strategy)。

    • 启发式方法:直接移除第二层,在减少长尾影响的同时,可能导致空间容量(spatial capacity)不足。

    • 自适应变长 token策略:通过 an adaptive token distribution adjustment 来移除第二层的 top tokens ,从而将 semantic ID 转换为变长结构(variable-length structure )。该策略在确保整体分布保持一致的同时,通过选择性的 token 移除(selectively token removal )从而有效缓解了沙漏效应。

    大量实验结果表明,尽管两种方法都较为简单,但它们在不同程度上成功减轻了沙漏效应的影响。值得注意的是,自适应变长 token 策略方法的效果最为显著。

    本文的贡献可总结如下:

    • 据我们所知,这是首次系统性地研究生成式检索中 residual quantization-based semantic identifiers 的缺陷,明确识别了“沙漏”现象:即,中间层 codebook tokens 过度集中。

    • 我们进行了全面的实验和消融研究,揭示路径稀疏性(path sparsity)和长尾分布(long-tail distributions)是沙漏效应的主要成因,限制了生成式模型的表示能力和性能。

    • 我们提出并验证了一种缓解沙漏效应的新方法,通过提高 codebook 利用率、以及解决 token 长尾分布问题,显著提升了模型性能。

1.1 相关工作

  1. 生成式检索的最新进展已对多个领域产生了重大影响,例如推荐系统、搜索问答和电子商务检索。如相关研究所示,这种范式转变涉及使用 numbers、sub-words 和 semantic codes 等 identifiers 来表示 target items。

    在工业界,基于 numbers 的 identifier representation 方法因其简洁性和高效性而被广泛采用。这些方法(包括 DSI、NCI、TIGER、GDR 和 GenRet )在长行为序列推荐中特别有效,能够缩短序列长度并加速推理过程。值得注意的是,TIGER 方法采用 RQ 来生成 SID ,捕获语义信息和层次结构。这在 item-dominated 的电子商务环境中尤为有利,因为复杂的层次关系和语义特征对于提升推荐性能至关重要。然而,RQ-based 的方法的性能上限在很大程度上取决于 SID 的生成,这也是本文分析和讨论的核心重点。

1.2 预备知识

1.2.1 Residual Quantization

  1. 残差量化(Residual Quantization)是一种 multi-level vector quantizer,通过对残差(residuals)进行量化来生成 a tuple of codewords (即 Semantic IDs )。Residual-quantized variational AutoEncoder: RQ-VAE 通过更新 quantization codebook 和 encoder-decoder reconstruction parameters 进行联合训练。

    假设存在向量 x→∈RD ,我们旨在使用 L 个 codebooks(即,L 层)对其进行量化。每个 codebook 包含 M 个元素。这些 codebooks 可表示为 C∈RL×M×D ,其中 D 是向量的维度;第 l 层 codebook Cl∈RM×D 是 M 个 embedding 向量组成。

    • 当 l=1 时,初始残差(initial residual)定义为 r→1=x→ 。

    • 然后,通过将 r→l 映射到第 l 层的 codebook Cl∈RM×D 中最近的 embedding 来对其进行量化:

      cl=arg⁡min1≤m≤M‖r→l−e→l,m‖22

      其中: cl 表示第 l 个 codeword( semantic ID);e→l,m∈RD 为 Cl 的第 m 个 embedding 向量。

      注意,在第 l 层( l>1 ),该层的残差为:

      r→l=r→l−1−e→l,cl−1
    • 递归重复上述过程 L 次,得到给定 x→ 的 Semantic ID 的 a tuple of L codewords ,记为 (c1,c2,⋯,cL) 。

    • 为了重建原始向量 x→ ,我们对相应的 codebook elements 求和:

      x→^=∑l=0Le→l,cl

    该方法通过残差范数(norm of residuals)的减小,能够从粗到细地逼近原始向量 x→ ,即 ‖x→^−x→‖2<ϵ ,其中 ϵ≪0.001 。

    codebooks C 是通过训练来自动学到的。参考 SemanticIDInYouTube 中的内容:使用以下损失函数训练 RQ-VAE 模型:

    L=Lrecon+LrqvaeLrecon=‖x→−x→^‖2Lrqvae=∑l=1Lβ‖r→l−sg[e→l,cl]‖2+‖sg[r→l]−e→l,cl‖2

    其中:

    • sg[⋅] 表示 stop-gradient 算子。

    • Lrecon  用于重建 content embedding x→。

    • Lrqvae  中的第一项和第二项旨在鼓励 encoder 和 codebook vectors 进行训练,使得 r→l 和 e→l,cl 相互逼近。

1.2.2 Generative Retrieval

  1. 生成式检索已在推荐领域、搜索领域和问答领域中被提出。这些模型主张通过自回归语言模型(autoregressive language models )直接生成 target passages/items 的 identifiers。

    在个性化搜索场景中,核心任务是根据用户给定的 query 和用户的 historical interaction behaviors,提供用户可能购买的most relevant candidates 。在本文中,我们将该任务重新构建为利用大型语言模型(LLM)和 Semantic ID 的 Next Token Prediction: NTP 问题。

    具体而言,给定用户 u、 query q 、以及用户的 historical item sequence,我们首先将序列转换为 a Semantic ID sequence,记作:

    Seq := {(c1,1,⋅,c1,M)⏟item1;(c2,1,⋅,c2,M)⏟item2;⋯;(ct,1,⋅,ct,M)⏟itemt}

    其中: (ci,1,⋅,ci,M) 表示 itemi 的长度为 M 的 Semantic ID;historical item sequence 长度为 t 。

    然后训练 LLM 来预测 itemt+1 的 Semantic ID ,表示为 (ct+1,1,⋅,ct+1,M) 。generation objective 可表述为:

    Lsft=−∑i=1Mlog⁡pθ(i|q,u,Seq,I<i)

    其中:

    • I<i=ct+1,1,⋯,ct+1,i−1 表示 Semantic ID (ct+1,1,⋅,ct+1,M) 中 ct+1,i 的上下文(即,prefix)。

    • pθ(⋅) 是有监督微调(supervised fine-tuning: SFT )模型,θ 为模型的参数。

1.3 Problem of GR based on RQ

1.3.1 Hourglass Phenomenon

  1. 为了生成基于残差量化的 semantic IDs ,我们首先利用公司内部数十亿条搜索日志中的 query-item data 训练双塔模型(如DSSM 和 BERT )。随后,通过 item tower 获取数亿个 items 的 embeddings。最后,采用残差量化为所有 items 生成 semantic IDs 。

    成功生成 semantic IDs 后,我们对所有 items 的 three-layer distribution maps 进行聚合和计算。如 Figure 2 所示, Semantic ID 架构的第二层集中了大量路由节点(routing nodes),three-layer code 的整体分布呈现出沙漏现象(hourglass phenomenon)。

    这里采用三层量化,即 codebooks 数量为 3 。

  2. 为了研究该现象的泛化性,我们在不同参数组合(如 code table size 和层数)下进行了多次可视化实验。如附录中的 Figure 6 所示,结果表明沙漏效应非常显著,且 tokens 跨 code table 跨三层之间的 path distribution 相对稀疏。

    RQ LxM ,其中第一个数字代表层数,第二个数字代表每个 codebook 包含多少个向量。

  3. 此外,基于上述实验,我们使用三种指标(熵 entropy、基尼系数 Gini coefficient 、以及标准差 standard deviation )对第二层的 token distribution 进行了统计分析,如 Figure 3 所示。结果表明,第二层的 token distribution 具有低熵、高基尼系数、以及大标准差的特点,说明该分布高度倾斜并呈现出长尾效应。

  4. 总体而言,这种沙漏现象在 code table 中通过 path sparsity 和 a long-tail distribution of tokens 得到了统计验证:

    • 1):由 Semantic ID 结构导致的 path sparsity ,使得 code table 利用率较低。

    • 2):长尾分布表明,在中间层(intermediate layer),绝大多数路由(routes )汇聚到单个 token 上。

1.3.2 Analysis of Residual Quantization

  1. 为了探究沙漏现象的成因,我们将基于残差量化的运行机制进行深入分析和讨论。不失一般性,我们考虑原始 embedding 的两种分布:非均匀分布和均匀分布

  2. 首先考虑均有分布。记为 X={x→∣x→∈X}∈RN×D ,其中 N 是数据集的大小。现在,我们使用残差量化为 X 生成 semantic ID。

    • 在第一层,所有候选点(candidate's points)被划分到 M 个不同的 cluster buckets 。每个 cluster bucket 包含 nm 个数据点,半径为 bm 。

      对于均匀分布, nm=N/M ,且 b1=b2=⋯=bm 。因此,该层所有 tokens 的 in-degree 相等。

    • 在第二层,所有 input embedding 是第一层的残差 X′。由于残差值的 magnitude 存在差异,该层的 input distribution 是非均匀的。

      • 存在大量 magnitudes 较小的点(来自前一层每个桶中 cluster center 附近的点),其数量为 nm∗M∗ρ=N∗ρ ,其中 ρ 是比例。

      • 同时,存在少量 magnitudes 较大的点,这些点被视为异常值。

      为了减少 clustering loss ,该层的聚类过程聚焦于这些异常值。结果,大量的 magnitudes 较小的点将占据少数 cluster centers,而少量的 magnitudes 较大的点(即,异常值)将占据单个 cluster center 或多个 cluster centers 。因此,该层的semantic IDs 将形成大型路由节点(large routing nodes),呈现出长尾现象,这也在 Figure 4 的第二层中得到了体现。

    • 在第三层,所有输入点的 magnitudes 再次变得一致且相对均匀。因此,该层的 code distribution 与第一层类似,呈均匀分布。结果,可以直接观察到第二层的 large routing nodes 在第三层分化为多个较小的节点,形成一对多的情况,如 Figure 4 的第三层所示。

      同时,如果第二层的残差趋近于零,第三层仍会存在一定的聚类现象。然而,由于此时所有 magnitudes 都非常小,聚类效应(clustering effect)的影响有限。

    随着层数的不断迭代,这种非均匀分布、长尾聚类随后均匀分布(long-tail clustering followed by uniform distribution)的现象将交替出现。然而,随着层数的增加,残差变得越来越小(参考 Figure 4 的第四层),聚类效应减弱,因此可以忽略不计。最终,这导致形成沙漏状结构:输入数据首先被压缩到少数的 clusters 中,然后扩展回大量的 clusters,最后收敛到均匀分布。SID 构建完成后,残差量化方法的影响,再加上中间层 head tokens 的主导地位,自然导致了路径的稀疏性。

  3. 类似地,对于非均匀分布(如长尾分布),残差分布变得更加不均匀,导致沙漏现象更为严重。

1.3.3 Impact on the GR

  1. 在上述部分中,我们讨论了 Semantic ID 在第二层的长尾分布,指出了其 “一对多“ 和 ”多对一“ 的结构。我们认为这种现象显著影响下游任务的 generation ,尤其是生成式检索任务。

  2. 为了衡量这种影响,我们进行了各种实验。首先,通过交互第一层和第二层来改变 Semantic ID 的分布。在此基础上,我们固定第一层的 tokens,仅预测第二层和第三层的 tokens。

    什么是 “交互第一层和第二层”?作者并未说明。

    在评估过程中,我们根据第二层 tokens 的分布将测试集分为两组:head token test set 和 tail token test set。如 Table 1所示,head token test set 的性能显著提升,而 tail token test set 的性能则明显较差。这种性能差异可归因于前面分析的路径稀疏性和 tokens 长尾分布,导致结果存在 bias。

    在不同规模(LLaMA2、Baichuan2 和 Qwen1.5)和不同 parameters of RQ 的模型中均观察到了这种现象,突显了 long-tail token distribution 和 path sparsity 对模型性能的广泛影响。

  3. 为了进一步探究沙漏现象对模型性能的影响,我们进行了三项关键实验:

    • 1):直接将第一个 token作为输入。

      即,first token 作为已知条件,仅仅召回 second/third token 。

    • 2):交换第一层和第二层的 tokens 。

      即,将所有 items 的 code map 映射关系中,将第二个 token 与第一个 token 互换。例如,item 1 -> (c1, c2, c3) 现在变为:item 1 -> (c2, c1, c3) 。

    • 3):将 swapped sequence 的第一个 token 作为输入。

    可以看到:

    • 仅交换第一层和第二层会导致第一层出现显著的长尾分布,且长尾分布问题仍未解决。如 Table 1 所示,指标变化极小。

    • 然而,如果我们交换第一层和第二层并提供第一个 token,任务将转变为预测第二层和第三层。由于真实的第一层已被给出,这简化了任务,减轻了长尾分布的影响,显著提升了性能。

    • 相反,如果不交换层数但仍提供第一个 token,第二层的 SID 仍保持其长尾分布。Table 1 中的这些结果高于基线,但低于交换第一层和第二层并提供第一个 token 的情况。

  4. 这些方法旨在减轻长尾分布的影响,结果验证了性能的显著提升。这一发现表明,沙漏现象对模型性能具有实质性的负面影响。通过上述实验,我们不仅证实了沙漏效应的存在,还阐明了其对模型性能的具体影响,从而为未来的优化提供了坚实基础。

1.4 方法与实验

  1. 为了缓解沙漏效应,我们提出了两种简单而有效的方法。

    • 启发式方法(Heuristic Method):一种启发式方法是直接移除第二层,消除长尾的影响。然而,这可能导致空间容量(spatial capacity)不足,即 ML→ML−1 。需要注意的是,这里需要先生成 L-layer SID ,然后再移除第二层;这与直接生成 two-layer SID 不同——直接生成 two-layer SID 可能仍然存在 large routing nodes 。

      这是强行改变映射关系:从 f1(itemi)→(c1,c2,c3) 修改为 f1(itemi)→(c1,c3)。

    • 变长的 SID(Variable Length of SID ):另一种简单方法是自适应地移除第二层的 top tokens,使 semantic ID 成为变长结构。这里采用 top@K 策略,其中 p 为阈值。该方法在确保分布保持不变的同时,通过选择性地移除 tokens 来减少沙漏效应的影响。此外,空间容量充足,即 ML→ML+K(ML−2−ML−1) 。需要注意的是,top-K 的选择取决于实际数据分布,因此需要进行消融测试。总之,该方法简单高效,但并非最优,只能缓解而非完全解决沙漏现象。

      核心思想是自适应地移除第二层中频率最高的 token,使原本固定长度的 SID 变为可变长度结构,从而缓解第二层的长尾分布问题。具体做法是:统计第二层中 token 的分布,然后将阈值超过 p 的 token 直接抹掉(或者将最大的 K 个 token 直接抹掉),使得对应的 tokens 只有第一层和第三层。

  2. 为了进一步验证该方法的有效性,我们在 LLaMA 模型和真实的大规模电子商务平台上进行了实验。我们从近 60 天的数据中随机选择了数亿个训练样本,用户基数达到数千万,产品目录包含 200 million items 。用户行为序列的平均长度为 100。

    结果表明,通过应用 adaptive token removal 策略,与 base 模型相比,该模型的性能得到了提升,同时计算成本保持相似。此外,在 Focal Loss 和 Mile Loss 等几个 objective optimizations 方面也相对 baseline 取得了进步。

    具体而言,实验结果显示:

    • 移除 top@400 tokens 的模型在大多数评估指标上优于基线模型。这表明该方法有效减少了长尾效应的影响。

    • 随着移除 tokens 数量的增加,模型的性能提升遇到瓶颈。特别是当第二层所有 tokens 都被移除时,这种限制尤为明显;推测这是由于缺少 long-tail tokens 导致召回率损失。同时,直接移除第二层会导致一个 SID 对应多个 items。

    这种细粒度分析为所提出方法的有效性提供了有力证据——该方法选择性地移除不太重要的 tokens,同时保留 most informative tokens,即使移除了大量数据,仍能提升模型性能。

  3. Valid Ratio:在自回归解码(autoregressive decoding)过程中,当模型解码 target SID 的 next token 时,可能会预测出无效的 SIDs (即不在 SID's vocabulary 中、或与 full dataset 中任何 item 都不对应的 SID)。因此,我们计算了基于RQ3x12 的 LLaMA2-0.8B 模型上无效 SIDs 的比例。

    如 Figure 5 所示,我们可以看到:

    • 与 base 模型相比,所提出方法的 invalid ratio 更低,表明 generation 的质量更高,幻觉比例更低。

    • 此外,当召回数量小于 10 时,无效率低于 5% 。因此,generation 的有效性能够满足实际需求。

    • 在其他需要更高召回数量的情况下( k=50 ),invalid ratio 更高。

    在不同规模的 base 模型和不同的 RQ parameter setting 下,结果趋向于得出相同的结论。因此,在推理过程中需要采用 retrieval augmented generation: RAG 进行处理,例如前缀树(prefix-tree )和 FM_Index 。

    当需要召回更多的 candidates 时,Remove 2-th Layer top@400 的 invalid ratio 几乎与 baseline 相同。

1.5 结论

  1. 本研究系统性地探讨了生成式检索中 RQ-SID 的局限性,特别地识别了 intermediate layer 中的沙漏现象:codebook tokens 过度集中。沙漏现象导致了路径稀疏性和长尾分布。通过大量实验和消融研究,我们证实了该现象的存在,并深入分析了其根本原因在于 residuals 的特性。

    为了缓解这一问题,我们提出了两种方法:

    • 一种启发式方法:直接移除第二层。

    • 一种 variable-length token 策略:自适应地调整 token distribution 。

    实验结果表明,两种方法都有效缓解了瓶颈效应(bottleneck effect ),其中自适应 token distribution adjustment 的效果最佳。尽管该方法简单高效,但并非最优,只能缓解而非完全解决沙漏现象。据我们所知,这是首次系统性地探索生成式检索中 RQ-SID 的缺陷,为未来的模型优化提供了坚实基础,并通过提高 codebook 利用率来显著提升了模型性能。