基于残差结构和双向融合注意力的跨度提取阅读理解方法

文档序号:31568996发布日期:2022-09-20 21:43阅读:33来源:国知局
基于残差结构和双向融合注意力的跨度提取阅读理解方法

1.本发明涉及自然语言处理技术领域,尤其涉及一种基于残差结构和双向融合注意力的跨度提取阅读理解方法。


背景技术:

2.自然语言处理是人工智能的一个重要研究领域之一,其中问答系统是自然语言理解中的主要任务。
3.抽取式阅读理解任务是问答系统的主要环节,目标是从参考文本中抽取出一个片段作为问题的答案;与一般问答任务不同在于,机器阅读理解基于一段非结构化文本来预测答案;不仅要求模型有足够的推理能力用于已有信息并给出预测答案,同时也考察模型从非结构化文本中提取信息的自然语言理解能力,使得该任务更具有挑战性;现在研究者致力于搭建一个能够阅读文本、回答问题的计算机系统,并量化评估系统的性能。
4.随着机器学习和深度学习的不断发展,以及大规模高质量数据集的发布,学术界和工业界对阅读理解技术的研究不断深入,从过去基于符号规则的理解逐渐过渡到基于深度学习的模型,在一些数据集上已经超越了人类水平;从实际应用来看,阅读理解的应用已经渗入到我们生活的方方面面;比如在常见的搜索引擎上,当用户输入想要查询的关键词,需要从海量的网站信息中找到相关网页,并花费大量的时间,如果把问答系统技术应用到搜索引擎中,会更加精确地找到所需要的答案;常见的运用问答系统技术的还有淘宝客服对话系统,输入常见的问题,即可返回答案为企业节省了人力物力;然而目前问答系统能处理的场景还较为简单,在涉及复杂句子等问题时和人类还有较大差距,技术上仍有提升的空间。
5.现有的技术主要存在以下问题:
6.(1)在以往计算相似度矩阵时,只计算了单个语义空间下的相似度,过于单一,不能在多个语义空间下捕捉文本序列之间的深层语义交互;
7.(2)之前的注意力机制只计算了基于问题的文章表示向量,通过融合输出答案的起止位置;这样过于片面,没有考虑到基于文章的问题表示;同时,在面对大量的信息处理时,没有选择性的进行记忆的更新和遗忘;
8.(3)在注意力计算之后,忽略了从预训练语言模型得到的原始语义信息,从而只关注到突出的关键部分,没有考虑基于上下文信息的原始语义。
9.近年来,机器阅读理解相关的数据集喷涌而出,引起了广泛的研究兴趣,而基于注意力的模型更是层出不断;双向注意力流提出一种基于文本和问题间注意力构建的机器阅读理解模型,其在交互层中对文本和问题实现的注意力方式成为了后续许多模型的参照典范,层叠注意力模型旨在将另一种注意力机制置于现有的文档级注意力之上; r-net在计算注意力中加入了门机制,动态控制模型采用各部分的信息;融合网络是一种改进的基于单词历史和全关注注意力的阅读理解网络模型;单词历史可以更好地理解文章各个层次的语义,而全关注注意力可以利用单词的所有历史信息得到加权系数,同时降低维度提高效
率;层叠注意力模型旨在将另一种注意力机制置于现有的文档级注意力之上;这些采用注意力机制的端到端模型,都取得了优异的成绩;
10.现有的机器阅读理解模型大多都采用预训练语言模型作为编码器端,它克服了机器阅读理解数据不足的弊端,利用大量语料数据建立有效模型再迁移到目标任务中,大大缩短了模型的训练时间并有效优化指定任务,这对目标任务给予了巨大的贡献;在强大的预训练语言模型上,只需要替换输出层即可得到适用于各种机器阅读理解任务的模型,并取得惊人的效果;一个划时代的预训练语言模型——bert,在机器阅读理解等自然语言处理任务上引起了巨大的反响;bert的本质是一个多层的transformer结构,编码出来的单词向量包含了其上下文的信息;bert模型采用了两个无监督学习的预训练任务,一个是双向语言模型,另一个是判断下一段文本;双向语言模型采用掩码机制,在一段文本中随机选取15%的单词,用[mask]掩码符号代替;利用多层transformer来预测被掩码位置的单词;判断下一段文本任务如同其字面意思,即判断两段文本中的第二段是否是第一段的下一段文本;后续相继出现了bert类似的预训练语言模型,albert, roberta等;albert解决了预训练语言模型参数量过大的问题,即运用矩阵分解和层之间参数共享的方式;同时还将预测下一句话的任务取消,用语句顺序预测任务代替,正例与预测下一句话任务相同,负例则选取相同主题下的两个连续句子并交换顺序;roberta则引入更多的数据,训练更大的模型。
[0011]
为此,本发明利用上述技术解决现有的技术,以提供出本发明的一种基于残差结构和双向融合注意力的跨度提取阅读理解方法。


技术实现要素:

[0012]
本发明的目的是提供一种基于残差结构和双向融合注意力的跨度提取阅读理解方法,用于解决上述背景技术中的现有技术问题。
[0013]
为了实现上述目的,本发明采用了如下技术方案:
[0014]
一种基于残差结构和双向融合注意力的跨度提取阅读理解方法,包括以下步骤:
[0015]
定义m个词的文章为c,含有n个词的问题为q;
[0016]
把问题q和文章c通过分词器,并把它们拼接为定长的序列;
[0017]
把拼接好的定长的序列输入到多层transformer结构的编码器端,得到输出向量h;
[0018]
将所述输出向量h按照问题和文章的长度分成问题序列hq和文章序列hc;
[0019]
采用不同大小的卷积核,分别对文章和问题进行不同语义空间下的特征提取,得到局部表示向量ck和qk:
[0020]
通过注意力机制计算局部表示的相似度矩阵sk:
[0021]
选取第i个文章单词和第j个问题单词相似度最大值构成最显著的相似度分数矩阵s
ij

[0022]
通过双向融合注意力机制,得到基于问题的文章表示q based c 和基于文章的问题表示c based q;将基于文章的问题表示c based q 和经过门机制得到的基于问题的文章表示q based c拼接表示为拼接向量v;
[0023]
把经过注意力机制后得到的拼接向量v,记为细粒度向量,模拟人类精读时的效果,把从编码器端得到的输出向量h序列记为粗粒度向量,模拟人类略读时的结果;采用跳
跃连接将粗粒度向量h与细粒度向量v构成残差结构,输出得到包含粗细两种粒度的语义向量i;
[0024]
将语义向量i输入全连接层得到每个单词的startlogit和endlogit;用粗粒度向量h中每个序列的句向量获取classlogit;进行训练,且在在训练的过程中,用交叉熵损失函数作为训练目标;
[0025]
对于问题的可回答性,通过训练一个分类任务,赋予每个问题一个可回答分数;问题的可回答性是二分类任务,在训练的过程中采用二分类的交叉熵损失函数loss
class

[0026]
得到分类分数score
class

[0027]
得到跨度提取的分数score
ext

[0028]
所述score
class
和score
ext
加和取均值得到最终的问题可回答性分数,如果该分数高于阈值,则认为问题有答案,并把得到的跨度预测赋予该问题;相反,如果小于,则问题不可回答。
[0029]
优选的,其中,把问题q和文章c通过分词器,并把它们拼接为定长的序列,还包括:
[0030]
起始位置用[cls]来标识;
[0031]
q和c之间用标识符[sep]隔开;
[0032]
c的结尾同样用[sep]标识;
[0033]
如果序列过长则截断;
[0034]
如果序列没有达到定长,则用[pad]补齐。
[0035]
优选的,所述编码器端为albert模型。
[0036]
优选的,所述多层transformer结构中输入有带有编码特征的向量序列e={e1,e2,...,es};
[0037]
所述多层transformer结构中的每一层均包括有两部分,一部分是多头注意力,另一部分是前馈层。
[0038]
优选的,所述局部表示向量ck和qk分别表示为:
[0039]ck
=conv1dk(hc);
[0040]
qk=conv1dk(hq);
[0041]
其中,k=1,3,5大小的卷积核,ck∈rm×s,qk∈rn×s;
[0042]
其中,conv是卷积,conv1d指一维卷积;qk∈rn×s中,n和s指qk的空间维度是n行s列,n是问题的长度,s是最大序列长度,在ck的空间维度中,m代表文章的长度。
[0043]
优选的,所述相似度矩阵sk表示为:
[0044]
sk=ck·
qk;
[0045]
其中,sk∈rm×n,表示第k个卷积核对应的相似度矩阵。
[0046]
优选的,所述相似度分数矩阵s
ij

[0047]sij
=max([s1;s2;s3]);
[0048]
其中,s
ij
∈rm×n。
[0049]
优选的,所述qbasedc和cbasedq分别表示为:
[0050]
qbasedcrepresentations=g

g+(1-g)

x;
[0051]
cbasedqrepresentations=q+q

qa;
[0052]
所述qbasedc和cbasedq拼接形成的拼接向量v表示为:
[0053]
v=concate[q based c;c based q]。
[0054]
优选的,所述语义向量i表示为:
[0055]
i=h+att(h)
[0056]
其中,i∈rs×h。
[0057]
优选的,所述交叉熵损失函数loss
class
表示为:
[0058][0059]
所述分类分数score
class
表示为:
[0060]
score
class
=logit
null-logit
has

[0061]
其中,logit
null
表示无答案的logit值,logit
has
表示有答案的logit值;
[0062]
所述跨度提取的分数score
ext
表示为:
[0063]
score
ext_has
=max(si+ej),1<i≤j≤s
[0064]
score
ext_null
=s1+e1[0065]
score
ext
=score
ext_null-score
ext_has

[0066]
其中,si和ej是问题对应每个单词的起止位置的概率。
[0067]
本发明至少具备以下有益效果:
[0068]
1、本发明采用不同尺度的卷积核对问题和文章分别卷积,得到不同语义空间下的特征,再分别计算同一尺度卷积核下的问题和文章的相似度分数,最后选取最大特征作为最终的相似度分数矩阵。
[0069]
2、本发明提出双向融合注意力机制;不仅计算了基于问题的文章表示向量,同时利用提出的针对问题的层叠注意力机制,计算基于文章的问题向量表示,并进行融合拼接以预测答案。
[0070]
3、本发明提出残差结构来连接从预训练语言模型输出的具有原始语义的特征向量,和经过我们提出的双向融合注意力机制得到的突出关键部分的特征向量,以对文章进行跨度提取。
附图说明
[0071]
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0072]
图1为本发明的框架示意图;
[0073]
图2为本发明的双向融合注意力机制示意图。
具体实施方式
[0074]
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0075]
本发明为一种一种基于残差结构和双向融合注意力的跨度提取阅读理解方法。
[0076]
整体的,本发明关注的是机器阅读理解的跨度提取任务。
[0077]
我们定义一篇有m个词的文章为c={c1,c2,

,cm},含有n个词的问题为q={q1,q2,

,qn};
[0078]
对于可回答的问题,我们返回一个开始位置和结束位置代表正确答案是一段连续的文本a={c
begin
,

,c
end
};对于不可回答问题,我们则赋予其一个空的字符来标记它没有答案,即a=[]。
[0079]
1.编码层
[0080]
首先,把问题q和文章c通过分词器,并把它们拼接为定长的序列,起始位置用[cls]来标识,问题q和文章c之间用标识符[sep] 隔开,文章c的结尾同样用[sep]标识;如果序列过长则截断;如果序列没有达到定长,则用[pad]补齐;
[0081]
把生成的序列作为输入送到编码器端,并将e={e1,e2,

,es}作为带有编码特征的向量序列,送到多层transformer结构中;其中每一层包含两部分,一部分是多头注意力,另一部分是前馈层;把最终经过多层transformer得到的编码器的输出向量h={h1,h2,

,hs} 表示;
[0082]
本实施例中,编码器端为albert模型。
[0083]
2.双向融合注意力层
[0084]
把从编码器的最后一层得到的输出向量h,按问题和文章的长度分成两个序列,hq={h1,h2,

,h
n+1
},hc={h
n+2
, h
n+3
,

,h
s-(n+1)
}
[0085]
2.1相似度矩阵
[0086]
我们调查了大部分做注意力机制的两种相似度矩阵的计算方式,并提出了一种新型的更可靠更有解释性的计算方法;接下来,我们将分别叙述以上提到的方法;
[0087]
第一种相似度矩阵计算方法是以双向注意力流为模型代表的相似度计算;计算从文章到问题的交互信息,对于每个文章单词,模型重点关注与其语义相近的问题单词;文章中的第i个单词和问题中第 j个单词的注意力分数为:
[0088][0089]
其中,ci⊙
qj表示两个向量的每一维度分别相乘得到的向量, sij∈rm×n;若ws=[0,

,0;0,

,0;1,

,1],则s
ij
代表ci和qj的内积;因此,ws的使用扩展了内积注意力函数。
[0090]
第二种相似度矩阵计算方法是以层叠注意力为模型代表的相似度计算;采用点积计算第i个文章单词和第j个问题单词之间的 pair-wise相似度分数:
[0091][0092]
其中,s
ij
∈rm×n。
[0093]
不同于以上两种做法,我们的方法首先采用不同大小的卷积核,分别对文章和问题进行不同语义空间下的特征提取,得到一系列的局部表示向量,如式(3)-(4);为了保持大小一致,我们用零填充的方式在卷积方向上的每条边加入[pad],使得输入和输出维度相同;
[0094]ck
=conv1dk(hc)
ꢀꢀ
(3)
[0095]
qk=conv1dk(hq)
ꢀꢀ
(4)
[0096]
其中,k=1,3,5大小的卷积核,ck∈rm×s,qk∈rn×s;之后,如式(5)的做法,通过注意
力机制计算局部表示的相似度矩阵sk;
[0097]
sk=ck·
qkꢀꢀ
(5)
[0098]
其中,sk∈rm×n,表示第k个卷积核对应的相似度矩阵;为选取某个语义空间下最高的相似度分数,选取第i个文章单词和第j个问题单词相似度最大值构成最显著的相似度分数矩阵s
ii
,如下面式(6) 所示;
[0099]sij
=max([s1;s2;s3])
ꢀꢀ
(6)
[0100]
其中,s
ij
∈rm×n。
[0101]
2.2双向融合注意力机制
[0102]
这部分,我们的目标是得到基于问题的文章表示q based c和基于文章的问题表示c based q,文章和问题可以充分地交换信息但又保持原有信息不被改变,突出关键部分;
[0103]
基于问题的文章表示q based c:受之前获得好评的注意力模型双向注意力流的影响,我们构建文章到问题和问题到文章注意力来获得基于问题的文章表示q based c;通过不同大小的卷积核进行卷积和最大化得到的相似度矩阵s,我们对行做softmax得到矩阵s1,如式(7),计算对于每个文章词,哪个问题词与其最相关;文章到问题的注意力则会突出该问题词的特征,如式(8)所示;类似的,我们先对行取最大值,然后再对列做softmax得到矩阵s2,如式(9),以用来表示哪一个文章词对问题词中的某个词最相关,则证明该词对回答问题至关重要;问题到文章的注意力则根据对问题词相关的文章词来突出文章词的特征,如式(10)所示;
[0104]
s1=softmax

(s)
ꢀꢀ
(7)
[0105]acq
=s1·qꢀꢀ
(8)
[0106]
s2=softmax

(max

(s))
ꢀꢀ
(9)
[0107]aqc
=s2·cꢀꢀ
(10)
[0108]
最后,我们采用如式的融合方式得到最后的基于问题的文章表示 q based c:
[0109]
g=[c;a
cq
;c
·acq
;c
·aqc
]
ꢀꢀ
(11)
[0110]
为了模拟人类阅读时的遗忘与记忆更新的行为,我们将富含丰富语义信息的文章表示通过门机制实现;把融合后的基于问题的文章表示q based c经过激活函数,得到判断是否记忆还是遗忘的更新向量 x,如式(12);再将g和突出问题词特征的a
cq
注意力通过sigmoid函数生成权重g,如式(13),用来决定更新和遗忘部分与融合后的文章表示向量的权重,如式(14)所示;
[0111]
x=tan h(w
x
·
g+b
x
)
ꢀꢀ
(12)
[0112]
g=sigmoid(wg[g;a
cq
]+bg)
ꢀꢀ
(13)
[0113]
q based c representations=g

g+(1-g)

x
ꢀꢀ
(14)
[0114]
基于文章的问题表示q based c:受层叠注意力机制的启发,我们提出针对于问题的层叠注意力,突出问题词的关键部分,得到基于文章的问题词表示c based q;同式(7),我们对相似度矩阵s的行做 softmax得到s1;然后对s的列做softmax并在问题词的方向求均值得到s3,如式(15);再通过式(16),计算在关注第i个文章词时,问题词基于突出文章词的注意力加权和qa;如式(17),把问题词表示与突出关键部分的问题词表示结合,得到最终的基于文章的问题表示c based q;
[0115]
s3=mean

(softmax

(s))
ꢀꢀ
(15)
[0116]
qa=s1·
s3ꢀꢀ
(16)
[0117]
c based q representations=q+q

qa
ꢀꢀ
(17)
[0118]
将基于文章的问题表示c based q和上述经过门机制得到的基于问题的文章表示q based c拼接成和从编码器端生成的向量同等长度的表示拼接向量v,如式(18);
[0119]
v=concate[q based c;c based q]
ꢀꢀ
(18)
[0120]
其中v∈rs×h。
[0121]
3.残差结构
[0122]
人类在进行阅读时,通常会采用略读和精读两种阅读模式;因此,我们把经过注意力机制后得到的拼接向量v记为细粒度向量表示作为模拟人类精读时的效果,把从编码器端得到的输出向量h序列作为粗粒度向量表示,模拟人类略读时的结果;我们采用跳跃连接将输出向量h与拼接向量v构成残差结构,如式(19)所示,用来最终判断序列中的每个单词作为起始位置的概率;这不同于以往的做法,即只通过基于问题的文章表示q based c得到概率的方法;它能更好地融合原有信息,又能得到关键部分的语义信息,帮助我们从粗细两种粒度上定位并准确提取答案跨度的语义向量i;
[0123]
i=h+att(h)
ꢀꢀ
(19)
[0124]
其中,i∈rs×h。
[0125]
4.答案预测层
[0126]
4.1答案提取
[0127]
经过上述的阅读过程,我们得到最终包含粗细两种粒度的语义向量i,将它送入全连接层,分别得到每个单词的start logit和end
ꢀꢀ
logit;同时,为了与判断问题是否可回答的分类任务相耦合,我们用输出向量h中每个序列的句向量获取class logit;在训练的过程中,我们用交叉熵损失函数作为训练目标,如式(20),训练三种损失,最终取平均值作为最终的损失进行优化
[0128][0129]
其中,和分别是第i个问题起止位置的真实位置标签,n是问题的个数.
[0130]
4.2答案分类
[0131]
参考现有retro-reader模型中的处理方法,对于问题的可回答性,我们通过预训练语言模型训练一个分类任务,赋予每个问题一个可回答分数;问题的可回答性是二分类任务,在训练的过程中我们采用二分类的交叉熵损失函数,如下述式(21):
[0132][0133]
其中,y
′i是预测的第i个问题的可回答性,yi是第i个问题标记的可回答性,n是问题的个数;
[0134]
4.3答案预测
[0135]
参考现有retro-reader模型中的基于阈值的答案验证的计算分数的方法,最终用
式(22)得到问题是否可回答的分类分数;用式 (23)-(25)得到跨度提取的分数;
[0136]
score
class
=logit
null-logit
has
ꢀꢀ
(22)
[0137]
score
ext_has
=max(si+ej),1<i≤j≤s
ꢀꢀ
(23)
[0138]
score
ext_null
=s1+e1ꢀꢀ
(24)
[0139]
score
ext
=score
ext_null-score
ext_has
ꢀꢀ
(25)
[0140]
其中,logit
null
表示无答案的logit值,logit
has
表示有答案的logit 值;si和ej是问题对应每个单词的起止位置的概率
[0141]
最后,score
class
和score
ext
加和取均值得到最终的问题可回答性分数,如果该分数高于阈值,则认为该问题有答案,并把得到的跨度预测赋予该问题;相反,如果小于,则该问题不可回答。
[0142]
5.总结
[0143]
本发明最主要的是提出多语义空间下的相似度计算、双向融合注意力机制和残差结构;具体包括:
[0144]
(1)本技术采用不同尺度的卷积核对问题和文章分别卷积,得到不同语义空间下的特征,再分别计算同一尺度卷积核下的问题和文章的相似度分数,最后选取最大特征作为最终的相似度分数矩阵;
[0145]
(2)本技术为了实现双向阅读,提出双向融合注意力机制;不仅计算了基于问题的文章表示向量,同时利用提出的针对问题的层叠注意力机制,计算基于文章的问题表示c based q,并进行融合拼接以预测答案;
[0146]
(3)本技术提出残差结构,连接从预训练语言模型输出的具有原始语义的特征向量,和经过我们提出的双向融合注意力机制得到的突出关键部分的特征向量,以对文章进行跨度提取。
[0147]
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明的范围内。本发明要求的保护范围由所附的权利要求书及其等同物界定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1