一种多任务联合学习的多片段机器阅读理解方法及装置

文档序号:30494991发布日期:2022-06-22 03:51阅读:来源:国知局

技术特征:
1.一种多任务联合学习的多片段机器阅读理解方法,其特征在于:包括以下步骤:步骤1:通过编码器模块对问题和文章进行编码,得到问题和文章中每个字或词的向量表示;步骤2:利用观点型和单片段抽取问题解答模块解答观点型和单片段抽取问题;步骤3:利用多片段抽取类问题解答模块解答多片段问题,该模块首先通过预测问题的片段数量识别出多片段问题类型,再利用序列标注提取多个答案片段;步骤4:利用对抗学习模块在模型训练中构造对抗训练方式,增强模型的鲁棒性和泛化能力。2.根据权利要求1所述的一种多任务联合学习的多片段机器阅读理解方法,其特征在于:所述步骤1通过编码器模块对问题和文章进行编码,得到问题和文章中每个字或词的向量表示的具体方法是:采用预训练语言模型macbert作为编码器,对问题和文章进行编码,得到问题和文章中每个字或词的向量表示,计算公式如下所示:input=[cls]+question+[sep]+context+[sep]其中,input表示模型的输入,question表示问题,context表示文章,[cls]表示开始位置,[sep]表示分隔符;h
i
∈r
s
×
d
表示文章和问题的向量表示,s表示输入的序列长度;d表示隐藏层维度;l表示macbert的层数,r表示该向量所属的向量空间。3.根据权利要求1所述的一种多任务联合学习的多片段机器阅读理解方法,其特征在于:所述步骤2利用观点型和单片段抽取问题解答模块解答观点型和单片段抽取问题的具体方法是:观点型问题包括“yes/no”类问题和“unknown”类问题;其中“yes/no”类问题:将通过步骤1编码器模块得到的文章和问题的向量其最后四层作为上下文向量u,然后对上下文向量u作自注意力计算,再通过参数为w1的全连接层进行二分类,得到问题答案是yes/no的概率用p
yes
,p
no
来表示,具体计算过程如下:u=concat(h
l-3
,h
l-2
,h
l-1
,h
l
)u'=selfattention(u){p
yes
,p
no
}=ffn(u')其中,concat表示向量拼接函数,h
l
表示bert的最后一层向量,u∈r
s
×
4d
表示拼接bert最后四层的向量,ffn表示全连接层,selfattention的计算过程如下:α=u
·
w2+b,α∈r
s
α'=softmax(α)selfattention(u)=α'
·
u其中,α是向量u经过线性运算得到的权重,w2是可学习的参数,偏置b∈r
s
,α'表示经过softmax归一化之后的权重,softmax表示softmax函数;其中“unknown”类问题:将bert的最后一层向量h
l
经过最大池化得到一个向量表示,然后经过参数为w3的全连接层得到unknown的答案概率p
unk
,具体公式如下所示:h=h
l
,h'=maxpooling(h)
{p
unk
}=ffn(h');其中,h表示macbert的最后一层向量,h'表示经过池化后得到的向量,maxpooling表示最大池化函数;单片段抽取类问题:需要根据问题标出正确答案在文章中的开始位置和结束位置;将上下文向量u经过参数为w4的全连接层进行二分类,得到文章中每个字符属于答案的起始位置和结束位置的概率,具体计算公式如下所示:{p
start
,p
end
}=ffn(u)其中,p
start
表示文章中字符属于答案的起始位置概率,p
end
表示文章中字符属于答案的结束位置概率;将观点类型概率p
yes
,p
no
,p
unk
分别拼接到上述得到的开始和结束位置概率中,一起通过交叉熵计算损失,具体计算公式如下所示:logits
s
=[p
start
,p
yes
,p
no
,p
unk
]logits
e
=[p
end
,p
yes
,p
no
,p
unk
]l
start
=crossentropy(logits
s
,y
s
)l
end
=crossentropy(logits
e
,y
e
)其中,logits
s
表示拼接观点型概率后的开始位置概率,logits
e
表示拼接观点型概率后的结束位置概率,crossentropy表示二元交叉熵损失函数,y
s
、y
e
分别是该条数据的真实开始位置和结束位置;在预测阶段,分别遍历开始位置概率logits
s
和结束位置概率logits
e
,将符合1≤s≤e,e≤s条件的片段加入候选集合φ,其中s表示答案的开始位置,e表示答案的结束位置;将开始位置和结束位置的概率之和作为单片段答案概率,符合条件的片段一般有多个,选取概率最大的作为span单片段抽取类型问题的答案;同时,将yes/no、unknown概率的2倍作为答案概率,同单片段问题一样,也加入候选集合φ;最后从候选集合φ中选择概率最大的作为最终答案。4.根据权利要求1所述的一种多任务联合学习的多片段机器阅读理解方法,其特征在于:所述步骤3利用多片段抽取类问题解答模块解答多片段问题的具体操作为,将预测片段数量建模为分类问题,分类数目n是超参数,对于片段数大于n的问题,随机选取n个片段作为该问题的答案,将[cls]位置通过编码器得到的向量c经过参数为w5的全连接层得到回答该问题所需片段数量的概率p
span
;序列标注层采用io标记的方式,在数据预处理时根据正确答案将文章中的每一个字符标注标签

i’或

o’,如果文中某个字符属于正确答案则标注为

i’,否则标注

o’,即预测输入的每个位置是否属于输出的一部分,将macbert最后一层的向量作为上下文表示m,然后经过bilstm-crf层,再经过参数为w6的全连接层为每个字符预测标签概率,具体计算公式如下所示:p
span
=ffn(c)m=h
l
,m'=bilstm(m)p
io
=ffn(m')其中,c∈r
d
,m∈r
s
×
d
;p
io
表示经过参数为w6的全连接层得到标签为

i’或

o’的概率,ffn表示全连接层;对于片段数量预测采用交叉熵损失函数计算其损失,对于序列标注采用crf最大化正
确标签的对数概率作为损失,具体计算公式如下所示:l
span
=crossentropy(p
span
,y
span
)其中,y
span
表示当前数据的实际片段数量;p
i
[t
j
]表示第i个字符是标签t
j
的概率,t
j
表示io标签;将观点类型以及片段抽取类型的损失加权求和,一起进行梯度反向传播,联合优化,计算过程如下公式所示:l=α
·
(l
start
+l
end
)+β
·
l
span

·
l
io
其中α,β,γ表示三个任务的权重;在预测阶段,将片段数量概率最大值所在的索引作为该问题的片段数量,对序列标注得到的标签概率采用维特比viterbi算法解码,得到io标签序列z,然后选择所有标签i连续的片段作为一个候选片段,根据其所在位置在文章中截取相应片段,得到候选片段集合io
span
,具体计算如下所示:answer_num=argmax(p
span
)z=viterbi(p
io
)io
span
=extract(z)在最终选取答案时,根据预测出的片段数量来确定是多片段答案或者其它类型的答案;当预测片段的数量大于1时,采用候选集合io
span
作为最终答案,否则采用步骤2得到的候选集合φ中概率最大的作为最终答案。5.根据权利要求1所述的一种多任务联合学习的多片段机器阅读理解方法,其特征在于:所述步骤4利用对抗学习模块在模型训练中构造对抗训练方式,增强模型的鲁棒性和泛化能力的具体操作为:在样本x的embedding上增加一个扰动r
adv
,得到对抗样本,然后用对抗样本进行训练,输出分布和原始分布一致,训练采用交叉熵作为损失,其计算如下式所示:loss=-log(p(y|x+r
adv
;θ))其中,loss表示损失,y表示样本的真实标签,x表示样本,是原始输入;θ是模型参数;对输入序列input经过bert后得到其编码e,如下式所示:e={e
[cls]
,e
q1
,e
q2
,...,e
qn
,e
[sep]
,e
p1
,e
p2
,...,e
pm
,e
[sep]
}其中,角标q1

qn表示问题字符,n为问题长度,p1

pm表示文章字符,m为文章长度;首先对e进行前向传播并计算其损失l,然后采用fgm算法构造对抗扰动,具体计算过程如下式所示:如下式所示:其中,ε是超参数,||g||2是g的l2范数;将计算出的对抗扰动r
adv
加到原始样本e上,得到对抗样本e
r
,如下式所示:
对e
r
进行前向传播得到损失l
adv
,然后反向传播得到对抗梯度,将对抗梯度与原始梯度进行累加,对抗训练结束后将输入样本的embedding恢复到原始状态e以进行下一轮训练,此时根据累加的梯度对参数进行更新。6.一种多任务联合学习的多片段机器阅读理解装置,其特征在于:包括:编码器模块,用于对问题和文章进行编码,得到问题和文章中每个字或词的向量表示;观点型和单片段抽取问题解答模块,用于解决观点型和单片段抽取类问题;多片段抽取问题解答模块,利用基于动态预测片段数量和序列标注的多任务学习,其中动态预测片段数量可计算出每个问题所需的片段数量,能较为准确地识别出多片段问题类型,序列标注可以从输入文本中提取可变长度的片段,能够实现多个答案片段的有效定位;对抗学习模块,利用经典的对抗学习算法构造对抗训练,增强模型鲁棒性及泛化能力。7.一种电子设备,其特征在于:包括至少一个处理器,以及至少一个与处理器通信连接的存储器,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1~5任一项所述多任务联合学习的多片段机器阅读理解方法。8.一种存储有计算机指令的非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行权利要求1~5任一项所述多任务联合学习的多片段机器阅读理解方法。

技术总结
本发明公开了一种多任务联合学习的多片段机器阅读理解方法及装置,属于自然语言处理技术领域。主要包括编码器模块、观点型和单片段抽取问题解答模块、多片段抽取问题解答模块、对抗学习模块。本发明是基于动态预测片段数量和序列标注的多任务联合学习,其中,动态预测片段数量可计算出每个问题所需的片段数量,基于此能较为准确地识别出多片段问题类型;而序列标注可以从输入文本中提取可变长度的片段,能够实现多个答案片段的有效定位。同时,在模型训练中构造了对抗训练方式,增强了模型的泛化能力。最后,本发明将多个任务进行联合优化学习,在多片段抽取问题解答以及观点型和单片段抽取的问题解答中取得了更好的效果。果。果。


技术研发人员:张虎 范越 王宇杰 李茹 梁吉业
受保护的技术使用者:山西大学
技术研发日:2022.03.14
技术公布日:2022/6/21
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1