1.本发明涉及一种多阶段的机器阅读理解方法,具体涉及一种结合重复跨度预测任务的预训练方法,属于自然语言处理机器阅读理解技术领域。
背景技术:
2.近年来,随着深度学习技术的发展,尤其是预训练模型的提出,机器阅读理解技术取得了明显的进步,被广泛应用于文本问答、信息抽取和搜索引擎等多个方面。
3.机器阅读理解,按照任务形式可以分为完形填空、多项选择、跨度预测和自由问答四种类型。其中,跨度预测是在给定上下文和问题的前提下,模型从上下文中抽取一段文本作为答案,这要求模型能够深入理解文本内容并做出推理。和完形填空及多项选择任务相比,跨度预测对模型的要求更高,更能衡量模型对文本的理解程度。
4.随着预训练技术的发展和相关数据集的发布,基于跨度预测的阅读理解技术得到了迅速的发展。预训练-微调的训练模式成为一种广泛应用的范式,模型在预训练阶段,通过自监督的方式学习到丰富的语义知识,在微调阶段向目标任务的数据分布靠近,从而使模型在目标任务上取得更好的效果。目前,在多个基于跨度的阅读理解数据集上,神经网络模型通过该模式已经取得了超过人类的分数。
5.尽管预训练技术大大提高了模型的性能,但对于具体任务而言,要求模型微调阶段必须有一定数量的带标签的数据集,否则容易造成过拟合等问题。由于带标签的数据集构造非常耗费人力与时间,目前出现了一些针对小规模数据集的工作,比如小样本学习、半监督学习等。这些方法从模型上进行改进,在少量数据上取得了不错的效果。
6.尽管如此,对跨度预测的阅读理解任务而言,这些工作并没有从跨度预测的本质出发,针对跨度这个语义单位做进一步的挖掘,导致模型面对小规模数据集无法学到充足的跨度知识,因此,现有技术在解决小规模阅读理解任务上效果不佳。
技术实现要素:
7.本发明的目的是针对现有技术未能对阅读理解中的跨度做进一步的学习,导致在解决小规模数据集上效果不佳的缺陷,为了能充分利用文本中的跨度知识解决阅读理解中样本少的难题,创造性地提出了一种基于重复跨度预测的机器阅读理解方法。
8.本方法的创新点在于:在预训练和目标任务微调的中间,增加了重复跨度预测的任务,以无监督的方式构造数据,让模型学习到跨度边界和跨度之间的语义关系,从而在小样本的跨度预测场景下也能取得很好的效果。
9.本发明采用以下技术方案实现。
10.首先,对有关概念进行说明:
11.定义1:篇章序列p
12.其表达式为:{p=w1,w2,...,wn},表示阅读理解中的篇章,该篇章中有n个单词w1,w2,...,wn,下标n为序列长度,w代表单词。
13.定义2:问题序列q
14.其表达式为:{q=w1,w2,...,wm},表示篇章对应的问题,该问题有m个单词w1,w2,...,wm,下标m为序列长度,w代表单词。
15.定义3:答案序列a
16.其表达式为:{a=w1,w2,...,w
l
},表示问题对应的答案序列,该答案序列来源于篇章序列p,共l个单词w1,w2,...,w
l
,下标l为序列长度,w代表单词。
17.定义4:跨度序列s
18.其表达式为:{s=w
x
,w
x+1
,...,w
x+n
},跨度序列来自篇章序列p,由n+1个单词w
x
,w
x+1
,...,w
x+n
组成,下标x表示跨度的起始位置,w代表单词。
19.定义5:掩码机制
20.是预训练阶段的自监督任务之一。将篇章序列p中的部分跨度用掩码代替,然后要求模型预测掩码位置的词,通过这种方式让模型学习序列上下文的关系。
21.定义6:多阶段训练
22.多阶段训练是迁移学习中的常用方法。先让模型通过不同的数据集或不同的任务初始化参数,迁移其它数据集或语义知识,然后在下一个阶段让模型学习目标任务。
23.一种基于预测重复跨度的多阶段阅读理解方法,包括以下步骤:
24.步骤1:对篇章序列p做预处理,找到p中所有的重复跨度。
25.具体地,使用贪心算法找到篇章序列p中所有的重复跨度,并存放在列表span_cluster中,其表达式为:span_cluster[i]={(s1,e1),...,(sn,en)},其中,每一项(s
x
,e
x
)表示第i组重复的跨度在篇章中的开始位置和结束位置,n表示重复跨度的个数。
[0026]
步骤2:对重复跨度进行过滤。
[0027]
按跨度的长度进行排序,对于索引有重合的跨度做筛选,保留重合跨度中长度最长的跨度。
[0028]
步骤3:将过滤后的跨度集合打乱,对每组重复跨度的列表,随机选取一个跨度(sj,ej)不做任何改变,同组的其它重复跨度分别用掩码[question]代替,最终每组重复跨度形成了n-1条训练数据。
[0029]
步骤4:对文本序列进行编码。
[0030]
具体地,对掩码后的篇章序列p,将其词向量编码、位置编码和段编码相加输入到预训练模型bert中,bert对每个[question]位置预测出其对应的跨度(sj,ej)位置,预测方式如下:
[0031][0032][0033]
其中,ps表示跨度开始位置的概率分布,pe表示跨度结束位置的概率分布;u表示文本序列输入到模型后得到的融合上下文信息的向量表示;表示计算跨度开始索引的权重矩阵;表示计算跨度结束索引的权重矩阵;t表示矩阵转置。
[0034]
将向量表示和对应的权重矩阵相乘后做softmax运算,得到序列每个位置上的开始和结束的概率。
[0035]
步骤5:使用得到的模型初始化参数,然后对目标任务数据集做数据预处理,将篇章序列p、问题序列q拼接。为了和之前的输入格式保持一致,在序列最后添加[question]掩码标记。
[0036]
步骤6:将步骤5拼接好的序列输入到模型中,得到序列的向量表示,使用和步骤4相同的方法,计算答案跨度的开始和结束位置,使用交叉熵作为损失函数,使用梯度下降的方式更新模型参数,得到模型推理得到的答案。
[0037]
至此,从步骤1到步骤6,首先进行重复跨度的预测,使用无监督的方式构造语料数据,使模型学到跨度的含义以及跨度之间的指代关系,之后在第二阶段对目标任务数据格式做了一定改变,使模型进一步学习目标任务上的知识。
[0038]
有益效果
[0039]
本发明方法,对比现有技术,能够在小样本的跨度预测场景下能取得很好的效果。
附图说明
[0040]
图1为本发明方法的流程图。
具体实施方式
[0041]
下面将结合附图和实施例,对本发明方法作进一步详细说明。
[0042]
实施例
[0043]
以cmrc2018数据集中的阅读理解数据为实施例,本实施例将以具体实例对本发明所述方法的具体操作步骤进行详细说明;
[0044]
一种基于重复跨度预测的机器阅读理解方法,如图1所示,包括以下步骤:
[0045]
步骤1:计算重复跨度集合。
[0046]
具体到本实施例中,原始的段落文本如下:
[0047]
秦泰山刻石,又称封泰山碑,秦始皇二十八年(前219年)东巡泰山时所立。碑高四尺五寸、宽一尺四寸,字型工整、笔画圆健,是秦始皇统一文字后的小篆,相传为宰相李斯所书。刻石北、东、西三面为秦始皇诏书,共144个字,南面为秦二世元年(前209年)所刻二世诏书78个字。刻石原立于岱顶,至明只存29字。清乾隆五年(1740年)遭火,刻石遂失;嘉庆二十年(1815年)在山顶玉女池中搜得残石2块,尚存10字,移至岱庙;现在位于泰山岱庙东御座的露台前西侧,仅存二世诏书中的10个残字:斯、臣、去、疾、昧、死、臣、请、矣、臣。最著名的拓本为宋拓百六十五字本,收165字,曾由明朝大收藏家安国收藏,现藏于日本东京台东区立书道博物馆。兹录刻石全文。
[0048]
分词后,自左至右地找到所有重复跨度的集合,本例中的集合为([(1,1),(14,14),(60,60),(92,92)],[(14,15),(60,61),(92,93)],[(14,16),(60,62),(92,94)],[(2,2),(10,10),(30,30)],[(2,3),(10,11),(30,31)],[(3,3),(11,11),(31,31)],[(4,4),(82,82)],[(4,5),(82,83)],[(5,5),(83,83)],[(12,12),(36,36)],[(15,15),(61,61),(93,93)],[(15,16),(61,62),(93,94)],[(16,16),(62,62),(94,94)],[(20,20),(26,26)],[(28,28),(86,86)],[(33,33),(79,79)],[(38,38),(46,46)],[(39,39),(45,45)],[(41,41),(47,47)],[(44,44),(64,64)],[(49,49),(66,66)],[(72,72),(76,76)],[(74,74),(91,91)],[(80,80),(96,96)]),其中每个元素[]是重复span的集合,索引为段落分
词后的索引位置。
[0049]
步骤2:过滤索引重合的跨度。
[0050]
具体到本实施例,比如(14,14),(14,15),(14,16)就是长跨度包含短跨度的情况,对短跨度做过滤,只保留长度最长的跨度集合,过滤后的跨度集合为(([(14,16),(60,62),(92,94)],('秦','始','皇')),([(2,3),(10,11),(30,31)],('泰','山')),([(4,5),(82,83)],('刻','石')),([(12,12),(36,36)],('碑',)),([(20,20),(26,26)],('年',)),([(28,28),(86,86)],('东',)),([(33,33),(79,79)],('所',)),([(38,38),(46,46)],('四',)),([(39,39),(45,45)],('尺',)),([(41,41),(47,47)],('寸',)),([(44,44),(64,64)],('一',)),([(49,49),(66,66)],('字',)),([(72,72),(76,76)],('相',)),([(74,74),(91,91)],('为',)),([(80,80),(96,96)],('书',)))。
[0051]
步骤3:选取跨度做掩码。
[0052]
对每组重复跨度随机选择一个跨度不变,其他跨度用掩码代替,以([(14,16),(60,62),(92,94)],('秦','始','皇'))集合为例,使用[question]代替跨度,得到了新的篇章序列:
[0053]
秦泰山刻石,又称封泰山碑,秦始皇二十八年(前219年)东巡泰山时所立。碑高四尺五寸、宽一尺四寸,字型工整、笔画圆健,是[question]统一文字后的小篆,相传为宰相李斯所书。刻石北、东、西三面为[question]诏书,共144个字,南面为秦二世元年(前209年)所刻二世诏书78个字。刻石原立于岱顶,至明只存29字。清乾隆五年(1740年)遭火,刻石遂失;嘉庆二十年(1815年)在山顶玉女池中搜得残石2块,尚存10字,移至岱庙;现在位于泰山岱庙东御座的露台前西侧,仅存二世诏书中的10个残字:斯、臣、去、疾、昧、死、臣、请、矣、臣。最著名的拓本为宋拓百六十五字本,收165字,曾由明朝大收藏家安国收藏,现藏于日本东京台东区立书道博物馆。兹录刻石全文。
[0054]
步骤4:模型编码预测重复跨度;
[0055]
具体到本实施例中,将步骤3中得到的文本序列和序列的位置编码、段编码结合,输入到bert中,获得融合上下文信息的每个词的向量表示,然后对向量表示分别做线性变换,通过softmax预测[question]对应的开始和结束位置,损失函数使用交叉熵损失。
[0056]
步骤5:处理目标任务数据。
[0057]
具体到本实施例中,将原始目标任务对应的篇章和问题拼接,并在最后追加和上个阶段同样的掩码标记,形成这样的训练数据:[cls]秦泰山刻石,又称封泰山碑,秦始皇二十八年(前219年)东巡泰山时所立。碑高四尺五寸、宽一尺四寸,字型工整、笔画圆健,是秦始皇统一文字后的小篆,相传为宰相李斯所书。刻石北、东、西三面为秦始皇诏书,共144个字,南面为秦二世元年(前209年)所刻二世诏书78个字。刻石原立于岱顶,至明只存29字。清乾隆五年(1740年)遭火,刻石遂失;嘉庆二十年(1815年)在山顶玉女池中搜得残石2块,尚存10字,移至岱庙
…
[sep]秦泰山刻石在何时所立?[question][sep]”,答案跨度为(14,30),对应的文本片段为“秦始皇二十八年(前219年)东巡泰山时”。
[0058]
步骤6:模型训练。
[0059]
具体到本实施例中,将步骤5中的序列输入到模型中,得到序列的上下文表示。和步骤4相似,先将向量表示做线性转换,然后将句子表示输入softmax层计算对应的开始和结束位置的概率,得到模型推理得到的答案。
技术特征:
1.一种基于预测重复跨度的多阶段阅读理解方法,其特征在于,包括以下步骤:步骤1:对篇章序列p做预处理,找到p中所有的重复跨度;其中,篇章序列p表达式为:{p=w1,w2,...,w
n
},表示阅读理解中的篇章,该篇章中有n个单词w1,w2,...,w
n
,下标n为序列长度,w代表单词;步骤2:按跨度的长度进行排序,对于索引有重合的跨度做筛选,保留重合跨度中长度最长的跨度;步骤3:将过滤后的跨度集合打乱,对每组重复跨度的列表,随机选取一个跨度(s
j
,e
j
)不做任何改变,同组的其它重复跨度分别用掩码[question]代替,最终每组重复跨度形成了n-1条训练数据,n表示重复跨度的个数;步骤4:对文本序列进行编码;对掩码后的篇章序列p,将其词向量编码、位置编码和段编码相加输入到预训练模型bert中,bert对每个[question]位置预测出其对应的跨度(s
j
,e
j
)位置,预测方式如下:)位置,预测方式如下:其中,p
s
表示跨度开始位置的概率分布,p
e
表示跨度结束位置的概率分布;u表示文本序列输入到模型后得到的融合上下文信息的向量表示;表示计算跨度开始索引的权重矩阵;表示计算跨度结束索引的权重矩阵;t表示矩阵转置;将向量表示和对应的权重矩阵相乘后做softmax运算,得到序列每个位置上的开始和结束的概率;步骤5:使用得到的模型初始化参数,然后对目标任务数据集做数据预处理,将篇章序列p、问题序列q拼接;在序列最后添加[question]掩码标记;其中,问题序列q表达式为:{q=w1,w2,...,w
m
},表示篇章对应的问题,该问题有m个单词w1,w2,...,w
m
,下标m为序列长度,w代表单词;步骤6:将步骤5拼接好的序列输入到模型中,得到序列的向量表示,使用和步骤4相同的方法,计算答案跨度的开始和结束位置,使用交叉熵作为损失函数,使用梯度下降的方式更新模型参数,得到模型推理得到的答案。2.如权利要求所述的一种基于预测重复跨度的多阶段阅读理解方法,其特征在于,步骤1中,使用贪心算法找到篇章序列p中所有的重复跨度,并存放在列表span_cluster中,其表达式为:span_cluster[i]={(s1,e1),
…
,(s
n
,e
n
)},其中,每一项(s
x
,e
x
)表示第i组重复的跨度在篇章中的开始位置和结束位置。
技术总结
本发明涉及一种基于重复跨度预测的机器阅读理解方法,属于自然语言处理机器阅读理解领域。所述方法包括:针对跨度预测形式的阅读理解任务,增加预测重复跨度的任务。该任务首先在文本段落中基于贪心算法找到所有的重复跨度,然后对包含在长跨度中的短跨度进行过滤,得到重复跨度集合之后,对每组重复的跨度,随机选择一个作为答案跨度,组内其他跨度用掩码代替。将处理过的文本输入到预训练模型中,得到表示向量,基于softmax预测掩码位置应该指向段落中的哪个跨度。在该任务上训练之后,将得到的模型在目标任务上做进一步的微调。该方法考虑到预训练模型欠缺跨度知识的问题,并利用无监督的方式构建数据,使模型可以更好地学习跨度表示,提升模型在跨度预测方面的表现。现。现。
技术研发人员:史树敏 徐园 黄河燕
受保护的技术使用者:北京理工大学
技术研发日:2021.11.12
技术公布日:2022/3/8