RAPTOR:树组织检索的递归抽象处理

2024-02-06 19:36

本文主要是介绍RAPTOR:树组织检索的递归抽象处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

RAPTOR: RECURSIVE ABSTRACTIVE PROCESSING FOR TREE-ORGANIZED RETRIEVAL

Title:树组织检索的递归抽象处理

https://arxiv.org/pdf/2401.18059.pdf

摘要

        检索增强语言模型可以更好的融入长尾问题,但是现有的方法只检索短的连续块,限制了整个文档上下文的整体理解。

        文本提出方法:递归对文本块进行向量化,聚类,摘要,从下到上构建一棵具有不同摘要级别的树。

介绍

        要解决的问题是,大多数现有的方法只检索几个短的、连续的文本块,这限制了它们表示和利用大规模话语结构的能力。

        这与需要整合文本多个部分知识的主题问题特别相关,前k个检索到的短连续文本将不包含足够的上下文来回答问题。

为了解决这个问题,我们设计了一个索引和检索系统,该系统使用树结构来捕获文本的高级和低级细节。

相关工作

        1.为什么需要检索:

        模型往往没有充分利用长期上下文,并且随着上下文长度的增加,尤其是当相关信息嵌入到长上下文中时,性能会下降。此外,实际上,使用长上下文既昂贵又缓慢。

        2.检索方法:

        基于术语的方法(TFIDF,BM25)到基于深度学习的策略。

        检索增强大模型包含多个组件:检索模块,阅读器,端到端系统训练。

        向量化的检索方法缺点:连续分割可能无法捕捉到文本的完整语义深度。阅读从文件中提取的片段可能缺乏重要的上下文,使其难以阅读,甚至具有误导性。

        3.递归总结:

        摘要技术提供了文档的浓缩视图,使您能够更集中地处理内容。使用段落的摘要和片段,提高了大多数数据集的正确性,但有时可能是一种有损的压缩方式。

        递归抽象摘要模型采用任务分解来总结较小的文本块,然后将其集成以形成较大部分的摘要。虽然这种方法可以有效地捕捉更广泛的主题,但它可能会错过细微的细节。

        LlamaIndex通过类似地总结相邻的文本块,但也保留中间节点,从而存储不同级别的细节,保持细粒度的细节,从而缓解了这一问题。

        然而,由于这两种方法都依赖邻接来对相邻节点进行分组或汇总,它们仍然可能忽略文本中遥远的相互依存关系。

方法

        总体结构通过构建递归树结构来解决阅读中的语义深度和连接问题,该结构平衡了更广泛的主题理解和细粒度的细节,并允许根据语义相似性而不仅仅是文本中的顺序对节点进行分组。

        step1.将语料库文本进行切分,每个切片大小为100个字符,但会保持句子的完整性。使用sbert对每个切片进行向量嵌入,切片和向量会形成树的叶子结点。

        step2.使用聚类方法对切片进行分组,分组后的切片组使用LLM进行摘要总结。这样嵌入、聚类、总结循环进行,直到聚类不可行。最后生成了文档的树形结构表示。

        step3.树的查询使用两种策略:树遍历和折叠树。树遍历方法逐层遍历树,每层进行树修剪并选择最相关的点。折叠树方法对所有层的节点进行集中评估。

        聚类方法

        聚类方法的一个独特要求是使用软集群,其中节点可以属于多个集群,而不需要固定数量的集群。这种灵活性至关重要,因为单个文本片段通常包含各种主题相关的信息,从而保证将其包含在多个摘要中。

        本文使用混合高斯聚类方法(GMM),是一种软聚类方法,每个样本可以根据概率属于多个聚类簇。本文还使用了分层聚类(全部聚类和局部聚类),分两步进行的聚类过程捕获了文本数据之间的广泛关系,从广泛的主题到特定的细节。

        基于模型的总结

        摘要步骤将潜在的大量检索信息浓缩为可管理的大小。虽然摘要模型通常会产生可靠的摘要,但一项重点注释研究显示,约4%的摘要包含轻微幻觉。这些不会传播到父节点,也不会对问答任务产生明显影响。

        查询

        树遍历

        树遍历方法首先基于前k个最相关的根节点与查询嵌入的余弦相似性来选择它们。在下一层考虑这些所选节点的子节点,并且基于它们与查询向量的余弦相似性再次从该池中选择前k个节点。重复此过程,直到我们到达叶节点。最后,将所有选定节点的文本连接起来,形成检索到的上下文。通过调整在每一层选择的深度d和节点k的数量,树遍历方法提供了对所检索信息的特异性和广度的控制。该算法从广阔的前景开始,通过考虑树的顶层,并在向下穿过较低层时逐渐关注更精细的细节。

        折叠树

折叠树方法提供了一种更简单的方法,通过同时考虑树中的所有节点来搜索相关信息。这种方法不是一层一层地进行,而是将多层树扁平化为一层,基本上将所有节点放在同一级别进行比较。

实验

        详情见论文。

总结

        在本文中,我们提出了RAPTOR,这是一种新颖的基于树的检索系统,它利用不同抽象级别的上下文信息增强了大型语言模型的参数知识。通过使用递归聚类和摘要技术,RAPTOR创建了一个分层树结构,能够合成检索语料库各个部分的信息。在查询阶段,RAPTOR利用这种树结构进行更有效的检索。我们的对照实验表明,RAPTOR不仅优于传统的检索方法,而且在几个问答任务上设置了新的性能基准。

这篇关于RAPTOR:树组织检索的递归抽象处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/685328

相关文章

Spring Boot @RestControllerAdvice全局异常处理最佳实践

《SpringBoot@RestControllerAdvice全局异常处理最佳实践》本文详解SpringBoot中通过@RestControllerAdvice实现全局异常处理,强调代码复用、统... 目录前言一、为什么要使用全局异常处理?二、核心注解解析1. @RestControllerAdvice2

电脑提示xlstat4.dll丢失怎么修复? xlstat4.dll文件丢失处理办法

《电脑提示xlstat4.dll丢失怎么修复?xlstat4.dll文件丢失处理办法》长时间使用电脑,大家多少都会遇到类似dll文件丢失的情况,不过,解决这一问题其实并不复杂,下面我们就来看看xls... 在Windows操作系统中,xlstat4.dll是一个重要的动态链接库文件,通常用于支持各种应用程序

SQL Server数据库死锁处理超详细攻略

《SQLServer数据库死锁处理超详细攻略》SQLServer作为主流数据库管理系统,在高并发场景下可能面临死锁问题,影响系统性能和稳定性,这篇文章主要给大家介绍了关于SQLServer数据库死... 目录一、引言二、查询 Sqlserver 中造成死锁的 SPID三、用内置函数查询执行信息1. sp_w

Java对异常的认识与异常的处理小结

《Java对异常的认识与异常的处理小结》Java程序在运行时可能出现的错误或非正常情况称为异常,下面给大家介绍Java对异常的认识与异常的处理,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参... 目录一、认识异常与异常类型。二、异常的处理三、总结 一、认识异常与异常类型。(1)简单定义-什么是

Golang 日志处理和正则处理的操作方法

《Golang日志处理和正则处理的操作方法》:本文主要介绍Golang日志处理和正则处理的操作方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录1、logx日志处理1.1、logx简介1.2、日志初始化与配置1.3、常用方法1.4、配合defer

springboot加载不到nacos配置中心的配置问题处理

《springboot加载不到nacos配置中心的配置问题处理》:本文主要介绍springboot加载不到nacos配置中心的配置问题处理,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录springboot加载不到nacos配置中心的配置两种可能Spring Boot 版本Nacos

python web 开发之Flask中间件与请求处理钩子的最佳实践

《pythonweb开发之Flask中间件与请求处理钩子的最佳实践》Flask作为轻量级Web框架,提供了灵活的请求处理机制,中间件和请求钩子允许开发者在请求处理的不同阶段插入自定义逻辑,实现诸如... 目录Flask中间件与请求处理钩子完全指南1. 引言2. 请求处理生命周期概述3. 请求钩子详解3.1

Python处理大量Excel文件的十个技巧分享

《Python处理大量Excel文件的十个技巧分享》每天被大量Excel文件折磨的你看过来!这是一份Python程序员整理的实用技巧,不说废话,直接上干货,文章通过代码示例讲解的非常详细,需要的朋友可... 目录一、批量读取多个Excel文件二、选择性读取工作表和列三、自动调整格式和样式四、智能数据清洗五、

SpringBoot如何对密码等敏感信息进行脱敏处理

《SpringBoot如何对密码等敏感信息进行脱敏处理》这篇文章主要为大家详细介绍了SpringBoot对密码等敏感信息进行脱敏处理的几个常用方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录​1. 配置文件敏感信息脱敏​​2. 日志脱敏​​3. API响应脱敏​​4. 其他注意事项​​总结

Python使用python-docx实现自动化处理Word文档

《Python使用python-docx实现自动化处理Word文档》这篇文章主要为大家展示了Python如何通过代码实现段落样式复制,HTML表格转Word表格以及动态生成可定制化模板的功能,感兴趣的... 目录一、引言二、核心功能模块解析1. 段落样式与图片复制2. html表格转Word表格3. 模板生