今天分享的是一篇由人大、快手发布的文章:
DMQR-RAG: 基于多样化查询重写的检索增强生成
https://openreview.net/pdf?id=lz936bYmb3
当前大型语言模型(LLMs)在静态知识更新和产生幻觉(hallucinations)方面的挑战,特别是在实时场景中提供最新信息的难题。为了解决这个问题,该论文提出了一个名为DMQR-RAG(Diverse Multi-Query Rewriting for Retrieval-Augmented Generation)的框架,旨在通过多样化的多查询重写来改善文档检索和最终响应的性能。这个框架通过以下方式来解决现有问题:1. 查询重写:用户查询经常包含噪声和意图偏差,直接检索往往无法获得足够相关的文档。因此,查询重写对于检索到相关文档非常关键。
2. 检索增强生成(RAG):RAG通过检索和整合外部知识来增强LLMs。然而,由于原始查询中的噪声和意图偏差,直接检索常常失败。
3. 查询多样性:大多数现有方法只生成单个重写的查询,这限制了检索文档的多样性,导致真正相关文档的召回率低。4. 策略选择:在实际工业场景中,用户查询是多样化的,对每个查询应用固定集的策略并不理想。因此,动态选择适合每个特定查询的重写策略是至关重要的。整体来说,DMQR-RAG框架通过提出基于信息量的多种重写策略,并引入自适应策略选择方法,旨在提高文档检索的多样性和相关性,最终改善RAG中的文档检索和最终响应的性能。
论文中提到的相关研究可以分为两大类:基于训练的方法(training-based methods)和基于提示的方法(prompt-based methods)。
基于训练的方法(Training-based Methods)
RQ-RAG:构建了一个包含搜索查询和重写结果的创新数据集,用于训练一个端到端模型来优化搜索查询。
- RRR:提出了一种新颖的训练策略,利用响应模型的性能作为奖励,通过强化学习优化检索查询。
基于提示的方法(Prompt-based Methods)
Hyde:利用LLMs为原始查询提前生成一个伪答案,这个伪答案在语义上更接近正确答案,有助于检索正确的结果。
- Step-back Prompting:通过在更高概念层面上重写具有广泛细节的查询,以检索更全面的答案。
- Least-to-most prompting:将复杂查询分解为几个较易处理的子查询,分别检索以收集回答原始查询所需的所有文档。
这些方法避免了额外的训练成本,但只关注特定类型的查询,缺乏泛化能力,并且产生的检索结果多样性不足。1. RAG-Fusion:利用多个重写查询检索额外文档,并应用互反排名融合算法(Reciprocal Rank Fusion)进行重排。2. 信息多样性:论文提出的方法受到信息多样性理论的启发,以增强从查询到文档的信息传递。这些相关研究构成了DMQR-RAG框架的理论基础和方法论背景,旨在通过多样化的查询重写来提高检索增强生成的性能。
论文通过提出 DMQR-RAG(Diverse Multi-Query Rewriting for Retrieval-Augmented Generation)框架来解决上述问题,具体解决方案包括以下几个关键点:1. 多查询重写策略(Multi-Query Rewriting Strategies)
论文提出了四种基于信息量的重写策略,以确保重写的查询具有多样性,并提供独特的信息,从而增加检索到真正相关文档的可能性:- 信息平等(Information Equality):
- 一般查询重写(General Query Rewriting, GQR), 去除噪声,提炼原始查询,同时保留所有相关信息。
- 关键词重写(Keyword Rewriting, KWR), 从查询中提取关键词,特别是名词和主题,以快速定位相关文档。
- 信息扩展(Information Expansion):伪答案重写(Pseudo-Answer Rewriting, PAR), 利用LLMs的先验知识为检索生成伪答案,丰富原始查询。
- 信息缩减(Information Reduction):核心内容提取(Core Content Extraction, CCE), 去除查询中的多余细节,提取关键信息。
2. 自适应重写策略选择(Adaptive Rewriting Strategy Selection)
考虑到用户查询的多样性,论文提出了一种基于轻量级提示和少量学习的方法来动态选择适合每个特定查询的重写策略。这种方法通过在提示中加入重写策略的描述,使LLMs能够全面了解所有可用的重写策略,并在困难的情况下通过提供多个示例来辅助LLMs选择适合的重写策略。3. 标准化的重写评估设置
为了公平比较RAG中的重写模块,论文建立了一个基于主流方法标准化的重写设置。具体来说,使用Bing搜索引擎作为检索器,BAAI-BGE-reranker作为重排器,以确保数据的时效性并避免其他检索方法所需的超参数调整复杂性。
论文中进行了一系列实验来验证DMQR-RAG框架的有效性,这些实验包括:1. 数据集(Datasets)
2. 评估指标(Metrics)
- 检索效果使用Top-5命中率(H@5)和精确度(P@5)。
- 对于端到端响应,使用官方评估方法,包括精确匹配(EM)、F1分数和准确度(Acc)。
3. 基线方法(Baselines)
包括提示方法和微调方法,例如LLM Rewrite、Hyde、RRR 和 RQ-RAG。4. 主要结果(Main Results)
比较了不同重写方法在三个数据集上的性能,DMQR-RAG在大多数情况下优于其他方法。- 原始查询的重要性:原始查询(OQR)在某些场景下可以准确表达用户意图,并提供有助于文档检索和端到端响应的上下文。这表明,将原始查询与其重写版本结合在检索策略中是合理且有效的。
- 多重查询重写的优势:相比单一查询重写,多重查询重写表现更优。在文档检索任务中,DMQR-RAG方法在所有数据集上的表现均优于现有的重写方法。例如,在FreshQA数据集上,DMQR-RAG相较于最佳基线的P@5提升了14.46%。
- 在复杂问题上的表现:在HotpotQA这样的复杂多跳问题中,DMQR-RAG显著提高了检索性能,P@5提升约8%,说明该方法适用于多种类型的查询,具有较强的通用性。
- 端到端响应性能:在端到端响应任务中,DMQR-RAG超越了最佳基线方法Hyde。在AmbigNQ数据集上,EM和F1分别提高了1.30%和3.74%;在FreshQA数据集上,准确率比Rewrite提升了5.84%。这表明,DMQR-RAG的检索结果能够为响应模型提供准确的外部知识,从而显著提升响应性能。
- 与RQRAG的比较:尽管RQRAG针对复杂多跳问题进行了专门设计,并在HotpotQA上取得最佳效果,但DMQR-RAG在各类查询中仍表现出色,展现了良好的通用性。
与RAG-Fusion的比较:DMQR-RAG整体优于RAG-Fusion,尤其在AmbigNQ数据集上,P@5提升约10%。此外,通过自适应的重写选择机制,DMQR-RAG在更具挑战性的场景下进一步展现了其优越性。
论文提到,未来的工作可以探索进一步优化自适应重写选择方法,这可能包括改进轻量级提示和少量学习方法,以更精准地根据查询特征动态选择最合适的重写策略。论文提出的DMQR-RAG框架中的策略池目前包含四种重写策略,未来的工作可以探索将更多的重写策略纳入策略池,以增强框架的多样性和适用性。例如,可以为多跳查询引入子查询重写策略,甚至整合基于训练的方法来进一步提升效果。 在实际应用中,需要在检索性能和系统效率之间找到平衡。研究如何优化DMQR-RAG框架以减少计算资源消耗,提高响应速度,这对于实际部署尤为重要。