问答系统构建及推理研究综述

2023-12-30 05:26尹瑞江陈朝阳
计算机技术与发展 2023年12期
关键词:知识库实体解析

姚 奕,尹瑞江,陈朝阳

(中国人民解放军陆军工程大学 指挥控制工程学院,江苏 南京 210000)

0 引 言

问答系统[1-2](Question Answering,QA)是根据用户提问的问题,利用自然语言处理方法对其进行分析,在知识库或语料库中查找最符合要求的答案。自2011年美国一问答机器人在智力节目上击败人类选手起,知识问答就在全球内掀起了一片热潮。其经历了五个发展阶段,经历阅读理解系统到大规模文档集的问答,虽然实现了由限定领域向开放领域的跳跃,但还不能应用到商业当中。随后,科技手段的进步促使着诸如苹果等公司推出Siri智能助手等服务产品,以及近期爆火的ChatGPT[3]给各行各业带来的便捷,这都是问答系统对人们生活的影响。

问答系统在国外发展的较为迅速,并且已经应用到了很多产业。相较之下,国内在此方面的研究起步较晚,并且由于中文的特殊性,对此方面的产品研究也受到一定的限制。不过,近几年来国内问答系统研究有一定进步,一些大公司都相继推出服务类智能机器人。但是对问答系统来说,如何能更灵活地处理问题,也是当前需要着重研究的方面。并且近年来中文数据库[4]构建也在加快进行,为问答任务的进行提供更高质量的保障。

随着问答难度的提升,答案的准确率需有所提高,存在对复杂的问题(多跳或者库中没有明确的关系)处理能力不足。因此需要推理技术改进问答系统完成问答任务。问答推理是问答系统根据复杂问题在知识库中对节点进行更新表示,根据信息推断出每个实体节点之间的隐藏信息,获得节点之间更密切的联系,更有利于问答系统处理复杂的问题,并且可以对知识库的补全提供一些帮助,更加丰富知识库中的数据信息。因此对于日益增长的需求来说,对于复杂类型的问题,问答系统要有较强的推理能力,才能更好地提供给用户满意的答案。

该文介绍了基于语义解析、基于信息检索的问答系统构建方法并针对涉及问答推理的复杂问答,介绍问答推理技术的研究。

1 问答系统构建方法

1960年,基于模板匹配的知识图谱问答系统构建方法诞生,此方法是问答系统中最基本的方法。通过问句中关键字的匹配找到相应的规则,生成关键字的Sparql语句,在知识库查询结果。但是这种依靠规则匹配关键字的方法会过于依赖设定的模板,缺乏灵活性。随着深度学习模型研究的不断展开,将深度学习用到自然语言处理领域取得了比较好的结果,也对问答系统的构建提供了帮助。

1.1 问答中的深度学习

深度学习的迅速发展,使得越来越多的深度学习模型应用于问答系统的构建,例如卷积神经网络(CNN)、注意力机制(Attention)、长短时记忆(LSTM)以及预训练模型等,这些模型在问答任务的不同方面发挥着重要的作用,为问答系统的构建提供了强有力的支撑。

卷积神经网络将问题和答案映射到低维向量空间进行处理,获取它们的特征向量。问题分析是问答系统运作的第一步,将经过词嵌入(Word Embedding)后的自然语言输入到卷积神经网络中,对文本的每个部分的局部信息建模,提取文本中的特征信息输出特征向量。因此借助卷积神经网络对问题和答案等文本信息处理既节省了人力的工作、提高了对文本分析的质量,又方便问题和答案之间后续的联系。图1为卷积神经网络对输入的自然语言解析成特征向量的结构图。

图1 卷积神经网络计算输入问题的特征向量

预训练模型的出现为自然语言处理提供了不一样的帮助,比如Bert模型,不需要大量的数据集来训练模型并且通过模型微调就可以完成下游的任务。Bert模型重要组件是编码器(Encoder)和解码器(Decoder)。

在问答任务中,使用编码器对输入的词向量与位置编码进行相加以便处理问句当中的时序信息,将处理后的词向量经过自注意力机制计算得到带有权重信息的向量,再经过残差网络与正则化使得模型更加精确,最后数据通过全连接层后再进行相加并归一化得到输出,传给下一个编码器。

图2是编码器处理文本数据的结构图。

图2 编码器处理文本数据

1.2 基于语义解析的问答系统

基于语义解析的方法旨在将自然语言问题转化成可执行的查询语言。通常将非结构化的问题映射到结构化的逻辑形式,然后通过手工制定的规则将其转化为可执行的查询。图3为基于语义解析方法的问答系统构建流程。

图3 基于语义解析方法的构建流程

知识库中存储的数据是以三元组的形式保存的,使用基于模板的方法将拆分的语句按照三元组数据进行查找并不能表示语句的深层意思,生成的答案不能反馈真实的意思。Berant等人[5]提出一种直接对自然语言问句进行解析操作的方法,将输入问题中出现的短语完成到知识库中谓词的映射,然后使用一个桥接操作来基于相邻的谓词生成额外的谓词。将构建的词汇表中代表知识库实体以及实体关系的信息代替问句中的单词或者短语自底向上的通过求交集、聚合等操作得到代表整个问句查询意图的逻辑语言,进而在知识库中查询出结果。Reddy等人[6]通过一个共同的基于图的表示来利用自然语言和Freebase之间的结构和概念上的相似性。工作的关键是将语义解析概念化为一个图匹配问题,使用组合范畴法(CCG)将句子转换为语义图,并随后将其转化为自由基础。因此不需要人工注释或问答对。

为了可以将问题与知识库建立更好的联系,Yao等人[7]将问题特征与由Freebase描述的答案模式联系起来。通过ClueWeb,使得知识库中的关系信息能够与自然语言问句之间形成映射,因此对问答中关系预测和答案提取提供了重要的帮助,还能处理域不匹配以及过拟合的问题。Lan等人[8]利用“匹配-聚合”框架匹配候选答案和问题。进一步利用特定于问题的上下文关系来增强候选答案实体的表示。并引用注意力机制来权衡问题中的关系及与候选相关的潜在关系,达到优化效果的作用。

Yin等人[9]使用实体链接器得到更高的真实实体覆盖率,通过字符级卷积神经网络(char-CNN)将输入的自然语言问句中得到的实体与知识库中的候选实体进行匹配,知识库中与之相关的谓词和单词级CNN(word-CNN)的自然语言问句相互匹配,将一种新的注意最大池堆叠在word-CNN上,使谓词表示能够更有效地与以谓词为中心的问题表示相匹配以得到更准确的候选答案。

问答系统对于单关系的问题可以将答案的准确率保持在一个较高的水准。但是随着问题难度的增加,导致问答系统并不能保证查询结果的准确率。

Abujabal等人[10]提出了一个QUINT系统,只通过学习用户输入的问题和用户给出的答案自行学习用于查询的模板,进而根据得到的模板将用户输入的问题在知识库中映射成三重模式来进行查询。并且,QUINT可以在不单独制定模板的情况下利用语言组合性来完成复杂的问句的问答任务。节省工作量的同时,也提高了复杂问题的查询准确率。

Zheng等人[11]使用二进制模板(问题模式和SPARQL查询模式)代替语义解析器对自然语言进行解析处理。对输入的问题使用模板拆分成一组子问题,拆分后子问题随之形成依赖图。回答复杂问题的任务建模为模板选择和装配问题。另外通过考虑查询语义的有效策略来执行实体级歧义和结构级歧义的消歧工作。该方法在精度和召回率方面都显著优于最先进的方法。但对于语义解析和依赖的方法处理复杂问题得到的准确率并不令人满意,因此Sun等人[12]提出了一种骨架语法,通过使用粗粒度形式和基于Bert的解析算法可以提高下游细粒度语义解析的准确性。并且为了将问题的结构与知识库的结构相结合,使用的多策略方法结合了句子级和单词级的语义,更好地将问题和答案建立连接。

Zhang等人[13]实现了一个基于分解和继承思想的层次语义解析(HSP)结构,该模型将复杂的问句先进行分解,分解成多个子句,从生成的子句里面提取答案的类型和谓词,再将多个子句的信息整合,生成原始问题的逻辑形式,去知识库中搜索答案。Luo等人[14]使用编码的方法将复杂的查询结构转换成一个向量表示,获得组件之间的交互信息。首先通过分阶段生成的方法利用查询图中的隐式类型信息和知识库中的时间间隔信息生成候选查询图,然后对复杂的查询结构进行编码使用深度神经网络来测量问题和每个查询图之间的语义相似性。

Hu等人[15]提出一个基于状态转换的方法,使用语义查询图来表示用户输入的复杂问句,并且通过语义查询图和底层的知识图之间的匹配查询得到问题的答案,使用奖励函数对获取的特征打分排序,选择答案输出。Maheshwari等人[16]针对知识图上的复杂问题回答任务的神经查询图排序方法,提出了一种新的基于自注意的插槽匹配模型,利用了查询图的固有结构,即所选择的逻辑形式。并且通过生成核心链候选排序、核心链候选排序及预测辅助约束三部分完成查询图的构建和排序任务。

Bhutani等人[17]提出MULTIQUE,可以将一个复杂的问题映射到一个复杂的查询模式,每个简单的查询序列针对一个特定的查询库。它使用一个基于神经网络的模型找到简单的查询,该模型能够对提取的知识库中的文本关系和经过管理的知识库中的本体关系进行集体推断。Kapanipathi等人[18]提出神经符号问题回答(NSQA),利用抽象意义表示(AMR)解析来实现任务独立的问题理解,每个模块都为自己的任务分别进行训练。并且将AMR解析转换为与KB对齐的候选逻辑进行答案查询。

基于语义解析的方法减少了基于模板方法大量的工作,增加了自然语言问句与知识库之间的联系,提高了问答查询的准确率。但是这类方法的可解释性不足,并且在训练数据时浪费了大量的时间。

1.3 基于信息检索的问答系统

基于信息检索的方法首先要在自然语言问题中确定最接近用户意图的主题实体,并将这些实体与知识库联系起来。然后,通过主题实体以及句子中出现的约束形成子图,并将子图中的所有节点作为候选答案。基于从问题和候选答案中提取的特征,使用分数函数对其语义相关性进行建模,并预测最终答案。如图4所示。

图4 基于信息检索方法的构建流程

Li等人[19]使用卷积神经网络获取问题的分布式表达,再通过与答案路径、答案上下文信息及答案类型的分布式表达点积求和得到对应的问题答案对得分,取得分高的作为答案。Bordes等人[20]提出在记忆网络(MemNNs)内,建立存放数据、训练、连接反响三个阶段的工作流,通过输入模块将数据存放在内存中,对输入的数据进行训练,训练完成后在记忆中增加混响的新事实,测试处理新事实的能力,使用泛化模块与存储的事实连接起来,最后通过输入、输出和响应模块完成问答。

为了更加强调问题的表示,Hao等人[21]提出了一个端到端神经网络模型,通过交叉注意机制,对每个问题,将对应答案的重点和注意力权重到回答上,然后根据处理后得到的候选答案动态地表示问题及其相应的分数。Chen等人[22]提出通过一种新的双向注意记忆网络,不需要外部资源和很少的手工特性,直接建模问题和知识库之间的双向交互流,提取与回答问题和知识库两边的问题最相关的信息。

对于输入的复杂自然语言问题来说,由于问句中存在多实体和多关系的限制,在问句中找到主题实体是比较困难的,此前基于信息检索的问答系统构建方法也出现一些处理能力的不足。

建立能够学习仅基于问答对的知识图QA系统是一项挑战。对于输入问题文本中的拼字错误导致的与知识图不匹配等问题,QA的处理能力不足。Zhang等人[23]提出了一种深度学习架构以及一种端到端变分学习算法,可以处理输入的复杂问题以及解决问题中存在的噪音问题,并且还能完成复杂问题的问答任务。

对于直接回答涉及多个实体和关系的问题,Lu等人[24]提出了一种基于群斯坦纳树的动态检索文本语料库的无监督方法,计算来自不同文档的部分结果的相似性连接。QUEST通过动态检索的实体名称和关系短语构建了一个噪声知识库,然后用类型和语义对齐来增强知识图,并通过一个关于群斯坦纳树的算法来计算最佳答案。

当遇到一个不完整的知识库时,需要建立不完整知识库和完整链接文本组合上的问答系统。Sun等人[25]提出了移植网,对由知识库实体和文本文档参数组成的子图的节点进行分类,并且从包含文本和知识库实体和关系的问题特定子图中提取答案。并且Sun等人[26]提出一个PullNet集成框架来学习检索和使用异构信息完成问答。它会通过迭代过程生成一个子图,并且这个子图仅针对于当前特定的问题,生成的子图中包含着问题的信息。在每次迭代中,都使用一个图卷积网络(GCN)来识别子图的节点。在子图的构建完成后,使用类似的GCN从子图中提取答案。Xiong等人[27]提出了一种端到端的问题回答模型,从一个不完整的知识库和一组检索到的文本片段中学习聚合答案证据。首先在知识库中查找与问题中的实体相关的知识信息,累积该实体的知识;然后在潜在空间中实现问题的重新制定,用上一步中积累的实体知识读取文本。

Miller等人[28]在原本记忆网络的基础上结合键值对,提出键值记忆网络模型(KV-MemNNs),通过在内存读取操作的寻址和输出阶段使用不同的编码,更新键值对的记忆槽,使读取文档更加可行。对问题和三元组进行计算得到向量表示,并在知识库中得到查询子图,作为键值记忆槽,并对尾实体进行相似度和加权计算来更新问题的向量表示。

使用深度图神经网络(GNNs)来捕获结构信息,这可能无法在特别长的距离内建模节点关系。针对此类问题,Wang等人[29]提出了全局图,该框架从节点类型相似度和节点与问题之间相关性两个角度建模远程节点关系:通过全局类型标签相似度建模远程节点关系并且通过两个节点的和得分建模长距离节点关系。

基于信息检索的构建方法主要是抽取自然语言问题中的主题词,形成查询图在知识库中完成查询任务返回结果,不需要较多的人工干预,节省时间。但是语义的复杂程度在增加,对此准确率的要求还要提升。

2 智能问答多跳推理

智能问答推理[30]技术是对于复杂问题的处理手段,相比于单跳问答,由于复杂问题的多实体多关系等的条件限制需要多次跳跃找到目标,如何根据这些条件在知识库中查找答案是当前研究的重点。并且,根据条件在知识库中查找答案并不一定就能找到对应的实体或关系。因此,利用已有信息结合隐含的信息进行问答推理找到最终的结果是当前问答任务中处理复杂问题的主要方向。多跳推理需要根据给出的问题信息结合知识库中的多个三元组进行归纳推导。

多关系问答需要对知识库中的问题进行详细的分析,并对问题进行多个事实三倍体的推理。Zhou等人[31]提出了一个可解释推理网络,在推理过程中动态地决定在每一跳中分析输入问题的哪一部分,以及通过预测可以得到与当前解析结果对应的关系;然后再利用预测后得到的关系来更新问题的表示和推理过程的状态,进而促进接下来推理工作的进行。

Saxena等人[32]提出了一个系统EmbedKGQA。EmbedKGQA在稀疏知识图上执行多跳问答系统时特别有效,利用知识图嵌入的链路预测属性来减轻知识图的不完全性问题,而不使用任何额外的数据。另外还训练知识图实体嵌入,并使用它来学习问题嵌入,在评估过程中,再次对所有实体进行评分,并选择得分最高的实体作为答案。

将记忆网络改进用于推理问题是很可行的方案。Xu等人[33]基于传统的KV-MemNNs设计了一种查询更新策略,从查询表示中屏蔽先前处理的内存信息,并引入了一种新的STOP策略,在多跳内存读取过程中获得具有灵活查询三元组数量的结构化查询,因此这也使KV-MemnNN能够生成结构化查询,并以语义解析的方式工作。Jain[34]引入了事实记忆网络,可以对给定问题中命名实体生成的事实进行处理,在相同的单词向量空间中生成问题和知识库的分布式表示,提取初始候选事实的子集,然后尝试使用多跳推理和细化找到回答实体的路径。

对于复杂多跳的问题,需要将实体以及它们之间的关系紧密结合,Sorokin[35]提出用门控图神经网络(GGNNs)来编码语义解析的图结构,通过对语义的解析挖掘深层的隐含信息有助于问答推理。对于每个输入问题,构造了一个显式的结构语义解析(语义图),语义解析可以被确定性地转换为一个查询,以从知识库中提取答案。Han等人[36]提出了一种利用文本信息增强不完全知识库的问答系统方法。在文本中挖掘相关的语义信息增加实体的表示,然后利用这些表示信息使用图卷积网络(GCN)来更新实体状态。并且还利用文本的潜在结构信息,将文本视为连接实体的超边,用来填补知识库中缺失的关系,并将超图卷积网络进一步应用于超图形成文本的推理。然而,此方法是针对无向图的,并不考虑信息传输的方向。Han等人[37]提出了一种基于有向超图卷积网络(DHGCN)的可解释问答系统模型,即基于动态关系的两向超图推理,首先更新关系状态并为关系分配动态权值,然后自适应地学习节点表示。这样可以明确地更新关系信息,动态地关注不同跳下的不同关系。Schlichtkrull等人[38]在问答任务中引入了关系图卷积网络(R-GCNs),应用于两个标准的知识库完成任务:链接预测和实体分类以完成缺失事实的恢复和缺失实体属性的恢复,因此可以在推理中充分利用补全的信息完成推理任务。Teru[39]提出了一个基于图神经网络的关系预测框架GraIL,使用注意力机制对两个相邻的实体以及它们之间的关系处理得到实体的向量表示以及关系的向量表示,根据目标处理得到的表示预测打分,得到最高分的作为最终的输出。GraIL在训练后可以推广到看不见的实体和图,利用这些信息完成问答推理任务。

Xiong等人[40]提出学习多跳关系路径的强化学习框架,基于知识图嵌入的连续状态的策略代理,训练一个RL代理在知识库中寻找推理路径,RL模型允许控制所找到路径的属性,与围绕KG设计的环境进行交互。Hua等人[41]提出了一种元强化学习方法,基于从训练数据中检索到的最相似的问题,快速有效地使元学习程序员适应新的问题。然后使用元学习策略来学习优秀的编程策略,利用试验轨迹及其奖励设置类似的问题,实现了对未知问题的快速反应以及推理回答。

He等人[42]提出了一种师生方法中的多跳问答系统任务。学生网络的目标是找到查询的正确答案,而教师网络则试图学习中间监督信号,以提高学生网络的推理能力。特别是教师网络的设计,同时利用正向和反向的推理来增强对中间实体分布的学习。通过考虑双向推理,教师网络可以产生更可靠的中间监督信号,从而缓解虚假推理的问题。Hu等人[43]提出将逻辑查询和KG联合嵌入到一个低维空间,充分利用类型信息,增强了查询中的实体和关系表示,并且同时提高了泛化、演绎和归纳推理,更有利于问答推理任务的进行。

在知识图推理中,需要识别大型候选实体集中的答案,但其大小随着推理跳数的增加呈指数增长。Cai等人[44]提出了深层认知推理网络(DCRN),通过无意识和有意识两个阶段减少工作量。Shi等人[45]利用神经符号问答的方法,将自然逻辑推理集成到深度学习架构中,将问答视为文字蕴含任务,问题和候选答案被串联起来形成假设,模型按照自然逻辑推理步骤,逐步将假设和候选前提连接起来以构建证明路径并测量二者之间的蕴涵分数以确定前提是否包含假设。

Li等人[46]在普通的编解码器训练中增加一个后向推理步骤,以双向方式训练生成模型,解决在问答中编码器和解码器通过预测得到的不是最合适的反应的问题。前向生成步骤的输出被用于向后推断对话上下文,因而后向推理步骤推动模型可以生成更加信息丰富和一致的内容,方便双向优化。Xu等人[47]动态构造语义图并对其进行推理,使用抽象语义表示(AMR)作为语义图表示,基于AMR语义图构建AMR-SG,揭示问题、答案和多个事实之间的任何跳关系。利用AMR-SG从一个大的事实库中提取活跃的事实来回答问题。Feng等人[48]提出由NumGNN和NumTransformer组成的预训练数值推理模型,并由显式的自我监督信号引导。这两个模块被预先训练来分别编码数字的大小和序数性质,并且作为任何基于信息检索的问答系统模型无关插件来增强其数值推理能力。

问答推理技术方法提供了对复杂多跳限制问题的解决方案,提高了多跳复杂问题的查询准确率,并用多种方法对其进行探索。表1为问答推理方法的汇总。

表1 问答推理的方法汇总

3 结束语

该文主要介绍了基于语义解析和基于信息检索的两种问答系统构建方法,以及随着深度学习的进步,研究结合深度学习模型改进问答系统并提高问答的准确率和处理复杂问题的能力。另外针对多跳问题的问答,阐述了问答系统利用隐含信息推理以及拓展推理路径等的多跳限制问答的推理方法。

基于语义解析的方法一些模型会存在解释性不足的问题,并且利用词汇映射等的操作会对数据产生依赖性无法完成复杂关系上的组合映射影响问答的结果。未来的发展方向应该改进深度学习模型增强方法的可解释性,以及减少对数据的依赖性。基于信息检索的方法在面对复杂的问题构建查询子图时存在子图构建不准确的问题以及庞大的数据集往往会挑选大量的候选实体的问题,需要处理好实体和关系的信息构建精确关系的查询子图,以及筛选答案时在大量的数据中降低候选实体集合大小,因此未来需要提升处理复杂问题时的查询准确率,通过预训练模型等增强对自然语言的处理分析各实体的关系,减小对正确答案召回率的影响。对于智能问答多跳推理方法,在一些信息缺失的知识库中进行推理还是有很大的挑战,暴露出不能处理缺失信息以及处理能力不足的问题,未来需要结合链接预测等方法解决在链接缺失的知识库中进行推理以及摆脱长语句问题推理的限制和提升多次跳跃推理的能力。

随着知识图谱的发展,问答推理工作也可以在知识图谱中进行,在今后的发展中利用好知识图谱上的数据信息完成问答任务是接下来研究的一个方向。近年来对图神经网络的研究以及其在文本处理上取得了很大的进展,将图神经网络等方法加入到问答系统推理任务也将是接下来一段时间的研究方向,而且可以和知识图谱结合处理缺失信息补全等的问题,推动问答系统推理工作的发展。

猜你喜欢
知识库实体解析
三角函数解析式中ω的几种求法
前海自贸区:金融服务实体
基于TRIZ与知识库的创新模型构建及在注塑机设计中的应用
睡梦解析仪
实体的可感部分与实体——兼论亚里士多德分析实体的两种模式
电竞初解析
两会进行时:紧扣实体经济“钉钉子”
振兴实体经济地方如何“钉钉子”
相机解析
高速公路信息系统维护知识库的建立和应用