1 研究背景
这篇论文的研究背景主要聚焦于检索增强生成(RAG)系统中的两个关键问题:
-
comlex queries:在处理复杂任务输入时,传统的检索方法往往难以捕捉到所有相关信息,从而导致不完整的检索结果。这是因为复杂查询可能缺少一些关键词,限制了检索文档的质量。
-
noisy retrieved knowledge challenges:检索到的知识常常包含无关或误导性信息,这会降低大语言模型(LLM)的生成性能,导致不准确的输出。
为了解决这些问题,作者提出了一个新框架BlendFilter,通过结合内部和外部知识的查询生成增强技术,改善复杂查询的检索质量,并通过一个新的知识过滤模块来剔除不相关的知识,从而提升模型性能。
相比于其他query改写或者query增强的工作,有以下的不同点:
2 研究贡献
-
query generation blending approach:与以往依赖单一知识源的增强方法不同,本文通过结合外部知识和语言模型内部知识,提升了复杂查询的覆盖面,使得模型能够获取更全面的相关信息。
-
knowledge filtering module:作者提出了一种新的知识过滤机制,利用大语言模型本身的能力来自动过滤掉检索到的无关知识,从而减少噪声数据对生成结果的负面影响。这是首次在检索增强生成任务中将LLM用作知识过滤器。
-
open-domain question answering evaluation:本文在三个开放领域问答数据集上进行了实验,结果表明,提出的BlendFilter方法在不同模型骨干上都显著优于现有的最先进基线模型
3 研究方法
3.1 Query Generation Blending
- External Knowledge Augmentation
类似two-top推理的方式,也可以扩展到多跳,但是要平衡效率和准确度
step1: 基于原始检索外部知识
step2: 基于和组成 prompt,大模型回答得到, 基于外部知识生成的答案
step 3: 组合原始和生成的
- Internal Knowledge Augmentation
step1: 大模型基于原始和自身知识生成回答,同样组合和
3.2 Knowledge Filtering
step1: 分别使用三类做检索,得到对应的检索结果
step2: 应用LLM自身的知识过滤能力,分别对3种知识源进行过滤
step3: 将过滤结果取并集
也可以先组合再进行过滤,这样做的优势是只用调用一次LLM,但是作者提到对较大的知识集合坐过滤难度会增大。先过滤在组合,涉及多次调用LLM,但是过滤效果更好,
3.3 Answer Generation
整个流程如下表:
4 实验
4.1 研究问题
- RQ1 How does BlendFilter perform compared to state-of-the-art retrieval-augmented baselines? - 相较于先进基线提升
- RQ2 Can the proposed BlendFilter generalize well with respect to different backbones and retrievers? - 泛化性:替换LLM和retrievers
- RQ3 Is the LLM effective to filter unrelated knowledge documents? - LLM作为filter是否有效?
- RQ4 What are the roles of the original query, external knowledge-augmented query, and internal knowledge-augmented query in model performance improvements respectively? - 消融实验,探索原始query、外部知识增加query、内部知识增强query分别有多少提升
- RQ5 How does the performance change with varying numbers of knowledge documents? - 对检索超参数K的研究
- RQ6 Will the proposed BlendFilter be improved by sampling multiple times with different temperatures? - 对生成参数temperature的研究
4.2 实验配置
4.2.1 数据集
开源问答数据集
- 多跳问答:HotPotQA、2WikiMultiHopQA
- 常识推理:StrategyQA
4.2.2 评估指标
问答指标:
- 多跳问答:exact match(EM), F1
- 常识推理:Accuracy
检索指标:Recall、Precision
对无关信息的过滤能力:S-Precision,问题数(该query检索到的文档是标准答案)占比
4.2.3 Baseline选择
- Direct Prompting:模型根据输入的查询直接生成答案,不包含解释或推理步骤。 w/wo retrieval。
- CoT Prompting: 要求模型生成伴随推理步骤的答案。w/wo retrieval。
- ReAct: 结合推理、行动和观察的步骤来生成答案。
- selfAsk: 通过生成后续问题、检索并回答这些后续问题来逐步解决原始问题。该方法与ReAct类似,区别在于它如何定位检索的知识。
- ITER-RETGEN: 一种最先进的检索增强生成方法,它迭代地使用外部知识库增强问题,并采用知识蒸馏来提高检索性能
4.3 实验结果
4.3.1 对比不同backbone,baseline
对于不同的backbone,对比各个基线,有无检索的情况下,均有提升。另外,加上检索模块反而在strategyQA常识问题上有所下降,说明检索有可能带来了干扰信息。
4.3.2 对比BM25和ColBERT v2
ColBERT v2 表现比BM25更好
4.3.3 knowledge filter带来提升
三个指标上,无论colBERT v2还是BM25检索方法,使用knowledge filter都能带来提升
4.3.4 不同类型的query效果对比
三种query共同作用效果最好,去除看起来影响比较大,但原文强调去掉对BM25的影响更大,有点疑惑。
Additionally, we can find the internal knowledge-augmented query plays a more important role when BM25 is employed.
4.3.5 检索文档数量K的影响
随着K增大,模型表现先增后减,表明增加检索文档数量可以在一定程度上提高模型的表现,但过多的文档可能会引入更多的噪声信息,从而影响生成结果的准确性。与ITER-RETGEN相比,BlendFilter在增加K值时表现出更显著的性能提升。这是因为BlendFilter引入了知识过滤机制,能够有效去除无关文档,因此即使在检索到更多文档的情况下,噪声对模型的影响也较小。
4.3.6 temperature和sampling对问答的影响
在0,0.5,1下采样3个回答,无论是只采样一次答案还是多次采样答案,BlendFilter始终优于基线方法,BlendFilter在多次采样下的性能方差较小,这表明它在生成答案时更加稳定和鲁棒。
4.4 case study
论文展示了一个具体的例子来说明BlendFilter方法如何工作。该案例来自HotPotQA数据集,问题是:
问题:“superMansion中的女演员在Workaholics中反复扮演了哪个角色?”
通过这个案例,作者展示了不同查询方法在检索相关知识文档时的表现:
-
原始查询:检索到了与SuperMansion相关的文档,但没有找到完全正确的答案。
-
外部知识增强查询:引入了有关SuperMansion的更多知识,部分知识是相关的,但仍然不够全面。
-
内部知识增强查询:通过语言模型内部存储的知识,补充了更多相关信息,最终检索到了正确的文档。
结果:通过结合原始查询、外部知识增强查询和内部知识增强查询,BlendFilter能够找到两个正确的相关文档,即SuperMansion和Jillian Bell(在Workaholics中扮演角色“Jillian Belk”)。经过知识过滤后,BlendFilter有效地去除了不相关的文档,并生成了正确答案:Jillian Belk。
5 结论
- 通过结合查询生成融合(query generation blending)和知识过滤(knowledge filtering)机制,有效提高了检索增强生成任务中的表现。该方法通过处理复杂输入和减少检索噪声,大大改善了语言模型的生成质量。
- 通过内部和外部知识的结合,增强了输入查询的全面性,确保检索的知识覆盖更多的相关信息。知识过滤模块则利用了大语言模型自身的能力,能够自动去除无关的检索内容,从而提高生成的准确性。
- 通过在多个基准数据集上的实验,证明了BlendFilter在不同语言模型(如GPT3.5-turbo-Instruct、Vicuna 1.5-13b和Qwen-7b)和不同检索器(如ColBERT v2和BM25)中的性能显著优于当前最先进的基线模型。
- BlendFilter不仅在不同类型的语言模型上表现良好,还可以广泛应用于不同的任务和领域。这表明BlendFilter具备较强的通用性和扩展性,能够适应多种知识密集型场景。
附录
补充知识:
ReAct ReAct: Synergizing Reasoning and Acting in Language Models
ReAct 的核心思想是让模型生成推理过程(即“思考”)与任务相关的具体行动交替进行。这种方法允许模型通过推理来跟踪、更新和调整行动计划,同时让模型与外部系统(如 API 或环境)进行交互,以获取更多信息并相应地采取行动。
通过将推理和行动结合起来,ReAct 解决了仅依赖推理(如幻觉问题)或仅依赖行动(如由于缺少推理步骤导致的行动错误)带来的局限性。例如,在问答任务中,ReAct 允许模型先生成推理步骤,然后再采取行动,如查询外部资源(例如 Wikipedia),以找到支持其答案的事实信息。