[0001]本发明属于自然语言处理领域,尤其涉及一种基于多层感知的问题答案抽取方法及电子装置。
背景技术:
::[0002]推理阅读理解是给定用户一个问题的多个相关文档,从文档中找到问题的答案和相关的证据句子。推理阅读理解问题需要模型结合问题,对文本语义上的含义进行推理,找到问题的相关证据句子和最终答案。推理阅读模型整体上可以分为三大类方法。一类是记忆网络的方法,通过不断迭代更新推理状态来模拟推理过程;另一类是基于图神经网络的方式,通过图神经网络的更新来进行推理;还有一些其他的基于深度学习的方法。其中,基于图神经网络的推理阅读理解模型的框架整体可以分为三个部分:1)语义编码阶段;2)推理建模阶段;3)证据和答案预测阶段。语义编码阶段将问题、文档编码成具有上下文语义信息的词向量,推理建模阶段将使用图神经网络技术对推理过程进行建模,答案预测阶段得到词表示后进行相关证据句子和答案片段的预测。针对一些候选段落较多的数据,还需要进行段落选择,段落选择阶段将从候选段落中选择相关段落,用作后续语义编码的输入。[0003]基于记忆网络的方法比较典型的有dynamicco-attentionnetwork(caimingxiong,victorzhong,richardsocher:dynamiccoattentionnetworksforquestionanswering.iclr,2017),该方法将模型分为编码和解码两部分,一方面,编码阶段使用了co-attention机制将问题和文档进行编码,得到问题相关的稳定表示;另一方面,在解码阶段,利用答案预测的结果进行迭代,每轮都会根据当前状态值去预测答案,根据答案预测结果更新当轮状态值,不断迭代更新,最后一轮的结果作为最终答案。[0004]基于图神经网络的方法比较典型的有dfgn模型(linqiu,yunxuanxiao,yanruqu,haozhou,leili,weinanzhang,yongyu:dynamicallyfusedgraphnetworkformulti-hopreasoning.acl2019:6140-6150)。dfgn模型首先使用bert对文档独立分类,进行段落选择,语义编码阶段使用bert得到文档和问题的上下文词表示,推理建模阶段采用gat的图神经网络实现,使用bilstm建模了图与词表示双向融合的过程,将图推理后得到的节点信息融合到词表示中,通过不断迭代这个图推理的过程来完成图信息与文本信息的双向融合,从而预测抽取式答案;此外,dfgn还建模了问题在图构建过程中的作用,采用biattention更新问题表示,根据问题表示与节点表示的匹配程度构建动态图,同时在迭代过程中不断更新问题表示。[0005]其他非图神经网络的方法中,jianxingyu、zhengjunzha、jianyin等人设计了一种推理神经元(inferentialmachinecomprehension:answeringquestionsbyrecursivelydeducingtheevidencechainfromtext.acl2019:2241-2251),通过循环链接这种推理神经元,模拟推理过程的链式结构。这种推理神经元包括记忆向量、读操作单元、写操作单元、控制器操作单元组成,控制器单元基于问题产生一系列基于注意力的操作,读操作单元根据控制器的操作指示读取相关内容,写单元根据控制器操作和读单元结果产生新的结果,并更新记忆向量,这个推理神经元是递归链接在一起的,前一步的输出是后一步的结果;此外,由于不同样本推理深度的不确定性,推理过程的终止动作是动态决定的,整个网络通过强化学习来训练。[0006]sewonmin、victorzhong、lukezettlemoyer、hannanehhajishirzi等人提出的模型将问题分解成多个简单的子问题(multi-hopreadingcomprehensionthroughquestiondecompositionandrescoring.acl2019:6097-6109),这些子问题可以较好的被现有的单跳阅读理解模型回答。为了较为容易的获取分解子问题的标注数据,他们将子问题形式化成原来问题的片段,子问题生成问题变成了片段预测问题,训练这个部分只用了400个人工标注的数据就可以与人类标注一样有效。此外,还提出了一种根据子问题和答案的重打分的方法来选择最好的答案。yichenjiang、mohitbansal等人提出的自集成的模型化网络(self-assemblingmodularnetworksforinterpretablemulti-hopreasoning.emnlp/ijcnlp2019:4473-4483),采用神经网络的方式模拟栈来搭建一个自集成的模块化神经网络,可以将子问题拆解和组合完全自动集成在一起。[0007]但目前的大多数模型没有针对不同类别的推理类型进行分别处理,模型为了建模通用的推理过程大都比较复杂。[0008]本方法重点在于针对数据集中不同推理问题的特点,生成不同的子问题并拆分成不同的子任务,层级递进完成子任务来预测答案。技术实现要素:[0009]为解决上述问题,本发明提出一种基于多层感知的问题答案抽取方法及电子装置,通过简单的问题分类机制,控制不同子模块进行层级结构组合,实现更加简单,便于以一种模块方式来与其他部分组合。[0010]为达到上述目的,本发明采用如下技术方案:[0011]一种基于多层感知的问题答案抽取方法,其步骤包括:[0012]1)将一问题与若干目标文档拼接,输入到预训练语言模型中,得到问题的表示q与目标文档的上下文表示p,将表示q与上下文表示p交互,得到文档相关的问题表示u与融合问题信息的文档表示h;[0013]2)对问题表示u进行多层感知分类,获取问题的推理类型,并根据推理类型、问题表示u、文档表示h及通过表示q生成的子问题ct,得到所述问题在目标文档中的答案注意力分布,其中t为生成子问题的次数;[0014]3)依据答案注意力分布,获取该问题的答案预测结果。[0015]进一步地,通过以下步骤得到目标文档:[0016]1)将若干原始文档输入一由bert模型与一层线性分类器组成的段落选择模型;[0017]2)根据一阈值,在各原始文档中选取与所述问题相关的段落,得到若干目标文档。[0018]进一步地,所述预训练语言模型包括bert模型。[0019]进一步地,将表示q与上下文表示p进行交互的方法包括:使用双向注意力机制;生成子问题的步骤包括:[0020]1)将表示q输入通过bilstm网络,得到问题向量qv;[0021]2)通过问题向量qv、子问题ct-1和问题表示u,得到子问题ct。[0022]进一步地,所述推理类型包括:桥接实体类或比较类问题。[0023]进一步地,若推理类型为桥接实体类,通过以下步骤得到答案注意力分布:[0024]1)根据问题表示u、文档表示h及子问题,调用find函数,生成中间桥接实体att1;[0025]2)根据中间桥接实体att1、问题表示u、文档表示h及子问题ct,调用transfer函数,得到答案注意力分布。[0026]进一步地,若推理类型为比较类问题,通过以下步骤得到答案注意力分布:[0027]1)根据问题表示u、文档表示h及子问题ct,分别调用两次find函数,生成中间桥接实体att1与中间桥接实体att2;[0028]2)通过调用compare函数比较中间桥接实体att1与中间桥接实体att2,得到答案注意力分布。[0029]进一步地,得到该问题答案预测结果的方法包括:将上下文表示c′(t)输入若干层层堆叠且不共享参数的lstm层;答案预测结果包括:相关证据句子、答案开始位置、答案结束位置和答案类型中的一种或多种。[0030]一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述所述的方法。[0031]一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机以执行上述所述的方法。[0032]与现有技术相比,本发明具有以下积极效果:[0033]1)提出以子问题拆分的简单形式来层级递进式回答问题,不需要对问题拆分进行监督,提升推理阅读理解的效果。[0034]2)提出引入推理类别分类器来控制拆分,通过子任务模块共享回答问题,提升推理阅读理解的效果。附图说明[0035]图1为本发明的流程示意图。[0036]图2为本发明的桥接实体类问题拆解框架示意图。[0037]图3为本发明的比较类问题拆解框架示意图。具体实施方式[0038]为使本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图作详细说明如下。[0039]本发明针对hotpotqa数据集中的推理类别进行分类。主要有两类,桥接实体类和比较类。如果问题是桥接实体类推理类型,模型会将答案预测过程处理成两个层级堆叠的子任务,第一层是通过寻找模块来寻找中间桥接实体,第二层是通过转换模块将第一层输出的桥接实体表示以及问题和上下文内容来锁定最终答案;如果问题是比较类推理类型,模型会将答案预测过程处理成两层层级堆叠的子任务,第一层是通过两个寻找模块来寻找到模型中相关的两个实体部分,第二层是通过一个比较模块来对第一层中输出的实体表示进行比较,预测最终答案。其中涉及到的子任务通过三个函数来实现,find函数实现寻找子任务,transfer函数实现通过桥接实体来锁定答案,compare函数实现对两个实体表示进行比较从而得出答案。问题拆解框架如图例所示:[0040]如图1所示,本发明采用的框架整体分为三个部分:1)段落选择模块;2)语义编码模块;3)层级答案预测模块。段落选择模块对多个文档进行筛选,过滤掉无关的文档,避免输入文档长度过大。语义编码模块将问题、文档编码成具有上下文语义信息的向量表示。层级答案预测模块将对不同推理类型的问题分别处理,预测最终证据句子和答案。其中,本发明的重点在于层级答案预测模块,可以分为一个分类控制器、一个子问题生成器和三个子任务执行器。[0041]过程一:段落选择模块。[0042]段落选择模块,使用bert模型(acobdevlin,ming-weichang,kentonlee,kristinatoutanova:bert:pre-trainingofdeepbidirectionaltransformersforlanguageunderstanding.naacl-hlt2019:4171-4186)和一层线性分类器来微调得到一个段落选择的模型,单独判断问题与段落是否相关,设置阈值为0.3来选取较为相关的段落。这是在保证召回率下的选择,同时召回的相关文档总长度基本满足下一阶段的最大输入长度512。[0043]过程二:语义编码模块。[0044]语义编码层将问题和上下文文档编码成具有上下文语义信息的向量表示。问题和该问题所有的相关文档拼接在一起构成编码模块的输入,编码模块采用预训练的bert模型。经过编码后,获得表示以及其中r代表实数集合,l和n分别是问题和上下文的长度,d1是bert隐藏层的维度大小。[0045]然后,利用双向注意力机制(minjoonseo,aniruddhakembhavi,alifarhadi,hannanehhajishirzi:bidirectionalattentionflowformachinecomprehension.iclr2017)对问题和上下文进行交互建模。模型使用双向注意力机制,对问题和上下文进行交互建模,学习到文档相关的问题表示以及问题相关的文档表示其中d2是输出的词表示维度大小。[0046]过程三:层级答案预测模块。[0047]问题推理类型判别器的输入是问题表示u,通过多层感知机对编码阶段得到的问题词表示进行二分类,得到问题的推理类型。[0048]进一步地,如果推理类型是桥接实体类,如图2所示,模型会先调用find函数生成中间桥接实体att1,然后调用transfer函数根据桥接实体得到相关答案的注意力分布。如果推理类型是比较类问题,如图3所示,模型会调动两次find函数得到两个相关实体att1和att2,然后调用compare函数通过比较这两个相关实体得到最终答案的注意力分布。[0049]find函数首先将子问题ct注入到问题相关的文档表示h中,得到h′=h⊙ct,接下来通过双向注意力机制来得到问题相关的上下文表示具体过程如下:[0050]mj,s=w1uj+w2h’s+w3(uj⊙h′s)[0051][0052][0053][0054][0055][0056][0057]进一步地,m是双向注意力机制中的相似度矩阵,w是可训练的参数,cq与qc分别是双向注意力机制中计算得到的上下文相关的问题注意力与问题相关的上下文注意力,p是计算出来的注意力权重,s为上下文的个数,j是上下文序列中隐含表示的维数,m是取m最大一维值,uj是问题表示中第j个词表示。最后会通过线性变换压缩成问题输入的原始维度作为最终的输出,作为相关实体的注意力分布,记为att1。[0058]transfer函数首先通过注意力机制计算得到桥接实体表示b,然后将桥接实体表示注入到上下文表示中得到hb,再利用transfer中的findtrans函数寻找定位最终答案所在的位置,这个函数与find函数设计完全相同,从而得到相关的原文上下文表示。同样这一部分的ct也需要子问题生成器进行生成。具体过程如下:[0059][0060]hb=h⊙b[0061][0062]进一步地,att1是桥接实体的注意力分布,hs是上下文表示h中的第s个词。[0063]compare函数的输入为两个实体相关的注意力att1和att2,分别是find函数根据两个子问题生成的相关实体注意力分布。因此这里需要得到两个实体相关的表示信息hs1和hs2,最终通过这两个表示信息与子问题进行拼接组合,得到比较所需要的信息oin后,将这些信息输入到多层感知机中进行比较。整体思路就是将两个注意力分布进行聚合,根据子问题表示进行比较得出答案。通过以上部分我们会得到一个最终的注意力分布,这个注意力分布会用于预测答案片段的开始和结束位置。具体公式如下:[0064][0065][0066]oin=[ct;hs1;hs2;ct·(hs1-hs2)][0067]hc=w1·(relu(w2·oin))[0068]进一步地,w是可训练的模型参数。[0069]同时,模型每次调用find、transfer和compare函数都会通过子问题生成器计算当前函数解决的子问题,这个子问题表示的计算过程如下:[0070]qt=w1,t·qv+b1,t[0071]cqt=w2·[ct-1;qt]+b2[0072]et,j=w4·(cqt·uj)+b4[0073]cvt=softmax(et)[0074][0075]其中,qv表示问题向量,由bilstm产生。由过程二知,qv=bilstm(q),将隐含变量头尾相接就是qv的值。ct表示当前计算的子问题表示。其中的w和b都是可训练的参数。这个计算过程中,我们将问题表示与上一个子问题表示进行融合得到cqt,从而通过注意力机制计算当前子问题的表示。[0076]然后,将得到的表示计算证据和答案的概率分布,作为预测层的输入。当问题为桥接实体类时,预测层的输入是transfer函数的输出;当问题为比较类问题是,预测层的输入是compare函数的输出。预测层的输出有四个维度,包括相关证据句子、答案的开始位置、答案的结束位置、答案的类型。预测层采用一种垂直结构设计来解决输出之间的依赖关系,四个不共享参数的lstm层通过层层的堆叠在一起。最后一轮推理模块的上下文表示是第一层lstm的输入,每层lstm都会输出一个概率分布然后使用这些概率分布计算交叉熵。具体lstm的堆叠方式如下:[0077]osup=f0(c(t))[0078]ostart=f1([c(t),osup])[0079]oend=f2([c(t),osup,ostart])[0080]otype=f3([c(t),osup,ostart])[0081]进一步地,f0,f1,f2,f3分别是四个多层感知机,osup是用来预测证据表示概率分布,ostart和oend分别是用来预测答案开始和结束位置的概率分布,otype是用来预测答案类型的概率分布。[0082]最终联合优化这四个交叉熵损失函数。[0083]l=lstart+lend+λslsup+λtltype[0084]进一步地,lstart,lend,lsup,ltype分别是osup,ostart,oend,otype与真实标签计算交叉熵损失函数得到的损失函数,λs和λt分别是计算证据预测损失和答案类型损失的超参数。[0085]在实验效果中,本发明在hotpotqa推理阅读理解数据集(zhilinyang,pengqi,saizhengzhang,yoshuabengio,williamw.cohen,ruslansalakhutdinov,christopherd.manning:hotpotqa:adatasetfordiverse,explainablemulti-hopquestionanswering.emnlp2018:2369-2380)上进行了实验。训练数据有90247个样本,验证数据有7405个样本。桥接类和比较类推理问题在数据集中的统计结果如表所示:[0086]数据集桥接类比较类全部训练集174567299190247验证集148759187405[0087]表1:hotpotqa中的桥接类和比较类问题统计结果[0088]本发明的评价指标为em值和f1值。em值是比较预测的答案与真实答案完全一致的占比情况,f1值综合度量了预测结果和真实结果的准确率与召回率。[0089]本发明的问题分类器性能如下:[0090]正确样本错误样本准确率问题分类器73753099.59%[0091]表2:问题分类器的性能评估[0092]本发明与主流方法进行了比较,其中最后一行是本发明提出的模型,具体结果如表1所示。可以看到本发明提出的模型超过了许多主流模型的性能,证明了本发明提出方法的有效性。[0093][0094]以上通过形式表达和实施例对本发明方法进行了详细的说明,但本发明的具体实现形式并不局限于此。本领域的一般技术人员,可以在不背离本发明所述方法的精神和原则的情况下对其进行各种显而易见的变化与修改。本发明的保护范围应以权利要求书所述为准。当前第1页1 2 3 当前第1页1 2 3