1.INTRODUCTION(引言)
检索增强语言模型能够更好地适应世界状态的变化并融入长尾知识。然而,大多数现有方法只能从检索语料库中检索到短的连续文本片段,限制了对整个文档上下文的完整理解 。作者引入了一种新颖的方法,即递归嵌入、聚类和总结文本片段,从底部开始构建具有不同摘要级别的树。在推理期间,RAPTOR模型从这棵树中检索,将跨不同抽象级别的庞大文档中的信息整合起来。
2.总体介绍
LLM不包含特定任务所需要的领域知识,并且随着世界的持续变化,使得LLM中所学的事实失效。在开放领域QA系统中开创性的方法是将大量的文本【数据源】进行分块,然后在单独的信息索引系统中建立索引,最后将检索到的知识与Query结合在一起作为上下文丢给下游的LLM【RAG检索增强】,这使得为系统提供特定领域的知识变得更加容易,并且也能够更加轻松地解释和追溯来源。
现有方法的缺陷: 智能检索到K个相邻文本片段【太少有局限】,限制了LLM大规模话语结构能力。这在需要整合来自文本多个部分知识的主题性问题中尤为重要,比如理解整本书的情况,就像NarrativeQA数据集中以灰姑娘的童话故事为例,针对问题"灰姑娘如何走向幸福结局?",检索到的前K个相邻短文本不包含足够的上下文来回答问题。
如何解决的: RAPTOR对文本片段进行聚类【叶子节点】,生成聚类的文本摘要【父节点】,然后不断重复这个过程,从底部生成树。这种结构使得RAPTOR能够加载不同级别代表文本的片段到LLM的上下文 中,从而能够有效地回答不同级别的问题 。【而且也能够解决泛化Query,因为每一次聚类都是公共部分提取,增强了泛化能力】
主要贡献: 利用文本摘要的想法,允许在不同尺度上进行检索增强上下文,并在长文集合的实验中展示其有效性。
3.Method方法
RAPTOR概述: 建立在长文本通常呈现子主题和分层结构的思想基础上,RAPTOR通过构建一个递归树结构来解决阅读中的语义深度和连接问题,该结构平衡了更广泛的主题理解和细粒度细节,允许根据语义相似性而不仅仅是文本顺序对节点进行分组。
method1: RAPTOR树的构建始于将检索语料库分割成长度为100的短连续文本,类似于传统的检索增强技术。如果一句话超过100个标记的限制,我们将整个句子移至下一个块(chunk),而不是在句子中途截断**【优点】**。这保留了每个块内文本的上下文和语义连贯性。然后使用SBERT嵌入这些文本。这些块及其对应的SBERT嵌入形成了树结构的叶节点。
method2: 对相似文本进行分组,采用了聚类算法,首先将文本进行chunk化,然后对每个chunk进行分类**【从叶子节点往上升】,对每个分组后的chunk文本进行总结,然后将这些总结文本重新嵌入,并继续嵌入,直至聚类变得不可行为止**,从而将原始文档进行结构化、多层树表示。
method3: 在构建RAPTOR树的时候,使用了两种组织方式:1.连贯簇。这一步将相关内容组合在一起**【跟method1有关】**;2.软聚簇,单个文本段可能与多个主题有关,因此将该文本放在多个主题下,这样就能保证有效信息一定能被检测到。
比如小明和小美被分为两个主题,一个下面文本为小明很帅,另一个为小美很帅,如果有一个文本为小明和小美一样帅,就可以纳入多个主题之下,从而保证在决策过程中【比如Query:小明和小美谁帅一点?】能够保证对解决Query的有效信息一定被检索到。
method4: 对于聚类算法,采用高斯混合模型(GMMs),这种方法提供了灵活性和概率框架。GMMs假设数据点是从多个高斯分布混合中生成的。
GMMs: 简而言之就是从多个文本中捕捉特征,找到和均值【公共摘要】最近那部分
高斯分布,也称为正态分布,是一种非常常见的连续概率分布,用于描述许多自然现象。它呈钟形曲线,表示大多数数据点集中在均值附近,随着离均值的距离增大,数据点的概率逐渐减小 。
高斯混合模型 (GMM):GMM 是一种概率模型,假设数据点是从多个高斯分布的混合中生成的。每个高斯分布代表一个簇 ,GMM 可以通过多个高斯分布捕捉数据的多模态特征(多个峰值)。
method5和method4: 向量嵌入的高维度对传统GMMs构成挑战,因为在高维空间中使用距离度量可能表现不佳 。为了缓解这一问题,作者采用均匀流形近似和投影 ( Uniform Manifold Approximation and Projection,UMAP) ,一种用于降维的流形学习技术。UMAP中的最近邻参数n_neighbors决定了保留局部结构和全局结构之间的平衡。作者的算法通过变化n_neighbors来创建层次聚类结构:首先识别全局聚类,然后在这些全局聚类中执行局部聚类。这种两步聚类过程捕捉了文本数据之间的广泛关系,从广泛主题到具体细节。
method5: 如果局部聚类的组合上下文超过了总结模型的标记阈值 ,作者的算法会在该聚类内递归应用聚类 ,确保上下文保持在标记阈值内。【主要是method1的原因造就了method5的诞生,因为method1的chunk要保证语序通顺就会有部分文本>100标记,所以需要method5进行递归处理】
method6:(如何确定最佳聚类数) 对于给定的GMM,BIC为BIC = ln(N)k − 2ln(L^) ,其中N 为文本片段(或数据点)的数量,k 为模型参数的数量,L ^为模型似然函数的最大化值。在GMM的情境中,参数数量k kk是输入向量的维度和聚类数量的函数。
得到由BIC确定的最佳聚类数量后,使用EM算法来估计GMM参数,即均值、协方差和混合权重。虽然GMM中的高斯假设可能与文本数据的性质不完全符合,后者通常表现出稀疏和偏斜的分布,但实证观察表明,它是一种有效的模型。
查询机制: 下面详细阐述了RAPTOR所采用的两种查询机制:树遍历和折叠树(collapsed tree,坍塌树)。这些方法提供了在多层RAPTOR树中获取相关信息的独特方式,每种方法都有其各自的优势和权衡。在附录F中提供了这两种方法的伪代码。使用SBERT对所有节点进行嵌入。
遍历机制:
个人感受:
- 余弦相似度比较有点问题,语义用embedding拼凑会不会更好?
- 虽然共有部分各个摘要都拥有,是否用反思标记逐步分析该段落是否与Query相关【isRelevant?】,相关标记该文本,得到所有【Relevant】的文本后组合Prompt生成Answer,然后再【isSupported】,对所有标记的文本进行审判:判断该Answer是否由这些文本生成,这些文本是否支撑这个Answer。