一、BreakingHourglass [2024]

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

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

  2. 近年来,生成式检索(Generative Retrieval: GR)作为一种突破性的检索范式逐渐兴起,在推荐系统、搜索问答、以及电子商务检索等搜索和推荐领域取得了重大进展。在该范式中,target items 首先被表示为identifiers(例如数字、子词 subwordsn-gramstoken IDsURLssemantic codes)。随后,利用 queriesuser 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. 生成式检索的最新进展已对多个领域产生了重大影响,例如推荐系统、搜索问答和电子商务检索。如相关研究所示,这种范式转变涉及使用 numberssub-wordssemantic codesidentifiers 来表示 target items

    在工业界,基于 numbersidentifier representation 方法因其简洁性和高效性而被广泛采用。这些方法(包括 DSINCITIGERGDRGenRet )在长行为序列推荐中特别有效,能够缩短序列长度并加速推理过程。值得注意的是,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 codebookencoder-decoder reconstruction parameters 进行联合训练。

    假设存在向量 xRD ,我们旨在使用 Lcodebooks(即,L 层)对其进行量化。每个 codebook 包含 M 个元素。这些 codebooks 可表示为 CRL×M×D ,其中 D 是向量的维度;第 lcodebook ClRM×DMembedding 向量组成。

    • l=1 时,初始残差(initial residual)定义为 r1=x

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

      cl=argmin1mMrlel,m22

      其中: cl 表示第 lcodewordsemantic ID);el,mRDCl 的第 membedding 向量。

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

      rl=rl1el,cl1
    • 递归重复上述过程 L 次,得到给定 xSemantic IDa tuple of L codewords ,记为 (c1,c2,,cL)

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

      x^=l=0Lel,cl

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

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

    L=Lrecon+LrqvaeLrecon=xx^2Lrqvae=l=1Lβrlsg[el,cl]2+sg[rl]el,cl2

    其中:

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

    • Lrecon  用于重建 content embedding x

    • Lrqvae  中的第一项和第二项旨在鼓励 encodercodebook vectors 进行训练,使得 rlel,cl 相互逼近。

1.2.2 Generative Retrieval

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

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

    具体而言,给定用户 uquery 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 的长度为 MSemantic IDhistorical item sequence 长度为 t

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

    Lsft=i=1Mlogpθ(i|q,u,Seq,I<i)

    其中:

    • I<i=ct+1,1,,ct+1,i1 表示 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 训练双塔模型(如DSSMBERT )。随后,通过 item tower 获取数亿个 itemsembeddings。最后,采用残差量化为所有 items 生成 semantic IDs

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

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

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

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

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

  4. 总体而言,这种沙漏现象在 code table 中通过 path sparsitya 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={xxX}RN×D ,其中 N 是数据集的大小。现在,我们使用残差量化为 X 生成 semantic ID

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

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

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

      • 存在大量 magnitudes 较小的点(来自前一层每个桶中 cluster center 附近的点),其数量为 nmMρ=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 settail token test set。如 Table 1所示,head token test set 的性能显著提升,而 tail token test set 的性能则明显较差。这种性能差异可归因于前面分析的路径稀疏性和 tokens 长尾分布,导致结果存在 bias

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

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

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

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

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

      即,将所有 itemscode 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)不足,即 MLML1 。需要注意的是,这里需要先生成 L-layer SID ,然后再移除第二层;这与直接生成 two-layer SID 不同——直接生成 two-layer SID 可能仍然存在 large routing nodes

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

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

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

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

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

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

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

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

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

  3. Valid Ratio:在自回归解码(autoregressive decoding)过程中,当模型解码 target SIDnext token 时,可能会预测出无效的 SIDs (即不在 SID's vocabulary 中、或与 full dataset 中任何 item 都不对应的 SID)。因此,我们计算了基于RQ3x12LLaMA2-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@400invalid 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 利用率来显著提升了模型性能。