OpenQA论文阅读(十二) The state of the art in open domain complex question answering: a survey
2022-10-02 09:46:23

image-20221002101404699

0 Abstract

本文主要介绍开放域问答中复杂问题的研究现状。在各种类型的QA问题,简单问题是指可以在单个段落或句子中找到答案的问题,复杂问题则需要更复杂推理才能找到答案,或者需要通过遍历多个关系来找到答案。

本文讨论了复杂问题是什么,并调查了复杂问题中可能出现的不同类型的约束。此外,它还总结了这些类型问题的挑战、目前已经提出的处理方法以及用于评估其优缺点的基准数据集。

1 Introduction

QA根据不用维度有多种分类方式:

根据与问题领域: 开放域 / 封闭域

根据问题类型: 事实性问题(谁/谁/何时/何地),假设性问题,确认性问题(答案为是/否),因果关系(如何/为什么)等。

根据问题的复杂性:

  • 简单问题:可以在单个段落或句子中找到答案的问题

  • 复杂问题:需要更复杂推理才能找到答案,或者需要通过遍历多个关系来找到答案的为问题。

封闭域 QA 系统大多使用基于模板或基于规则的方法来回答复杂问题 ,本文只讨论开放域QA。

2 Complex questions

复杂问题的复杂性可分为两个子类:答案-检索-复杂性 以及 问题-理解复杂性

image-20221002101347124

答案-检索-复杂性

一些研究人员将为什么、如何、假设、确认(是-否)和意见问题视为复杂问题,其中复杂性主要在于答案检索部分。这部分可能需要对不同文档中的多个线索进行推理。这种类型的复杂性也被称为长式问答,其中 NLU 技术与信息检索方法一起使用来找到答案。此类复杂性的示例如上的第 8 至第 12 行所示。

问题-理解复杂性

具有多个事实和多个约束(例如顺序、聚合等)的问题也被视为需要推断问题中存在的语义组件的复杂问题。例如,要回答“谁是美国出生的第二富有的人?”这个问题,我们应该注意几个语义成分。

在本文中,基于以下要求考虑问题的复杂性:1)在知识库中找到多个事实、关系或谓词,称为多跳问题。 2)深入理解文档、段落或句子中各种信息之间的关系。 3)添加不同的操作或处理多个约束来限制答案。总体而言,基于以前的工作和文献,我们将问题理解复杂性分为以下五类

  1. 多跳问题
  2. 多实体约束
  3. 时间信息约束
  4. 运算操作约束(需要对信息进行运算得到答案,该类分为两种类型,即:排序和聚合)
  5. 答案类型约束

由于这些约束的存在,人们应该面临许多挑战才能找到正确的答案:

  • 正确检测约束。
  • 如果存在多个约束,则找到正确的顺序;
  • 在构建逻辑形式时找到正确的约束组合
  • 推断多个语义线索并找到多个相关文档、段落和句子,从而得出正确答案。

3 Datasets

image-20221002111641645

为了进一步研究 CQA 数据集,本文研究了数据集中问题的语义多样性。为此,我们首先用虚拟标记 <E> 替换问题中的实体。在使用sentence-transformer为每个问题创建嵌入后,我们计算每对问题之间的余弦相似度。结果表明具有简单问题的数据集具有更多的多样性。

4 System categorization based on data resource

外部资源在构建回答用户问题的系统方面有重大贡献。许多论文根据这些资源的结构提出了不同的技术。使用文档或网页、非结构化资源作为信息资源的方法,与使用表格或知识图的结构化资源方法相比,在基于复杂问题的约束条件下寻找正确答案方面面临不同的挑战。拥有结构良好的资源可以帮助找到准确和正确的答案,但它们没有在网页或原始文本中可以找到的所有信息。有些方法试图使用他们拥有的所有资源(结构化数据和非结构化数据)来回答复杂的问题,包括原始文本、表格甚至图像 [94]。

1) 使用非结构化数据的方法

2) 使用结构化数据的方法

3) 混合方法

4.1 Answering questions from unstructured data

对于回答自然语言问题,主要资源是文档(文本 QA)和网页(基于 Web 的 QA)。已经提出了不同的方法来使用分解**(Decomposition)或阅读理解(Reading Comprehension)**技术使用原始文本来回答复杂的问题。此外,还有一些基于检索算法的方法,使用查询扩展来回答复杂问题。

Decomposition

将一个复杂的问题分解为多个简单的问题,以便每个问题的答案都在不同的单个句子、段落或文档中。三个主要步骤:

1)将复杂问题分解为多个简单问题,2)检索简单问题的相关文档和段落并获得候选答案,3)对答案进行推理,组合答案(集合操作)或找到最佳答案。

一个复杂的问题可以通过两种主要方法进行分解,即句法分解和语义分解:

句法分解: 句法分解关注问题的句法线索,这些线索要么导致独特的分解,要么产生不同的可接受分解,而其中一些可能没有答案。因此,定义一些模式和规则以找到准确的分解非常重要。

语义分解: 使用知识模板来找到资源和文档可以回答的子问题。语义分解的一个主要缺点是它仅限于他们拥有知识模板的领域。使用语义分解的第一步是要么拥有知识模板,要么从原始文本中创建它们。

在 [37, 38] 中提出了一个德语 QA 系统。首先将问题通过用于分析文档的解析器进行解析。接下来,通过将问题的表示与文档的语义网络匹配(语义网络匹配)来提取问题的语义表示以找到答案。之后,通过给出匹配文档、问题和问题类型的语义表示,系统使用一些规则来生成候选答案。最后,通过检查答案的频率和详细程度来选择最佳答案。

句法分解技术用于隐式时间问题,将独立部分分解为简单的子问题。接下来,通过处理事实性问题的方法检索子问题的候选答案。在答案融合步骤中选择最终答案。他们使用网络(万维网)来获得具有高总频率计数(TFC)的最佳答案以进行答案验证。

文献 [39] 提出了一个系统,该系统通过定义基于文档构建的语义网络的各种语义分解类来涵盖 QA@CLEF 2004 至 2008 年中更多类型的复杂问题。整个分解步骤都是基于语义网络,而不是自然语言。根据这些研究人员的说法,只要有一个解析器可以从原始文本中创建与它们相同的语义网络,这些分解方法就可以在其他语言中使用。

在 [51] 中,提出了一个多事实 QA 系统。他们使用词汇句法特征来识别问题中的不同事实,并将复杂问题分解为多个简单问题。然后,他们使用 IBM Watson 来增强对简单问题的回答能力。在这项工作中,分解分为并行和嵌套两种类型。并行分解,子问题可以独立回答,而在嵌套中,子问题按顺序处理以找到答案。提出了四个关键步骤,它们具有基于并行或嵌套问题的不同算法。这些步骤如下:1)使用句法线索识别分解部分,2)为子问题添加信息上下文,因为某些子问题可能不携带限制其答案所需的信息,3)检索答案列表具有来自 QA 系统的置信度分数的子问题,以及 4) 使用候选重新排序器,该候选重新排序器基于并行或嵌套的问题组合答案。这种重组策略对嵌套问题采用启发式方法,对并行问题采用机器学习技术,通过使用候选子答案的置信度分数来获得最终排名。

今天,深度学习和端到端系统已经成为深入研究的主题,并且已经做出了各种努力来构建具有这种架构的系统。**在[93]中,**准备了一个具有序列到序列模型的端到端系统。该系统获取一个问题并通过语义分解生成其对应的计算树。计算树的叶子是类似于子问题的字符串,其节点是用于组合答案的函数。为了回答子问题,使用阅读理解技术从搜索引擎检索到的网络片段列表中提取答案。他们还定义了一些函数,这些函数将答案与适当的逻辑结合起来,以获得正确的最终答案。[93] 还解决了在回答具有运算限制的问题时遇到的一些挑战,并且原始文本的否定问题涉及一些问题。例如,从原始文本中获取具有相应值的所有实体以对其执行操作约束可能是一项耗时的任务。此外,为了否定诸如哪些国家不在 OECD 中之类的问题,出现了一组开放的实体,这些实体无法通过集合减法进行分析。

在[97]中,提出了一种有效且可解释的Select、Answer和Explain(SAE)系统来解决多文档阅读理解问题。给出了问题和 N 个文档。基于给定文档的相关性得分,BERT 模型选择排名前 k 的文档。所有选定的文档都连接到一个上下文输入中。然后,将问题和上下文转发到另一个 BERT+Multi-Perceptron 模型中,以找到答案跨度的起点和终点。最后,为了找到支持句子,在句子嵌入上使用 GNN 模型。表示向量是图的节点,边是基于问题和句子中呈现的命名实体和名词短语构建的。采用基于多关系图卷积网络(GCN)的消息传递策略来更新图节点特征,并将最终节点特征输入到 MLP 以获得每个句子的分类 logit。支持句是在分类输出中得分为 1 的句子。

可以推断,用于从原始文本中回答复杂问题的算法之间的主要区别在于分解阶段,该阶段显示了它们如何处理约束。在得到简单的子问题后,可以利用现有的 QA 系统、信息检索技术或阅读理解方法来获得答案。最终,最后一步是通过定义各种技术来重新组合答案以获得最终的正确答案。

Reading comprehension

为阅读理解任务提出了其他方法,这些方法试图回答复杂问题而不将它们分解成简单问题,并且它们使用给定的原始文本作为外部资源。他们使用深度模型来推断并找到给定上下文的答案范围。

4.2 Answering questions from structured data

有些研究已经创建了大型结构化知识库或知识图谱,例如 Freebase [11]、DBpedia [5]、YAGO [90]、NELL [12] 和 Vault [23]。

有两种主要类型的 KB-QA:或封闭 KB系统和开放 KB 系统。这些系统之间的区别在于它们使用的知识库的类型。

image-20221002164557332

第一种类型的系统使用像 Freebase(停止维护,可使用wikidata)、DBpedia 和 YAGO 这样的精选 KB,其中信息和知识被编码为实体和具有唯一 ID 的关系,称为 RDF三元组。它们也被称为语义网或 RDF 知识库。这些知识库具有预定义的架构,有时需要手动编辑(不一定要创建),使其准确且易于使用。但是,使用这些 KB 时存在一些缺点,例如:1)查询转换(问题应转换为结构化查询,如 SPARQL) 2)不完整。

第二种系统采用开放信息提取 (Open IE) 技术来构建半结构化数据,这些数据以 n 元组 (n ≥ 3) 的形式存储。这些事实中存在着大量的噪音,并且可能在多个 RDF 三元组中以不同形式的名词短语找到相同的实体或关系;由于这些错误,我们不确定我们是否通过对开放 KB 执行查询来获得有关特定实体的所有事实 。开放知识库的一个优点是,如果知识库中不存在某些知识,则可以从文档或网页中的原始文本中即时检索它们。在 [31] 中有更多关于策展知识库的关系、实体和 RDF 三元组数量的详细信息。

第三种系统使用对使用数据库或 KG 的 QA 表。表格数据的主要特点是它们没有被标准化,这会导致schema不匹配错误。

4.2.1 Open KB-QA Systems

有些 QA 系统可以使用开放式 KB [29, 30],但它们无法回答具有复杂语义组件的问题。

image-20221003161929666

文献[115]中提出了nOKB的复杂问题问答模型。主要步骤1)问题释义:在此步骤中,将问题转化为标准问题。这种标准化是为了让问题具有相似的句法和词汇结构以及开放的 KB 元组。文献提出的新释义模板涵盖了[30]在释义具有复杂语义内容的问题方面的缺点。 2) 问题解析:它解析上一步经过正则化的问题并创建多个元组查询 (<sbj,rel,Args = arg1,arg2, …,argn−2>),元组中的字段、实体或关系之一是未知的,也正是需要查询的问题的答案。 3)查询开放知识库:这一步获取元组查询并针对现有的开放知识库执行它们并检索一组候选答案。 4)答案排序,收集上一阶段检索到的所有答案。每个答案都有许多特征,因为它是在释义解析查询过程中派生的。如果答案出现在多个查询中,则选择其中最好的特征。最后,有一个线性模型可以将这些特征与问题一起获取,以预测其中的最佳答案。

image-20221003161948642

在 [53] 中,提出了一种算法来回答 4 年级和 8 年级科学考试数据集的多项选择复杂问题。该算法有以下步骤: 1)通过tf-idf分数找到与复杂问题相关的元组;在这里,假设问题是一个查询,元组是一个文档。此外,不支持其字段之一中问题的任何答案选择的元组将被删除。在这个阶段,选择前 50 个元组。 2) 连接这些元组以创建图,其中节点作为实体,边作为关系。图 3 显示了将问题中的术语与答案选择联系起来的图表。 3)找到导致正确答案的最佳图表。对于这一步,目标函数用于对最佳匹配进行评分。

image-20221003162043338

在 [55] 中,研究人员提出了一种方法,该方法在开放 KB 上使用随机游走技术random walk technique)来回答 6 至 9 年级科学考试中的多项选择复杂问题。这些研究人员采用的随机游走从现有的相关节点开始。接下来,遍历关系和节点以找到答案节点,同时通过到达它们的路径对它们进行评分。节点重要性、边缘概率和隐形传态概率通过有监督和无监督方法测量。这样,就有可能引导随机游走到正确的答案。下图展示了算法从哪里开始(S 个节点)以及它如何通过现有的 RDF 三元组到达答案选择(W 是错误答案,R 是正确答案)。

4.2.2 Curated KB Systems

几十年来,在开放域 QA 系统中使用的最流行的资源之一是精选的知识库。

具有多个实体、关系或复杂语义的问题被认为是复杂的。为此目的引入的方法可以分为三大类:1)基于语义解析,2)基于嵌入,3)基于信息检索。

Semantic parsing-based approaches

语义解析方法尝试捕获不同的语义成分并构建问题的相应逻辑形式,如 λ-DCS [61]、查询图或可执行查询(如 SPARQL)。这项工作中的语义解析过程是一个查询图生成,可以形成一个具有阶段状态和动作的搜索问题。

在 [7] 中,提供了一个语义解析系统,该系统将复杂的多约束问题 (MulCQ) 转换为多约束查询图 (MulCG),主要步骤为:1) 基本查询图生成:问题中的每个实体都被视为主题实体并且通过使用类似于之前算法的CNN模型来提取其到答案的路径。 2)约束检测和绑定:有一种基于规则的约束检测方法,用于在问题中找到约束,一种基于规则的约束绑定方法,用于将约束插入到生成的基本查询图中。 3)搜索空间生成:它提供了可以绑定到不同基本查询图的所有约束的前置。 4) 特征和排名。由于有多种方式来组装查询图并找到不同的基本查询图作为核心链,因此使用线性评分函数对这些候选图进行排名。最终,针对 KB 执行最佳查询图。

Embedding-based approaches

4.2.3 QA Systems using tabular[表格] data

表格是用于许多用途的流行且简单的结构之一,但对于保存数据并不总是有效的。一些论文提出了一种语义解析技术来构建问题或可执行查询的逻辑形式 [41, 68, 69]。此外,其他一些研究引入了弱监督技术来寻找答案 [2, 70, 102] 或使用端到端模型 [98]。在 [41] 中,基于 BERT 构建了一个弱监督系统,通过选择表格单元格和可选地应用聚合来预测表示。表格单元格选择和选定单元格上的聚合操作有两个分类层。

4.3 Hybrid methods

同时使用知识库和文档来检索答案并处理复杂问题中的约束。如前文所述,使用结构化数据获取句子的语义表示可能更可行。但是,构建结构化知识库的成本很高,而且可能没有所有信息。更重要的是,构建复杂问题的正确语义表示是一项艰巨的任务。

在 [106] 中,提出了一种使用 Freebase 和 Wikipedia 来回答问题的方法。该方法分两步进行:1)使用实体链接和关系提取从知识库中提取候选答案(使用深度学习,MCCNN模型)2)进一步推断维基百科以消除错误答案并找到正确答案。对于约束处理,该方法采用句法分解来为具有多个关系和实体的复杂问题创建子问题。此外,这些研究人员试图在原始文本中找到操作约束的答案,而不是用数学方法处理它们。

在 [92] 中,提出了 PullNet 网络来生成问题子图来回答问题。子图是使用语料库和知识库迭代构建的。问题的子图是包含一组顶点和边的异构图。顶点是实体节点、文本节点和事实节点。文本节点是包含提及实体的单个句子。为了迭代地构建这样的子图,他们提出了两个主要操作:Pull操作和分类操作。Pull操作作从 KB 或语料库中检索信息。对节点应用分类操作,以找出在下一次迭代中需要扩展的节点的概率。展开第 t 次迭代后,使用分类操作找到答案节点。该网络建立在 GRAFT-Net [91] 上。

5 Evaluation metrics

将评估指标分为两类:1)基于答案的评估。 2) 基于生成的评估。

5.1 Answer-based evaluation

Accuracy/Precision/Recall/fβf_β/Hit@1/MRR

5.2 Generation-based evaluation

当模型的输出是生成的文本(例如 SPARQL 查询或答案文本)时,通常会使用本节中介绍的常用指标。

EM: Exact Match 是 问答系统 的一种常见的评价标准,它用来评价 预测中 匹配到正确答案(ground truth answers)的百分比。

EM 是用于 SQuAD 的主要指标之一。

BLEU: 所谓BLEU,最开始是用于机器翻译中。他的思想其实很native,对于一个给定的句子,有标准译文S1,还有一个神经网络翻译的句子S2。BLEU的思想就是对于出现机器翻译S2的所有短语,看有多少个短语出现在S1中,然后算一下这个比率就是BLEU的分数了。首先根据n-gram划分一个短语包含单词的数量,有BLEU-1,BLEU-2,BLEU-3,BLEU-4。分别就是把文章划分成长度为1个单词的短语,长度为2个单词的短语,。。然后统计她们出现在标准译文中个数,在分别除以划分总数,就是对应的BLEU-1分数,BLEU-2分数。其实就是准确率。看这些划分中有多少是出现在标准译文当中的。一般而言:unigram 的准确率可以用于衡量单词翻译的准确性,更高阶的 n-gram 的准确率可以用来衡量句子的流畅性,n{1,2,3,4}。但是BLEU会有个缺陷,假如我就翻译一个单词,而这个单词正好在标准译文中,那岂不是准确率100%,对于这个缺陷,BLEU算法会有个长度惩罚因子,就是翻译太短了就会有惩罚,不过,总的来说,还是偏向于短翻译分数高一点。

ROUGE: ROUGE算法基本思路和BLEU差不多,不过它统计的是召回率,也就是对于标准译文中的短语,统计一下它们有多少个出现在机器翻译的译文当中,其实就是看机器翻译有多少个翻译对了,这个评价指标主要在于标准译文中的短语都出现过,那么自然机器翻译的译文越长结果越好。

BERTScore: 给定一个参考句子 x =< x1, …,xk > 和一个候选句子 ^ x =< ^ x1, …, ^ xl >,上下文嵌入用于表示标记,并使用余弦相似度计算匹配,可选地用逆文档频率分数加权[118]。

6 Performance and results

image-20221004103903365

image-20221004103913771