一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于三维特征表示的智能文本阅读理解方法和装置

2022-11-16 16:11:01 来源:中国专利 TAG:


1.本发明涉及人工智能、自然语言处理技术领域,具体涉及一种基于三维特征表示的智能文本阅读理解方法和装置。


背景技术:

2.机器阅读理解是指计算机在给定的文章内容中,为相关问题找寻其对应的正确答案的一项任务。机器阅读理解是自然语言处理领域中最热门的研究课题之一,根据回答问题的方式不同,其可被分为四类子任务:填空式阅读理解、抽取式阅读理解、智能文本阅读理解和生成式阅读理解。智能文本阅读理解需要依赖给定的文章,针对问句提出的问题,在多个选项中选择出正确的答案。其中,选项的内容是由人类专家总结撰写而成,不会直接出现在原文中。因此,智能文本阅读理解任务要求计算机拥有强大的推理、类比和总结能力。该任务不仅需要计算问句与各个候选选项之间的匹配程度,而且还需要计算问句、选项与文章内容的之间的相关性,这是因为有些选项可能自身的表述并没有问题,也与当前问题相关性较高,但是其可能并不符合文章所规定的语境,所以,该选项不会是正确答案。由此可以看出,智能文本阅读理解是一个需要挖掘三者之间交互特征、计算三者之间相关性的任务,到目前为止,现有的方法并没有实质性地解决这一问题。
3.为了实现文章、问句和选项之间的特征交互,现有的大多数方法会将文章信息通过不同的方式融合到问句或选项中去,然后对问句和选项进行交互匹配,最终在多个选项中选择一个与该问句匹配度最高的选项作为正确答案。这类方法的优点是简洁并且易于实现,但是问题在于智能文本阅读理解本身是判断三个文本序列(即文章、问句、选项)间关系的任务,而以融合的方式来利用文章信息,除了融合过程导致的信息丢失外,还必然会导致序列间的交互不充分,从而降低阅读理解模型的准确率。
4.针对现有方法的弊端,本发明提出了一种基于三维特征表示的智能文本阅读理解方法和装置,其可以捕获三序列数据之间的直接交互特征,并且有效增强文章、问句和选项三者之间的充分交互,从而提高智能文本阅读理解系统的预测准确性。


技术实现要素:

5.本发明的技术任务是提供基于三维特征表示的智能文本阅读理解方法及装置、存储介质、电子设备,来解决如何捕获三序列数据之间的直接交互特征以及如何增强文章、问句和选项三者之间的充分交互,从而提高智能文本阅读理解系统的预测准确性。
6.本发明的技术任务是按以下方式实现的,一种基于三维特征表示的智能文本阅读理解方法,该方法包括如下步骤:
7.s1、获取智能文本阅读理解数据集:从网络上下载已经公开的智能文本阅读理解数据集或者自行构建数据集;
8.s2、构建智能文本阅读理解模型:基于三维特征表示构建智能文本阅读理解模型;
9.s3、训练智能文本阅读理解模型:在步骤s1所得到智能文本阅读理解训练数据集
上对步骤s2构建的智能文本阅读理解模型进行训练。
10.作为优选,所述步骤s2中构建智能文本阅读理解模型的具体步骤如下:
11.s201、构建输入模块
12.针对数据集中的每一条数据,将文章序列,记为context;将问句序列,记为query;将所有候选选项记为response;根据正确答案,确定该条数据的标签,即,若正确答案为a,则记为1000,若正确答案为b,则记为0100,若正确答案为c,则记为0010,若正确答案为d,则记为0001;三个文本序列与标签,共同组成一条输入数据;
13.s202、构建预训练嵌入表示模块
14.预训练嵌入表示模块是利用预训练语言模型对s201中构建的输入数据进行嵌入编码操作,从而得到输入数据中的文章、问句和选项的嵌入表示,分别记为和s201中构建的输入包含三个文本序列,其中,文章序列单独使用一个编码模块,问句、选项序列共用一个编码模块;由于预训练语言模型本身包含多层编码网络,可根据不同的输入对象,选择不同层数的输出作为其嵌入表示;具体实施见下述公式:
[0015][0016][0017][0018]
其中,公式(1.1)表示使用预训练语言模型bert对输入的文章序列context进行嵌入编码,下标n表示使用的bert内部的网络层数,表示文章的嵌入表示;公式(1.2)表示使用预训练语言模型bert对输入的问句序列query进行嵌入编码,下标t表示使用的bert内部的网络层数,表示问句的嵌入表示;公式(1.3)同公式(1.2)基本一致,只是编码对象为选项response,表示选项的嵌入表示;
[0019]
s203、构建特征过滤模块
[0020]
使用自适应平均池化操作对文章、问句和选项的嵌入表示和进行特征过滤操作,得到相应的池化特征表示,即文章池化特征表示、问句池化特征表示和选项池化特征表示,分别记为和
[0021]
s204、构建3d cnn交互特征模块
[0022]
该模块结构如图5所示;其接收特征过滤模块输出的文章池化特征表示问句池化特征表示和选项池化特征表示然后使用两种交互特征构造方法实现文章、问句和选项三者间的交互特征构造,从而得到两种三维特征表示和最后经过3d cnn结构的处理,得到最终的3d交互特征表示
[0023]
s205、构建标签预测模块
[0024]
步骤s204所得到的最终的3d cnn交互特征表示将作为本模块的输入,其经过一层维度为4、激活函数为softmax的全连接网络处理,从而得到各个候选选项作为正确答案的概率,本模块将概率最高的候选选项预测为正确答案。
[0025]
当模型尚未进行训练时,需要进一步执行步骤s3进行训练,以优化模型参数;当模型训练完毕时,由步骤s205预测选项中的哪一个是正确答案。
[0026]
作为优选,所述步骤s204中构建3d cnn交互特征模块的具体步骤如下:
[0027]
s20401、获取三维表示1:使用additive三维交互特征构造方法对文章池化特征表示问句池化特征表示和选项池化特征表示进行处理,从而得到三维特征表示1,即具体实施见下述公式:
[0028][0029]
其中,公式(2)表示通过加性运算实现和三者间的交互计算,i和j表示输入张量和的元素下标,i
kl
和j
cl
分别表示输入张量和中的元素数量,和表示待训练参数;
[0030]
s20402、获取三维表示2:使用dot三维交互特征构建方法对文章池化特征表示问句池化特征表示和选项池化特征表示进行处理,从而得到三维特征表示2,即具体实施见下述公式:
[0031][0032]
i=1,2,

,i
kl
,j=1,2,

,j
cl
ꢀꢀꢀ
(3)
[0033]
其中,公式(3)表示通过点积运算实现和者间的交互计算,d表示输入张量中的元素下标,d表示输入张量中的元素数量,i和j表示输入张量和的元素下标,i
kl
和j
cl
分别表示输入张量和中的元素数量;γ是一个shape为d
×d×
d的三阶张量,其中位置为(d,d,d)的元素值为1(d=1,2,

,d),其他位置的元素值均为0;
[0034]
×1、
×2和
×3分别表示1模乘法、2模乘法和3模乘法,这是为了便于公式的书写表达而自定义的张量运算符,其运算过程如下所述;给定两个张量和则表示和的n模乘法,其中类似的,x和列向量的n模乘法则被定义为其中,
[0035]
s20403、获取3d cnn交互特征表示1:使用一个3d cnn对三维特征表示1,即进行交互特征提取操作,从而得到3d cnn交互特征表示1,即具体实施见下述公式:
[0036]
[0037][0038][0039][0040]
公式(4.1)表示第f个卷积核对三维特征表示1,即的特定区域进行卷积后经relu函数映射的结果,其中,[x1,y1,z1]表示卷积核的尺寸,表示第f个卷积核的权重矩阵,i、j和k表示卷积区域的横坐标、纵坐标和深度坐标,m
l
、mh和md表示三维特征表示1,即的长、高和深,i:i x
1-1,j:j y
1-1,k:k z
1-1表示卷积区域,表示第f个卷积核的偏置矩阵,表示第f个卷积核在i:i x
1-1,j:j y
1-1,k:k z
1-1区域的卷积结果;公式(4.2)表示整合第f个卷积核在每个区域的横、纵向卷积结果以得到第f个卷积核的第k深度卷积结果,其中,s
x1
和s
y1
表示横向卷积步幅和纵向卷积步幅,表示第f个卷积核的第k深度卷积结果;公式(4.3)表示整合第f个卷积核的所有深度卷积结果以得到第f个卷积核的深度卷积结果,其中,s
z1
表示深度卷积步幅,表示第f个卷积核的深度卷积结果;公式(4.4)表示整合所有卷积核的深度卷积结果以得到该层网络对于三维特征表示1,即的最终卷积结果,其中,表示该卷积神经网络对于三维特征表示1,即的最终卷积结果,称其为3d cnn交互特征表示1;
[0041]
s20404、获取3d cnn交互特征表示2:使用另一个3d cnn对三维特征表示2,即进行交互特征提取操作,从而得到3d cnn交互特征表示2,即具体实施见下述公式:
[0042][0043][0044][0045][0046]
公式(5.1)表示第f个卷积核对三维特征表示2,即的特定区域进行卷积后经
relu函数映射的结果,其中,[x2,y2,z2]表示卷积核的尺寸,表示第f个卷积核的权重矩阵,i、j和k表示卷积区域的横坐标、纵坐标和深度坐标,r
l
、rh和rd表示三维特征表示2,即的长、高和深,i:i x
2-1,j:j y
2-1,k:k z
2-1表示卷积区域,表示第f个卷积核的偏置矩阵,表示第f个卷积核在i:i x
2-1、j:j y
2-1、k:k z
2-1区域的卷积结果;公式(5.2)表示整合第f个卷积核在每个区域的横、纵向卷积结果以得到第f个卷积核的第k深度卷积结果,即其中,s
x2
和s
y2
表示横向卷积步幅和纵向卷积步幅;公式(5.3)表示整合第f个卷积核的所有深度卷积结果以得到第f个卷积核的深度卷积结果,即其中,s
z2
表示深度卷积步幅;公式(5.4)表示整合所有卷积核的深度卷积结果以得到该层网络对于三维特征表示2,即的最终卷积结果,称其为3d cnn交互特征表示2,即
[0047]
s20405、获取3d cnn交互特征表示:联接3d cnn交互特征表示1,即和3d cnn交互特征表示2,即并将联接结果进行flatten展开操作,从而得到最终的3d cnn交互特征表示,即具体实施见下述公式:
[0048][0049]
其中,公式(6)表示联接3d cnn交互特征表示1,即和3d cnn交互特征表示2,即表示最终的3d cnn交互特征表示。
[0050]
作为优选,所述步骤s3中训练智能文本阅读理解模型的具体步骤如下:
[0051]
s301、构建损失函数
[0052]
本发明采用交叉熵作为损失函数;
[0053]
s302、构建优化函数
[0054]
模型经过对多种优化函数进行测试,最终选择使用bertadam优化函数作为本模型的优化函数,除了其学习率设置为2e-5外,bertadam的其他超参数均选择pytorch中的默认值设置。
[0055]
当智能文本阅读理解模型尚未进行训练时,需要进一步进行训练,以优化智能文本阅读理解模型的参数;当智能文本阅读理解模型训练完毕时,可预测候选选项中的哪一个是正确选项。
[0056]
一种基于三维特征表示的智能文本阅读理解装置,该装置包括:
[0057]
智能文本阅读理解数据集获取单元,用于从网络上下载已经公开的智能文本阅读理解数据集。
[0058]
智能文本阅读理解模型构建单元,用于构建预训练嵌入表示模块、特征过滤模块、3d cnn交互特征模块和标签预测模块,进而构建智能文本阅读理解模型。
[0059]
智能文本阅读理解模型训练单元,用于构建损失函数和优化函数,完成答案选择。
[0060]
作为优选,所述智能文本阅读理解模型构建单元包括:
[0061]
输入模块单元,负责预处理原始数据集,从而构建输入数据。
[0062]
预训练嵌入表示模块单元,负责利用预训练语言模型对输入数据进行嵌入编码操
作,从而得到输入数据中的文章、问句和选项的嵌入表示。
[0063]
特征过滤模块单元,负责使用自适应平均池化操作对文章、问句和选项的嵌入表示进行特征过滤操作,得到相应的特征池化表示。
[0064]
3d cnn交互特征模块单元,负责接收特征过滤模块单元输出的文章池化特征表示、问句池化特征表示和选项池化特征表示,然后使用两种交互特征构造方法实现文章、问句和选项三者间的交互特征构造,从而得到两种三维特征表示,最后经过3d cnn结构的处理,得到最终的3d交互特征表示。
[0065]
标签预测模块单元,负责基于最终的3d交互特征表示判断候选选项中的哪一个为正确选项。
[0066]
所述智能文本阅读理解模型训练单元还包括:
[0067]
损失函数单元,负责使用交叉熵损失函数计算预测结果与真实数据的误差。
[0068]
优化函数单元,负责训练并调整模型训练中的参数,减小预测误差。
[0069]
一种存储介质,其中存储有多条指令,所述指令由处理器加载,执行上述的基于三维特征表示的智能文本阅读理解方法的步骤。
[0070]
一种电子设备,所述电子设备包括:
[0071]
上述的存储介质;以及
[0072]
处理器,用于执行所述存储介质中的指令。
[0073]
本发明的基于三维特征表示的智能文本阅读理解方法和装置具有以下优点:
[0074]
(1)本发明通过预训练嵌入表示模块,可以捕捉和利用文本中所蕴含的语义信息,使得捕获的语义特征更加丰富、准确;
[0075]
(2)本发明通过特征过滤模块,可以有效过滤无用信息,减小序列长度,从而降低训练模型的成本,提高训练的效率;
[0076]
(3)本发明通过3d cnn交互特征模块,可以将文章、问句和选项构造为类似立方体的三维特征形式,从而提取三序列间的直接交互特征;
[0077]
(4)本发明通过3d cnn交互特征模块,可以捕获三序列数据之间的直接交互特征,并且有效增强文章、问句和选项三者之间的充分交互,从而提高智能文本阅读理解系统的预测准确性;
[0078]
(5)本发明提出的方法和装置,结合三维特征表示,可以有效提高智能文本阅读理解中序列交互的准确性。
附图说明
[0079]
下面结合附图对本发明进一步说明。
[0080]
图1为基于三维特征表示的智能文本阅读理解方法的流程图
[0081]
图2为构建智能文本阅读理解模型的流程图
[0082]
图3为训练智能文本阅读理解模型的流程图
[0083]
图4为基于三维特征表示的智能文本阅读理解装置的流程图
[0084]
图5为3d cnn交互特征模块的结构示意图
[0085]
图6为基于三维特征表示的智能文本阅读理解模型的框架示意图。
具体实施方式
[0086]
参照说明书附图和具体实施例对本发明的基于三维特征表示的智能文本阅读理解方法及装置、存储介质、电子设备作以下详细地说明。
[0087]
实施例1:基于三维特征表示的智能文本阅读理解框架。
[0088]
本发明的总体模型框架结构如图6所示。由图6可知,本发明的主要框架结构包含预训练嵌入表示模块、特征过滤模块、3d cnn交互特征、3d cnn交互特征模块和标签预测模块。其中,预训练嵌入表示模块对输入的文章序列、问句序列和选项序列进行嵌入编码处理,从而得到各自的嵌入编码表示,并将其传递给模型的特征过滤模块。特征过滤模块对三者的嵌入编码表示进行平均池化操作,从而得到过滤后的特征表示,即文章池化特征表示、问句池化特征表示和选项池化特征表示,并将其传递给3d cnn交互特征模块。3d cnn交互特征模块使用两种交互特征构造方法实现文章、问句和选项三者间的交互特征构造,从而得到两种三维特征表示,然后使用两个3d cnn结构分别提取两个三维特征表示中三个序列间的交互特征,从而得到两个3d交互特征表示,最后联接这两个3d交互特征表示,从而得到最终的3d交互特征表示,并将其传递给标签预测模块。标签预测模块将3d交互特征表示映射为指定区间上的一个浮点型数值,将其作为该选项与问句的匹配度;然后比较不同选项的匹配度,将匹配度最高的选项作为正确答案。
[0089]
实施例2:3d cnn交互特征模块。
[0090]
该模块接收特征过滤模块输出的文章池化特征表示、问句池化特征表示和选项池化特征表示,作为输入;首先使用两种三维交互特征构造方法对文章池化特征表示、问句池化特征表示和选项池化特征表示进行处理,从而得到两个三维特征表示;然后使用两个3d cnn结构分别对其进行交互特征提取,从而得到两个3d cnn交互特征表示;最后联接这两个3d cnn交互特征表示,从而得到最终的3d cnn交互特征表示。
[0091]
具体而言,该模块的实现流程如下所述:
[0092]
第一步、获取三维表示1:使用additive三维交互特征构造方法对文章池化特征表示问句池化特征表示和选项池化特征表示进行处理,从而得到三维特征表示1,即具体实施见下述公式:
[0093][0094]
其中,公式(2)表示通过加性运算实现和三者间的交互计算,i和j表示输入张量和的元素下标,i
kl
和j
cl
分别表示输入张量和中的元素数量,和表示待训练参数;
[0095]
举例:在pytorch中,对于上面描述的代码实现如下所示:
[0096]
query_layer=self.query(context_pool)
[0097]
key_layer=self.key(query_pool)
[0098]
context_layer=self.context(response_pool)
[0099]
key_context=unsqueeze(key_layer,dim=3) unsqueeze(context_layer,dim=2)
[0100]
key_context=key_context.view(key_context.size(0),key_context.size
(1),
[0101]
key_context.size(2)*key_context.size(3),key_context.size(4))
[0102]
query_key_context=unsqueeze(query_layer,dim=3) unsqueeze(key_context,dim=2)
[0103]
query_key_context=query_key_context.view(query_key_context.size(0),
[0104]
query_key_context.size(1),query_key_context.size(2)*query_key_context.size(3),query_key_context.size(4))
[0105]
query_key_context=self.add_dense(query_key_context)
[0106]
其中,context_pool代表公式中的query_pool代表公式中的response_pool代表公式中的query_key_context代表公式中的self.query()、self.key()、self.context()和self.add_dense()分别代表公式中self.key()、self.context()和self.add_dense()分别代表公式中和
[0107]
第二步、获取三维表示2:使用dot三维交互特征构建方法对文章池化特征表示问句池化特征表示和选项池化特征表示进行处理,从而得到三维特征表示2,即具体实施见下述公式:
[0108][0109]
i=1,2,

,i
kl
,j=1,2,

,j
cl
ꢀꢀꢀ
(3)
[0110]
其中,公式(3)表示通过点积运算实现和者间的交互计算,d表示输入张量中的元素下标,d表示输入张量中的元素数量,i和j表示输入张量和的元素下标,i
kl
和j
cl
分别表示输入张量和中的元素数量;γ是一个shape为d
×d×
d的三阶张量,其中位置为(d,d,d)的元素值为1(d=1,2,

,d),其他位置的元素值均为0;
×1、
×2和
×3分别表示1模乘法、2模乘法和3模乘法;
[0111]
举例:在pytorch中,对于上面描述的代码实现如下所示:query_layer=self.query(context_pool)
[0112]
key_layer=self.key(query_pool)
[0113]
context_layer=self.context(response_pool)
[0114]
key_context=unsqueeze(key_layer,dim=2)*unsqueeze(context_layer,dim=3)
[0115]
key_context=key_context.view(key_context.size(0),key_context.size(1),key_context.size(2)
[0116]
*key_context.size(3),key_context.size(4))
[0117]
attention_scores=torch.matmul(query_layer,key_context.transpose(-1,-2))
[0118]
其中,context_pool代表公式中的query_pool代表公式中的response_pool代表公式中的attention_scores代表公式中的
[0119]
第三步、获取3d cnn交互特征表示1:使用一个3d cnn对三维特征表示1,即进行交互特征提取操作,从而得到3d cnn交互特征表示1,即具体实施见下述公式:
[0120][0121][0122][0123][0124]
公式(4.1)表示第f个卷积核对三维特征表示1,即的特定区域进行卷积后经relu函数映射的结果,其中,[x1,y1,z1]表示卷积核的尺寸,表示第f个卷积核的权重矩阵,i、j和k表示卷积区域的横坐标、纵坐标和深度坐标,m
l
、mh和md表示三维特征表示1,即的长、高和深,i:i x
1-1,j:j y
1-1,k:k z
1-1表示卷积区域,表示第f个卷积核的偏置矩阵,表示第f个卷积核在i:i x
1-1,j:j y
1-1,k:k z
1-1区域的卷积结果;公式(4.2)表示整合第f个卷积核在每个区域的横、纵向卷积结果以得到第f个卷积核的第k深度卷积结果,其中,s
x1
和s
y1
表示横向卷积步幅和纵向卷积步幅,表示第f个卷积核的第k深度卷积结果;公式(4.3)表示整合第f个卷积核的所有深度卷积结果以得到第f个卷积核的深度卷积结果,其中,s
z1
表示深度卷积步幅,表示第f个卷积核的深度卷积结果;公式(4.4)表示整合所有卷积核的深度卷积结果以得到该层网络对于三维特征表示1,即的最终卷积结果,其中,表示该卷积神经网络对于三维特征表示1,即的最终卷积结果,称其为3d cnn交互特征表示1;
[0125]
举例:在pytorch中,对于上面描述的代码实现如下所示:
[0126]
self.conv=conv3d(in_channels=768,out_channels=16,kernel_size=3,stride=2)
[0127]
cqr_conv=self.conv(query_key_context)
[0128]
self.classifier=nn.linear(config.hidden_size*16,1)
[0129]
cqr_conv_re1=torch.reshape(cqr_conv,(cqr_conv.view(0),cqr_conv.view(1),cqr_conv.view(2)))
[0130]
其中,cqr_conv表示三维特征表示1,即经过三维卷积操作处理后的表示;cqr_conv_re1表示3d cnn交互特征表示1;768表示输入通道维度,即三维特征表示1,即中最后一个维度;16表示卷积核个数。
[0131]
第四步、获取3d cnn交互特征表示2:使用另一个3d cnn对三维特征表示2,即进行交互特征提取操作,从而得到3d cnn交互特征表示2,即具体实施见下述公式:
[0132][0133][0134][0135][0136]
公式(5.1)表示第f个卷积核对三维特征表示2,即的特定区域进行卷积后经relu函数映射的结果,其中,[x2,y2,z2]表示卷积核的尺寸,表示第f个卷积核的权重矩阵,i、j和k表示卷积区域的横坐标、纵坐标和深度坐标,r
l
、rh和rd表示三维特征表示2,即的长、高和深,i:i x
2-1,j:j y
2-1,k:k z
2-1表示卷积区域,表示第f个卷积核的偏置矩阵,表示第f个卷积核在i:i x
2-1、j:j y
2-1、k:k z
2-1区域的卷积结果;公式(5.2)表示整合第f个卷积核在每个区域的横、纵向卷积结果以得到第f个卷积核的第k深度卷积结果,即其中,s
x2
和s
y2
表示横向卷积步幅和纵向卷积步幅;公式(5.3)表示整合第f个卷积核的所有深度卷积结果以得到第f个卷积核的深度卷积结果,即其中,s
z2
表示深度卷积步幅;公式(5.4)表示整合所有卷积核的深度卷积结果以得到该层网络对于三维特征表示2,即的最终卷积结果,称其为3d cnn交互特征表示2,即
[0137]
举例:在pytorch中,对于上面描述的代码实现如下所示:
[0138]
self.conv=conv3d(in_channels=768,out_channels=16,kernel_size=3,stride=2)
[0139]
cqr_conv=self.conv(attention_scores)
[0140]
self.classifier=nn.linear(config.hidden_size*16,1)
[0141]
cqr_conv_re2=torch.reshape(cqr_conv,(cqr_conv.view(0),cqr_conv.view(1),cqr_conv.view(2)))
[0142]
其中,cqr_conv表示三维特征表示2,即经过三维卷积操作处理后的表示;cqr_conv_re2表示3d cnn交互特征表示2;768表示输入通道维度,即三维特征表示2,即中最后一个维度;16表示卷积核个数。
[0143]
第五步、获取3d cnn交互特征表示:联接3d cnn交互特征表示1,即和3d cnn交互特征表示2,即并将联接结果进行flatten展开操作,从而得到最终的3d cnn交互特征表
示,即具体实施见下述公式:
[0144][0145]
其中,公式(6)表示联接3d cnn交互特征表示1,即和3d cnn交互特征表示2,即表示最终的3d cnn交互特征表示。
[0146]
举例:在pytorch中,对于上面描述的代码实现如下所示:
[0147]
cqr_z=torch.cat((cqr_conv_re1,cqr_conv_re2),dim=-1)
[0148]
cqr_z=torch.flatten(cqr_z)
[0149]
其中,cqr_z是最终的3d cnn交互特征表示。
[0150]
实施例3:发明的具体步骤。
[0151]
如附图1所示,本发明基于三维特征表示的智能文本阅读理解方法,该方法包括如下步骤:
[0152]
s1、获取智能文本阅读理解数据集:从网络上下载已经公开的智能文本阅读理解数据集;
[0153]
s2、构建智能文本阅读理解模型:利用三维特征表示构建智能文本阅读理解模型;
[0154]
s3、训练智能文本阅读理解模型:在步骤s1所得到智能文本阅读理解训练数据集上对步骤s2构建的智能文本阅读理解模型进行训练。
[0155]
s1、获取智能文本阅读理解数据集
[0156]
从网络上下载已经公开的智能文本阅读理解数据集或者自行构建数据集。
[0157]
举例:网络上有许多已经公开的智能文本阅读理解数据集,例如race。该数据集中的数据格式如下所示:
[0158]
[0159][0160]
s2、构建智能文本阅读理解模型
[0161]
构建智能文本阅读理解模型的流程如图2所示,主要操作为构建输入模块、构建预训练嵌入表示模块、构建特征过滤模块、构建3d cnn交互特征和构建标签预测模块。
[0162]
s201、构建输入模块
[0163]
针对数据集中的每一条数据,将文章序列,记为context;将问句序列,记为query;将所有候选选项记为response;根据正确答案,确定该条数据的标签,即,若正确答案为a,则记为1000,若正确答案为b,则记为0100,若正确答案为c,则记为0010,若正确答案为d,则记为0001;三个文本序列与标签,共同组成一条输入数据。
[0164]
举例:使用s1中展示的数据作为样例,以此组成一条输入数据。其结果如下所示:
[0165]
(context:my 8-year-old daughter is making an experiment.she has been making her own colorful smile cards and often takes them with her everywhere.last sunday,i took my kid to go shopping with me.she was hoping to see john,who is an elderly man and gives out samples.we see him from time to time and he is so happy and friendly.john wasn’t at the store on sunday,so my daughter decided that it would be a good idea to distribute her smile cards to the store’s other employees.so she did.in the produce department,she gave a card to a young man and she hoped it would make him smile.and he smiled at her and thanked her.then she came across an older gentleman who looked rather impatient.and she snuck a card into his cart on top of his groceries,
remarking to me later that he looked at her suspiciously as if she was dumping trash in his cart.but i thought he would be happy later.when we got back from our shopping trip,she had run out of cards.she was walking by a woman with two babies in her cart.my daughter smiled at her and the young mother smiled back.my daughter came to me and said excitedly,“mom,i just realized something.you don’t need cards to make someone smile.all you need to do is make eye contact and smile into their eyes and they will smile back.”what a beautiful lesson my daughter reminded me of.you are never too young or too old to experiment with kindness and smiles.,query:from the text,we can learn that_.,response:john got a smile card from the writer’s daughter the older gentleman would smile later after he got the smile card we could make others smile only by giving them what they wanted the mother with two babies smiled because she got a smile card,0100)
[0166]
s202、构建预训练嵌入表示模块
[0167]
预训练嵌入表示模块是利用预训练语言模型对s201中构建的输入数据进行嵌入编码操作,从而得到输入数据中的文章、问句和选项的嵌入表示,分别记为和s201中构建的输入包含三个文本序列,其中,文章序列单独使用一个编码模块,问句、选项序列共用一个编码模块;由于预训练语言模型本身包含多层编码网络,可根据不同的输入对象,选择不同层数的输出作为其嵌入表示;具体实施见下述公式:
[0168][0169][0170][0171]
其中,公式(1.1)表示使用预训练语言模型bert对输入的文章序列context进行嵌入编码,下标n表示使用的bert内部的网络层数,表示文章的嵌入表示;公式(1.2)表示使用预训练语言模型bert对输入的问句序列query进行嵌入编码,下标t表示使用的bert内部的网络层数,表示问句的嵌入表示;公式(1.3)同公式(1.2)基本一致,只是编码对象为选项response,表示选项的嵌入表示。
[0172]
举例:本发明在race数据集上实施时,n被设置为12,t被设置为1。在pytorch中,对于上面描述的代码实现如下所示:
[0173]
context_embed,_=bert_n(context)
[0174]
query_embed,_=bert_t(query)
[0175]
response_embed,_=bert_t(response)
[0176]
其中,context_embed是文章的嵌入表示,query_embed是问句的嵌入表示,response_embed是选项的嵌入表示。
[0177]
s203、构建特征过滤模块
[0178]
使用自适应平均池化操作对文章、问句和选项的嵌入表示和进行特征
过滤操作,得到相应的池化特征表示,即文章池化特征表示、问句池化特征表示和选项池化特征表示,分别记为和
[0179]
举例:在pytorch中,对于上面描述的代码实现如下所示:
[0180]
self.context_pool_adapt=adaptiveavgpool1d(output_size=64)
[0181]
context_pool=torch.transpose(self.context_pool_adapt(torch.transpose(context_embed,dim0=1,dim1=2)),dim0=1,dim1=2)
[0182]
self.qr_pool_adapt=adaptiveavgpool1d(output_size=15)
[0183]
query_pool=torch.transpose(self.qr_pool_adapt(torch.transpose(query_embed,dim0=1,dim1=2)),dim0=1,dim1=2)
[0184]
response_pool=torch.transpose(self.qr_pool_adapt(torch.transpose(response_embed,dim0=1,dim1=2)),dim0=1,dim1=2)
[0185]
其中,adaptiveavgpool1d()表示自适应平均池化操作,output_size表示输入数据经过该操作处理后的输出维度,在本发明中,对于文章表示的输出维度设置为64,对问句和选项的输出维度设置为15,torch.transpose表示转置操作,context_pool表示文章的嵌入表示经过自适应平均池化处理后得到的文章池化特征表示,query_pool表示问句的嵌入表示经过自适应平均池化处理后得到的问句池化特征表示,response_pool表示选项的嵌入表示经过自适应平均池化处理后得到的选项池化特征表示。
[0186]
s204、构建3d cnn交互特征模块
[0187]
该模块结构如图5所示;其接收特征过滤模块输出的文章池化特征表示问句池化特征表示和选项池化特征表示然后使用两种交互特征构造方法实现文章、问句和选项三者间的交互特征构造,从而得到两种三维特征表示和最后经过3d cnn结构的处理,得到最终的3d交互特征表示并将其传递给标签预测模块。
[0188]
s205、构建标签预测模块
[0189]
步骤s204所得到的最终的3d cnn交互特征表示将作为本模块的输入,其经过一层维度为4、激活函数为softmax的全连接网络处理,从而得到各个候选选项作为正确答案的概率。本模块将概率最高的候选选项预测为正确答案。
[0190]
当模型尚未进行训练时,需要进一步执行步骤s3进行训练,以优化模型参数;当模型训练完毕时,由步骤s205预测选项中的哪一个是正确答案。
[0191]
s3、训练智能文本阅读理解模型
[0192]
将步骤s2构建的智能文本阅读理解模型在步骤s1所得的智能文本阅读理解训练数据集上进行训练。其流程如图3所示。
[0193]
s301、构建损失函数
[0194]
本发明采用交叉熵作为损失函数。
[0195]
举例:在pytorch中,对于上面描述的代码实现如下所示:
[0196]
loss_fct=crossentropyloss()
[0197]
loss=loss_fct(logits.view(-1,self.num_labels),labels.view(-1))
[0198]
其中,labels为真实的标签,logits为模型输出的正确概率。
[0199]
s302、构建优化函数
[0200]
模型经过对多种优化函数进行测试,最终选择使用bertadam优化函数作为本模型的优化函数,除了其学习率设置为2e-5外,bertadam的其他超参数均选择pytorch中的默认值设置。
[0201]
举例:在pytorch中,对于上面描述的代码实现如下所示:
[0202]
optimizer=bertadam(optimizer_grouped_parameters,lr=2e-5)
[0203]
其中,optimizer_grouped_parameters为待优化的参数,默认为本模型中的所有参数。
[0204]
当模型尚未进行训练时,需要进一步执行步骤s3进行训练,以优化模型参数;当模型训练完毕时,由步骤s205预测选项中的哪一个是正确答案。
[0205]
实施例4:
[0206]
基于实施例1的一种存储介质,其中存储有多条指令,指令由处理器加载,执行实施例1的基于三维特征表示的智能文本阅读理解方法的步骤。
[0207]
实施例5:
[0208]
基于实施例4的一种电子设备,电子设备包括:实施例4的存储介质;以及处理器,用于执行所述存储介质中的指令。
[0209]
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽快参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献