出处:EMNLP 2020
发布链接:http://arxiv.org/abs/2004.04906
标题翻译:用于开放域问答的密集段落检索
阅读原因
它提出的DPR(Dense Passage Retriever)方法是RAG框架中常用的检索策略。DPR使用深度学习模型来生成查询和文档的表示,并通过高效的相似性检索找到相关文档。
阅读本篇论文对理解RAG的检索机制非常有帮助。
研究背景
在开放域问答(ODQA)任务中,系统需要在大规模的知识库(例如 Wikipedia)中找到与问题相关的文档,并从中提取出答案。传统的稀疏检索方法(如 TF-IDF 和 BM25)依赖于词汇匹配,即基于查询和文档之间的词频信息进行检索。然而,这些方法在处理语义相似性较强的查询和文档时表现较差,特别是当问题表述与文档表述不同但语义相同时,传统检索方法难以有效找到相关文档。
为了解决这一问题,DPR 提出了通过深度学习生成查询和文档的密集向量表示的检索方法,通过在语义空间中进行检索,从而提升检索的效果。DPR 在 ODQA 任务中的表现超越了传统检索方法,并且比一些基于深度学习的检索生成模型具有更高的效率。
核心方法
基于密集向量表示的检索方法,使用深度学习模型吧查询和文档表示为固定维度的向量,通过计算向量的相似度进行检索操作
组成部分
DPR 使用了双编码器(dual encoder)架构,其中 Query Encoder 和 Passage Encoder 是两个独立的 BERT 模型。两个编码器分别对查询和文档进行编码,并将它们嵌入到同一个向量空间中。通过计算查询向量和文档向量之间的相似度,系统可以从文档库中检索出与查询最相关的文档。
Query Encoder:把用户的查询编码为一个密集向量,用以处理用户输入的查询;Passage Encoder:把文档段落编码为一个密集向量,用于处理知识库中的文档段落
两个工作原理相同,但是相互独立。前者需要根据用户输入实时转化向量,而后者则可以在用户查询之前,系统自更新文件向量,来加速推理的过程
相似度的计算
使用向量的内积来定义问题和段落之间的相似性,基于计算出的相似度把文档进行排序,由此检索得出最相关的文档内容。
训练策略
使用监督学习的方式来训练两个编码器。
数据集
数据集来源于开放域问答任务中的QA对,对于每个问题,DPR从知识库中检索相关段落,并将其视为正样本,从文档中随机抽取无关段落视为负样本。
损失函数
定义如下:
实验结果
论文对 DPR 在多个开放域问答任务中的性能进行了评估,包括:
- Natural Questions (NQ):从 Google 搜索结果中提取的问题。
- TriviaQA:包含大量基于常识和知识的问答。
- WebQuestions:基于互联网资源的问题集。
- CuratedTREC (TREC):从 TREC QA 以及各种 Web 资源中获取问题,旨在用于非结构化语料库的开放域 QA。
- SQuAD v1.1:流行的阅读理解基准数据集。
实验结果表明,DPR 在这些任务中的表现显著优于基准方法(如 BM25)。DPR 能够更有效地找到与查询语义相关的文档段落,从而提高开放域问答的准确性。
优势
- 语义理解能力强:DPR 使用深度学习生成的密集向量表示能够捕捉更深层次的语义信息,而不是仅仅依赖于词汇匹配。这使得它在处理查询和文档表述不同但语义相似的情况下表现出色。
- 高效的检索机制:DPR 的双编码器架构允许查询和文档的嵌入计算分别独立进行。在实际应用中,文档的嵌入可以提前计算并存储,显著提高了检索速度。
局限性
- 训练成本高:监督学习策略需要有标注的数据集、开销大,因为知识库内容庞大
- 需要空间大:Passage Encoder把大量的知识库文档中的段落向量化,存储这些向量也需要大存储空间
总结
DPR通过将查询和文档嵌入到相同的语义空间,显著提高了开放域问答中的文档检索效果。相比传统的稀疏检索方法,DPR 能够更好地捕捉语义信息,并在多个开放域问答任务中实现了 SOTA(state-of-the-art)性能。DPR 的提出不仅为开放域问答系统提供了更好的文档检索方案,也为基于密集表示的检索技术在其他领域的应用提供了新的思路。