开放域问答(OpenQA)是自然语言处理(NLP)中的一项重要任务,旨在基于大规模非结构化文档以自然语言的形式回答问题。最近,关于 OpenQA 的研究文献数量激增,特别是与神经机器阅读理解 (MRC) 集成的技术。虽然这些研究工作在基准数据集上的性能提升到了新的高度,但它们很少被涵盖在现有的 QA 系统调查中。在这项工作中,我们回顾了 OpenQA 的最新研究趋势,特别关注包含神经 MRC 技术的系统。具体来说,我们首先重新审视 OpenQA 系统的起源和发展。
然后,我们介绍了名为“Retriever-Reader”的现代 OpenQA 架构,并分析了遵循该架构的各种系统以及每个组件中采用的具体技术。然后,我们讨论了开发 OpenQA 系统的主要挑战,并对常用的基准进行了分析。我们希望我们的工作能够让研究人员了解最近的进展以及 OpenQA 研究中的开放挑战,从而促进该领域的进一步发展。
索引词——文本问答、开放领域问答、机器阅读理解、信息检索、自然语言理解、信息提取
目录
3.4 Answer Post-processing回答后处理
1 introduction
问答 (QA) 旨在以自然语言提供准确的答案以响应用户的问题。这是一项可追溯到 1960 年代的长期任务 [1]。与搜索引擎相比,QA 系统旨在直接呈现问题的最终答案,而不是返回相关片段或超链接的列表,从而提供更好的用户友好性和效率。如今,许多网络搜索引擎(如 Google 和 Bing)通过将 QA 技术纳入其搜索功能 [2],一直在向更高的智能方向发展。借助这些技术,搜索引擎现在能够准确响应某些类型的问题,例如
整个 QA 格局大致可以分为两部分:文本 QA 和知识库 (KB)-QA,根据答案来源的信息源类型。文本 QA 从非结构化文本文档中挖掘答案,而 KB-QA 从通常手动构建的预定义结构化 KB 中挖掘答案。文本 QA 通常比后者更具可扩展性,因文章 [4] 和科学书籍 [5] 等。具体而言,文本 QA 是在基于上下文信息可用性的两个任务设置下研究的,即机器阅读理解 (MRC) 和开放域 QA (OpenQA)。 MRC 最初从语言能力考试中获得灵感,旨在使机器能够阅读和理解特定的上下文段落以回答给定的问题。相比之下,OpenQA 尝试在没有任何特定上下文的情况下回答给定问题。它通常要求系统首先搜索相关文档作为上下文 w.r.t。来自本地文档存储库或万维网 (WWW) 的给定问题,然后生成答案,如图 1 所示。因此,OpenQA 享有更广泛的应用范围,更符合现实世界的 QA 行为人类,而 MRC 可以被认为是 OpenQA [6] 的一个步骤。事实上,构建一个能够回答任何输入问题的 OpenQA 系统被认为是 QA 研究的最终目标。
在文献中,OpenQA 与自然语言处理 (NLP)、信息检索 (IR) 和信息提取 (IE) [7]、[8]、[9]、[10] 的研究密切相关。传统的 OpenQA 系统大多遵循由三个阶段组成的管道,即问题分析、文档检索和答案提取 [6]、[9]、[11]。给定一个自然语言的输入问题,问题分析旨在重新构造问题以生成搜索查询,以促进后续文档检索,并对问题进行分类以获得其预期的答案类型,从而指导答案提取。在文档检索阶段,系统使用生成的搜索查询搜索与问题相关的文档或段落,通常使用现有的 IR 技术,如 TF-IDF 和 BM25,或为 Google.com 和 Bing 等 Web 搜索引擎开发的特定技术.com。之后,在Answer Extraction阶段,从收到的相关文档中提取最终答案上一阶段。
深度学习技术推动了许多领域的显着进步,也已成功应用于 OpenQA 系统的几乎每个阶段 [12]。例如,[13] 和 [14] 分别使用基于 CNN 的模型和基于 LSTM 的模型开发问题分类器。在[15]、[16]、[17]中,他们提出了神经检索模型来搜索潜在空间中的相关文档。近年来,随着一些大规模 QA 数据集 [18]、[19]、[20]、[21]、[22]、[23] 的出现,神经 MRC 技术得到了极大的发展 [18]、[ 24]、[25]、[26]、[27]。通过采用流行的神经 MRC 方法从相关文档中提取给定问题的答案,传统的 OpenQA 系统已经彻底变革 [3]、[28]、[29]、[30] 并演变为现代“ Retriever-Reader”架构。检索器负责检索相关文件 w.r.t.一个给定的问题,可以看作是一个 IR 系统,而 Reader 旨在从接收到的文档中推断出最终答案,通常是神经 MRC 模型。少数作品 [3]、[31]、[32] 甚至将 OpenQA 重命名为大规模机器阅读理解 (MRS)。遵循这种架构,已经沿着各个方向进行了广泛的研究,例如在将检索到的文档输入到神经 MRC 模型 [28]、[33]、[34] 之前对检索到的文档进行重新排序,在给定问题的情况下迭代检索相关文档[ 29]、[35]、[36],并以端到端的方式训练整个 OpenQA 系统 [15]、[30]、[37]、[38] 等
基于上述观察和见解,我们认为是时候对 OpenQA 系统进行全面的文献回顾了,尤其要关注包含神经 MRC 模型的技术。我们的审查有望承认迄今为止所取得的进步,并总结当前的挑战,以促进该领域的进一步发展。在本次调查的其余部分,我们将介绍以下内容。在第 2 节中,我们回顾了 OpenQA 系统的发展,包括起源、传统架构以及使用深度神经网络的最新进展。在第 3 节中,我们总结并详细阐述了 OpenQA 的“检索器-阅读器”架构,然后对所采用的各种技术进行了详细分析。在第 4 节中,我们首先讨论 OpenQA 面临的一些突出挑战,确定研究差距并希望加强该领域的进一步研究,随后提供适用于 MRC 或 OpenQA 的 QA 基准的总结和分析。最后,我们根据上述第 5 节中介绍的内容得出结论。
2. openQA 的发展
在本节中,我们首先简要介绍开放域问答(OpenQA)的起源,然后依次回顾 OpenQA 的传统和深度学习方法,以描述其在过去二十年中的显着进步。
OpenQA 的起源
对问答 (QA) 系统的开创性研究是在信息检索 (IR) 的范围内进行的,重点是受限域或封闭域设置。众所周知,最早的 QA 系统是棒球 [1],它于 1961 年设计用于回答有关美国棒球比赛的问题,例如比赛时间、地点和球队名称。在这个系统中,所有相关信息都存储在一个定义明确的字典中,用户问题被翻译成查询语句,使用语言方法从字典中提取最终答案。 1973 年,另一个著名的 QA 系统 LUNAR [39] 被开发为辅助月球地质学家研究工作的有力工具,其中从阿波罗登月任务获得的有关月球岩石和土壤的化学分析数据存储在一个数据库文件中,由NASA MSC 供每位科学家方便地查看和分析。 1993 年,MURAX [40] 被设计用来回答基于英语学术百科全书的简单学术问题,该百科全书主要采用语言分析和句法模式匹配技术。
1999 年,OpenQA 首次被定义为从文本检索会议 (TREC) [4] 发起的 QA 轨道中的一组新闻文章中提取包含正确答案的前 5 个可能片段。与之前的 QA 研究相比,在开放域设置中,大量非结构化文档被用作信息源,从中提取给定问题的正确答案。在后来的几年里,一系列 TREC QA Tracks 显着推进了 OpenQA [41]、[42]、[43] 的研究进展。值得一提的是从 2002 年举行的 TREC-11 开始,系统需要返回给定问题的准确简短答案 [42]。 TREC 活动提供本地文档集合作为生成答案的信息源,但万维网 (WWW) 的普及,尤其是搜索引擎的日益成熟,激发了研究人员构建基于 Web 的 OpenQA 系统[40]、[44]、[45]、[46] 使用 IR 技术从 Google.com 和 Ask.com 等在线资源中获取答案。网络搜索引擎能够持续有效地收集大量网页,因此能够提供更多信息来帮助找到响应用户问题的答案。 2001 年,一个名为 MULDER [44] 的 QA 系统被设计用于通过搜索引擎(例如 Google.com)自动回答开放领域的事实问题。它首先使用多个自然语言解析器将用户的问题转换为多个搜索查询,并将其提交给搜索引擎以搜索相关文档,然后使用答案提取组件从返回的结果中提取答案。遵循这条管道,开发了一个著名的 QA 系统 AskMSR [45],它主要依赖于数据冗余,而不是对问题或候选答案的复杂语言分析。它首先将用户的问题转化为查询,依靠一组预定义的重写规则从搜索引擎中收集相关文档,然后采用一系列基于 n-gram 的算法来挖掘、过滤和选择最佳答案。对于这样的 OpenQA 系统,搜索引擎能够提供对信息海洋的访问,从而显着增加了找到用户问题精确答案的可能性。尽管如此,如此丰富的信息源也带来了相当大的嘈杂内容,这对 QA 系统的过滤提出了挑战。
2.2 OpenQA 的传统架构
OpenQA 系统的传统架构如图2 所示,主要包括三个阶段:问题分析、文档检索和答案提取[6]、[11]。给定一个自然语言问题,问题分析旨在首先理解问题,以便在以下阶段促进文档检索和答案提取。发现该阶段的性能对后续阶段的性能有显着影响,因此对系统的最终输出很重要[47]。然后,文档检索阶段使用问题分析生成的搜索查询基于自建的 IR 系统 [4] 或 Web 搜索引擎 [44]、[45] 搜索与问题相关的文档。最后,Answer Extraction 负责从上一步收到的相关文档中提取用户问题的最终答案。下面,我们将逐一分析每个阶段
2.2.1 问题分析
问题分析阶段的目标有两个。一方面,它旨在促进与问题相关的文档的检索,为此通常采用查询公式模块来生成搜索查询。另一方面,期望通过使用问题分类模块来预测给定问题的类型,从而提高答案提取阶段的性能,从而产生一组预期的答案类型。图 2 最左边的灰色框给出了这个阶段的简单说明。在查询公式中,语言技术,如 POS 标记 [40]、[44]、词干提取 [40]、解析 [44] 和停用词删除 [ [45]、[48] 通常用于提取关键字进行检索。但是,问题中使用的术语通常与包含正确答案的文档中出现的术语不同。这个问题被称为“术语不匹配”,是 IR 中长期存在的关键问题。为了解决这个问题,查询扩展[49]、[50]和释义技术[51]、[52]、[53]、[54]经常被用来产生额外的搜索词或短语,以检索更多相关的文档。问题分类是问题分析阶段经常采用的另一个模块,旨在根据一组问题类型(例如,哪里、何时、谁、什么)或分类法来识别给定问题的类型[55],[ 56]由语言专家手动定义。在获得问题的类型后,可以使用基于规则的映射方法[9]轻松确定预期答案类型。例如,给定一个问题“Barack Obama 是什么时候出生的?”,当知道问题类型是“When”时,答案类型将被推断为“Date”。识别问题类型可以为答案提取提供约束,并显着降低找到正确答案的难度。问题分类引起了文献[44]、[55]、[57]、[58]、[59]的极大兴趣。例如,[59] 提出从给定问题中提取相关单词,然后根据将这些单词与概念相关联的规则对问题进行分类; [57] 在 [55] 提出的分层分类法之上使用各种机器学习技术(例如支持向量机(SVM)、最近邻和决策树)训练了一系列问题分类器
2.2.2 文档检索
此阶段旨在从通常依赖于 IR 引擎的非结构化文档集合中获取少量相关文档,这些文档可能包含对给定问题的正确答案。它可以显着减少到达最终答案的搜索空间。在过去的几十年中,已经开发了各种用于文档检索的检索模型,其中一些流行的有布尔模型、向量空间模型、概率模型、语言模型[60]等,下面简要回顾一下。
• 布尔模型:布尔模型是最简单的检索模型之一。将问题转化为术语的布尔表达式形式,结合“AND”、“OR”和“NOT”等运算符与文档进行精确匹配,将每个文档视为一组单词。
• 向量空间模型:向量空间模型将问题和每个文档表示为 d 维词空间中的词向量,其中 d 是词汇表中的词数。当搜索给定问题的相关文档时,每个文档的相关性分数是通过计算其向量与问题向量之间的相似度(例如,余弦相似度)或距离(例如,欧几里得距离)来计算的。与布尔模型相比,这种方法将文档返回到问题中,即使该问题提出的限制仅得到部分满足,而牺牲了精度。
• 概率模型:概率模型提供了一种将单词之间的概率关系集成到模型中的方法。 Okapi BM25 [61] 是一种对词频和文档长度敏感的概率模型,它是经验上最成功的检索模型之一,并广泛用于当前的搜索引擎。
• 语言模型:语言模型[62] 也很流行,其中查询似然模型[60] 是最广泛采用的。它为每个文档 d 构建一个概率语言模型 LMd,并根据生成给定问题 q 的语言模型的概率 P (q | LMd) 对文档进行排序
在实践中,接收到的文档通常包含不相关的文档,或者文档数量太大以至于答案提取模型的容量不堪重负。为了解决上述问题,非常需要对检索到的文档进行后处理。广泛使用的处理检索文档的方法包括文档过滤、文档重新排序和文档选择 [9] 等。文档过滤用于识别和去除噪声 w.r.t。一个给定的问题;文档重新排序被开发以根据包含正确答案的合理程度以降序对文档进行进一步排序;文档选择是选择最相关的文档。后处理后,只保留最相关的文档,并馈送到下一阶段以提取最终答案
2.2.3 答案提取
OpenQA 系统的最终目标是成功回答给定的问题,而答案提取阶段负责为用户返回问题最准确的答案。这一阶段的表现取决于问题的复杂程度、问题分析阶段的预期答案类型、文档检索阶段的检索文档以及所采用的提取方法等。影响因素如此之多,研究人员需要采取多多关照,并特别重视这个阶段。在传统的 OpenQA 系统中,事实问题和列表问题 [63] 已经被广泛研究了很长时间。 Factoid 问题(例如,何时、何地、谁......)的答案通常是文档中的单个文本跨度,例如实体名称、单词标记或名词短语。同时列出其答案是出现在同一文档中或从不同文档中聚合的一组事实的问题。从问题分析阶段收到的答案类型起着至关重要的作用,特别是对于答案是命名实体的给定问题。因此,早期系统严重依赖命名实体识别 (NER) 技术 [40]、[46]、[64],因为比较识别的实体和答案类型可能很容易得出最终答案。在[65]中,答案提取被描述为一个统一的过程,首先分别从问题和答案中发现潜在或隐藏的信息,然后使用一些匹配方法来检测答案,例如表面文本模式匹配[66] ,[67],单词或短语匹配[44],以及句法结构匹配[40],[48],[68]。在实践中,有时提取的答案在呈现给最终用户之前不够自信时需要进行验证。此外,在某些情况下,一个问题可能会产生多个候选答案,我们必须从中选择一个。答案验证用于解决此类问题。一种广泛应用的验证方法是采用额外的信息源(如 Web 搜索引擎)来验证每个候选答案的置信度。原则是系统应该返回足够多的包含问题和答案术语的文档。此类返回文档的数量越多,它就越有可能是正确答案。这个原理已经被研究并证明是相当有效的,虽然很简单 [9]。
2.3 深度神经网络在 OpenQA 中的应用
近十年来,深度学习技术也成功应用于 OpenQA。特别是,深度学习已被用于 OpenQA 系统的几乎每个阶段,此外,它使 OpenQA 系统能够进行 5 个端到端的训练。对于问题分析,一些作品开发了神经分类器来确定问题类型。例如,[13] 和 [14] 分别采用基于 CNN 和基于 LSTM 的模型对给定问题进行分类,均取得了有竞争力的结果。对于文档检索,已经提出了基于密集表示的方法 [16]、[29]、[30]、[35] 来解决“术语不匹配”,这是一个长期存在的问题,会损害检索性能。与使用稀疏表示的传统方法(如 TF-IDF 和 BM25)不同,深度检索方法学习将问题和文档编码到一个潜在向量空间中,其中可以测量超出术语匹配的文本语义。例如,[29] 和 [35] 训练自己的编码器将每个文档和问题独立编码成密集向量,并使用它们向量的内积计算它们之间的相似度分数。次线性最大内积搜索(MIPS)算法 [69]、[70]、[71] 用于提高给定问题的检索效率,尤其是在文档存储库规模较大的情况下。对于答案提取,作为 OpenQA 系统得出最终答案的决定性阶段,也可以应用神经模型。从一些相关文档中提取给定问题的答案本质上是机器阅读理解(MRC)的任务。近年来,随着CNN/Daily Mail[18]、MS MARCO[20]、RACE[21]和SQuAD 2.0[22]等一些大规模数据集的出现,神经MRC的研究取得了显着进展[24]、[25]、[26]、[27]。例如,BiDAF [24] 通过由字符嵌入层、单词嵌入层和上下文嵌入层组成的多级层次结构以不同粒度级别表示给定文档,并利用双向注意力流机制在没有早期总结的情况下获得问题感知的文档表示。 QANet [26] 采用 CNN 和自注意力机制 [72] 分别对局部交互和全局交互进行建模,其执行速度明显快于通常的循环模型。此外,应用深度学习使 OpenQA 系统能够端到端训练 [15]、[30]、[37]。例如,[37] 认为将独立的 IR 系统合并到 OpenQA 系统中是次优的,他们开发了一个 ORQA 系统,该系统将来自信息源的文档检索视为潜在变量,并仅从问题中训练整个系统-基于 BERT [27] 的答案字符串对。 REALM [30] 是一个预训练的语言模型,包含一个知识检索器和一个知识增强编码器。它的检索器和编码器都是可区分的神经网络,能够计算梯度 w.r.t。模型参数在整个网络中一直反向传播。与其他预训练语言模型类似,它也有两个阶段,即预训练和微调。在预训练阶段,模型以无监督的方式进行训练,使用掩码语言建模作为学习信号,而在微调阶段使用监督示例对参数进行微调。在早期的 OpenQA 系统中,回答问题的成功很大程度上取决于问题分析的性能,尤其是问题分类,它提供了预期的答案类型 [47]。然而,问题的类型或分类法都是由语言学家手工制作的,这是非最佳的,因为不可能涵盖现实中的所有问题类型,尤其是那些复杂的问题。此外,分类错误很容易导致答案提取失败,从而严重损害系统的整体性能。根据 [47] 中的实验,早期 OpenQA 系统中大约 36.4% 的错误是由问题类型的错误分类引起的。神经模型能够自动将问题从自然语言转换为机器更容易识别的表示。此外,神经 MRC 模型为 OpenQA 中的答案提取提供了前所未有的强大解决方案,在很大程度上抵消了将传统语言分析技术应用于问题并为 OpenQA 系统带来革命的必要性 [3]、[28]、[29] , [37]。将神经 MRC 模型纳入 OpenQA 系统的第一项工作是由 [3] 提出的 DrQA,演变为“检索器-阅读器”架构。它结合了基于 TF-IDF 的 IR 技术和神经 MRC 模型来回答维基百科上的开放域事实问题,并取得了令人印象深刻的性能。在[3]之后,已经发布了许多作品[28]、[30]、[33]、[34]、[37]、[73]、[74]、[75]。如今,按照“Retriever-Reader”架构构建OpenQA系统已被广泛认为是最有效和最有前途的方式,这也是本文的重点
3 现代 OPENQA:检索和阅读
在本节中,我们将介绍 OpenQA 系统的“Retriever-Reader”架构,如图 3 所示。Retriever 旨在检索相关文档 w.r.t。一个给定的问题,可以看作是一个 IR 系统,而 Reader 旨在从接收到的文档中推断出最终答案,通常是神经 MRC 模型。它们是现代 OpenQA 系统的两个主要组成部分。此外,图 3 中用虚线标记的一些其他辅助模块也可以合并到 OpenQA 系统中,包括 Document Post-processing,它以细粒度的方式过滤和重新排列检索到的文档以选择最相关的答案,以及答案后处理,即在多个候选答案中确定最终答案。遵循这种架构的系统可以分为两类,即管道系统和端到端系统。在下文中,我们将介绍管道系统中的每个组件及其各自的方法,然后是端到端可训练的组件。在图 4 中,我们提供了现代 OpenQA 系统的分类,以使我们的描述更易于理解。
3.1 Retriever
Retriever 通常被认为是一个 IR 系统,其目标是检索可能包含给定自然语言问题的正确答案的相关文档或段落,并根据它们的相关性按降序排列它们。从广义上讲,目前的 Retriever 方法可以分为三类,即 Sparse Retriever、Dense Retriever 和 Iterative Retriever,下面将详细介绍。
3.1.1 Sparse Retriever
指采用 2.2.2 节介绍的经典 IR 方法搜索相关文档的系统,如 TF-IDF [3]、[34]、[76]、[77 ] 和 BM25 [78]、[79]。 DrQA [3] 是现代 OpenQA 系统的第一种方法,它通过结合经典 IR 技术和神经 MRC 模型来回答开放域事实问题。特别是,DrQA 中的检索器采用二元哈希 [80] 和 TF-IDF 匹配来搜索维基百科,给定一个自然语言问题。 BERTserini [78] 使用 Anserini [81] 作为其检索器,这是一个基于 Lucene 的开源 IR 工具包。在[78]中,对包括文档级、段落级和句子级在内的不同文本粒度进行了实验研究,结果表明段落级索引的性能最佳。 TF-IDF 和 BM25 等传统检索方法使用稀疏表示来衡量术语匹配。但是,用户问题中使用的术语通常与文档中出现的术语不同。近年来已经开发了各种基于密集表示的方法[16]、[29]、[30]、[35],它们学习将问题和文档编码到一个潜在的向量空间中,其中可以测量超出术语匹配的文本语义。
3.1.2 Dense Retriever
随着深度学习的成功,提供了显着的语义表示,在过去的几年中已经开发了各种深度检索模型,大大提高了检索效率,从而提高了最终的 QA 性能。根据对问题和文档的编码方式以及对它们的相似性评分的不同,现有 OpenQA 系统中的密集检索器大致可以分为三种类型:基于表示的检索器 [16]、[30]、[37]、[ 73]、基于交互的检索器[15]、[32]和表示-交互检索器[17]、[82]、[83],如图5所示。基于表示的检索器:基于表示的检索器,也称为双编码器或双塔检索器,采用两个独立的编码器(如 BERT [27])分别对问题和文档进行编码,并通过计算两个表示之间的单个相似度分数来估计它们的相关性。例如,ORQA [37] 采用两个独立的基于 BERT 的编码器分别对问题和文档进行编码,它们之间的相关性分数由它们向量的内积计算。为了获得足够强大的检索器,他们使用逆完形填空任务(ICT)对检索器进行预训练,即在给定句子的情况下预测其上下文。 DPR [16] 还采用了两个独立的 BERT 编码器,如 ORQA,但否认了昂贵的预训练阶段的必要性。相反,它专注于使用成对的问题和答案来学习一个强大的检索器。 DPR 精心设计了为一个问题选择负样本的方法,包括来自语料库的任何随机文档、BM25 返回的不包含正确答案的顶级文档,以及与其他问题配对的批量负样本。同一批次。值得一提的是,他们的实验表明内积函数对于计算双编码器检索器的相似度得分是最佳的。基于表示的方法 [16]、[16]、[30]、[37] 可以非常快,因为可以提前离线计算和索引文档的表示。但它可能会牺牲检索的有效性,因为问题和文档的表示是独立获得的,导致它们之间只能捕获到浅层的交互。基于交互的检索器:这种检索器将问题与文档同时作为输入,并且通常通过对它们之间的令牌级交互进行建模来强大,例如基于转换器的编码器[27],[72 ]。 [15] 提出使用有监督的多任务学习 [24] 联合训练 Retriever 和 Reader。在 BiDAF [24] 的基础上,增加了一个检索层来计算问题和文档之间的相关性分数,而在 [15] 中采用了一个理解层来预测答案跨度的开始和结束位置。 [32] 开发了基于 BERT [27] 的段落级密集检索器和句子级密集检索器。他们将密集检索的过程视为一个二元分类问题。特别是,他们将每对问题和文档作为输入,并使用 [CLS] 令牌的嵌入来确定它们是否相关。他们的实验表明,段落级和句子级检索对于获得良好的系统性能是必要的。基于交互的方法 [15]、[32] 非常强大,因为它允许问题和文档之间非常丰富的交互。然而,这种方法通常需要大量计算,有时成本高得令人望而却步,因此很难适用于大规模文档。表示-交互检索器:为了同时实现高精度和高效率,最近的一些系统 [17]、[82]、[83] 结合了基于表示和基于交互的方法。例如,ColBERT-QA [17] 基于 ColBERT [84] 开发了它的检索器,它通过对问题和文档表示执行简单的标记级交互步骤来计算相似度分数,从而扩展了双编码器架构。类似于 DPR [16],ColBERT-QA 首先使用两个 BERT 编码器独立地对问题和文档进行编码。形式上,给定一个问题 q 和一个文档 d,对应的向量表示为 Eq(长度 n)和 Ed(长度 m),相关性,它们之间的分数计算如下: Sq,d = n∑ i=1 m max j=1 Eqi · ET dj 。 (1) 然后,ColBERT 首先计算问题的每个令牌嵌入对文档所有令牌的得分,然后将所有这些得分相加作为 q 和 d 之间的最终相关性得分。作为另一个例子,SPARTA [82] 开发了一个神经排序器,使用非上下文编码(例如,BERT 词嵌入)问题和上下文编码(例如,BERT 编码器)文档之间的点积来计算标记级匹配分数.具体来说,给定问题和文档的表示形式,每个问题标记的权重是通过 max-pooling、ReLU 和 log 顺序计算的;最终的相关性得分是每个问题令牌权重的总和。表示交互方法是一种很有前途的密集检索方法,因为它在有效性和效率之间取得了良好的平衡。但仍需进一步探索。
虽然有效,但密集检索器在应用于大型文档时通常会承受沉重的计算负担。为了加快计算速度,一些工作建议提前离线计算和缓存所有文档的表示[16]、[29]、[30]、[35]、[37]。这样,这些表示一旦计算就不会改变,这意味着文档的编码独立于问题,在一定程度上牺牲了检索的有效性
3.1.3 迭代检索
迭代检索的目的是在给定一个问题的情况下,分多个步骤从一个大集合中搜索相关文档,也称为多步检索。在过去的几年中,它已经被广泛探索 [29]、[35]、[36]、[85]、[86]、[87]、[88]、[89],尤其是在回答复杂问题时,例如那些需要多跳推理的[90],[91]。为了获得足够数量的相关文档,搜索查询需要针对不同的步骤而变化,并根据前一步骤中的上下文信息重新制定。下面,我们将根据Iterative Retriever的工作流程详细阐述: 1)文档检索:用于在每个检索步骤中检索文档的IR技术; 2)查询重构:用于为每次检索生成查询的机制; 3)检索停止机制:决定何时终止检索过程的方法。
文档检索:我们首先重新审视用于在给定查询的每个检索步骤中检索文档的 IR 技术。一些作品[36]、[86]、[89]迭代地应用稀疏检索器,而一些[29]、[35]、[85]、[88]交互地使用密集检索器。在使用 Sparse Retriever 的作品中,GOLDEN Retriever [36] 采用 BM25 检索,而 Graph Retriever [89] 和 DDRQA [86] 使用 TF-IDF 检索 top K 文档。对于那些使用 Dense Retriever 的人,包括 Multi-step Reasoner [29]、MUPPET [35] 和 MDR [85] 在内的大多数先前系统都使用 MIPS 检索来获得在给定问题表示的情况下语义最相似的文档; Path Retriever [88] 开发了一种递归神经网络 (RNN) 检索,以学习在维基百科图上检索问题的推理路径,该图是为基于维基百科超链接和文章结构对段落之间的关系进行建模而构建的。
查询重构:为了获得足够数量的相关文档,用于每一步检索的搜索查询通常是根据先前的查询和检索到的文档而变化和生成的。生成的查询有两种形式:1)显式形式,即自然语言查询[36]、[86]、[87]; 2)隐式形式,即密集表示[29]、[35]、[85]。一些作品以自然语言的形式产生了一个新的查询。例如,GOLDEN Retriever [36] 将查询重构任务重铸为 MRC 任务,因为它们都将问题和一些上下文文档作为输入,并旨在以自然语言生成字符串。查询重组的目标不是在 MRC 中寻求答案,而是一个新查询,有助于在下一个检索步骤中获得更多支持文档。 GAR [87] 使用预训练的 Seq2Seq 模型 BART [92] 开发了一个查询扩展模块,该模块将初始问题作为输入并生成新的查询。它通过将各种第 9 代目标作为输出进行训练,输出包括答案、答案所属的句子以及包含答案的段落标题。其他一些作品产生了用于在潜在空间中搜索的密集表示。例如,Multi-step Reasoner [29] 采用门控循环单元 (GRU) [93],将来自 Reader 的令牌级隐藏表示和问题作为输入来生成新的查询向量,该向量使用强化学习 (RL) 进行训练通过在阅读用新问题检索到的新段落集后,测量 Reader 提取的答案与基本事实的匹配程度。 MUPPET [35] 将改编自 [94] 的双向注意力层应用于新的查询表示 ̃q,将每个获得的段落 P 和初始问题 Q 作为输入。 MDR [85] 使用预先训练的掩码语言模型(例如 RoBert)作为其编码器,它将问题表示的连接以及所有先前的段落编码为新的密集查询。相比之下,显式查询对人类来说易于理解和控制,但受词汇表中的术语的限制,而隐式查询是在语义空间中生成的,可以摆脱词汇表的限制,但缺乏可解释性。
检索停止机制:迭代检索方式为收集更多相关段落提供了更大的可能性,但检索效率会随着迭代次数的增加而急剧下降。关于停止迭代检索的机制,大多数现有系统选择指定固定的迭代次数 [29]、[36]、[85]、[86]、[89] 或最大检索文档数 [35 ],[87],这很难保证检索的有效性。 [77] 认为,为所有输入问题设置固定数量的文档是次优的,相反,他们基于 DrQA [3] 中的文档检索器开发了一个自适应检索器。他们提出了两种方法来动态设置每个问题的检索文档数量,即简单的基于阈值的启发式方法以及使用序数岭回归的可训练分类器。由于对于需要任意推理跳跃的问题,很难指定迭代次数,因此路径检索器 [88] 仅在其循环检索器检测到证据结束标记(例如 [EOE])时才终止其检索.这允许它执行自适应检索步骤,但在每一步仅获取一个文档。据我们所知,在不牺牲准确性的情况下开发高效的迭代检索器仍然是一项关键挑战。此外,典型的 IR 系统追求两个优化目标,即精度和召回率。前者计算返回的相关文档与返回的文档总数的比率,而后者是返回的相关文档的数量占底层存储库中相关文档的总数。然而,对于 OpenQA 系统,召回比精度更重要,因为后处理通常应用于返回的文档 [95],如下所述。
3.2 文档后处理
通常需要对从 Retriever 检索到的文档进行后处理,因为检索到的文档不可避免地包含不相关的文档,有时,返回的文档数量非常大,超过了 Reader 的能力。现代 OpenQA 架构中的文档后处理与传统架构中的类似,如第 2.2.2 节所述。它旨在减少候选文档的数量,只允许最相关的文档传递到下一阶段。在过去的几年里,这个模块已经引起了极大的兴趣[28]、[33]、[34]、[79]、[96]、[97]、[98]、[99]。例如,R3 [28] 采用神经 Passage Ranker,并通过强化学习 (RL) 与 Reader 联合训练。 DS-QA [33] 添加了一个段落选择器,通过测量每个段落在所有候选段落中包含答案的概率来从检索到的文档中去除噪声。 [96] 探索了两个不同的段落排序器,它们根据包含给定问题答案的可能性为检索到的段落分配分数。一个是 InferSent Ranker,这是一种前向神经网络,它采用 InferSent 句子表示 [100],根据与问题的语义相似性对段落进行排名。另一种是采用 Relation Networks [101] 的 Relation-Networks Ranker,侧重于测量问题和段落之间的单词级相关性。他们的实验表明,词级相关性匹配显着提高了检索性能,语义相似性更有利于整体性能。 [34] 在双编码器架构之后使用两个独立的 RNN 开发段落排名器。每对问题段落都被送入 Ranker 以独立获得它们的表示,并应用内积来计算相关性分数。 [98] 提出了一个时间感知重新排序模块,该模块结合了来自不同方面的时间信息,以对新闻文章的时间集合中的候选文档进行排序。该模块的研究重点是学习进一步对检索到的文档进行重新排序[28]、[33]、[34]、[79]。然而,随着 Dense Retriever 的发展,最近的 OpenQA 系统倾向于开发一种可训练的检索器,它能够同时学习对最相关的文档进行排序和检索,这将导致该模块的缺失。
3.3 Reader
Reader 是现代 OpenQA 系统的另一个核心组件,也是将 QA 系统与其他 IR 或 IE 系统区分开来的主要特征,后者通常作为神经 MRC 模型实现。它旨在从一组有序文档中推断出问题的答案,并且与在大多数情况下仅给出一段段落的原始 MRC 任务相比更具挑战性 [18]、[19]、 [90]、[102]、[103]。从广义上讲,现有的阅读器可以分为两种类型:从检索到的文档中预测答案范围的提取阅读器,以及使用序列到序列 (Seq2Seq) 模型以自然语言生成答案的生成阅读器。大多数先前的 OpenQA 系统都配备了 Extractive Reader [3]、[16]、[28]、[29]、[30]、[33]、[35]、[78]、[89],而最近的一些开发生成式阅读器 [38]、[85]、[104]。 10
3.3.1 抽取式阅读器
抽取式阅读器基于给定问题的正确答案肯定存在于上下文中的假设,通常侧重于学习从检索到的文档中预测答案范围的开始和结束位置。根据检索到的文档是独立处理还是联合处理以提取答案,这些方法可以分为两种类型。
许多先前的系统 [16]、[33]、[86]、[88]、[89] 通过包含答案的概率对检索到的文档进行排序,并从问题和最可能的文档的串联中提取答案跨度( s)。例如,DS-QA [33] 通过测量每个段落在所有候选段落中包含答案的概率,从专用段落选择器模块选择的段落中提取答案跨度。 DPR [16] 使用 BERT Reader 计算包含答案的段落和令牌作为答案跨度的开始和结束位置的概率,并在组合它们后选择概率最高的答案。一些系统开发了基于图形的阅读器 [88]、[89] 来学习从检索到的图形中提取答案范围。例如,Graph Reader [89] 将图作为输入,首先主要使用 Graph Convolution Networks [105] 学习段落表示,然后从最可能的一个中提取答案跨度。 Path Retriever [88] 利用 BERT Reader 同时重新排列推理路径,并使用多任务学习从包含正确答案的概率最高的路径中提取答案范围。但是,由于检索到的文档是独立处理的,该模型无法利用长叙述文档或多个文档中的不同证据来提取答案,这会损害性能,尤其是在给定问题需要多跳推理的情况下。
相比之下,一些系统 [3]、[78]、[82]、[94] 以联合方式基于所有检索到的文档提取答案跨度。例如,DrQA [3] 将检索到的文档分解为段落,并提取由词性(POS)、命名实体(NE)和词频(TF)等组成的各种特征。然后是 DrQA Reader,即使用多层 Bi-LSTM 实现,将问题和段落作为输入,并预测答案跨度。在这个过程中,为了使答案分数在段落之间具有可比性,它采用非归一化指数函数,并在所有答案跨度上取 argmax 以获得最终结果。 BERTserini [78] 基于 BERT 开发了它的阅读器,去除了 softmax 层,以便在不同段落之间比较和汇总答案分数。 [94] 认为对所有答案跨度使用非归一化分数(例如,指数分数或 logits 分数)是次优的,并通过修改目标函数来规范化所有段落的开始和结束分数,提出了一种共享归一化机制,实现一致的性能增益。之后,许多 OpenQA 系统 [17]、[29]、[35]、[36]、[79]、[82] 通过应用这种基于原始 MRC 模型(如 BiDAF [24]、BERT)的机制来开发他们的阅读器[27] 和 SpanBERT [106]。
3.3.2 Generative Reader
Generative Reader 旨在尽可能自然地生成答案,而不是提取答案跨度,通常依赖于 Seq2Seq 模型。例如,S-Net [107] 是通过将提取和生成方法相结合以相互补充而开发的。它采用证据提取模型首先预测文本跨度的边界作为答案的证据,然后将其输入 Seq2Seq 答案合成模型以生成最终答案。最近,一些 OpenQA 系统 [38]、[85]、[104] 采用预训练的 Seq2Seq 语言模型来开发他们的阅读器,如 BART [92] 和 T5 [108]。例如,RAG [38] 采用预训练的 BART 模型作为其阅读器,通过获取输入问题以及 DPR [16] 检索到的文档来生成答案。 FID [104] 首先使用 T5 或 BART 编码器对每个检索到的文档进行独立编码,然后使用解码器对所有输出表示进行关注以生成最终答案。然而,当前生成的结果经常会遇到语法错误、不连贯或不合逻辑的问题 [109]。 Generative Reader 需要进一步探索和提升。
3.4 Answer Post-processing回答后处理
神经 MRC 技术近年来发展迅速,但大多数现有的 MRC 模型仍然专注于仅从单个或几个短段落中提取答案,并且在正确答案来自叙述文档或多个文档中的各种证据的情况下往往会失败[110]。开发答案后处理模块是为了帮助从阅读器提取的一组候选答案中检测最终答案,同时考虑到它们各自的支持事实。现有系统中采用的方法可以分为两类,即基于规则的方法[34],[110]和基于学习的方法[76],[110],例如,[110]提出了两种答案rankers,一个“基于强度的重新排序”和一个“基于覆盖率的重新排序”,聚合来自不同段落的证据来决定最终答案。 “基于强度的重排器”是一种基于规则的方法,只需根据候选预测执行计数或概率计算,不需要任何训练。 “基于覆盖的重新排序器”是使用基于注意力的匹配 LSTM 模型 [111] 开发的。它首先将包含相同答案的段落连接成一个伪段落,然后测量该伪段落对给定问题的答案的准确程度。 [110] 中的实验表明,上述不同重新排序器的输出的加权组合在几个基准测试中实现了最佳性能。 RankQA [76] 开发了一个答案重新排序模块,包括三个步骤:特征提取、答案聚合和重新排序。首先,以 Reader 的前 k 个候选答案作为输入,模块从 Retriever 中提取一组特征,如文档-问题相似度、问题长度和段落长度,以及 Reader,如答案候选的原始分数、part-of-答案的语音标签和答案的命名实体。其次,该模块将具有相同答案跨度的所有候选答案分组,以生成一组聚合特征,如跨度分数的总和、平均值、最小值和最大值等。基于这些特征,重新排序网络,如11前馈网络或RNN用于学习进一步重新排列答案以选择最佳答案作为最终答案。
3.5 端到端方法
近年来,各种 OpenQA 系统 [15]、[30]、[37] 被开发出来,其中 Retriever 和 Reader 可以以端到端的方式进行训练。此外,有一些系统只有 Retriever [73],也有一些系统可以在没有检索阶段的情况下回答开放性问题,这些系统大多是预训练的 Seq2Seq 语言模型 [92]、[108]、[112] , [113]。下面,我们将介绍这三种类型的系统,即 Retriever-Reader、Retriever-only 和 Retriever-free。
3.5.1 Retriever-Reader
深度学习技术使 OpenQA 系统中的 Retriever 和 Reader 能够端到端训练 [15]、[30]、[37]、[38]。例如,[15] 提出使用基于 BiDAF 模型 [24] 的多任务学习联合训练 Retriever 和 Reader,同时计算段落与给定问题的相似度并预测答案跨度的开始和结束位置。 [37] 认为,将独立的 IR 系统合并到 OpenQA 系统中并开发 ORQA 以从问答对中联合训练 Retriever 和 Reader 是次优的,两者都使用 BERT [27] 开发。 REALM [30] 是一个预训练的掩码语言模型,包括一个神经检索器和一个神经阅读器,它能够计算梯度 w.r.t。模型参数并在整个网络中一直反向传播梯度。由于这两个模块都是使用神经网络开发的,因此对问题的响应速度是推理过程中最关键的问题,尤其是在大量文档中。
3.5.2 Retriever-only
为了提高答题效率,有些系统开发时只采用了Retriever,省略了Reader,而Reader在其他现代OpenQA系统中通常是最耗时的阶段。 DenSPI [73] 在给定文档集合(如 Wikipedia 文章)的情况下离线构建与问题无关的短语级嵌入索引。在索引中,来自语料库的每个候选短语由两个向量的连接表示,即一个稀疏向量(例如,tf-idf)和一个密集向量(例如,BERT 编码器)。在推理中,给定的问题以相同的方式编码,并使用 FAISS [114] 来搜索最相似的短语作为最终答案。实验表明,它获得了显着的效率提升,并在保持准确性的同时显着降低了计算成本。然而,系统独立计算每个短语和问题之间的相似度,这忽略了通常对回答问题至关重要的上下文信息。
3.5.3 Retriever-free
预训练 Seq2Seq 语言模型的最新进展,如 GPT-2 [112]、GPT-3 [113]、BART [92] 和 T5 [108],为下游 NLG 带来了大量改进任务,其中大部分是使用基于 Transformer 的架构构建的。特别是,GPT-2 和 GPT-3 采用 Transformer 从左到右解码器,而 BART 和 T5 使用紧跟其原始形式的 Transformer 编码解码器 [72]。先前的研究 [115]、[116] 表明,从大规模文本数据中学到的大量知识可以存储在底层参数中,因此这些模型能够在不访问任何外部知识的情况下回答问题.例如,GPT-2 [112] 能够在没有微调的情况下仅在给定自然语言问题的情况下正确生成答案。之后,与之前最先进的微调方法相比,GPT-3 [113] 通过少量学习实现了具有竞争力的性能,其中在推理时给出了几个演示作为条件 [112],而权重更新是不允许。最近,[116] 全面评估了语言模型在无需访问任何外部知识的情况下回答问题的能力。他们的实验表明,预训练的语言模型能够在各种基准测试中获得令人印象深刻的性能,并且这种无检索方法为构建 OpenQA 系统提供了一种根本不同的方法。在表 1 中,我们总结了现有的现代 OpenQA 系统以及不同组件采用的方法
4 挑战和基准
在本节中,我们首先讨论构建 OpenQA 系统的关键挑战,然后分析现有的 QA 基准,这些基准不仅通常用于 OpenQA,而且也用于 MRC。
4.1 OpenQA面临的挑战
建立一个能够回答任何输入问题的OpenQA系统被认为是QA研究的最终目标。然而,研究界还有很长的路要走。在这里,我们讨论了一些在此过程中需要解决的突出挑战。通过这样做,我们希望能够更加清楚地研究差距,从而加速该领域的进展。
4.1.1 远程监督
在 OpenQA 环境中,几乎不可能创建一个包含“足够”高质量训练数据的集合来提前开发 OpenQA 系统。因此,远程监督被广泛使用,它能够根据现有的语料库(例如维基百科)自动标记数据。然而,远程监督不可避免地存在错误标签问题,往往会导致大量噪声数据,显着增加建模和训练的难度。因此,总是需要能够容忍这种噪音的系统。
4.1.2 检索有效性和效率
检索有效性是指系统针对给定问题将相关文档与不相关文档分离的能力。系统经常出现“词条不匹配”,导致无法检索到相关文档;另一方面,系统可能会收到包含问题中确切术语甚至正确答案跨度的嘈杂文档,但与问题无关。问题。这两个问题都增加了在答案推理过程中准确理解上下文的难度。最近提出了一些神经检索方法[15]、[16]、[30]、[37]、[73]、[117],以提高检索效率。例如,[37] 和 [30] 联合训练检索和阅读器模块,它们利用预训练的语言模型并将检索模型视为潜在变量。然而,这些神经检索方法往往效率低下。一些作品 [15]、[16]、[37]、[117] 建议为每个文档或短语预先计算与问题无关的嵌入,并且只构建一次嵌入索引。先进的亚线性最大内积搜索(MIPS)算法[69]、[70]、[71]通常用于获取给定问题的前K个相关文档。然而,当系统面对大量文档时,响应速度与典型的 IR 技术仍有巨大差距。检索的有效性和效率都是在实践中部署 OpenQA 系统的关键因素,尤其是在实时场景中。如何始终如一地增强这两个方面(也有良好的权衡)将是 OpenQA 进步的长期挑战。
4.1.3 知识整合
整合上下文文档和给定问题之外的知识是 OpenQA 系统 [7] 的关键增强,例如世界知识、常识或特定领域的知识。在使用这些知识之前,我们首先需要考虑如何表示它们。一般有两种方式:显式和隐式。对于显式方式,知识通常被转化为三元组的形式,并存储在 DBPedia [118]、Freebase [119] 和 Yago2 [120] 等经典知识库中,这些知识库很容易被人类理解。一些早期的 QA 系统试图以这种方式结合知识来帮助找到答案。例如,IBM Watson DeepQA [58] 结合了一个 Web 搜索引擎和一个 KB,在美国电视节目“Jeopardy”中与人类冠军竞争; QuASE [121] 从网络搜索引擎(例如 Google.com)中搜索最突出的句子 13 的列表,然后利用 Freebase [119] 上的实体链接从所选句子中检测正确答案。近年来,随着图神经网络(Graph Neural Network,GNN)的普及,一些工作[89]、[122]、[123]提出不仅从文本语料库中获取相关信息,还从知识库中获取相关信息,以方便证据检索和提问。回答。例如,[122] 构建了一个特定于问题的子图,其中包含来自语料库的句子,以及来自 KB 的实体和关系。然后,基于图 CNN 的方法 [105]、[124]、[125] 用于推断子图上的最终答案。但是,以显式方式存储知识也存在知识不完整和过时等问题。此外,构建 KB 既费力又费时。另一方面,通过隐式方法,大量知识 [115] 可以存储在通过预先训练的语言模型(如 BERT [27]、XLNet [126] 和 T5 [ 108],可以顺利应用于下游任务。最近,预训练的语言模型已被广泛研究并应用于开发 OpenQA 系统 [16]、[30]、[32]、[37]、[78]、[87]、[88]。例如,[32]、[78]、[88] 使用 BERT [27] 开发他们的 Reader,而 [16]、[37] 使用 BERT 开发 Retriever 和 Reader。此外,像 GPT-2 [112] 这样的预训练语言模型能够生成仅给出自然语言问题的答案。然而,这样的系统就像一个“黑匣子”,几乎不可能知道哪些知识已被准确存储并用于特定答案。它们缺乏对实际应用至关重要的可解释性。需要知识增强的 OpenQA 不仅因为它有助于生成答案,而且因为它可以作为解释获得答案的来源。如何为 OpenQA 表示和充分利用这些知识还需要更多的研究工作。
4.1.4 会话式 OpenQA
非会话式 OpenQA 面临几个几乎不可能解决的问题,例如复杂问题的冗长单词(例如,谁是新加坡第一任总理的次子?),ambi - guity 导致不正确的响应(例如 Michael Jordan 是什么时候出生的?)和用户的背景知识不足导致不合理的结果(例如,为什么我今天头疼得厉害?)。这些问题在对话环境下会得到很好的解决。对话系统[150]、[151]配备了一个类似对话的界面,使人类用户和系统之间能够进行交互以进行信息交换。对于上面给出的复杂问题示例,可以依次分解为两个简单的问题:“新加坡第一任总理是谁?”其次是“他的第二个儿子是谁?”。当在问题中检测到歧义时,对话式 OpenQA 系统预计会提出后续问题以进行澄清,例如“你是指篮球运动员吗?”。如果给出的问题背景知识不足,还可以提出后续问题,以从人类用户那里收集更多信息以得出最终答案。为了实现这些目标,需要解决三个主要挑战。首先,对话式 OpenQA 应该能够确定问题是否无法回答,例如检测问题中是否存在歧义,或者当前上下文是否足以生成答案。在过去几年中,对无法回答的问题的研究在 MRC 的发展中引起了很多关注 [20]、[22]、[128]、[144]、[152]、[153]。然而,当前的 OpenQA 系统很少包含这种机制来确定问题的不可回答性,这对于对话式 OpenQA 系统尤其必要。其次,当问题由于模棱两可或背景知识不足而被归类为无法回答时,对话式 OpenQA 系统需要生成一个后续问题 [154]。然后可以将问题生成 (QG) 视为 QA 的子任务,这是对话式 OpenQA 的关键模块。在过去的几年里,从文本段落中自动生成问题的研究越来越受到关注[155]、[156]、[157]、[158]。与基于给定段落生成问题的典型 QG 任务相比,在对话式 OpenQA 中生成的问题只能由人类用户回答。第三个挑战是如何在 Reader 和 Retriever [159] 中更好地建模对话历史。最近发布的会话 MRC 数据集,如 CoQA [133] 和 QuAC [134],旨在使读者能够通过理解给定的上下文段落以及迄今为止的对话历史来回答最新问题。由于他们在任务设置中提供上下文段落,因此他们省略了 OpenQA 所需的文档检索阶段。最近,在[159]中,QuAC 数据集通过适应开放检索设置扩展为新的 OR-QuAC 数据集,并开发了开放检索会话问答系统(OpenConvQA),该系统能够从考虑到对话 QA 对,在推断答案之前收集大量数据。 OpenConvQA 试图在没有任何特定上下文的情况下回答给定的问题,因此具有更广泛的应用范围,更符合人类现实世界的 QA 行为。然而,OR-QuAC上系统的最佳性能(F1:29.4)远低于QuAC上的state-of-the-art(F1:74.41),这表明它在开放时面临更大的挑战-检索设置。
4.2 基准
在过去十年中发布了大量的 QA 基准,总结在表 2 中。在这里我们对它们进行简要分析,重点是它们各自的特征,数据集分布 w.r.t。背景信息域、问题数量、发布年份。如本文所述,MRC 任务的成功是迈向更高级 OpenQA 的关键一步,我们相信未来 MRC 方法的进步将显着推动 OpenQA 系统。因此,我们不仅包括用于 OpenQA 的数据集,还包括仅用于 MRC 的数据集,以使我们的调查更加全面。判断 QA 数据集是否适用于开发 OpenQA 系统的主要标准是它是否涉及单独的文档集(通常是大规模的)[90],或者它是否相对容易访问这样的信息源 [18] , [22] 可以推断问题的答案。例如,HotpotQA [90] 本身提供了一个完整的 wiki 设置,要求系统在整个 Wikipedia 范围内找到问题的答案。 [3] 通过使用整个 Wikipedia 作为其信息源,将 SQuAD [19] 扩展到 SQuADopen。我们总结并说明了表 2 w.r.t 中列出的数据集的分布。图 7 中的发布年份,图 8 中的背景信息域和图 6 中的问题数量。此外,我们在表中总结了适用于开发 OpenQA 系统的数据集的信息源类型
5结论
在这项工作中,我们对开放域 QA (OpenQA) 系统的最新进展进行了全面调查。特别是,我们首先回顾了 OpenQA 的发展,并说明了“检索器-阅读器”架构。此外,我们审查了各种现有的 OpenQA 系统以及它们的不同方法。最后,我们讨论了 OpenQA 面临的一些突出挑战,并对各种 QA 基准进行了总结,希望能够揭示研究差距,从而推动该领域的进一步发展。基于我们回顾了之前的研究,我们声称 OpenQA 将继续成为研究热点。特别是,由于对相关文档的更准确检索的需求,单步和多步神经检索器将受到越来越多的关注。此外,随着深度学习技术的进步,将开发更多的端到端 OpenQA 系统。知识增强的 OpenQA 非常有前途,不仅因为它有助于生成答案,还因为它可以作为解释获得答案的来源。然而,如何为 OpenQA 表示和充分利用这些知识仍然需要更多的研究工作。此外,为 OpenQA 配备类似对话的界面,使人类用户与系统之间进行交互以进行信息交换,预计将引起越来越多的关注,这与现实世界的应用场景非常吻合。