• [论文笔记]RAPTOR: RECURSIVE ABSTRACTIVE PROCESSING FOR TREE-ORGANIZED RETRIEVAL


    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对所有节点进行嵌入。

    遍历机制:
    在这里插入图片描述

    个人感受:

    1. 余弦相似度比较有点问题,语义用embedding拼凑会不会更好?
    2. 虽然共有部分各个摘要都拥有,是否用反思标记逐步分析该段落是否与Query相关【isRelevant?】,相关标记该文本,得到所有【Relevant】的文本后组合Prompt生成Answer,然后再【isSupported】,对所有标记的文本进行审判:判断该Answer是否由这些文本生成,这些文本是否支撑这个Answer。请添加图片描述
  • 相关阅读:
    服务网格新篇章:Eureka与分布式服务网格的协同共舞
    cks--基于角色的访问控制:RBAC
    【附源码】Python计算机毕业设计天润律师事务所管理系统
    多人联机之研究
    【安装Pytorch】
    十一.镜头知识之RI(Relative Illumination)相对照度 与暗角
    5分钟快速上手 pytest 测试框架
    java-php-python-基于SSM框架的企业机械设备智能管理系统的设计与实现计算机毕业设计
    SpringBoot SpringBoot 原理篇 1 自动配置 1.5 proxyBeanMethod
    幸福金龄会《金龄盛典》佛山赛区启动海选
  • 原文地址:https://blog.csdn.net/weixin_57128596/article/details/140389907