CN115879421A - 一种增强bart预训练任务的句子排序方法及装置 - Google Patents
一种增强bart预训练任务的句子排序方法及装置 Download PDFInfo
- Publication number
- CN115879421A CN115879421A CN202310120728.7A CN202310120728A CN115879421A CN 115879421 A CN115879421 A CN 115879421A CN 202310120728 A CN202310120728 A CN 202310120728A CN 115879421 A CN115879421 A CN 115879421A
- Authority
- CN
- China
- Prior art keywords
- sentence
- training
- training task
- sentences
- bart
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012549 training Methods 0.000 title claims abstract description 229
- 238000000034 method Methods 0.000 title claims abstract description 62
- 230000002708 enhancing effect Effects 0.000 title claims abstract description 23
- 238000012163 sequencing technique Methods 0.000 claims abstract description 76
- 238000007781 pre-processing Methods 0.000 claims abstract description 5
- 239000003550 marker Substances 0.000 claims description 34
- 239000013598 vector Substances 0.000 claims description 7
- 238000013528 artificial neural network Methods 0.000 claims description 6
- 238000000605 extraction Methods 0.000 abstract description 7
- 238000012545 processing Methods 0.000 description 14
- 238000012217 deletion Methods 0.000 description 13
- 230000037430 deletion Effects 0.000 description 13
- 230000002452 interceptive effect Effects 0.000 description 12
- 230000000873 masking effect Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 9
- 230000000981 bystander Effects 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000002372 labelling Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 239000012634 fragment Substances 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 230000001427 coherent effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Machine Translation (AREA)
Abstract
本发明公开了一种增强BART预训练任务的句子排序方法及装置,包括如下步骤:步骤1、从文本资源中提取有序的句子作为原始训练数据;步骤2、对原始训练数据进行预处理;步骤3、用预处理后的训练数据训练BART模型;步骤4、将待排序的句子输入到训练完成的模型中进行预测排序。设计词性标注预训练任务、句子掩盖预训练任务、句子删除预训练任务、句子填充预训练任务和句子旋转预训练任务进一步增强BART模型对句子语义和句间关系的特征提取能力。设计的预训练任务是一种多任务学习的训练方法,也是一种位置可控的句子排序方法,将排序控制信息通过句子标签序列的形式加到输入字符串中,模型会根据输入的排序控制信息进行句子排序。
Description
技术领域
本发明涉及自然语言处理技术领域,特别涉及一种增强BART预训练任务的句子排序方法及装置。
背景技术
句子排序任务可以认为是对一组句子进行排序,使得到的段落最通顺的任务。它可以在多文档摘要、对话分析和文本生成任务中提升结果的通顺度。
早期的句子排序方法专注于用规则和提取句子特征进行排序。提取的特征包括通顺线索(coreference clues)、实体网络(entity grids)、命名实体类型(named-entitycategories)等。
随着深度学习的兴起,人们开始利用神经网络模型进行句子排序。将神经网络应用于句子排序的方法主要可以分为相对关系预测、利用指针网络和利用预训练模型三种。
相对关系预测的方法通过预测两两句子间的相对顺序还原出所有句子的排列顺序。这种方法将句子排序任务分解为分类任务和图相关的算法来实现句子排序。然而在没有上下文的情况下单独比较两个句子有时难以确定它们之间的相对顺序。这种方法缺少对句子间全局特征的关注。
利用指针网络的方法用编码器解码器模型加指针网络的结构生成句子排序。编码器将句子编码成向量,解码器和指针网络再自回归的生成句子排序。这种方法对句子全局的特征具有一定的提取能力,在句子排序任务中取得了较好的成绩。
利用预训练模型的方法将在大规模语料上预训练得到的模型应用到句子排序任务中。由于预训练模型强大的特征提取能力,这种方法在句子排序任务中很容易有优秀的表现。Reorder-BART方法将预训练模型BART应用于句子排序中,将句子排序任务转化为条件文本到标签的生成任务(conditional text-to-marker generation task)。该方法给句子添加标记,用标记的索引序列表示句子排序。将带标记的句子输入BART模型,训练BART模型生成目标索引序列。Reorder-BART方法简单明了却能取得很好的效果,预训练模型BART发挥了重要作用。然而Reorder-BART只是对BART模型的初步应用,没有深入的更有针对性的措施来提升模型在句子排序任务中的表现。
发明内容
本发明的目的在于提供一种增强BART预训练任务的句子排序方法及装置,以克服现有技术中的不足。
为实现上述目的,本发明提供如下技术方案:
本发明公开了一种增强BART预训练任务的句子排序方法,包括如下步骤:
步骤1、从文本资源中提取有序的句子作为原始训练数据;
步骤2、对原始训练数据进行预处理,选取随机数量的干扰句子添加到待排序句子,对待排序句子进行词性标注并生成句子的词性标注标签,对待排序句子添加句子标记,生成目标标记序列表示句子的顺序,根据目标标记序列构造各预训练任务对应的标记序列;预训练任务包括:词性标注预训练任务、句子掩盖预训练任务、句子删除预训练任务、句子填充预训练任务和句子旋转预训练任务;
步骤3、用预处理后的训练数据训练BART模型;
步骤4、将待排序的句子输入到训练完成的模型中进行预测排序,具体为:对于待排序的句子添加句子标记,拼接成输入字符串,将排序控制信息以预训练任务对应的标记序列格式加到输入字符串中,再将输入字符串输入模型进行句子自由排序或句子可控排序。
作为优选的,所述预训练任务为一种多任务学习的训练方法,其中所述词性标注预训练任务用于训练BART模型编码器端,与所述句子掩盖预训练任务、句子删除预训练任务、句子填充预训练任务或句子旋转预训练任务组合起来同时训练模型。
作为优选的,所述词性标注预训练任务,训练时将BART模型编码器输出端每个字符对应的输出向量经过前馈神经网络预测词性标签。
作为优选的,所述预训练任务中,句子的排序用句子标记的序列表示,将正确排序对应的标记序列称为目标标记序列,以目标标记序列为基础构造各预训练任务对应的标记序列,将构造得到的预训练任务对应的标记序列输入模型,训练模型生成目标标记序列。
作为优选的,所述句子掩盖预训练任务具体为,对表示句子顺序的目标标记序列进行字掩码预训练,随机选择目标标记序列中的句子标记进行掩盖,得到掩码标记序列,作为句子掩盖预训练任务对应的标记序列。
作为优选的,所述句子删除预训练任务具体为,随机选择目标标记序列中的句子标记删除,得到不完整的标记序列,作为句子删除预训练任务对应的标记序列。
作为优选的,所述句子填充预训练任务具体为,随机选择目标标记序列中一段连续的句子标记,用一个掩码进行替换,得到待填充标记序列,作为句子填充预训练任务对应的标记序列。
作为优选的,所述句子旋转预训练任务具体为,随机选择目标标记序列中的一个句子标记将目标标记序列旋转,使得选中的句子标记作为新序列的开头,得到旋转标记序列,作为句子旋转预训练任务对应的标记序列。
作为优选的,所述步骤4中,对于句子自由排序是将排序控制信息为空的输入字符串输入至模型中进行预测排序;对于句子可控排序是将排序控制信息通过句子标记序列的形式加到输入字符串中,再将带排序控制信息的输入字符串输入至模型中进行预测排序,输出符合排序控制信息的句子排序结果。
本发明公开了一种增强BART预训练任务的句子排序装置,所述装置包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现上述增强BART预训练任务的句子排序方法。
本发明的有益效果:
1.设计词性标注预训练任务、句子掩盖预训练任务、句子删除预训练任务、句子填充预训练任务和句子旋转预训练任务进一步增强BART模型对句子语义和句间关系的特征提取能力。
2.设计的预训练任务是一种多任务学习的训练方法,其中词性标注预训练任务训练BART模型编码器,它可以与句子掩盖预训练任务、句子删除预训练任务、句子填充预训练任务或句子旋转预训练任务组合起来训练模型。
3.本发明为一种位置可控的句子排序方法,将排序控制信息通过句子标签序列的形式加到输入字符串中,模型会根据输入的排序控制信息进行句子排序。
附图说明
图1为本发明实施例的词性标注预训练任务;
图2为本发明实施例的句子掩盖预训练任务;
图3为本发明实施例的句子删除预训练任务;
图4为本发明实施例的句子填充预训练任务;
图5为本发明实施例的句子旋转预训练任务;
图6为本发明实施例的模型训练流程;
图7为本发明实施例的模型预测流程;
图8为本发明实施例的装置示意图;
图9为本发明实施例的主要步骤流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面通过附图及实施例,对本发明进行进一步详细说明。但是应该理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
在句子排序任务中BART模型有天然的优势。BART的预训练任务中,句子排列预训练任务(sentence permutation)输入打乱顺序的句子,训练模型以正确的顺序生成这些句子。句子排列预训练任务训练了模型对句子的排序能力。文档旋转(document rotation)预训练任务从文档中随机选择一个字,将这个字之前的文本移到文档结尾生成旋转文档。训练模型以正确的顺序生成文档。文档旋转预训练任务可以训练模型对文档开头的识别能力。经过这两项预训练任务,BART模型对句子的特征提取能力有了很大的增强。
有强大的BART模型做基础,Reorder-BART这种简单的句子排序方法也能取得很好的效果。而且在提升BART的句子特征提取能力方面还有工作可以做。因此,本发明设计多个预训练任务来增强BART对句子语义特征的提取能力,从而使模型在句子排序任务中有更好的表现。
BART模型的预训练任务包括字掩码(Token Masking)、字删除(Token Deletion)、文本填充(Text Infilling)、句子排序(Sentence Permutation)和文档旋转(DocumentRotation)。
BART的字掩码(Token Masking)预训练任务随机采样字符进行掩盖,训练模型生成原字符串。将掩码运用到句子上,设计句子掩盖预训练任务。具体的,对待排序的句子添加标记。句子顺序可以用标记序列表示。再对该标记序列进行字掩码(Token Masking)预训练。
以如下句子为例,句子按先后顺序排列如下:
丹尼尔在晚上散步
一群小偷散布在他的周围
他们想偷他的书包
一个旁观者注意到了他们
但她选择走开
用字符“<si>”做为句子标记,其中i是数字,用于唯一标识一个句子。上述5个句子需要5个句子标记:<s1>、<s2>、<s3>、<s4>、<s5>。将句子标记随机赋给句子,得到带标记的句子:
<s2>丹尼尔在晚上散步
<s5>一群小偷散布在他的周围
<s1>他们想偷他的书包
<s3>一个旁观者注意到了他们
<s4>但她选择走开
由句子的排列顺序得到目标标记序列为<s2><s5><s1><s3><s4>。用字符“<_>”作为掩码,随机选择目标标记序列中的句子标签进行掩盖得到掩码标记序列。例如将<s2>和<s3>进行掩盖得到掩码标记序列<_><s5><s1><_><s4>。参考BART的字掩码(Token Masking)预训练任务,将掩码标记序列<_><s5><s1><_><s4>输入BART的编码器,训练BART自回归生成目标标记序列<s2><s5><s1><s3><s4>。如果只将掩码标记序列输入BART模型,模型不能得到句子的内容信息,因此需要将句子内容信息也输入模型。自然的做法是将带标记的句子拼接在掩码标记序列后面。例如以[sep]为分隔符将掩码标记序列和带标记的句子组合起来,得到字符串:
<_><s5><s1><_><s4>[sep]<s1>他们想偷他的书包<s2>丹尼尔在晚上散步<s3>一个旁观者注意到了他们<s4>但她选择走开<s5>一群小偷散布在他的周围
为了使模型能明确这是关于句子排序的预训练任务,将特殊字符[order]拼接到起始位置,得到输入字符串:
[order]<_><s5><s1><_><s4>[sep]<s1>他们想偷他的书包<s2>丹尼尔在晚上散步<s3>一个旁观者注意到了他们<s4>但她选择走开<s5>一群小偷散布在他的周围
上述的处理方式已经可以训练模型对句子进行排序了。但是上述的输入中,句子都是有效的待排序句子,模型要做的只是调整它们的顺序。为了增强模型对句子的理解,在待排序句子中加入随机数量的干扰句子(数量可能为0,即不加入干扰句子)。干扰句子不能和其他句子排列出语义通顺的段落,它是模型应该排除的句子。为了起到好的干扰效果而不影响待排序句子,干扰句子应该与待排句子在语义上有明显区别的情况下用词越接近越好。任何干扰句子替换任何待排序句子都不能形成语义连贯的段落。干扰句子最好不要选对话或段落的起始句子。增加的干扰句子数量最好不超过待排序句子的数量,干扰句子之间不能通过排序构造出语义连贯的段落。加入干扰句子之后,模型在排序时还要对候选句子进行筛选,这要求模型对句子语义有更深的理解才能很好的完成排序任务。
以上述待排序句子为例,加入一条干扰句子“天气真是难以预测”。再进行添加句子标记,提取目标标记序列,生成掩码标记序列和拼接的处理,得到输入字符串:
[order]<s2><_><s1><_><s5>[sep]<s1>他们想偷他的书包<s2>丹尼尔在晚上散步<s3>一个旁观者注意到了他们<s4>天气真是难以预测<s5>但她选择走开<s6>一群小偷散布在他的周围
其中<s6>和<s3>是被掩盖的句子。模型需要生成的目标标记序列是<s2><s6><s1><s3><s5>。句子掩盖预测任务如图2所示。
BART的字删除(Token Deletion)预训练任务从输入中随机删除字符,训练模型生成原字符串。与字掩码(Token Masking)预训练任务不同,该策略为了让模型学习哪些位置缺少输入信息。参考BART的字删除(Token Deletion)预训练任务设计句子删除预训练任务。具体的,给待排序句子加入随机数量的干扰句子,之后给每个句子添加标记,提取目标标记序列。随机选择目标标记序列中的句子标记删除(可能所有句子标记都被选中,也可能没有句子标记被选中),得到不完整的标记序列。将不完整的标记序列拼接上带标记的句子输入模型,训练模型生成目标标记序列。以上述句子掩盖预训练任务的样例数据为例,经过添加句子标记,提取目标标记序列,生成不完整的标记序列和拼接的处理,得到输入字符串:
[order]<s2><s1><s5>[sep]<s1>他们想偷他的书包<s2>丹尼尔在晚上散步<s3>一个旁观者注意到了他们<s4>天气真是难以预测<s5>但她选择走开<s6>一群小偷散布在他的周围
其中<s6>和<s3>是被删除的句子。模型需要生成的目标标记序列是<s2><s6><s1><s3><s5>。句子删除预测任务如图3所示。
BART的文本填充(Text Infilling)预训练任务随机挑选一个文本片段(文本片段的长度符合λ = 3的泊松分布),并且使用一个掩码进行替换。当片段长度为0时,相当于在原始位置插入一掩码。参考BART的文本填充(TextInfilling)预训练任务设计句子填充预训练任务。具体的,给待排序句子加入随机数量的干扰句子,之后给句子添加标记,提取目标标记序列。随机选择目标标记序列中一段连续的句子标记(片段长度可能为0,也可能为整个序列的长度),用一个掩码进行替换,得到待填充标记序列。将待填充标记序列拼接上带标记的句子输入模型,训练模型生成目标标记序列。以上述句子掩盖预训练任务的样例数据为例,经过添加句子标记,提取目标标记序列,生成待填充标记序列和拼接的处理,得到输入字符串:
[order]<s2><s6><s1><_>[sep]<s1>他们想偷他的书包<s2>丹尼尔在晚上散步<s3>一个旁观者注意到了他们<s4>天气真是难以预测<s5>但她选择走开<s6>一群小偷散布在他的周围
其中<s3><s5>是被掩盖的句子序列。模型需要生成的目标标记序列是<s2><s6><s1><s3><s5>。句子填充预测任务如图4所示。
BART的文档旋转(Document Rotation)预训练任务随机选择一个字符,然后将文本进行旋转,使得选中的字符作为文本的开头。该策略让模型学习文本的开头特征。参考BART的文档旋转(Document Rotation)预训练任务设计句子旋转预训练任务。具体的,给待排序句子加入随机数量的干扰句子,之后给句子添加标记,提取目标标记序列。随机选择目标标记序列中的一个句子标记将目标标记序列旋转,使得选中的句子标记作为新序列的开头,得到旋转标记序列。将旋转标记序列拼接上带标记的句子输入模型,训练模型生成目标标记序列。以上述句子掩盖预训练任务的样例数据为例,经过添加句子标记,提取目标标记序列,生成旋转标记序列和拼接的处理,得到输入字符串:
[order]<s3><s5><s2><s6><s1>[sep]<s1>他们想偷他的书包<s2>丹尼尔在晚上散步<s3>一个旁观者注意到了他们<s4>天气真是难以预测<s5>但她选择走开<s6>一群小偷散布在他的周围。
其中<s3>是被选择的句子序列。模型需要生成的目标标记序列是<s2><s6><s1><s3><s5>。句子旋转预测任务如图5所示。
上述预训练任务的目标都是生成目标标记序列,由BART模型的解码器自回归生成。为了增强BART模型编码器提取句子特征的能力,设计词性标注预训练任务。对于中文句子而言,词性标注任务同时要求模型对句子进行分词,只有基于正确的分词才能得到正确的词性标注。句子中的连词能表达上下句间的承接转折关系,对句子排序很有帮助。例如上述句子中“但她选择走开”的“但”,表示句子间的转折关系。训练BART模型编码器的词性标注预训练任务,可以与解码器端的生成任务一起训练。即在句子掩盖预训练、句子删除预训练、句子填充预训练或句子旋转预训练的同时,可以在编码器端进行词性标注预训练任务。因此设计的这些预训练任务是一种多任务学习的方法。
具体的,对数据集中的句子进行词性标注,得到词性标注标签。训练时将BART模型编码器输出端每个字符对应的输出向量经过前馈神经网络预测词性标签。词性标注预训练任务如图1所示。图1中句子“他们想偷他的书包”,对应的分词和词性标注为“他们(r)”,“想(v)”,“偷(v)”,“他(r)”,“的(u)”,“书包(n)”。其中r表示代词,v表示动词,u表示助词,n表示名词。为了简洁直观,图1中直接将词的词性标签扩展到对应的每个字,得到词性标注序列“r r v v r u n n”。但是当有连续多个相同词性的词时容易使词间的边界变得模糊。例如图1中句子“但她选择走开”的“选择走开”,正常的理解是“选择”和“走开”两个动词。如果模型将“选择走开”理解为“选择走”和“开”两个动词,对应的词性标注序列也是“v v v v”。为了对分词做更精确的描述,可以将词性标签设计为BIS加词性标签的方式。B表示词的开始,I表示词的中间或结尾,S表示单个字。句子“但她选择走开”用BIS加词性标签的方式得到词性标注标签序列“S_c S_r B_v I_v B_v I_v”。
用设计的预训练任务训练得到模型,将模型用于预测句子排序。模型进行预测时,可以将输入处理为句子掩盖、句子填充或句子删除预训练任务的输入格式。以如下句子为例:
<s2>于是我带上了雨衣
<s1>天气预报说会下雨
<s3>然而没有下雨
<s5>天气真是难以预测
<s4>却开始下雪了
将句子处理为句子掩盖预训练任务的输入格式,得到输入字符串:
[order]<_><_><_><_><_>[sep]<s1>天气预报说会下雨<s2>于是我带上了雨衣<s3>然而没有下雨<s4>却开始下雪了<s5>天气真是难以预测
将句子处理为句子填充预训练任务的输入格式,得到输入字符串:
[order]<_>[sep]<s1>天气预报说会下雨<s2>于是我带上了雨衣<s3>然而没有下雨<s4>却开始下雪了<s5>天气真是难以预测
即所有句子都被掩盖的情况。
将句子处理为句子删除预训练任务的输入格式,得到输入字符串:
[order][sep]<s1>天气预报说会下雨<s2>于是我带上了雨衣<s3>然而没有下雨<s4>却开始下雪了<s5>天气真是难以预测
即所有的句子都被删除的情况。
将上述无排序控制信息的排序称为句子自由排序。本方法除了能以上述输入格式实现句子自由排序外,还能加入位置信息进行句子可控排序。例如对于上述句子,如果要求排序中句子<s5>排在<s1>之前,并要求它们不必相邻,之间可以排列其他的句子。可以将输入处理为句子删除预训练任务的输入格式:
[order]<s5><s1>[sep]<s1>天气预报说会下雨<s2>于是我带上了雨衣<s3>然而没有下雨<s4>却开始下雪了<s5>天气真是难以预测
如果要求<s5>必须排在开始位置,可以将输入处理为句子掩盖预训练任务的输入格式:
[order]<s5><_><_><_><_>[sep]<s1>天气预报说会下雨<s2>于是我带上了雨衣<s3>然而没有下雨<s4>却开始下雪了<s5>天气真是难以预测
将句子自由排序认为是句子可控排序在排序控制信息为空时的特例,这样模型预测时统一以句子可控排序为任务处理输入数据。对于各种可选的输入格式,可以生成其中一种格式输入模型预测排序;也可以生成多种格式输入模型预测排序结果,再对各个结果做集成(Emsemble)得到最终排序,例如按整体排序投票选出最终排序、按每个位置投票选出该位置的句子进而得到整体排序等集成方法。
综上所述,本发明提供了一种增强BART预训练任务的句子排序方法,如图9所示,包括如下步骤:
步骤1、从文本资源中提取有序的句子作为原始训练数据;
步骤2、对原始训练数据进行预处理,选取随机数量的干扰句子添加到待排序句子,对待排序句子进行词性标注并生成句子的词性标注标签,对待排序句子添加句子标记,生成目标标记序列表示句子的顺序,根据目标标记序列构造各预训练任务对应的标记序列;预训练任务包括:词性标注预训练任务、句子掩盖预训练任务、句子删除预训练任务、句子填充预训练任务和句子旋转预训练任务;
步骤3、用预处理后的训练数据训练BART模型;
步骤4、将待排序的句子输入到训练完成的模型中进行预测排序,具体为:对于待排序的句子添加句子标记,拼接成输入字符串,将排序控制信息以预训练任务对应的标记序列格式加到输入字符串中,再将输入字符串输入模型进行句子自由排序或句子可控排序。
所述预训练任务为一种多任务学习的训练方法,其中所述词性标注预训练任务用于训练BART模型编码器端,与所述句子掩盖预训练任务、句子删除预训练任务、句子填充预训练任务或句子旋转预训练任务组合起来同时训练模型。
所述词性标注预训练任务,训练时将BART模型编码器输出端每个字符对应的输出向量经过前馈神经网络预测词性标签。
所述预训练任务中,句子的排序用句子标记的序列表示,将正确排序对应的标记序列称为目标标记序列,以目标标记序列为基础构造各预训练任务对应的标记序列,将构造得到的预训练任务对应的标记序列输入模型,训练模型生成目标标记序列。
所述句子掩盖预训练任务具体为,对表示句子顺序的目标标记序列进行字掩码预训练,随机选择目标标记序列中的句子标记进行掩盖,得到掩码标记序列,作为句子掩盖预训练任务对应的标记序列。
所述句子删除预训练任务具体为,随机选择目标标记序列中的句子标记删除,得到不完整的标记序列,作为句子删除预训练任务对应的标记序列。
所述句子填充预训练任务具体为,随机选择目标标记序列中一段连续的句子标记,用一个掩码进行替换,得到待填充标记序列,作为句子填充预训练任务对应的标记序列。
所述句子旋转预训练任务具体为,随机选择目标标记序列中的一个句子标记将目标标记序列旋转,使得选中的句子标记作为新序列的开头,得到旋转标记序列,作为句子旋转预训练任务对应的标记序列。
所述步骤4中,对于句子自由排序是将排序控制信息为空的输入字符串输入至模型中进行预测排序;对于句子可控排序是将排序控制信息通过句子标记序列的形式加到输入字符串中,再将带排序控制信息的输入字符串输入至模型中进行预测排序,输出符合排序控制信息的句子排序结果。
为了便于理解,结合上述方法,具体的将本实施例分模型训练和模型预测两步实施。
1. 模型训练
模型训练的步骤如图6所示。从文章、聊天记录等文本资源中提取有序的句子作为原始训练数据,其格式表示为如下形式:
对原始训练数据进行预处理,包括生成词性标注标签,随机采样干扰句子,添加句子标记并提取目标标记序列,生成预训练任务标记序列,将字符映射为整数,将词性标注标签映射为整数,将目标标记序列映射为整数。
用百度LAC工具包对句子进行词性标注,再用BIS加词性标签的方式生成句子的目标词性标注标签,得到如下形式的数据:
用特殊字符<si>作为句子标签,其中i表示整数。对于一组句子,用长度m表示句子个数。生成包含m个句子标记的列表:[<s1>,<s2>, ……,<sm>]。将标记列表打乱顺序之后赋给句子,再将句子按标记顺序排序。添加句子标签的过程用python伪代码表示为:
其中st为一组句子,为该组句子中的有序句子和词性标注二元组,i为其顺序序号,/>为干扰句子和词性标注二元组,tag_indices为句子标记的编号,shuffle为洗牌操作,为用于调整顺序的中间变量。/>为带标记的句子和词性标注二元组列表,order_label为正确排序对应的句子标记序列。
对每一组句子用上述方法添加标记,得到带句子标记的数据集:
将数据集分成4等份,第一份数据集生成句子掩盖标记序列,第二份数据集生成不完整的标记序列,第三份数据集生成待填充标记序列,第四份数据集生成旋转标记序列。再将4份数据集合并,可得到如下形式的数据集:
将数据集拼接成[order]+task_seq+[sep]+””.join(sentences)的格式,并映射为整数列表。对于每个句子生成三角函数式位置编码,将位置编码拼接成位置编码矩阵。[order]、预训练任务的标记序列、[sep]和句子标记对应的位置编码补零。
之后将词性标注标签映射为整数和将目标标记序列映射为整数完成训练数据处理。
处理好训练数据之后进行模型训练,训练过程用公式表示为:
其中token_ids为输入的整数列表,Embedding_Lookup为字向量查询运算,Position_Encoding为生成位置编码运算,X为BART编码器的输入矩阵,BART_Encoder为BART编码器,U为BART编码器的输出矩阵,W为词性标注分类前馈层权重矩阵,为预测的词性标注概率矩阵,BART_Decoder为BART解码器,/>为t时候之前已经生成的句子标记序列,为t时刻BART解码器生成的句子标签对应的解码向量,MLP为句子标签分类前馈神经网络,为t时候生成的句子标记。
词性标注预测任务的损失函数为:
用教师强制(Teacher Forcing)的方法训练BART模型自回归的生成目标句子标记序列,损失函数为:
2. 模型预测
模型预测的步骤如图7所示,对于待排序的句子,对其添加句子标记,生成排序控制标记序列,生成输入字符串,将字符映射为整数之后输入模型预测排序。预测过程用公式表示如下:
其中sentences为待排序句子,为添加句子标记运算,为带标记的句子,/>为生成排序控制标记序列运算,/>为排序控制标记序列,/>为将带标记句子进行拼接运算,/>为输入文本,/>为将字符映射为整数的运算,/>为输入对应的整数列表,其他变量和运算的意义参考模型训练过程的公式表示。
参见图8,本发明实施例还提供了一种增强BART预训练任务的句子排序方法装置,还包括存储器和一个或多个处理器,存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现上述实施例中的增强BART预训练任务的句子排序方法方法。
本发明一种增强BART预训练任务的句子排序方法装置的实施例可以应用在任意具备数据处理能力的设备上,该任意具备数据处理能力的设备可以为诸如计算机等设备或装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在任意具备数据处理能力的设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图8所示,为本发明一种增强BART预训练任务的句子排序方法装置所在任意具备数据处理能力的设备的一种硬件结构图,除了图8所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的任意具备数据处理能力的设备通常根据该任意具备数据处理能力的设备的实际功能,还可以包括其他硬件,对此不再赘述。上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本发明实施例还提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时,实现上述实施例中的增强BART预训练任务的句子排序方法方法。
所述计算机可读存储介质可以是前述任一实施例所述的任意具备数据处理能力的设备的内部存储单元,例如硬盘或内存。所述计算机可读存储介质也可以是任意具备数据处理能力的设备的外部存储设备,例如所述设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、SD卡、闪存卡(Flash Card)等。进一步的,所述计算机可读存储介质还可以既包括任意具备数据处理能力的设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述任意具备数据处理能力的设备所需的其他程序和数据,还可以用于暂时地存储已经输出或者将要输出的数据。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换或改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种增强BART预训练任务的句子排序方法,其特征在于:包括如下步骤:
步骤1、从文本资源中提取有序的句子作为原始训练数据;
步骤2、对原始训练数据进行预处理,选取随机数量的干扰句子添加到待排序句子,对待排序句子进行词性标注并生成句子的词性标注标签,对待排序句子添加句子标记,生成目标标记序列表示句子的顺序,根据目标标记序列构造各预训练任务对应的标记序列;预训练任务包括:词性标注预训练任务、句子掩盖预训练任务、句子删除预训练任务、句子填充预训练任务和句子旋转预训练任务;
步骤3、用预处理后的训练数据训练BART模型;
步骤4、将待排序的句子输入到训练完成的模型中进行预测排序,具体为:对于待排序的句子添加句子标记,拼接成输入字符串,将排序控制信息以预训练任务对应的标记序列格式加到输入字符串中,再将输入字符串输入模型进行句子自由排序或句子可控排序。
2.如权利要求1所述的一种增强BART预训练任务的句子排序方法,其特征在于:所述预训练任务为一种多任务学习的训练方法,其中所述词性标注预训练任务用于训练BART模型编码器端,与所述句子掩盖预训练任务、句子删除预训练任务、句子填充预训练任务或句子旋转预训练任务组合起来同时训练模型。
3.如权利要求1所述的一种增强BART预训练任务的句子排序方法,其特征在于:所述词性标注预训练任务,训练时将BART模型编码器输出端每个字符对应的输出向量经过前馈神经网络预测词性标签。
4.如权利要求1所述的一种增强BART预训练任务的句子排序方法,其特征在于:所述预训练任务中,句子的排序用句子标记的序列表示,将正确排序对应的标记序列称为目标标记序列,以目标标记序列为基础构造各预训练任务对应的标记序列,将构造得到的预训练任务对应的标记序列输入模型,训练模型生成目标标记序列。
5.如权利要求1所述的一种增强BART预训练任务的句子排序方法,其特征在于:所述句子掩盖预训练任务具体为,对表示句子顺序的目标标记序列进行字掩码预训练,随机选择目标标记序列中的句子标记进行掩盖,得到掩码标记序列,作为句子掩盖预训练任务对应的标记序列。
6.如权利要求1所述的一种增强BART预训练任务的句子排序方法,其特征在于:所述句子删除预训练任务具体为,随机选择目标标记序列中的句子标记删除,得到不完整的标记序列,作为句子删除预训练任务对应的标记序列。
7.如权利要求1所述的一种增强BART预训练任务的句子排序方法,其特征在于:所述句子填充预训练任务具体为,随机选择目标标记序列中一段连续的句子标记,用一个掩码进行替换,得到待填充标记序列,作为句子填充预训练任务对应的标记序列。
8.如权利要求1所述的一种增强BART预训练任务的句子排序方法,其特征在于:所述句子旋转预训练任务具体为,随机选择目标标记序列中的一个句子标记将目标标记序列旋转,使得选中的句子标记作为新序列的开头,得到旋转标记序列,作为句子旋转预训练任务对应的标记序列。
9.如权利要求1所述的一种增强BART预训练任务的句子排序方法,其特征在于:所述步骤4中,对于句子自由排序是将排序控制信息为空的输入字符串输入至模型中进行预测排序;对于句子可控排序是将排序控制信息通过句子标记序列的形式加到输入字符串中,再将带排序控制信息的输入字符串输入至模型中进行预测排序,输出符合排序控制信息的句子排序结果。
10.一种增强BART预训练任务的句子排序装置,其特征在于:所述装置包括存储器和一个或多个处理器,所述存储器中存储有可执行代码,所述一个或多个处理器执行所述可执行代码时,用于实现权利要求1-9任一项所述增强BART预训练任务的句子排序方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310120728.7A CN115879421B (zh) | 2023-02-16 | 2023-02-16 | 一种增强bart预训练任务的句子排序方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310120728.7A CN115879421B (zh) | 2023-02-16 | 2023-02-16 | 一种增强bart预训练任务的句子排序方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115879421A true CN115879421A (zh) | 2023-03-31 |
CN115879421B CN115879421B (zh) | 2024-01-09 |
Family
ID=85761222
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310120728.7A Active CN115879421B (zh) | 2023-02-16 | 2023-02-16 | 一种增强bart预训练任务的句子排序方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115879421B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090192781A1 (en) * | 2008-01-30 | 2009-07-30 | At&T Labs | System and method of providing machine translation from a source language to a target language |
WO2020119075A1 (zh) * | 2018-12-10 | 2020-06-18 | 平安科技(深圳)有限公司 | 通用文本信息提取方法、装置、计算机设备和存储介质 |
CN112270193A (zh) * | 2020-11-02 | 2021-01-26 | 重庆邮电大学 | 基于bert-flat的中文命名实体识别方法 |
WO2022134356A1 (zh) * | 2020-12-25 | 2022-06-30 | 平安科技(深圳)有限公司 | 句子智能纠错方法、装置、计算机设备及存储介质 |
CN114970536A (zh) * | 2022-06-22 | 2022-08-30 | 昆明理工大学 | 一种分词、词性标注和命名实体识别的联合词法分析方法 |
CN115048944A (zh) * | 2022-08-16 | 2022-09-13 | 之江实验室 | 一种基于主题增强的开放域对话回复方法及系统 |
CN115238690A (zh) * | 2021-11-26 | 2022-10-25 | 一拓通信集团股份有限公司 | 一种基于bert的军事领域复合命名实体识别方法 |
WO2023010847A1 (zh) * | 2021-08-04 | 2023-02-09 | 百度在线网络技术(北京)有限公司 | 排序模型的训练方法、装置和电子设备 |
-
2023
- 2023-02-16 CN CN202310120728.7A patent/CN115879421B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090192781A1 (en) * | 2008-01-30 | 2009-07-30 | At&T Labs | System and method of providing machine translation from a source language to a target language |
WO2020119075A1 (zh) * | 2018-12-10 | 2020-06-18 | 平安科技(深圳)有限公司 | 通用文本信息提取方法、装置、计算机设备和存储介质 |
CN112270193A (zh) * | 2020-11-02 | 2021-01-26 | 重庆邮电大学 | 基于bert-flat的中文命名实体识别方法 |
WO2022134356A1 (zh) * | 2020-12-25 | 2022-06-30 | 平安科技(深圳)有限公司 | 句子智能纠错方法、装置、计算机设备及存储介质 |
WO2023010847A1 (zh) * | 2021-08-04 | 2023-02-09 | 百度在线网络技术(北京)有限公司 | 排序模型的训练方法、装置和电子设备 |
CN115238690A (zh) * | 2021-11-26 | 2022-10-25 | 一拓通信集团股份有限公司 | 一种基于bert的军事领域复合命名实体识别方法 |
CN114970536A (zh) * | 2022-06-22 | 2022-08-30 | 昆明理工大学 | 一种分词、词性标注和命名实体识别的联合词法分析方法 |
CN115048944A (zh) * | 2022-08-16 | 2022-09-13 | 之江实验室 | 一种基于主题增强的开放域对话回复方法及系统 |
Non-Patent Citations (2)
Title |
---|
MIKE LEWIS 等: "BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension", 《HTTPS://ARXIV.ORG/》 * |
张鹏远;卢春晖;王睿敏;: "基于预训练语言表示模型的汉语韵律结构预测", 天津大学学报(自然科学与工程技术版), no. 03 * |
Also Published As
Publication number | Publication date |
---|---|
CN115879421B (zh) | 2024-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110287480B (zh) | 一种命名实体识别方法、装置、存储介质及终端设备 | |
CN111985239A (zh) | 实体识别方法、装置、电子设备及存储介质 | |
CN111160031A (zh) | 一种基于词缀感知的社交媒体命名实体识别方法 | |
CN109885824A (zh) | 一种层次的中文命名实体识别方法、装置及可读存储介质 | |
CN114861600B (zh) | 一种面向ner的中文临床文本数据增强方法及装置 | |
CN112183064B (zh) | 基于多任务联合学习的文本情绪原因识别系统 | |
CN110377902B (zh) | 描述文本生成模型的训练方法和装置 | |
CN113609838B (zh) | 文档信息抽取及图谱化方法和系统 | |
CN113723105A (zh) | 语义特征提取模型的训练方法、装置、设备及存储介质 | |
CN115048511A (zh) | 一种基于Bert的护照版面分析方法 | |
CN114692568A (zh) | 一种基于深度学习的序列标注方法及应用 | |
CN115952791A (zh) | 基于机器阅读理解的篇章级事件抽取方法、装置、设备及存储介质 | |
CN111145914A (zh) | 一种确定肺癌临床病种库文本实体的方法及装置 | |
CN113705222B (zh) | 槽识别模型训练方法及装置和槽填充方法及装置 | |
Ma et al. | Multi-teacher knowledge distillation for end-to-end text image machine translation | |
Wu et al. | One improved model of named entity recognition by combining BERT and BiLSTM-CNN for domain of Chinese railway construction | |
CN116595023A (zh) | 地址信息的更新方法和装置、电子设备及存储介质 | |
CN115906855A (zh) | 一种字词信息融合的中文地址命名实体识别方法及装置 | |
CN116562291A (zh) | 一种基于边界检测的中文嵌套命名实体识别方法 | |
CN114861601B (zh) | 基于旋转式编码的事件联合抽取方法及存储介质 | |
CN116341519A (zh) | 基于背景知识的事件因果关系抽取方法、装置及存储介质 | |
CN116186241A (zh) | 基于语义学分析与提示学习的事件要素抽取方法、装置、电子设备及存储介质 | |
CN115879421A (zh) | 一种增强bart预训练任务的句子排序方法及装置 | |
CN112528674B (zh) | 文本处理方法、模型的训练方法、装置、设备及存储介质 | |
CN114417891A (zh) | 基于粗糙语义的回复语句确定方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |