问答系统中复杂问题分解方法研究综述

2022-09-06 11:08杭婷婷
计算机工程与应用 2022年17期
关键词:语义模板模型

冯 钧,李 艳,杭婷婷

河海大学 计算机与信息学院 水利部水利大数据重点实验室,南京 211100

问答系统[1]作为目前自然语言处理(natural language processing,NLP)领域中备受人们关注且具有广泛发展前景的研究方向之一,允许用户以自然语言问句的形式表达复杂的信息需求,并针对用户提出的问题直接返回精准的答案。现有的问答系统根据答案获取途径可以分为检索式问答系统、生成式问答系统[2]。检索式问答系统是从已有的知识库、数据集、文档或者网页中检索与问题最相关的答案,例如基于知识库的问答(KBQA)、基于文档的问答(DBQA)。而生成式问答系统则根据用户查询的问题,由模型自动生成相关的答案[3]。根据问题的类型以及答案特点,问答又分为事实型问答和非事实型问答[4]。事实型问答一般询问的某一客观事实,答案是唯一确定的,通常是实体或短语,例如以Who、Where、When 等疑问词为首的问句[5]。而非事实型问答的问题可以是询问观点、方法等,答案不具有确定性,可能是段落或句子,注重回答是否合理,例如How、Why、解释类问题,以及闲聊类问题[6]。

问答系统一般分为三个模块:问题理解、信息检索和答案抽取[7]。问题理解作为问答系统的首要环节,其重要性显而易见,其结果为后续的信息检索和答案抽取两个环节提供了指导信息。随着大数据时代的到来,用户不再满足于仅限于单一属性或单一实体的问答,而更倾向于涉及多个本体、多个类的复杂问题,如“中国的首都有哪些展示抗战精神的景点?”[8]。复杂问题有两个特征:一是具有比较复杂的句法结构;二是问句内容可能包含多个本体的多个类及属性或者具有多个约束条件,因此其语义结构也比较复杂。传统的问题理解方法(如问句类型识别[9]、问句主题识别[10]、查询扩展[11]、关键词项赋权[12]以及问句复述[13]等)不足以有效地帮助问答系统处理复杂问题。通过对复杂问题进行分解,可以有效地达到理解问题的目的。同时,问题分解的有效性和必要性在复杂问题回答领域的许多研究中得到了证明[14-16]。问答系统中的复杂问题分解技术是指将一个复杂问题分解为若干简单问题,将这些简单问题与其答案作为原始复杂问题的上下文提供给模型,从而降低直接回答复杂问题的难度。这些子问题之间相互依赖、相互支持。问答系统体系结构如图1所示。

图1 问答系统结构图Fig.1 Structure of question answering system

问题分解研究的意义如下:

(1)丰富复杂问题的语义信息。将分解得到的子问题与子问题答案作为复杂问题上下文信息,由此复杂问题语义信息得到进一步的丰富。

(2)使问答系统不受限于检索的资源空间。在回答复杂问题的子问题时可以不限于依赖一种资源(一篇文档或知识图谱中的一个三元组)。

(3)去除复杂问题中的冗余信息,精简问句。由于自然语言往往具有复杂的语义结构,用户在提出问题时,容易增加一些冗余信息,可能降低问答系统处理问题的能力。

(4)增强问答系统处理复杂问题过程的可解释性。将复杂问题分解后,通过展示子问题、子问题答案、子问题之间的限制关系,可以让用户了解问答系统回答问题的过程,增强了问答系统的可解释性。

本文将针对问答系统中复杂问题分解任务,梳理从传统机器学习方法到深度学习方法的相关代表工作,对其中模型的核心思想以及方法的优势和不足进行分析和总结。在此基础上,为接下来的研究方向提出可能性的建议。

1 模型介绍

1.1 基于传统机器学习的问题分解

传统的机器学习方法借助特征工程的方法,提取问句的代表性特征,包括句子的词法特征、语义特征。根据这些特征借助规则或模板等生成相应的简单子问题,通过单跳问答系统得到子问题的答案,再经过组合与评分得到原问题的答案,传统机器学习的问题分解框架如图2 所示。主要包括基于规则模板的方法和基于分割的方法。

图2 传统机器学习方法的解决框架Fig.2 Solution framework of traditional machine learning

1.1.1 基于规则模板的方法

基于规则模板的方法在很多NLP任务中都有应用,属于比较传统的方法。通过人工构造的规则模板匹配处理问答的过程不涉及问题的分析,这种方法获得的答案准确性高,系统响应速度快。根据分解的步骤不同,进一步划分为规则匹配的方法和模板匹配的方法。

(1)规则匹配的方法

规则匹配的核心思想是根据预先设定好的经验规则来识别复杂问题中的事实,再根据上下文将事实重写,进而生成子问题。Hartrumpf[17]提出基于问题语义表示的分解,定义了六个分解规则:针对问句中时间的分解、针对主题实体中地名的分解、针对问题条件中地名的分解、针对并列情景的分解、针对描述的分解、针对运算的分解。利用上述六个分解规则为问题生成具有足够语义表示的解析器。文献[18-20]中DeepQA 系统主要处理复合事实型问句的分解,分解类型分为并列类和嵌套类。并行类问题包含相互独立评估的子问题。嵌套问题需要按顺序进行分解。具体地,首先,分解识别器使用一套分解规则来识别基于词典句法特征的复杂问题中的事实;然后,问题重写器根据原始问题的上下文将得到的事实重写为子问题,并添加关键的上下文信息。在问题分解之后,通过候选答案合成并由重新排序器生成最终排序的答案列表。但是,该方法的初衷是为了解决DeepQA 回答知识竞赛节目《危险边缘(Jeopardy!)》中的复杂问题,很难应用于其他问答系统。

(2)模板匹配的方法

模板匹配是根据问题的特征成分匹配相似度最高的模板,直接生成子问题,再将子问题进行组合。王振宇等[21]提出了一种基于句法模板的复杂问题分解方法,经过对复杂问题进行实体抽取、将抽取到的实体与模板匹配、生成子问题间关系的问题依赖图等步骤,实现对复杂问题的分解。该分解方法受限于制定的模板,可分解的问题类型十分有限,并且制定模板难度大,需要相关领域知识和语言学基础的支持。针对上述的问题,Zheng等[22]提出了一种利用知识图谱和大规模文本语料库自动构建大量模板的低成本方法。先将输入的问题分解为一组子问题,这些子问题生成一个依赖图,再生成原问题的结构化查询语句。该方法穷举复杂问题Q的每一个子问题q并计算q与每个模板的问题模式之间的相似性。这些选中的模板可以形成用于描述问题语义结构的概念语义依赖图,它是输入问题和结构化查询的中间表示。但是,采用穷举的方法生成复杂问题的子问题,虽然准确率高,但是效率低下。所以该文提出了基于类型和基于顺序的方法来进行子问题与模板的匹配,大大缩减了搜索空间。虽然,自动化构建模板的方法可以克服耗时耗力的问题。但是,模板不具备通用性,覆盖面不足,无法进行跨领域的移植。

1.1.2 基于分割的方法

基于分割的思想是通过分析问句的词法和语义特征,找到子问句之间的边界,制定合适的分割方案。由于对问句分析的角度不同,进一步分为基于分割点的分割和基于句法分析的分割。

(1)基于分割点的分割

Saquete 等[23]针对包含“隐式时间标志”的问题进行分解,例如“after the Iraqi annexation of Kuwait”。该方法根据时序标识将问句分割,并转化为简单时间问句和“when”类型问句。显而易见,该方法仅适用于时间类的问句,适用范围有限。2019 年,Min 等[24]设计了DECOMPRC 系统,通过跨度预测寻找分裂点对组合多跳问题进行分割。DECOMPRC将问题的推理类型分为桥接、交叉和比较,其中,桥接类型需要先找到第一跳证据才能找到第二跳或其他跳的证据,交叉类型需要找到满足两个独立条件的两个实体,比较类型需要比较两个不同实体的属性。DECOMPRC首先根据问句推理类型将原始的多跳问题分解为几个单跳子问题。然后,利用单跳阅读理解模型来回答子问题,并依据子问题的推理类型组合答案。最后,利用一个分解评分器来判断合适的分解,采用一种新的全局重新打分方法,考虑每一种分解来获得答案,并用答案重新评分每种分解以决定最终答案,这样做不仅大幅提高了整体性能,而且提高了正确分解的概率。

然而,这种通过跨度预测来分解复杂问题可能找不到最佳子问题,子问题中可能仍然存在多重关系或约束,得到的子问题通常是不完整的,有时会丢失一些信息。并且,以问题跨度作为子问题的方法只适用于并列组合式复杂问题,不适用于嵌套类的复杂问题。

(2)基于句法分析的分割

句法分析又称为文法分析,是很多NLP任务的基础环节,旨在分析输入的句子并得到它的句法结构。句法分析的形式一般分为成分句法分析和依存句法分析[25]。成分句法分析旨在识别句子中的短语和短语之间的层次句法结构。依存句法分析侧重于识别句子中词汇之间的二元依存关系。依存句法树以层次化结构的方式展示句子的结构信息,它包含了句子成分之间的依赖关系。

欧石燕等[26]提出通过句法分析将复杂问题分解为若干个简单问题。分解过程:首先,对复杂问题进行句法解析,输出词语之间的依赖关系,根据依赖关系生成依存句法分析树。依赖关系密切的词语一般位于同一棵子树中,而关系疏远的词语位于不同的子树中。依存句法树就是子树之间的组合。然后,根据生成的依赖树进行分割。分析子树是否为一个有效问句,如果是有效问句,则将其作为一个子问题分割出来。最后,判断上一步分割出来的子问题是简单句还是复杂句。如果是复杂句,则将其看作一个完整的子树,对其进一步分割。这样,关系密切的词语被分割在一个简单问题中,同时也能保证分解之后的语义信息不会发生变化。

刘雄等[27]提出的分解方法将复合事实型问句分解类型总结归纳为三种:原子类、并列类以及嵌套类。首先,问句分解类型识别。问句分解类别的不同体现在句法结构上,采用基于树核支持向量机的方法准确识别问句的分解类别。然后,采用基于依存句法分析的方法生成子问句。在子问句的生成过程中,保留了依存句法树的整体结构,将句法树中的边上的依存关系标签修改为分解标签,用来表征问句分解信息。该方法可以较好地生成嵌套类问句的子问句,但是对于并列类的复合问句的分解表现一般。刘雄[28]采用条件随机场模型实现了基于序列标注的子问句生成,可以较好地解决并列类的复杂问题分解。

基于句法分析的方法处理问题分解任务的关键技术在于能否正确地构造出依存句法树。基于规则匹配的方法具有准确度高的优点,将句法分析与规则匹配结合,通过规则匹配识别依存句法树中的句法成分,是未来的一个研究方向。中文句法分析是基于词级别的,正确的分词与正确的句法分析树相互依赖,相互影响[29]。最近的研究[30-31]将中文分词和句法分析作为联合任务,采用基于图的联合模型在中文分词和依存分析方面都取得了较好的性能。因此,未来可以考虑通过改进依存分析来解决中文复杂问题分解。

总而言之,传统机器学习方法处理问题分解时,采用流水线的方法,多模块逐个分开学习,并且严重依赖自然语言处理工具抽取的特征。其存在的问题,一方面每个模块单独优化,其优化目标和任务的总目标可能不一致,另一方面自然语言处理工具往往会产生特征提取错误,这些错误在模块之间传播会被不断放大,最终影响问答系统的效果。

1.1.3 传统机器学习的问题分解模型对比

上面介绍和分析了基于传统机器学习的问题分解的基本思想和相关代表工作,表1就分解类型、机制、优势以及劣势进行了总结。

表1 传统机器学习问题分解方法总结Table 1 Summary of question decomposition methods based on traditional machine learning

1.2 基于深度学习的问题分解

深度学习(deep learning,DL)[32]被公认为是机器学习领域中研究得最深入的方向之一。近年来,众多学者将DL应用到智能问答任务中[33]。基于神经网络的深度学习采用端到端方法,模型训练过程不进行模块划分,统一优化任务目标,并且自动化地提取特征,不需要人为干预。基于深度学习的方法主要解决两个问题:子问题生成、子问题组合排序,如图3 所示。子问题生成大多采用序列编码-解码框架,使用神经网络完成复杂问题到子问题的转换。由于回答复杂问题需要单一事实或多个事实进行比较、聚合等推理,如果子问题的回答是任意顺序,将导致更大的搜索空间和更高的丢失答案的风险,因此这些子问题的顺序对回答问题的效率和准确性有至关重要的作用。有一些模型为了解决复杂问题存在子问题之间嵌套的问题,其子问题生成和排序是一个不断迭代的过程。

图3 基于深度学习的问题分解方法的框架Fig.3 Framework of question decomposition method based on deep learning

1.2.1 基于Transformer

Transformer[34]是Google 在2017 年提出的一种NLP经典模型,采用端到端的编码器-解码器(encoder-decoder)结构。Transformer 完全基于注意力机制,由于encoder和decoder 中采用具有较强特征学习能力的自注意(self-attention)和多头注意(multi-head self-attention)机制,所以Transformer具有较强的特征抽取能力。

Zhang 等[35]提出一个基于Transformer 的问题分解器,根据输入的复杂问题直接生成完整自然的子问题,没有词序和内容限制。这个问题分解器由一个Transformer编码器和迭代的解码器组成,直接生成子问题表示。该文专注于复杂问题的语义解析,提出了一种分层语义解析(hierarchical semantic parsing,HSP)模型,利用复杂问题的分解性进行语义解析,基于分解-集成的思想,以三阶段的解析架构设计。在第一阶段,运用问题分解器将一个复杂的问题分解为一系列子问题。在第二阶段,利用信息提取器导出问题的类型和谓词信息。在最后阶段,将先前阶段生成的信息进行整合,为复杂问题生成逻辑形式。该模型在生成子问题表示时不考虑问题的分解类型,因此适合所有问题的分解。

Khot 等[36]提出一个TMN 框架,并基于该框架构建了一个ModularQA系统,该系统由单跳的事实型问答系统和问题逻辑计算器组成。TMN框架通过一系列子模型将复杂问题分解为子问题。其中,子模型是任意的,在框架中是黑盒模型。模型通过下一问题生成器获得子问题,并通过问答模型回答子问题,当下一问题生成器达到最终节点标记时,问答模型返回最终结果。子问题生成模型采用Transformer 结构,并通过复制机制增强解码器。同时,这一分解过程是远程监督的,不需要分解标注。

Fu等[37]提出一个三阶段框架RERC(relation extractorreader and comparator)。关系提取器对复杂问题进行分解,然后阅读器依次回答子问题,最后比较器进行数值比较并总结所有子问题以得到最终答案。Relation Extractor 可以从复杂的文本表示中提取问题的主题和关系,有两种不同的结构,一种是classification-type,针对四种分解类型Compositional、Inference、Comparison和Bridge-Comparison 进行具体的推理;另一种是spantype,问题关系的类型不受限制,从问题中提取多个跨度作为问题关系。关系提取器使用Transformer网络作为交互层,通过对问句的表示进行编码来表达自我交互,从而找到问题的主题和关系。在这个分解模型中,不生成完整的句子状子问题,只提取主题实体和问题关系,通过模板进行构造子问题,降低了复杂问题分解的难度。

Wolfson 等[38]提出一种问题分解意义表示(question decomposition meaning representation,QDMR),基于数据库查询语言(SQL,SPARQL)和语义解析所设计,将复杂的问题通过一系列简单的原子可执行步骤来表示,复杂问题的答案是最后一步的答案。同时,提出一个基于序列到序列的模型将问题解析为QDMR。QDMR从根本上描述了输入问题中跨度之间的标记关系。受此启发,Hasson 等[39]提出通过使用依赖图(dependency graphs,DG)监督向编码器提供更多信息来改进序列到序列解析器。使用结构化的中间逻辑形式表示LF自动将问题DG映射到QDMR。DG中的节点对应于QDMR步骤中的token,边描述对应于不同计算步骤的逻辑关系。编码器由一个RAT 层和Transformer 组成,RAT 层在Transformer 自注意力机制中注入token 之间关系的信息。RAT层可以明确表示标记之间的关系,并且可用于在语义解析的上下文中对输入图上的token 进行编码[40]。但是,QDMR 依赖于昂贵的人工注释,可能无法推广到具有其他分解类型的领域。

Transformer 由于性能良好,在NLP 领域获得了广泛应用,但是也存在缺陷,如,序列上下文需要固定长度,长序列可以得到高效处理,短序列的效率一般。2019 年,Dai等[41]提出Transformer-XL,引入片段级递归机制和相对位置编码方案两种技术,有效地解决了这一限制。未来将改进的Transformer应用到问题分解任务有待进一步的探索。

1.2.2 基于图神经网络

图神经网络(graph neural network,GNN)[42]是一种基于深度学习的处理图数据结构的方法,通过将深度学习算法和图广播操作结合,可以让图的结构和顶点属性信息参与到学习中,在信息传播、关系归纳偏置等应用中表现出良好的效果。GNN中的每个节点在信息传播时学习其邻居节点的状态表示,以此更新自己的节点表示。显然,将GNN 用于复杂问题分解任务时必须解决以下问题:(1)确定图中的节点以及其初始节点表示;(2)确定节点之间连边的情况;(3)设计节点之间信息传递的算法。

Wang等[43]采用早期图神经网络的思想研究多问句分割方法,将问句和语境中的所有句子作为图的顶点,根据它们的关系建立边,依据是否是上下句关系、是否具有共指关系以及KL 散度等条件给边设置初始权重,并设计权重的传播算法,通过迭代地传播邻居信息来更新顶点的表示,直到达到稳定的平衡,最后得到权重较高的边相连的问句和语境对即为分割后的结果。但是,这种递归函数在层与层间参数共享,导致训练过程的计算代价很大。并且该方法是针对社区问答的多问句分割,并且分割过程需要依靠答案,无法应用于其他问答系统。

1.2.3 基于注意力机制

注意力机制(attention mechanism,简称Attention)是一种模拟人脑注意力机制的模型,在提取特征的时重点关心某些重要的信息。近两年,Attention被广泛应用在NLP、图像识别等各种深度学习任务当中[44]。

2018 年,Talmor 等[45]提出的SplitQA 模型采用指针网络[46]分解问题的方法。指针网络将Attention 分布作为指针指向输入中的某些部分,然后组合输入序列,输出是输入序列的子集,如图4所示。主要用于解决组合优化问题。具体地,先构造问题的计算树,通过计算树分析问题语义并拆分问题,然后使用KG或搜索引擎计算答案和该答案的得分,并将其与原来得分作比较,从而决定是否进行分解。但是,该方法需要大量的训练数据,目前带有分解标签的复杂问题数据集还比较匮乏。

图4 指针网络的基本结构Fig.4 Basic architecture of pointer network

2019 年,Bhutani 等[47]设计出了TextRay 模型,提出分解-连接-执行的方法来通过子查询构建复杂查询。首先,他们借鉴了Talmor等采用指针网络生成子问题的思想,使用一个增强指针网络生成计算方案,即子查询的执行序列。然后,分阶段生成子查询的候选集,通过计算子查询候选集与问题的语义相似性,找到最佳候选子查询。最后,按照计算方案依次组合子查询并执行它们。由于原问题语法语义相对复杂,并且要匹配多个子查询的表达式,问题中的无关信息会分散匹配的注意力,因此,作者在基于LSTM 的语义匹配模型中加入了注意力机制,以强调问题的特别部分,对子查询候选集进行筛选。对于缺乏标记数据的问题,作者采用了隐式监督的方法。随后,Bhutani 等[48]提出了MULTIQUE 模型,在TextRay 系统基础上,MULTIQUE 可以结合多个数据源为每个子查询生成其对应的候选集。这样做可以聚合分散在多个KB 上的证据,同时不同KB 上的证据可以相互补充。

李威宇[49]改进了指针网络生成子问句方法,所提出的mul-attention PGN在指针网络模型的基础上,加入多注意力机制,既能复制源文本中的关键信息,又能通过生成器生成新的词汇,同时保证生成的多个子问题可以出现原问题的同一个词汇和短语。

Jiang 等[50]基于堆栈的思想提出了一个基于控制器的模块自组装神经网络,包括四个模块(Find,Relocation,Compare,No),每个模块分别执行一种类型的推理。该自组装网络通过一个控制器从复杂问题中推断所需要的每一步推理行为来进行问句分解。控制器计算所有问题词注意力分布来识别隐藏的子问题。Find模块在给定上下文和问题表示的情况下,会在上下文词上生成注意力图。Relocate模块将前一个子问题的中间答案与当前子问题结合,输出一个以前一个问题为条件的新注意力图。Compare 模块根据问题直观地“比较”来自前两个模块的输出。控制器采用堆栈来存储模块的输出。在控制器输出子问题的同时,预测所有可用模块的软组合,该软组合会引导主网络遵循推理路径。该方法根据三种推理类型将原始的复杂问题分解为简单子问题,可分解的问题类型有限,可能存在无法分解的情况。

1.2.4 基于查询图

查询图在基于知识图谱的问答系统中具有广泛的应用,基于查询图的方法将自然语言问题抽象成结构化的查询图,查询图可以直接匹配问题的逻辑形式,在知识图谱上执行查询就能得到问题的答案。基于查询图的问题分解就是生成子问题的查询图。

Shin 等[51]提出了分解-重组的问答方法。在分解任务中,首先根据问题的语法结构和依存分析树将复杂问题拆分为多个子问题,同时过滤需要数学运算的约束。然后,从问题查询图库中搜索与子问题对应的子图。在这个阶段,模型从局部角度计算每个子图的语义。接下来,通过使用基于BiGRU 的语义匹配模型从全局角度捕获组合语义,并选择得分最高的子查询图组合作为完整的查询图。最后,将捕获的约束反映到完整的查询图中,合并中间结果来提取答案集。但是该方法需要从训练问题-答案对中收集所有问题中的正确查询图,然后将问题和查询图分别拆分为子问题和子查询图,并将它们存储到问题查询图库中,该图库包括原始问题-查询图对,原始问题的子问题-子查询图对。构建这样的问题查询图库并不是一件容易的事。

Hu等[52]提出了一种称为实体描述图(entity description graph,EDG)的新型图结构来表示复杂问题。使用基于规则的方法迭代地将问题表示为EDG,并将EDG运用到一个QA 系统,得到EDGQA。具体地,首先,对问题成分进行解析得到问题的解析树。然后,识别问题类型并生成初始EDG,初始的EDG包含一个根节点、一个实体节点、一个用于描述实体的描述节点,问题边连接根节点与实体节点,约束边连接实体节点和描述节点。根节点用于描述问题的类型。最后,根据一组规则和成分解析树迭代地分解问题描述,生成问题的EDG。问题的EDG 由多个块组成,每个块对应一个子问句。在得到问题的EDG后,通过实体链接、关系路径生成、子查询生成与子查询集成模块,生成问题的查询语句,在LC-QuAD1.0 数据集[53]取得了53.1%的F1 值。但是,这种基于查询图的方法不到搜索结束,不会产生中间解析结果,即无法把中间结果应用于后续步骤。

1.2.5 基于强化学习的方法

强化学习方法在问答系统中有着广泛的应用,尤其是知识图谱问答推理[54]。利用实体间的复杂路径特征学习一个随机游走器,进而推断出答案。较为典型的模型DeepPath[55]将路径搜索转化为强化学习过程,通过控制所找到的路径的属性来缩减搜索空间。

先前的工作大多集中于子问题生成,但优化子问题顺序的工作却很少。Zhang等[56]提出利用强化学优化子问题的回答顺序,同时使用知识图谱结构捕捉子问题之间的联系。该模型动态地决定在每个推理状态下应该回答哪个子问题,通过计算子问题答案对正确预测整个问题的程度与给定状态下子问题预测出错的可能性两个原则设计奖励。模型由一个状态编码网络、一个用于跟踪已回答子问题的两层LSTM 和一个用于选择动作的策略网络组成,如图5所示。状态编码网络采用当前子图表示向量,并对其进行多头编码。输出将与LSTM的输出连接起来,并馈送到一个两层策略网络中,该网络的末端有一个softmax 层,用于操作的输出分布。该模型旨在学习一个子问题序列,而不是设计复杂的QA模型,与经典的MIERVA 模型[57]比较,该模型在WC-14数据集[58]上取得了Hit@1值14%的提升。

图5 基于强化学习的复杂问题分解Fig.5 Decomposition of complex question based on reinforcement learning

基于强化学习的方法将复杂问答任务当作序列决策过程,模型的泛化能力强,无须大量的标注语句。同时,通过强化学习优化子问题回答顺序,不仅能够提高模型的正确率,而且增强了问答过程的可解释性。

1.2.6 基于深度学习问题分解模型对比

上面介绍和分析了基于深度学习的问题分解的基本思想和相关代表工作,表2就问答类型、分解类型、机制、优势以及劣势进行了总结。

表2 深度学习问题分解方法总结Table 1 Summary of question decomposition methods based on deep learning

1.3 无监督的方法

无论传统机器学习的方法还是基于深度学习的分解,都是基于监督的方法,需要大量高质量的分解案例。而Perez等[59]提出了一种在完全无监督的情况下自动分解问题的方法。分解的过程包括三个阶段:(1)通过使用嵌入相似性的方法从一个简单的问题语料库S中检索类似于复杂问题Q的候选子问题,并创建一个伪分解语料库D。(2)使用Q和D作为训练数据,通过一种One-to-N 无监督序列转换算法(ONUS),以改进问题的伪分解。(3)使用现有的QA系统回答子问题,将子问题及其答案提供给重组模型,以组合生成复杂问题的答案。该方法在无监督的情况下,实现了与依赖于强监督的方法一样的效果,即无监督产生的子问题的答案与数据集中标注的证据事实一致。但是,这种无监督的问题分解很大程度上是抽取式的,虽然对于组合式的复杂问题也有效,但是不能处理所有的复杂问题。因此,探索鲁棒的无监督问题分解也是一种研究思路。

2 数据集与评测指标

2.1 数据集介绍

问答系统可追溯到1950 年,早期的问答系统不能对自然语言真正理解,随着大量的研究成果出现,今天在单一问题上已经取得较好的成果[60]。问答系统取得的巨大发展离不开数据集。目前QA 领域复杂问题的常用数据集如下:

(1)HotpotQA 数据集[61]是一个基于维基百科的具有自然、多跳问题的问答数据集,包含了112 779个问答对。该数据集的问题本身没有考虑任何预先存在的知识库或知识模式,问题必须经过两步及以上推理才能得到答案,并且提供了回答问题所必需的证据事实。问题的推理类型有三种:①需要对比两个实体或者需要桥实体;②通过检查多个属性来定位答案实体;③通过桥实体推断相关实体的属性。

(2)ComplexWebQuestions数据集[45]是基于WebQSP数据集[62]构建的,包含34 689个问答对和SPARQL查询。从WebQSP中采样问题-SPARQL查询对,自动地构造包含组合、连接、最高级和比较级形式的复杂SPARQL 查询,然后由众包平台将SPARQL查询转化为自然语言问题,通过在Freebase 执行SPARQL 查询来获得问题的答案。

(3)WebQuestiosSP 数据集[62]是WebQuestions 数据集的升级版。WebQSP 删除了WebQuestions 中的有歧义且答案不清晰的问题,它的每一个问题都有其对应的SPARQL查询。WebQSP包含了4 737个简单或复杂问题。

2.2 评测指标

问答系统中常用的评价指标包括:准确率(Precision)、召回率(Recall)、F1 值、Hit@1。Precision 从查准率对模型进行评估。Recall 从查全率对模型进行评估。F1 值是Precision 和Recall 的等权调和平均。将问答看作问题答案检索任务,Hit@1指正确答案是最终排序的第一个的占比。

表3 收集了相关论文和典型模型在数据集上的表现。其中,HotpotQA具有Distractor和Fullwiki两个任务。

表3 不同模型的数据集及其评测标准Table 3 Different models of data sets and their evaluation criteria

3 未来的研究方向

目前,研究者针对问题分解任务开展了很多有益的研究,但仍然存在着提升空间,值得进一步探索。未来的研究工作可以从以下几个方面展开:

(1)构建统一的复杂问题分解类型体系。现有的研究大多根据各自的应用领域自行定义分解类型,导致研究人员无法共享训练数据。所以,未来需要一个统一的问句分解类型体系,从而促进问题分解的研究和发展。

(2)将预训练模型应用到问题分解任务中。近年来,BERT等预训练模型在众多NLP任务中取得了惊人的成绩,预训练模型采用预训练+微调的模式,先使用大规模无监督语料进行模型的预训练,再使用小规模标注语料进行下游任务上的微调。未来研究可以考虑将现有的问题分解模型与预训练模型结合,进一步提升问题分解的效果。

(3)缺乏问题分解任务的评价指标。EDGQA 通过比较分解的块数与SPARQL 中变量个数是否相等来评价分解的好坏;HSP采用Bleu-4[68]和Rouge-L[69]作为问题分解的评价指标;模块自组装方法将问题分解作为问答系统的一个步骤,通过评价问答系统的好坏来表现问题分解的性能。当下缺乏一种针对问题分解的评价指标,这极大地阻碍了模型的对比与提升。因此未来考虑制定一种评价指标,从而促进问题分解的研究和发展。

(4)结合生成对抗网络(generative adversarial networks,GAN),提高问题分解的准确性。GAN[70]采用对抗博弈思想,通过让生成器和判别器相互博弈的方式进行学习,经过不断地优化迭代,模型达到最优。因此,未来研究中可以考虑引入GAN,考虑生成器分解问题,判别器判别分解的正确性。

4 结束语

复杂问题分解作为理解复杂问题的一种有效手段,在问答系统回答复杂问题的过程中发挥了不可估量的作用,受到学术界和工业界的广泛关注。本文综述了复杂问题分解的研究进展,分析和总结了前人研究的不足,提出了对未来研究方向的建议,希望有助于问题分解任务未来进一步的研究和发展。

猜你喜欢
语义模板模型
铝模板在高层建筑施工中的应用
高层建筑中铝模板系统组成与应用
真实场景水下语义分割方法及数据集
铝模板在高层建筑施工中的应用
适用于BDS-3 PPP的随机模型
重要模型『一线三等角』
Inventors and Inventions
语言与语义
模型小览(二)
离散型随机变量分布列的两法则和三模型