HopRAG: Multi-Hop Reasoning for Logic-AwareRetrieval-Augmented Generation

一、现状问题、解决方案

1.问题

由于缺乏逻辑感知机制,不完美的检索问题依然显著存在。

  • 在精确度方面,检索系统可能返回词汇和语义上相似但间接相关的段落;
  • 在召回率方面,它可能无法检索到用户查询所需的所有必要段落。

这两种情况最终都会导致不准确或不完整的LLM响应。超过60%的检索段落是间接相关或不相关的。

2.现状

从逻辑结构的角度来看,现有的RAG系统主要可以分为三种类型:

  • 非结构化RAG仅采用稀疏或密集检索器。检索仅基于关键词匹配或语义向量相似性。但是不能捕捉用户查询于文段之间的逻辑关系。
  • 树状结构的RAG:关注单个文档中段落的层次逻辑,但忽略了层次结构之外或跨文档的关系,而且它在不同层次之间引入了冗余信息
  • 图结构的RAG:通过构建知识图谱(KGs)来表示文档,在这种结构中,实体是顶点,它们的关系是边,最理想地建模了逻辑关系。

但是,依赖于预定义的模式限制了灵活的表达能力,构建和更新知识图谱具有挑战性,且容易出现错误或遗漏、知识的三元组格式需要额外的文本化或微调。

3.解决方案

目前两种主流检索器类型:稀疏检索器:侧重于词汇相似、密集检索器:侧重于语义相似,通常时结合起来使用。

受到小世界理论(Kleinberg, 2000)或六度分隔理论(Guare, 2016)的启发,进一步利用间接相关的段落作为跳板,最终找到真正相关的段落。

提出了HopRAG一种创新的图结构RAG系统,两个阶段:

1.索引阶段:构建一个图结构的知识索引,段落作为节点,逻辑关系作为有向边,就是通过模拟用户的查询问题连接两个节点(段落),就是将提问段落和解答段落连接起来,作为逻辑跳跃的枢纽。

2.检索过程中:采用增强推理的图遍历,遵循检索、推理、修剪的三个模式,这个过程,在多跳邻域中寻找真正相关的段落,指导这个的时索引结构和LLM推理。

二、方法

1.方法表述

现有一个段落语料库P={p1​,p2​,...,pN​}和一个查询q,这个查询需要多个段落的信息,才能得到答案。任务设计:

1.一个图结构的RAG知识库,用来存储语料库P中的多有段落,也要建模段落之间的相似性和逻辑关系。

2.一个相应的检索策略,可以从间接相关的段落跳跃到真正的相关段落,提高检索效果

3.查询q和k个查询到的段落,作为上下文C={pi1​,pi2​,...,pik​} 的基础上,LLM生成结果。

2. 图结构索引

构建图结构索引G=(V, E),将语料库中每个段落存储在一个顶点中,得到顶点集V,在捕获段落间的逻辑关系,构建边集,这个逻辑关系,利用模拟查询来挖掘,然后利用文本的相似性进行边的合并。

1.查询模拟

利用LLM为每个段落生成两组伪查询,用来充分挖掘段落之间的逻辑关系。

两组伪查询:

1.m个出向问题:这些问题源自该段落,但无法通过段落本身回答

2.n个入向问题:这些问题的答案可以在该段落中找到

使用命名实体识别NER(.)从外向问题和内向问题中提取关键词,用来进行稀疏表示,

然后使用嵌入模型EMB(.)将这些问题嵌入到语义向量中,进行密集表示。

接着定义外部三元组(q+, k+, v+)和内向三元组(q-, k-, v-)

每个段落pi是一个顶点vi,其特征包括外向三元组、内向三元组

2.边缘合并

给定了外向和内向的三元组,通过混合检索匹配成对的三元组,通过下面的公式找到匹配的外向三元组和内向三元组,然后在匹配的两个顶点之间建立有向边。
 

构建有向边:

其中:

边:(目标段落回答的问题,源点和目标点关键字的并集,目标段落的语义信息)

3.推理增强图遍历

 为了获得更准确和完整的响应,HopRAG 的检索策略利用大模型(LLM)的推理能力,基于图结构中的逻辑关系,探索可能间接相关段落的邻域,从而跳跃到真正相关的段落通过对当前顶点 vi 的出边 ei,j 进行问题推理,并选择跳跃到最有可能的顶点 vj,我们实现了推理增强的图遍历,从而提升检索性能。

检索阶段:

首先。使用NER(.)和EMB(.)提取查询q的关键词kq和向量vq,这些信息将用于混合检索,来匹配最相似的top-k条边。对于这些边中的每个头顶点vj,初始化一个上下文队列Cquen,用来进行广度优先的局部搜索

推理阶段:

为了充分利用图上的逻辑关系,并从间接相关的顶点跳跃到真正相关的顶点,我们引入广度优先的局部搜索,该搜索利用 LLM 选择每个 Cqueue 中的 vj 最合适的邻居,并将其添加到队列尾部。

剪枝阶段:

据每个 vi 的 Hi,我们对 C′ 进行剪枝,仅保留 H 最高的 topk 个顶点,从而得到最终的上下文 C。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值