[论文精读]Dense Passage Retrieval for Open-Domain Question Answering

出处: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 能够更有效地找到与查询语义相关的文档段落,从而提高开放域问答的准确性。

优势

  1. 语义理解能力强:DPR 使用深度学习生成的密集向量表示能够捕捉更深层次的语义信息,而不是仅仅依赖于词汇匹配。这使得它在处理查询和文档表述不同但语义相似的情况下表现出色。
  2. 高效的检索机制:DPR 的双编码器架构允许查询和文档的嵌入计算分别独立进行。在实际应用中,文档的嵌入可以提前计算并存储,显著提高了检索速度。

局限性

  1. 训练成本高:监督学习策略需要有标注的数据集、开销大,因为知识库内容庞大
  2. 需要空间大:Passage Encoder把大量的知识库文档中的段落向量化,存储这些向量也需要大存储空间

总结

DPR通过将查询和文档嵌入到相同的语义空间,显著提高了开放域问答中的文档检索效果。相比传统的稀疏检索方法,DPR 能够更好地捕捉语义信息,并在多个开放域问答任务中实现了 SOTA(state-of-the-art)性能。DPR 的提出不仅为开放域问答系统提供了更好的文档检索方案,也为基于密集表示的检索技术在其他领域的应用提供了新的思路。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值