一种基于知识引导注意力的机器阅读理解方法与流程

专利2022-06-29  65


本发明涉及自然语言处理,尤其涉及一种基于知识引导注意力的机器阅读理解方法。



背景技术:

自然语言处理(naturelanguageprocessing,简称nlp)是一门集语言学与计算机科学为一体的交叉学科。阅读理解(readingcomprehension)是自然语言处理中的一项基本任务,通常通过要求系统回答问题,从给定的文章或上下文中推断出答案。随着互联网时代的到来,网络上的信息呈爆炸式增长,这其中包括了各种语言各种形式的文本数据,如新浪和每日邮报的新闻,百度和维基百科的文章,知乎和quora等问答社区的回答。这些语料成为构造大规模机器阅读理解数据集的基础。教会机器去阅读,处理和理解人类语言是自然语言处理的核心任务之一,也是人工智能的长期目标。

随着注意力机制的提出和在机器翻译任务上的大获成功,基于注意力机制的深度神经网络在自然语言处理的各个领域成为主流技术,自然在机器阅读理解任务上也成为了核心组件。注意力机制有助于深度神经网络学习和构建从问题空间到答案空间的复杂非线性映射,从而有效地解决问题或答案的释义问题。而且诸如指针网络等基于注意力的结构可以直接将输出与输入中位置相对应的离散变量,不用像之前的方法将神经网络的隐藏层表示解码到文本空间,这种解码方式也成为解决机器阅读理解任务的关键组件。

尽管目前的基于注意力的机器阅读理解模型已经能达到比较很好的效果,但是有研究人员通过构造对抗样本的方式来干扰现有模型,发现现有机器阅读理解模型并不是真正理解了文本,而只是对于句子结构的拟合。事实上,对于人类来说,如果要真正理解一篇新的文章,除了文章本身提供的上下文外,往往需要结合外部知识,也就是一些常识或文章相关的背景知识,才能真正地理解内容。我们寻求一种能够解决上述问题的更加有效的神经网络模型。

鉴于基于注意力机制的方法的成功,为了能够回答复杂的问题,一些研究人员将精力投入对推理机制的研究中,通过注意力焦点的转移机制来模拟人类的推理过程,提升模型的阅读理解能力。人在阅读理解文章内容的时候,推理的过程几乎无处不在,没有推理人是无法完全理解内容的,对于机器也是如此。俗话说,“书读百遍其义自见”,对于比较复杂的文章和问题,人类在阅读的过程中,经常会进行回顾,来确定自己的理解是否有偏差。推理是一个多步进行的过程,一些研究工作尝试通过结合当前时刻的信息和前序获得的信息来模拟这个过程。记忆网络是最早提出推理过程的模型,对后来的其他推理模型有重要影响。

将有用先验知识的融入深度神经网络中无疑可以提高模型的性能和可解释性,尤其是在应对部分可观察数据或者数据噪声比较大的情况下。但是知识融合并不是一件简单的事情,近些年随着freebase,concepnet等知识库的出现,知识与深度神经网络融合进行端到端训练逐渐进入研究人员的视野。在自然语言处理领域中已经有一些工作尝试应用于各种任务中。



技术实现要素:

本发明的目的是为了在给定文章和问题的情况下,希望结合外部知识库更好地对文章进行理解,提出一种基于知识引导注意力的机器阅读理解方法。

本发明具体采用的技术方案如下:

一种基于知识引导注意力的机器阅读理解方法,其特征在于包括如下步骤:

s1:根据文本数据进行数据预处理,对文本进行分句、分词,利用预训练的词嵌入矩阵得到文本序列的词向量;

s2:将词向量传入到双向gru神经网络,利用双向gru网络来分别对问题和文本的每个单词的上下文信息进行建模,得到问题和文章的语义编码特征;

s3:将问题的语义编码特征作为初始隐藏层状态输入到单向gru网络,gru网络使用基于注意力的回看机制迭代地执行搜索步骤以收集文章中可能用于预测答案的信息;

s4:将外部知识作为长期记忆加入模型,在回看过程中来引导注意力的焦点,使模型重新分配文章中实体的注意力分数;

s5:针对s3中所得到的语义特征,经过指针网络得到预测的答案。

上述各步骤可具体采用如下实现方式:

所述的步骤s1的具体实现方法如下:

s11:采用自然语言处理工具对文本进行分句和分词,使文章和问题以句子和每句一个词条token的方式呈现;

s12:根据预训练的词向量和词表得到一个词向量的查询矩阵dw为词向量的维度;

s13:利用已预训练好的词向量查询得到文本的单词级特征向量,如(1)式所示:

其中,xi为|·|表示向量长度。

所述的步骤s2的具体实现方法如下:

s21:将文章和问题的词级特征向量表示为d={d1,d2,…,dn}和q={q1,q2,…,qm},分别通过双向gru神经网络得到其上下文特征,如式(2)所示:

其中,表示文章中第i个单词的上下文语义特征,表示问题中第i个单词的上下文语义特特征;bigru(·,·)表示双向gru神经网络,下标d表示文章,下标q表示问题;n和m分别表示文章和问题中的单词数量;

s22:将双向gru神经网络中的前向网络和后向网络各自最后一个隐含层状态拼接起来,表示问题的整体

s23:最终将分别作为文章d和问题q的文本语义特征编码,其中h为双向gru神经网络中单向网络的输出维度。

所述的步骤s3的具体实现方法如下:

s31:定义搜索状态的序列为s,其初始状态为问题的语义特征编码,问题的表示通过搜索状态的改变而得到显式更新;整个搜索状态序列通过单向gru网络生成,如式(4)所示:

st=grus(st-1,xt)(4)

其中,st表示第t步回看过程的搜索状态,gru(·,·)表示单向gru神经网络;用xt表示第t步回看过程得到的文章信息综合,表现为文章每个词特征向量的加权和,如式(5)所示:

其中为文章中第i个单词的上下文语义特征,αi,t为文章中第i个单词在第t步回看过程的注意力分数;文章的表示通过注意力分布的改变而得到隐式更新;

s32:使用双线性函数来计算匹配分数ai,t,其依赖于文章语义特征和搜索状态st-1之间的相关性,如式(6)所示:

其中是双线性函数的参数;β是偏置项,它使得模型可以注意到文章里在整个回看过程中都很重要的词,独立于搜索状态st-1。

所述的步骤s4的具体实现方法如下:

s41:将freebase作为模型的外部知识来源,对于数据集中所有文章经过实体识别链接系统处理后,得到一个实体表ε和关系表

s42:定义一篇文章对应的实体序列为e={e1,e2,…,en},ei为文章第i个token对应的freebase实体id;如果token链接不到freebase,将其标记为nil;

s43:从freebase中检索实体表ε中实体两两之间的关系,得到一个稀疏矩阵元素ki,j∈k表示以实体表ε中第i个实体为主体且第j个实体为客体的关系;

s44:采用基于翻译的知识图谱表示学习方法,在完整的freebase知识图谱上进行预训练,得到实体与关系向量化表达:实体向量查询矩阵和关系向量查询矩阵dk为实体与关系向量的维度;

s45:对于s33中得到的文章与搜索状态的匹配分数{ai,t},通过argmax函数如式(8)所示:

ut=argmax{a1,t,a2,t,…,an,t}(8)

其中argmax函数返回序列中最大值的索引值,ut为第t步回看过程中注意力焦点的索引;

s46:对于文章d={d1,d2,…,dn}其对应到的e={e1,e2,…,en},可以得到注意力焦点对应的实体id:eu∈ε;

s47:通过知识查询矩阵k得到注意力焦点与文章其他token在长期记忆库中的关系,得到关系序列再通过关系向量查询矩阵得到关系向量序列其中表示注意力焦点实体eu与第i个tokenei在长期记忆库中的关系,表示注意力焦点实体eu与第i个tokenei在长期记忆库中的关系向量;

s48:采用主动感知的方式,动态地计算对于一个回看步,注意力焦点与文章其他token的关系对于模型推理文章隐式表示的影响程度,如式(9)所示:

其中,bi,u,t表示注意力焦点实体eu与第i个tokenei的关系在第t步回看时对于模型推理文章隐式表示的影响程度,是双线性函数参数,st-1是第t-1步搜索状态;

同时,对于非实体token需要设置其以去掉非法连接的影响;

s49:通过知识影响力分数来引导注意力的权重分配重新调整,如式(10)所示:

αi,t=softmaxi(ai,t bi,u,t*au,t)(10)

其中au,t表示αi,t为注意力焦点实体eu在第t步回看过程的注意力分数。

所述的步骤s5的具体实现方法如下:

s51:经过t个回看过程,模型最终得到综合的推理信息v=st,t为超参数;计算出文章序列中每个token作为答案的可能,如式(11)所示:

其中,oi表示第i个token作为答案的可能;

s52:将oi归一化之后,表示为对应于文章长度的答案概率分布;然后计算词w为正确答案的概率p(w|q,d),如式(12)所示:

其中i(w,d)表示词w出现在文章d中的位置;

s53:模型最终预测的答案a′,如式(13)所示:

a′=argmaxp(w|q,d)(13)

s54:针对训练目标采用最小化正确答案的平均负对数似然的方法进行参数优化,如式(14)所示:

其中θ表示模型中的所有参数,n是一个minibatch的所有训练数据,a是对应于文章d和问题q的正确答案。

本发明与现有技术相比的有益的效果。

本发明本文提出了基于知识引导注意力的机器阅读理解模型,弥补了现有机器阅读理解模型对于外部知识的忽视。该方法模拟人类阅读过程,首先通过gru神经网络组件构建文章和问题的上下文隐藏表示;然后重复查看文章和问题,收集有用信息来揭开正确的推理链,通过注意力找到每次推理的信息焦点;在此过程中,模型会在其长期记忆库中检索文章其他部分与当前注意力焦点的关系,并对关系对于问题的影响力进行建模,使之可以用来更新注意力的权重分布来收集隐藏线索;最终进过多次迭代后,模型收集到足够的信息来预测最终答案。通过与其他主流方法的对比试验,本发明所提方法展示出有效性和优越性。

附图说明

图1是基于知识引导注意力的机器阅读理解方法的关键步骤工作流程图;

图2是基于注意力的回看机制示意图;

图3是知识引导注意力模块示意图。

图4是知识引导注意力模块算法流程。

图5是基于知识引导注意力的机器阅读理解方法推理与预测算法流程。

图6为实施例中一个推理过程的可视化示意图。

具体实施方式

下面结合附图和具体实施方式对本发明做进一步阐述。

本发明主要针对阅读理解任务,呈现了一种,结合外部知识库,基于知识引导注意力的机器阅读理解模型,该模型能够学习词向量,在此基础上将学习到的特征向量通过双向gru得到文章和问题的上下文表示,然后结合外部知识库经过t步对文章的回看,由此从文章中得到准确率较高的答案。如图1所示,是基于知识引导注意力的机器阅读理解方法的关键步骤工作流程图,图2是基于注意力的回看机制示意图;图3是知识引导注意力模块示意图;图4是知识引导注意力模块算法流程;图5是基于知识引导注意力的机器阅读理解方法推理与预测算法流程。

本发明的基于知识引导注意力的机器阅读理解方法,其具体实现步骤如s1~s5所述,下面具体描述各步骤的实现。

s1:根据文本数据进行数据预处理,对文本进行分句、分词,利用预训练的词嵌入矩阵得到文本序列的词向量。具体实现方法如下:

s11:采用自然语言处理工具对文本进行分句和分词,使文章和问题以句子和每句一个词条token的方式呈现;

s12:使用stanford公开的预训练的词向量和词表得到一个词向量的查询矩阵dw为词向量的维度;

s13:利用已预训练好的词向量查询得到文本的单词级特征向量,如(1)式所示:

其中,xi为**|·|表示向量长度。

s2:将词向量传入到双向gru神经网络,利用双向gru网络来分别对问题和文本的每个单词的上下文信息进行建模,得到问题和文章的语义编码特征。具体实现方法如下:

s21:将文章和问题的词级特征向量表示为d={d1,d2,…,dn}和q={q1,q2,…,qm},分别通过双向gru神经网络得到其上下文特征,如式(2)所示:

其中,表示文章中第i个单词的上下文语义特征,表示问题中第i个单词的上下文语义特特征;bigru(·,·)表示双向gru神经网络,下标d表示文章,下标q表示问题;n和m分别表示文章和问题中的单词数量;

s22:因为问题通常比文章短很多(平均10多个词),将双向gru神经网络中的前向网络最后一个隐含层状态和后向网络最后一个隐含层状态拼接起来,表示问题的整体

s23:最终将分别作为文章d和问题q的文本语义特征编码,其中h为双向gru神经网络中单向网络的输出维度。

s3:将问题的语义编码特征作为初始隐藏层状态输入到单向gru网络,gru网络使用基于注意力的回看机制迭代地执行搜索步骤以收集文章中可能用于预测答案的信息。具体实现方法如下:

s31:定义搜索状态的序列为s,其初始状态为问题的语义特征编码,问题的表示通过搜索状态的改变而得到显式更新;整个搜索状态序列通过单向gru网络生成,如式(4)所示:

st=grus(st-1,xt)(4)

其中,st表示第t步回看过程的搜索状态,gru(·,·)表示单向gru神经网络;用xt表示第t步回看过程得到的文章信息综合,表现为文章每个词特征向量的加权和,如式(5)所示:

其中为文章中第i个单词的上下文语义特征,αi,t为文章中第i个单词在第t步回看过程的注意力分数;文章的表示通过注意力分布的改变而得到隐式更新;

s32:使用双线性函数来计算匹配分数ai,t,其依赖于文章语义特征和搜索状态st-1之间的相关性,如式(6)所示:

其中是双线性函数的参数;β是偏置项,它使得模型可以注意到文章里在整个回看过程中都很重要的词,独立于搜索状态st-1。

若不考虑外部知识,在传统的注意力机制中得到注意力权重ai,t,如式(7)所示:

αi,t=softmaxiai,t(7)

但本发明中,不采用该传统的注意力机制,而是将外部知识作为长期记忆加入模型,具体如s4所示。

s4:将外部知识作为长期记忆加入模型,在回看过程中来引导注意力的焦点,使模型重新分配文章中实体的注意力分数。具体实现方法如下:

s41:将freebase作为模型的外部知识来源,对于数据集中所有文章经过实体识别链接系统处理后,得到一个实体表ε和关系表

s42:定义一篇文章对应的实体序列为e={e1,e2,…,en},ei为文章第i个token对应的freebase实体id;如果token链接不到freebase,将其标记为nil;

s43:从freebase中检索实体表ε中实体两两之间的关系,得到一个稀疏矩阵元素ki,j∈k表示以实体表ε中第i个实体为主体且第j个实体为客体的关系;

s44:采用基于翻译的知识图谱表示学习方法(transe学习算法),在完整的freebase知识图谱上进行预训练,得到实体与关系向量化表达:实体向量查询矩阵和关系向量查询矩阵dk为实体与关系向量的维度;

s45:对于s33中得到的文章与搜索状态的匹配分数{ai,t},通过argmax函数如式(8)所示:

ut=argmax{a1,t,a2,t,…,an,t}(8)

其中argmax函数返回序列中最大值的索引值,ut为第t步回看过程中注意力焦点的索引;

s46:对于文章d={d1,d2,…,dn}其对应到的e={e1,e2,…,en},可以得到注意力焦点对应的实体id:eu∈ε;

s47:通过知识查询矩阵k得到注意力焦点与文章其他token在长期记忆库中的关系,得到关系序列再通过关系向量查询矩阵r得到关系向量序列其中表示注意力焦点实体eu与第i个tokenei在长期记忆库中的关系,表示注意力焦点实体eu与第i个tokenei在长期记忆库中的关系向量;

s48:采用主动感知的方式,动态地计算对于一个回看步,注意力焦点与文章其他token的关系对于模型推理文章隐式表示的影响程度,如式(9)所示:

其中,bi,u,t表示注意力焦点实体eu与第i个tokenei的关系在第t步回看时对于模型推理文章隐式表示的影响程度,是双线性函数参数,st-1是第t-1步搜索状态;

需要注意的是,对于那些非实体tokens,要将其maskout,即对于非实体token需要设置其这样在其归一化之后对应的bi,u,t=0,从而去掉了那些非法连接的影响;

s49:通过知识影响力分数来引导注意力的权重分配重新调整,如式(10)所示:

αi,t=softmaxi(ai,t bi,u,t*au,t)(10)

其中au,t表示αi,t为注意力焦点实体eu在第t步回看过程的注意力分数。

s5:针对s3中所得到的语义特征,经过指针网络得到预测的答案。具体实现方法如下:

s51:经过t个回看过程(t为超参数),模型最终得到综合的推理信息v=st,t为超参数;计算出文章序列中每个token作为答案的可能,如式(11)所示:

其中,oi表示第i个token作为答案的可能;

s52:将oi归一化之后,表示为对应于文章长度的答案概率分布;然后计算词w为正确答案的概率p(w|q,d),如式(12)所示:

其中i(w,d)表示词w出现在文章d中的位置;

s53:模型最终预测的答案a′,如式(13)所示:

a′=argmaxp(w|q,d)(13)

s54:针对训练目标采用最小化正确答案的平均负对数似然的方法进行参数优化,如式(14)所示:

其中θ表示模型中的所有参数,n是一个minibatch的所有训练数据,a是对应于文章d和问题q的正确答案。

模型训练完毕后,即可用于进行答案的预测。

下面将上述方法应用于实施例中,具体步骤和参数定义如前所述,部分内容不再重复赘述,本实施例主要展示其具体实现以及技术效果。

实施例

以cnn\dailymail数据集为例,将上述方法应用于阅读理解任务,各步骤中具体参数和做法如下:

1.使用cnn\dailymail数据集,由于cnn\dailymail原始数据集是以一条数据一个文件的形式存储,为了便于后续的处理将其合并,并去除多余字段信息,仅保留(question,context,answer),采用自然语言处理工具对文章和问题进行分句和分词,得到词表规模为118497/208045,cnn和dailymail文章中平均实体数都是26左右;

2.利用已训练好的6亿斯坦福公开的glove300维向量与1中词表相结合组成300维词向量,为了训练模型,本文统计训练集中的词频,并降序排序,选取前50k个词作为词表根据预训练的词向量和词表可以得到一个词向量的查询矩阵dw为词向量的维度;

3.利用已训练好的词向量查询得到文章和问题的词向量特征,如(1)式所示:

其中,xi为|·|表示向量长度。

将词向量输入到双向gru神经网络,利用双向gru神经网络来训练得到输入语句信息特征:

4.将文章和问题的词级特征向量表示为d={d1,d2,…,dn}和q={q1,q2,…,qm},分别通过双向gru得到其上下文特征,设置gru隐藏层维度=300,如(2)式所示:

5.因为问题通常比文章短很多(平均10多个词),本文将前向网络和后向网络各自最后一个隐含层状态拼接起来表示如(3)式所示:

6.最终将分别作为文章d和问题q的文本语义特征编码;

将问题的上下文表示作为初始隐藏层状态输入到单向gru网络,gru网络使用基于注意力的回看机制迭代地执行搜索步骤以收集文章中可能用于预测答案的信息的:

7.定义搜索状态的序列为s,其初始状态为问题的语义特征编码,问题的表示便通过搜索状态的改变而得到显式更新,整个搜索状态序列通过gru网络生成如式(4)所示:

st=grus(st-1,xt)(4)

其中,设置最大回看步数为3,用xt表示第t步回看过程得到的文章信息综合,表现为文章每个词特征向量的加权和如式(5)所示:

其中为文章中第i个词的上下文语义特征编码,αi,t为文章中第i个词在第t步回看过程的注意力分数,会在知识引导注意力部分详细介绍,文章的表示便通过注意力分布的改变而得到隐式更新;

8.使用双线性函数来计算匹配分数ai,t,它依赖于文章语义特征和搜索状态st-1之间的相关性,如式(6)所示:

其中是双线性函数的参数,β是偏置项,它使得模型可以注意到文章里在整个回看过程中都很重要的词,独立于搜索状态st-1;

9.如果在不考虑外部知识,在传统的注意力机制中,可以认为注意力权重ai,t如式(7)所示:

αi,t=softmaxiai,t(7)

将外部知识作为长期记忆加入模型,在回看过程中来引导注意力的焦点,重新分配文章中实体的注意力分数,其步骤可具体实现如下:

10.将freebase作为模型的外部知识来源,对于数据集中所有文章经过实体识别链接系统处理后,可以得到一个实体表ε和关系表

11.定义一篇文章对应的实体序列为e={e1,e2,…,en}。ei为文章第i个token对应的freebase实体id。如果链接不到freebase,将其标记为nil,使用实体识别链接系统将这些实体链接到freebase来构建模型的长期记忆库。由于edl系统的性能限制,仅能链接到一部分实体,cnn:40%,dailymail:33%。

12.从freebase中检索实体表ε中实体两两之间的关系,得到一个稀疏矩阵元素ki,j∈k表示以实体表ε中第i个实体为主体,第j个实体为客体的关系。

13.采用基于翻译的知识图谱表示学习方法transe学习算法,在完整的freebase知识图谱上进行预训练,得到实体与关系向量化表达:实体向量查询矩阵和关系向量查询矩阵dk为实体与关系向量的维度,实体和关系向量采用50维的预训练的openkefreebase嵌入表示进行初始化,并且会在训练过程中固定住;

14.对于式7得到的文章与搜索状态的匹配分数{ai,t},通过argmax函数如式(8)所示:

ut=argmax{a1,t,a2,t,…,an,t}(8)

其中argmax函数返回序列中最大值的索引值,ut为第t步回看过程中注意力焦点的索引;

15.对于文章d={d1,d2,…,dn}其对应到的e={e1,e2,…,en},可以得到注意力焦点对应的实体id:eu∈ε;

16.通过知识查询矩阵k得到注意力焦点与文章其他token在长期记忆库中的关系,可以得到关系序列再通过关系向量查询矩阵得到关系向量序列

17.采用一种主动感知的方式,它可以动态地计算对于一个特定回看步,注意力焦点与文章其他token的关系对于模型推理文章隐式表示的影响程度如式(9)所示:

其中是双线性函数参数,st-1是上一步搜索状态。需要注意的是,对于那些非实体tokens,要将其maskout,即这样在其归一化之后对应的bi,u,t=0,从而去掉了那些非法连接的影响;

18.通过知识影响力分数来引导注意力的权重分配重新调整,如式(10)所示:

αi,t=softmaxi(ai,t bi,u,t*au,t)(10)

使用指针总和注意力机制解码生成问题答案,其步骤可具体实现如下:

19.经过t个回看过程(t为超参数),模型最终得到了综合的推理信息v=st,计算出文章序列中每个token作为答案的可能,如式(11)所示:

20.将oi归一化之后,表示为对应于文章长度的答案概率分布。然后计算词w为正确答案的概率,如式(12)所示:

其中i(w,d)表示词w出现在文章d中的位置;

21.模型最终预测的答案如式(13)所示:

a′=argmaxp(w|q,d)(13)

22.作为训练目标,本文采用最小化正确答案的平均负对数似然的方法如式(14)所示:

其中θ表示模型中的所有参数,n是一个minibatch的所有训练数据,a是对应于文章d和问题q的正确答案。

为了降低过拟合现象,模型使用了在网络各层之间,稀疏概率为40%。模型使用adam算法进行学习,其中β1=0.9,β2=0.999,∈=10-9。初始学习率为η=0.1。为了避免网络过早陷入饱和状态,网络参数由xavier_uniform进行初始化。为了保持学习的稳定性,模型使用梯度剪裁,阈值设为5。本文还是使用早停,当验证集上的性能三个训练周期不提升时停止训练。

23.根据给定文章和问题,将融合外部知识库阅读理解分析后的答案反馈给用户。为了更好地理解知识引导注意力模块是如何模拟人类感知过程,通过对一个具体例子的分析观察外部知识是如何通过kam来主动感知更多线索,以及注意力是如何重定向的:

如图6所示,模型首先聚焦到与问题直接相关的实体“yancheng”(@entity37)和“lishilong”(@entity5)上。没有知识引导注意力模块,“yancheng”和他(“lishilong”)家乡的关系是无法直接从文章的文字中推理得到的。因此模型会确定“yancheng”是答案,而正确答案将会被忽略。但是“jiangsuprovince”(@entity9)和“yancheng”之间的关系(“location.location.contains”)使得“jiangsuprovince”在第二步推理结束的时候被模型考虑进来。沿着这个关系链,“xiangshui”(@entity8)和“jiangsuprovince”之间的关系(“location.location.contains”)同样会使得”xiangshui”在第三步成为注意力的焦点。最后,“xiangshui”以一个模型推断出的高概率成为最终预测的答案。

从这个例子中可以看出,知识引导注意力模块通过可解释的知识改进了模型的推理过程。它不仅使模型表现的更好,而且更易于说明。


技术特征:

1.一种基于知识引导注意力的机器阅读理解方法,其特征在于包括如下步骤:

s1:根据文本数据进行数据预处理,对文本进行分句、分词,利用预训练的词嵌入矩阵得到文本序列的词向量;

s2:将词向量传入到双向gru神经网络,利用双向gru网络来分别对问题和文本的每个单词的上下文信息进行建模,得到问题和文章的语义编码特征;

s3:将问题的语义编码特征作为初始隐藏层状态输入到单向gru网络,gru网络使用基于注意力的回看机制迭代地执行搜索步骤以收集文章中可能用于预测答案的信息;

s4:将外部知识作为长期记忆加入模型,在回看过程中来引导注意力的焦点,使模型重新分配文章中实体的注意力分数;

s5:针对s3中所得到的语义特征,经过指针网络得到预测的答案。

2.根据权利要求1所述的基于知识引导注意力的机器阅读理解方法,其特征在于,所述的步骤s1的具体实现方法如下:

s11:采用自然语言处理工具对文本进行分句和分词,使文章和问题以句子和每句一个词条token的方式呈现;

s12:根据预训练的词向量和词表得到一个词向量的查询矩阵dw为词向量的维度;

s13:利用已预训练好的词向量查询得到文本的单词级特征向量,如(1)式所示:

其中,xi为|·|表示向量长度。

3.根据权利要求1所述的一种基于知识引导注意力的机器阅读理解方法,其特征在于,所述的步骤s2的具体实现方法如下:

s21:将文章和问题的词级特征向量表示为d={d1,d2,...,dn}和q={q1,q2,...,qm},分别通过双向gru神经网络得到其上下文特征,如式(2)所示:

其中,表示文章中第i个单词的上下文语义特征,表示问题中第i个单词的上下文语义特特征;bigru(·,·)表示双向gru神经网络,下标d表示文章,下标q表示问题;n和m分别表示文章和问题中的单词数量;

s22:将双向gru神经网络中的前向网络和后向网络各自最后一个隐含层状态拼接起来,表示问题的整体

s23:最终将分别作为文章d和问题q的文本语义特征编码,其中h为双向gru神经网络中单向网络的输出维度。

4.根据权利要求1所述的一种基于知识引导注意力的机器阅读理解方法,其特征在于,所述的步骤s3的具体实现方法如下:

s31:定义搜索状态的序列为s,其初始状态为问题的语义特征编码,问题的表示通过搜索状态的改变而得到显式更新;整个搜索状态序列通过单向gru网络生成,如式(4)所示:

st=grus(st-1,xt)(4)

其中,st表示第t步回看过程的搜索状态,gru(·,·)表示单向gru神经网络;用xt表示第t步回看过程得到的文章信息综合,表现为文章每个词特征向量的加权和,如式(5)所示:

其中为文章中第i个单词的上下文语义特征,αi,t为文章中第i个单词在第t步回看过程的注意力分数;文章的表示通过注意力分布的改变而得到隐式更新;

s32:使用双线性函数来计算匹配分数ai,t,其依赖于文章语义特征和搜索状态st-1之间的相关性,如式(6)所示:

其中是双线性函数的参数;β是偏置项,它使得模型可以注意到文章里在整个回看过程中都很重要的词,独立于搜索状态st-1。

5.根据权利要求1所述的一种基于知识引导注意力的机器阅读理解方法,其特征在于,所述的步骤s4的具体实现方法如下:

s41:将freebase作为模型的外部知识来源,对于数据集中所有文章经过实体识别链接系统处理后,得到一个实体表ε和关系表

s42:定义一篇文章对应的实体序列为e={e1,e2,...,en},ei为文章第i个token对应的freebase实体id;如果token链接不到freebase,将其标记为nil;

s43:从freebase中检索实体表ε中实体两两之间的关系,得到一个稀疏矩阵元素ki,j∈k表示以实体表ε中第i个实体为主体且第j个实体为客体的关系;

s44:采用基于翻译的知识图谱表示学习方法,在完整的freebase知识图谱上进行预训练,得到实体与关系向量化表达:实体向量查询矩阵和关系向量查询矩阵dk为实体与关系向量的维度;

s45:对于s33中得到的文章与搜索状态的匹配分数{ai,t},通过argmax函数如式(8)所示:

ut=argmax{a1,t,a2,t,...,an,t}(8)

其中argmax函数返回序列中最大值的索引值,ut为第t步回看过程中注意力焦点的索引;

s46:对于文章d={d1,d2,...,dn}其对应到的e={e1,e2,...,en},可以得到注意力焦点对应的实体id:eu∈ε;

s47:通过知识查询矩阵k得到注意力焦点与文章其他token在长期记忆库中的关系,得到关系序列再通过关系向量查询矩阵得到关系向量序列其中表示注意力焦点实体eu与第i个tokenei在长期记忆库中的关系,表示注意力焦点实体eu与第i个tokenei在长期记忆库中的关系向量;

s48:采用主动感知的方式,动态地计算对于一个回看步,注意力焦点与文章其他token的关系对于模型推理文章隐式表示的影响程度,如式(9)所示:

其中,bi,u,t表示注意力焦点实体eu与第i个tokenei的关系在第t步回看时对于模型推理文章隐式表示的影响程度,是双线性函数参数,st-1是第t-1步搜索状态;

同时,对于非实体token需要设置其以去掉非法连接的影响;

s49:通过知识影响力分数来引导注意力的权重分配重新调整,如式(10)所示:

αi,t=softmaxi(ai,t bi,u,t*au,t)(10)

其中au,t表示αi,t为注意力焦点实体eu在第t步回看过程的注意力分数。

6.根据权利要求1所述的一种基于知识引导注意力的机器阅读理解方法,其特征在于,所述的步骤s5的具体实现方法如下:

s51:经过t个回看过程,模型最终得到综合的推理信息v=st,t为超参数;计算出文章序列中每个token作为答案的可能,如式(11)所示:

其中,oi表示第i个token作为答案的可能;

s52:将oi归一化之后,表示为对应于文章长度的答案概率分布;然后计算词w为正确答案的概率p(w|q,d),如式(12)所示:

其中i(w,d)表示词w出现在文章d中的位置;

s53:模型最终预测的答案a′,如式(13)所示:

a′=argmaxp(w|q,d)(13)

s54:针对训练目标采用最小化正确答案的平均负对数似然的方法进行参数优化,如式(14)所示:

其中θ表示模型中的所有参数,n是一个minibatch的所有训练数据,a是对应于文章d和问题q的正确答案。

技术总结
本发明公开了一种基于知识引导注意力的机器阅读理解方法。该方法包括如下步骤:(1)利用预训练的词嵌入矩阵得到本文序列的词向量;(2)利用双向GRU网络来对文本中每个单词的上下文信息进行建模;(3)将问题的上下文表示作为初始隐藏层状态输入到单向GRU网络,GRU网络使用基于注意力的回看机制迭代地执行搜索步骤以收集文章中可能用于预测答案的信息;(4)将外部知识作为长期记忆加入回看机制,在回看过程中来引导注意力的焦点,模型会重新分配注意力分数;(5)在单向GRU网络的输出端经过指针网络得到预测的答案。本发明是一个端到端的模型,不需要未标注语料集中除预训练好的词向量之外的数据预处理,因此本发明能在不同的语言和领域的阅读理解中有广泛应用。

技术研发人员:庄越挺;浦世亮;汤斯亮;谭洁;郝雷光;吴飞
受保护的技术使用者:浙江大学
技术研发日:2019.12.31
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-54887.html

最新回复(0)