专利名称:一种基于动态多掩码和增强对抗的文本匹配方法
专利类型:发明专利
专利申请号:CN202210806846.9
专利申请(专利权)人:重庆大学
权利人地址:重庆市沙坪坝区沙正街174号
专利发明(设计)人:曾骏,钟林,陶泓锦,王子威,周魏,文俊浩
专利摘要:本发明涉及一种基于动态多掩码和增强对抗的文本匹配方法,包括如下步骤:选取公开数据集;采用现有模型BERT作为基线模型构建DAINet模型,DAINet模型包括W个掩码增强对抗模块和一个集成输出模块IO,每个掩码增强对抗模块包括一个动态多掩码模组和一个增强对抗模组;所述IO通过对W个掩码增强对抗模块的输出进行加权求和得到DAINet模型的输出。使用本发明模型可以提高中文文本匹配任务的匹配精度和运行稳定性。
主权利要求:
1.一种基于动态多掩码和增强对抗的文本匹配方法,其特征在于:包括如下步骤:S100:选取公开数据集I作为训练样本集;
S200:采用现有模型作为基线模型构建DAINet模型,DAINet模型包括W个掩码增强对抗模块和一个集成输出模块IO,每个掩码增强对抗模块包括一个动态多掩码模组和一个增强对抗模组;所述IO通过对W个掩码增强对抗模块的输出进行加权求和得到DAINet模型的输出;
每个掩码增强对抗模块均通过如下方法获得:
将现有模型中的单一掩码策略改进为动态多掩码策略得到动态多掩码模组,记为DMM;
在现有模型中增加多种方式对数据进行数据增强得到增强对抗模组,记为AA;
S300:设置最大迭代次数,采用公开数据集I中的训练样本集数据对W个掩码增强对抗模块中的每个DMM进行训练,当达到最大迭代次数时,则认为W个DMM训练完成得到W个最优DMM;
S400:对于一个测试任务,获取与该测试任务相同类型的公开数据集II,分为测试集和训练集,公开数据集II中包括N组中文语句对和与N组语句对一一对应的一致性标签,每组中文语句对包括语句Sa和语句Sb,语句Sa和语句Sb形式如下:其中, 表示语句Sa中的第r个中文字符, 表示语句Sb中的第k个中文字符;
S500:每个掩码增强对抗模块中的AA使用与其在同一掩码增强对抗模块中的最优DMM的参数;
将公开数据集II中的测试集中所有数据输入AA中,如果测试准确率达到设定的阈值,则使用最优DMM的参数的AA为训练好AA,并执行S700;否则执行S600;
S600:使用训练集对W个掩码增强对抗模块中的AA进行训练,训练过程如下:S610:每个掩码增强对抗模块中的AA使用与其在同一掩码增强对抗模块中的最优DMM的参数;
S611:令batch=1;
S612:从训练集中随机选择M个训练样本作为一个batch;
S620:选择训练样本集中第j个训练样本语句对(Saj,Sbj)以及相对应的一致性标签,作为第j个训练样本,使用AA对第j个训练样本进行处理得到微调损失函数L,具体步骤如下:S621:使用AA对训练样本语句对(Saj,Sbj)进行数据增强处理;
S622:定义第j个训练样本的嵌入向量为 表达式如下:其中,vw是第j个训练样本语句中中文字符w的嵌入向量,(‑∈gw/||gw||2)表示根据梯度计算得到的扰动值,gw表示采用交叉熵损失计算得到的扰动梯度,∈表示调整扰动大小的超参数;
其中, 表示梯度计算操作,P(y/vw)表示条件概率,表示AA的整体参数;
S623:通过对中文字符的特征拼接处理,计算第j个训练样本中的语义标签 表达式如下:bm25 tf‑id
其中,FFN表示线性层函数, 表示第j个训练样本中的语义标签,Vj 、Vj 和elmo clsVj 分别表示现有的三种不同的拼接特征技术,h 表示AA对中文字符进行池化处理得到的池化输出;
S624:利用 计算(Saj,Sbj)经过DMM处理后的最终输出 计算表达式如下:其中,
S625:将j遍历其所有取值,重复S620‑S624;
S626:计算AA的基线损失函数L′base,计算表达式如下:其中,N表示样本总数,yj∈{0,1}表示第j个训练样本的标签;
S627:将batch中的所有训练样本输入AA,计算AA的对抗损失函数Ladv(θ),表达式如下:其中,m表示第m个batch,M表示batch总数,pj表示给定vw对应的条件概率值;
S628:计算每个AA的微调损失函数L,计算表达式如下:L=L′base+αLadv(θ);(8)其中,α表示损失项的权重;
S629:当微调损失函数L收敛不再变化时,停止训练得到训练好的AA,并执行下一步;否则采用梯度下降法反向更新每个AA中的参数,令batch=batch+1,并返回S612;
S700:将待预测中文文本分别输入到W个训练好AA中,得到W个输出,W个输出作为IO的输入,IO将W个输入进行加权求和得到待预测中文文本预测结果logits,计算表达式如下:其中, 是第W个训练好AA的输出,αw表示第W个训练好AA的输出所占的权重。
2.如权利要求1所述的一种基于动态多掩码和增强对抗的文本匹配方法,其特征在于:所述S200中集成输出模块IO是由BERT,NEZHA,RoBERTa和macBERT模型集成得到。
3.如权利要求2所述的一种基于动态多掩码和增强对抗的文本匹配方法,其特征在于:所述S200中动态掩码模块中包括的多种掩码策略为原始单掩码方法MLM,全词掩码方法WWM和N‑Gram掩码方法NGM。
4.如权利要求3所述的一种基于动态多掩码和增强对抗的文本匹配方法,其特征在于:所述S621中AA对训练样本语句对(Saj,Sbj)进行数据增强处理包括对训练样本语句对(Saj,Sbj)依次进行标签转换、对偶训练和同义词替换。
5.如权利要求4所述的一种基于动态多掩码和增强对抗的文本匹配方法,其特征在于:所述S300中对W个掩码增强对抗模块中的每个DMM进行训练的具体步骤为:S310:从训练样本集中选择第i组语句对(Sai,Sbi)作为DMM模组的输入,第i组语句对(Sai,Sbi)即为第i个训练样本,输出为(Sai,Sbi)的一致性预测标签 具体步骤如下:S311:将(Sai,Sbi)调将batch中的所有中文语句对转换为嵌入向量形式,然后作为DMM模组的输入,整为DMM模块输入的数据格式,表达式如下:(Sai,Sbi):“[CLS]Sai[SEP]Sbi[SEP]”;(10)其中,[CLS]表示起始符,[SEP]表示分隔符;
S312:将公式(2)所述数据格式输入到DMM模块中,得到语句对中每个中文字符的上下文表示:cls
S313:采用DMM模块对上下文表示进行池化处理,得到第i个训练样本池化输出h ,并计算 具体表达式如下:其中,FFN表示线性层函数, 表示第i个训练样本中的语义标签, 表示(Sai,Sbi)经过DMM模块处理后的最终输出;
S320:从训练样本集中随机选择P个中文语句对作为一个batch′,令batch′=1;
S330:将batch′中的所有中文语句对作为W个DMM模组的输入,当batch′等于最大迭代次数时停止训练,得到W个最优的DMM模组。 说明书 : 一种基于动态多掩码和增强对抗的文本匹配方法技术领域[0001] 本发明涉及文本匹配领域,特别涉及一种基于动态多掩码和增强对抗的文本匹配方法。背景技术[0002] 文本匹配任务是自然语言处理领域重要的基础任务,提高文本匹配的精度后可以有效的提高文本检索,释义识别,自然语言推理和问答匹配等下游任务的精度。传统的文本匹配模型一般都是基于特征的模型,主要是基于关键词、助推模型和线性模型等方法进行,Gao等人利用统计翻译模型训练词组并利用点击数据训练模型,Wu等人提出了隐空间映射的正则化方法可以将查询项和网页映射到同一网络空间中,但这种方式存在特征工程量大,可学习的参数量小,泛化能力弱等问题。随着深度神经网络的发展,越来越多的文本匹配问题开始采用深度学习模型进行处理:深度语义结构模型(DeepSemanticStructuredModel,DSSM)采用了典型的Siamese网络结构计算两个文本向量的余弦相似度来表达文本的相似程度,基于单词序列的卷积语义结构模型(ConvolutionalDeepSemantic,CDSSM)将中间生成句子的全连接层换成了CNN中的卷积层和池化层,在准确性上有不错的提升,但基于深度神经网络的模型存在计算效率低和长距离依赖,且对无标签数据集利用率很低等问题。[0003] Transformer在2017年被谷歌提出,它提出了自注意力机制,改进了循环神经网络等模型最被人诟病的训练慢的缺点;BERT提出了双向自注意力机制以及掩码机制,在11项自然语言任务中取得最先进的结果,此后许多基于BERT的模型纷纷涌现:Yang等人提出的XLNet模型采用自回归的方法来解决BERT中使用掩码符号[MASK]会对预训练和微调产生的不一致问题;Liu等人提出的RoBERTa模型是在BERT模型基础上使用了更大的批次和更多的数据,取消NSP任务,Song等人提出的MASS模型利用Seq2Seq的结构,将GPT自回归的方式与BERT的MLM预训练方法结合,这样做的好处有两方面:提供强大的预训练效果,这有利于下游的迁移学习的任务;Seq2Seq保证了高质量的完成语言生成任务;基于BERT的预训练模型取得了很好的效果,但仍存在以下一些还未解决的问题:[0004] 1)在中文文本匹配任务中,现存的模型普遍只使用了单一的掩码策略,这使得模型性能在应用与不同数据集时变化很大,并且中文中“字”,“词”和“成语”等不同字数表示一个语义的特点导致天然的分词复杂,单一的掩码策略总是难以完整地表达出语句的完整语义。[0005] 2)BERT模型在文本匹配领域还存在不一致和稳定性问题:是指由于[MASK]标记的使用,使得预训练和微调存在着不匹配,同时在大规模数据集上预训练得到的参数应用在小数据集上的微调任务时存在参数不一致的情况;此外,模型的输出效果也不够稳定,比如在相同的微调过程中使用不同的初始化参数会导致结果有很大的偏差,这使得实验的偶然性增加,结果也缺少说服力,浪费时间和资源的同时还给实验对比带来挑战。[0006] 3)复杂的预训练语言模型之间的对比是复杂的,所以对于一个特定的场景如何选择最合适的模型仍然没有一个明确的解决办法。发明内容[0007] 针对现有技术存在的上述问题,本发明要解决的技术问题是:如何解决中文文本匹配不准确的问题。[0008] 为解决上述技术问题,本发明采用如下技术方案:[0009] 一种基于动态多掩码和增强对抗的文本匹配方法,包括如下步骤:[0010] S100:选取公开数据集I作为训练样本集;[0011] S200:采用现有模型作为基线模型构建DAINet模型,DAINet模型包括W个掩码增强对抗模块和一个集成输出模块IO,每个掩码增强对抗模块包括一个动态多掩码模组和一个增强对抗模组;所述IO通过对W个掩码增强对抗模块的输出进行加权求和得到DAINet模型的输出;[0012] 每个掩码增强对抗模块均通过如下方法获得:[0013] 将现有模型中的单一掩码策略改进为动态多掩码策略得到动态多掩码模组,记为DMM;在现有模型中增加多种方式对数据进行数据增强得到增强对抗模组,记为AA;[0014] 所述S200中集成输出模块IO是由BERT,NEZHA,RoBERTa和macBERT模型集成得到;[0015] 所述S200中动态掩码模块中包括的多种掩码策略为原始单掩码方法MLM,全词掩码方法WWM和N‑Gram掩码方法NGM。[0016] S300:设置最大迭代次数,采用公开数据集I中的训练样本集数据对W个掩码增强对抗模块中的每个DMM进行训练,当达到最大迭代次数时,则认为W个DMM训练完成得到W个最优DMM;[0017] 所述S300中对W个掩码增强对抗模块中的每个DMM进行训练的具体步骤为:[0018] S310:从训练样本集中选择第i组语句对(Sai,Sbi)作为DMM模组的输入,第i组语句对(Sai,Sbi)即为第i个训练样本,输出为(Sai,Sbi)的一致性预测标签 具体步骤如下:[0019] S311:将(Sai,Sbi)调将batch中的所有中文语句对转换为嵌入向量形式,嵌入处理为现有技术,然后作为DMM模组的输入,整为DMM模块输入的数据格式,表达式如下:[0020] (Sai,Sbi):“[CLS]Sai[SEP]Sbi[SEP]”;(10)[0021] 其中,[CLS]表示起始符,[SEP]表示分隔符;为了确保两个句子的长度在BERT处理的字符限制之内,对长度超出1024的句子进行截断,对少于1024的句子进行拼接。[0022] S312:将公式(2)所述数据格式输入到DMM模块中,得到语句对中每个中文字符的上下文表示:[0023] S313:采用DMM模块对上下文表示进行池化处理,得到第i个训练样本池化输出clsh ,并计算 具体表达式如下:[0024][0025][0026] 其中,FFN表示线性层函数, 表示第i个训练样本中的语义标签,表示(Sai,Sbi)经过DMM模块处理后的最终输出;[0027] S320:从训练样本集中随机选择P个中文语句对作为一个batch′,令batch′=1;[0028] S330:将batch′中的所有中文语句对作为W个DMM模组的输入,当batch′等于最大迭代次数时停止训练,得到W个最优的DMM模组。[0029] S400:对于一个测试任务,获取与该测试任务相同类型的公开数据集II,分为测试集和训练集,公开数据集II中包括N组中文语句对和与N组语句对一一对应的一致性标签,每组中文语句对包括语句Sa和语句Sb,语句Sa和语句Sb形式如下:[0030][0031] 其中, 表示语句Sa中的第r个中文字符, 表示语句Sb中的第k个中文字符;[0032] S500:每个掩码增强对抗模块中的AA使用与其在同一掩码增强对抗模块中的最优DMM的参数;[0033] 将公开数据集II中的测试集中所有数据输入AA中,如果测试准确率达到设定的阈值,则使用最优DMM的参数的AA为训练好AA,并执行S700;否则执行S600;[0034] S600:使用训练集对W个掩码增强对抗模块中的AA进行训练,训练过程如下:[0035] S610:每个掩码增强对抗模块中的AA使用与其在同一掩码增强对抗模块中的最优DMM的参数;[0036] S611:令batch=1;[0037] S612:从训练集中随机选择M个训练样本作为一个batch;[0038] S620:选择训练样本集中第j个训练样本语句对(Saj,Sbj)以及相对应的一致性标签,作为第j个训练样本,使用AA对第j个训练样本进行处理得到微调损失函数L,具体步骤如下:[0039] S621:使用AA对训练样本语句对(Saj,Sbj)进行数据增强处理;[0040] 所述S621中AA对训练样本语句对(Saj,Sbj)进行数据增强处理包括对训练样本语句对(Saj,Sbj)依次进行标签转换、对偶训练和同义词替换,标签转换、对偶训练和同义词替换为现有技术。[0041] S622:定义第j个训练样本的嵌入向量为 表达式如下:[0042][0043] 其中,vw是第j个训练样本语句中中文字符w的嵌入向量,(‑∈gw/||gw||2)表示根据梯度计算得到的扰动值,gw表示采用交叉熵损失计算得到的扰动梯度,∈表示调整扰动大小的超参数;[0044][0045] 其中, 表示梯度计算操作,P(y/vw)表示条件概率,表示AA的整体参数;[0046] S623:通过对中文字符的特征拼接处理,计算第j个训练样本中的语义标签表达式如下:[0047]bm25 tf‑idf[0048] 其中,FFN表示线性层函数, 表示第j个训练样本中的语义标签,Vj 、Vjelmo cls′和Vj 分别表示现有的三种不同的拼接特征技术,h 表示AA对中文字符进行池化处理得到的池化输出;[0049] S624:利用 计算(Saj,Sbj)经过DMM处理后的最终输出 计算表达式如下:[0050][0051] 其中,[0052] S625:将j遍历其所有取值,重复S620‑S624;[0053] S626:计算AA的基线损失函数L′base,计算表达式如下:[0054][0055] 其中,N表示样本总数,yj∈{0,1}表示第j个训练样本的标签;[0056] S627:将batch中的所有训练样本输入AA,计算AA的对抗损失函数Ladv(θ),表达式如下:[0057][0058] 其中,m表示第m个batch,M表示batch总数,pj表示给定vw对应的条件概率值;[0059] S628:计算每个AA的微调损失函数L,计算表达式如下:[0060] L=L′base+αLadv(θ);(8)[0061] 其中,α表示损失项的权重;[0062] S629:当微调损失函数L收敛不再变化时,停止训练得到训练好的AA,并执行下一步;否则采用梯度下降法反向更新每个AA中的参数,令batch=batch+1,并返回S612;[0063] S700:将待预测中文文本分别输入到W个训练好AA中,得到W个输出,W个输出作为IO的输入,IO将W个输入进行加权求和得到待预测中文文本预测结果logits,计算表达式如下:[0064][0065] 其中, 是第W个训练好AA的输出,αw表示第W个训练好AA的输出所占的权重;[0066] 作为优选,所述S200中集成输出模块IO是由BERT,NEZHA,RoBERTa和macBERT模型集成得到。[0067] NEZHA模型采用了全词掩码以及LAMB优化器,模型训练耗时短;RoBERTa模型采用了动态掩码以及去掉了NSP任务;macBERT模型侧重于消除与训练和微调阶段的不一致性。[0068] 作为优选,所述S200中动态掩码模块中包括的多种掩码策略为原始单掩码方法MLM,全词掩码方法WWM和N‑Gram掩码方法NGM。[0069] 现有基于BERT的改良模型大多采用单一掩码策略,难以解决中文文本匹配任务中不同字长的分词问题。动态多掩码策略可以提取更完整的语义信息,组合BERT的原始单掩码方法(MLM),全词掩码方法(WWM)和N‑Gram掩码方法(NGM)。全词掩码是在完整的词中一部分被掩盖掉后,则同属于该词的其他部分也被掩码,可以避免具有完整语义的词被分割成多个个体;N‑Gram掩码是指通过指定的标识y去替代原有的n个连续标记序列,以进行实体或短语的掩码,往往这n个连续序列代表着一个完整的语义。[0070] 作为优选,所述S621中AA对训练样本语句对(Saj,Sbj)进行数据增强处理包括对训练样本语句对(Saj,Sbj)依次进行标签转换、对偶训练和同义词替换。[0071] 标签转换:对于数据集中的样本,如果句子对Sa和Sb的标签为a,Sb和Sc标签也为a,那么认为Sa和Sc的标签也是a,换言之传递语句的相同标签将更多的同语义语句联系在一起,可使模型学习到更多语句语义的关联性;对偶训练:对于原始样本中的句子对,输入BERT为“[CLS]Sa[SEP]Sb[SEP]”,以50%的概率随机调换Sa和Sb的位置,即将BERT的原始输出中的一般样本换成“[CLS]Sb[SEP]Sa[SEP]”,其余部分则保持不变,对偶训练可以增强模型对字词位置这一信息的学习能力;同义词替换:对于句子中的每个单词,查看该单词在WordNet词库中是否有同义词,并在同义词列表中选择第一个不是该词的词,原则上这样做不会改变句子对的原本语义,并且会给模型提供一定的先验知识。[0072] 作为优选,所述S300中对W个掩码增强对抗模块中的每个DMM进行训练的具体步骤为:[0073] S310:从训练样本集中选择第i组语句对(Sai,Sbi)作为DMM模组的输入,第i组语句对(Sai,Sbi)即为第i个训练样本,输出为(Sai,Sbi)的一致性预测标签 具体步骤如下:[0074] S311:将(Sai,Sbi)调将batch中的所有中文语句对转换为嵌入向量形式,然后作为DMM模组的输入,整为DMM模块输入的数据格式,表达式如下:[0075] (Sai,Sbi):“[CLS]Sai[SEP]Sbi[SEP]”;(10)[0076] 其中,[CLS]表示起始符,[SEP]表示分隔符;[0077] S312:将公式(2)所述数据格式输入到DMM模块中,得到语句对中每个中文字符的上下文表示:[0078] S313:采用DMM模块对上下文表示进行池化处理,得到第i个训练样本池化输出clsh ,并计算 具体表达式如下:[0079][0080][0081] 其中,FFN表示线性层函数, 表示第i个训练样本中的语义标签,表示(Sai,Sbi)经过DMM模块处理后的最终输出;[0082] S320:从训练样本集中随机选择P个中文语句对作为一个batch′,令batch′=1;[0083] S330:将batch′中的所有中文语句对作为W个DMM模组的输入,当batch′等于最大迭代次数时停止训练,得到W个最优的DMM模组。[0084] 相对于现有技术,本发明至少具有如下优点:[0085] 1.本发明所提出的一种基于动态多掩码和增强对抗的文本匹配方法,在对基线的预训练阶段上进行了改进,提出了DMM模块,用动态掩码策略替换掉原始掩码策略,提取中文文本中更深层次的语义信息;采用了基于增强和对抗的微调方法提出了AA模块,此模块是在基于基线的微调阶段执行了改进操作,用以提高预训练和微调模块的参数一致性和模型鲁棒性;IO模块是对部分经典模型并行地进行了改进,使得输出可以进行集成以得到更有代表性的结果。[0086] 2.本发明提出的动态多掩码策略DMM对中文文本数据进行处理,对中文语句的分词效果有明显的提升,尤其是能满足对复杂中文文本(成语,歇后语等不定长的语句单元更多的语句)的分词要求。动态多掩码策略能提供更高质量的分词效果,是的模型训练得到的语义信息更加完整,能有效的提高模型对文本分类任务的处理精度。[0087] 3.本发明提出了增强对抗模块AA对下游任务的数据集进行增强,并在其中添加扰动进行对抗训练。此方法能够提高预训练和微调之间的参数一致性,以及提高模型的鲁棒性。并且采用的多种数据增强方法和特征拼接方法能进一步获得更丰富的语义信息。本发明还提出了集成输出模块IO,是对部分经典模型并行地进行了改进,使得输出可以进行集成以得到更有代表性的结果。[0088] 4.在DAINet中使用的方法对四种经典模型具有较强的适应性,可以显著提高基线模型的性能;同时,还可以将更丰富的知识映射集成到本发明方法中,使其更适合于特定的领域中的语义匹配任务,也说明了本模型的拓展性极佳。附图说明[0089] 图1为DAINet模型结构图。具体实施方式[0090] 下面对本发明作进一步详细说明。[0091] DMM模块主要用于动态调整掩码策略以解决文文本复杂的分词问题,关于动态掩码策略,根据数据集调整三种掩码方法的权重;AA模块主要用于解决参数不一致性的问题和模型的不稳定性问题,AA模组由下到上分别是数据增强(标签转换,对偶训练和同义词替换),对抗训练和特征拼接;IO模组主要用以保留完整的语义信息以获得更有代表性的结果。通过对现有经典模型进行DMM和AA模组改造,使得它们的输出在IO模组中被加权集成以得最终的结果。[0092] 本发明所提出的DAINet模型,在预训练阶段提出了动态多掩码策略以替换原始掩码策略;在微调阶段,实施了数据增强,对抗训练和特征拼接;最后将四个强基线模型的输出集成在一起以获得最后的结果。在基线模型上,动态多掩码策略对中文文本有更强的语义表达能力,在微调阶段,增强对抗可以减少模型的不一致性和不稳定性,最后集成输出可使结果更有表达能力和可信度。[0093] 参见图1,一种基于动态多掩码和增强对抗的文本匹配方法,其特征在于:包括如下步骤:[0094] S100:选取公开数据集I作为训练样本集;[0095] S200:采用现有模型作为基线模型构建DAINet模型,DAINet模型包括W个掩码增强对抗模块和一个集成输出模块IO,每个掩码增强对抗模块包括一个动态多掩码模组和一个增强对抗模组;所述IO通过对W个掩码增强对抗模块的输出进行加权求和得到DAINet模型的输出;[0096] 每个掩码增强对抗模块均通过如下方法获得:[0097] 将现有模型中的单一掩码策略改进为动态多掩码策略得到动态多掩码模组,记为DMM;在现有模型中增加多种方式对数据进行数据增强得到增强对抗模组,记为AA;[0098] S300:设置最大迭代次数,采用公开数据集I中的训练样本集数据对W个掩码增强对抗模块中的每个DMM进行训练,当达到最大迭代次数时,则认为W个DMM训练完成得到W个最优DMM;[0099] S400:对于一个测试任务,获取与该测试任务相同类型的公开数据集II,分为测试集和训练集,公开数据集II中包括N组中文语句对和与N组语句对一一对应的一致性标签,每组中文语句对包括语句Sa和语句Sb,语句Sa和语句Sb形式如下:[0100][0101] 其中, 表示语句Sa中的第r个中文字符, 表示语句Sb中的第k个中文字符;[0102] S500:每个掩码增强对抗模块中的AA使用与其在同一掩码增强对抗模块中的最优DMM的参数;[0103] 将公开数据集II中的测试集中所有数据输入AA中,如果测试准确率达到设定的阈值,则使用最优DMM的参数的AA为训练好AA,并执行S700;否则执行S600;[0104] S600:使用训练集对W个掩码增强对抗模块中的AA进行训练,训练过程如下:[0105] S610:每个掩码增强对抗模块中的AA使用与其在同一掩码增强对抗模块中的最优DMM的参数;[0106] S611:令batch=1;[0107] S612:从训练集中随机选择M个训练样本作为一个batch;[0108] S620:选择训练样本集中第j个训练样本语句对(Saj,Sbj)以及相对应的一致性标签,作为第j个训练样本,使用AA对第j个训练样本进行处理得到微调损失函数L,具体步骤如下:[0109] S621:使用AA对训练样本语句对(Saj,Sbj)进行数据增强处理;[0110] S622:定义第j个训练样本的嵌入向量为 表达式如下:[0111][0112] 其中,vw是第j个训练样本语句中中文字符w的嵌入向量,(‑∈gw/||gw||2)表示根据梯度计算得到的扰动值,gw表示采用交叉熵损失计算得到的扰动梯度,∈表示调整扰动大小的超参数;[0113][0114] 其中, 表示梯度计算操作,P(y/vw)表示条件概率,表示AA的整体参数;[0115] S623:通过对中文字符的特征拼接处理,计算第j个训练样本中的语义标签表达式如下:[0116]bm25 tf‑idf[0117] 其中,FFN表示线性层函数, 表示第j个训练样本中的语义标签,Vj 、Vjelmo cls′和Vj 分别表示现有的三种不同的拼接特征技术,h 表示AA对中文字符进行池化处理得到的池化输出;[0118] S624:利用 计算(Saj,Sbj)经过DMM处理后的最终输出 计算表达式如下:[0119][0120] 其中,[0121] S625:将j遍历其所有取值,重复S620‑S624;[0122] S626:计算AA的基线损失函数L′base,计算表达式如下:[0123][0124] 其中,N表示样本总数,yj∈{0,1}表示第j个训练样本的标签;[0125] S627:将batch中的所有训练样本输入AA,计算AA的对抗损失函数Ladv(θ),表达式如下:[0126][0127] 其中,m表示第m个batch,M表示batch总数,pj表示给定vw对应的条件概率值;[0128] S628:计算每个AA的微调损失函数L,计算表达式如下:[0129] L=L′base+αLadv(θ);(8)[0130] 其中,α表示损失项的权重;[0131] S629:当微调损失函数L收敛不再变化时,停止训练得到训练好的AA,并执行下一步;否则采用梯度下降法反向更新每个AA中的参数,令batch=batch+1,并返回S612;[0132] S700:将待预测中文文本分别输入到W个训练好AA中,得到W个输出,W个输出作为IO的输入,IO将W个输入进行加权求和得到待预测中文文本预测结果logits,计算表达式如下:[0133][0134] 其中, 是第W个训练好AA的输出,αw表示第W个训练好AA的输出所占的权重;集成策略的性能在很大程度上正确的选择模型,经过试验和经验调整权重,最后得到最优的分配权重是:macBERT输出的权重取0.35,RoBERTa输出的权重取0.3,NEZHA输出的权重取0.2,BERT输出的权重取0.15。经过我们的分析,发现这个权重的分配和对应模型的效果是有关的,对掩码策略进行了优化的模型取得的效果更好,当他们的输出值占比更大时更有利于总输出值的优化。[0135] 实验设置与结果分析[0136] 1.数据集[0137] 本实验是在三个中文短文本匹配数据集上进行的,三个数据集分别是:LCQMC(刘等2018),BQ和小布数据集。LCQMC是一个大规模开放领域的问题匹配语料库,它由260068个中文句子对组成,包括238766个训练样本、8802个开发样本和12500个测试样本;BQ是一个针对特定领域的大规模银行问题匹配语料库,它由12万个中文句子对组成,包括10万个训练样本、1万个开发样本和1万个测试样本;小布助手是一个完全脱敏的文本匹配语料库,它由125000个中文句子组成,包括10万训练集和2.5万测试集,并且每个字符被映射成了唯一的ID。三个数据集中每一对都与一个二进制标签相关联,该标签指示两个句子是否具有相同的含义或具有相同的意图。[0138] 2.评估指标[0139] 在实验中,测试指标采用的是准确率(accuracy,ACC)和AUC(ROC曲线下的面积,表示正例排在负例前面的概率)做为评估指标,它们的定义为:[0140][0141] 其中,TP为正例预测正确的个数,FP为负例预测错误的个数,TN为负例预测正确的个数,FN为正例预测错误的个数;[0142][0143] 其中,rank(i)表示第i个样本的预测得分在测试集中的排序;M表示测试集中语义匹配的样本的个数;N表示测试集中语义不匹配的样本的个数。[0144] 3.实验环境设置[0145] 本发明实验是基于BERT*的PyTorch实现的,通过使用AdamW作为优化器,在{5e‑5,3e‑5,2e‑5,1e‑5}中设置了初始学习率,预热率为0.1,L2权重衰减为0.01,batchsize大小视具体模型和任务在{16,24,32}中选择,继续预训练的epochs数量设置为300,后续的微调epochs设置为2,为了避免梯度爆炸问题,梯度范数被限制在1以内,Loss的权重α设置为1,对于batchsize,LCQMC设置32,BQ和小布data设置为64。[0146] 4.实验结果[0147] 主要描述了一些列基于BERT模型以及其改进模型的实验结果,并且由于ESIM在各种匹配任务上取得了最先进的成果,因此本实验把ESIM也作为实验对比目标。结果总结见表1。[0148] 表1各项训练语言模型分别在三种数据集上的性能展示[0149][0150] 表1说明了各种预训练语言模型在LCQMC,BQ和小布数据集测试集上的性能展示,本实验进行了主流的预训练模型实验,在各个数据集上选择最优的预训练模型作为基线模型,例如BQ中的RoBERTa,LCQMC中的macBERT和小布数据中的NEZHA,在此基础上应用本发明方法进行改进,由此可见,本发明方法的性能最佳。[0151] 此外,可以发现BERT的几个变体,如RoBERTa、NEZHA、macBERT、XLNet,都超过了原始BERT,这得益于更多的预训练数据以及各种针对原始BERT的改进以及采用自回归结构并且解决BERT的mask在预训练和微调中间隙的XLNet。值得注意的是,在不同的文本匹配任务上,各种预训练模型的表现各不相同,例如BQ中的RoBERTa,LCQMC中的macBERT和小布数据中的NEZHA,这些都可以认为实际结果取决于它们对具体任务数据的敏感性,并且可以看到,针对文本语义匹配任务,本发明提出的集成改进方法可以应用于任意的预训练模型,并得到一定的改进,而且也可以将该方法迁移至其他的nlp任务。[0152] 5.消融实验[0153] 为了评估动态多掩码策略,数据增强,对抗学习以及特征拼接单独作用时,对模型结果的效果,分别在LCQMC,BQ和小布数据集上进行了消融实验,消融实验的具体步骤如下:[0154] ①对四个未改进模型BERT,NEZHA,macBERT和RoBERTa分别在LCQMC、BQ和小布数据集上进行AUC计算,选择最好效果的模型作为此数据集消融实验的基线;[0155] ②选定基线模型后,在LCQMC、BQ和小布数据集上进行消融实验,分别在基线模型结构上单独地进行DMM和AA模组的改进,以及采用了全部改进的DAINet模型(NEZHA采用全部改进的模型命名为DaiNEZHA),并用AUC作为实验测试指标。[0156] 消融实验的结果展示如下:经过第一步的计算,LCQMC,BQ和小布数据集选择的基线分别是macBERT,macBERT和NEZHA。[0157] 表2LCQMC数据集上基于macBERT的消融实验结果[0158][0159] 表2选择的基线模型是NEZHA模型,它的结果在四个未改进模型的结果中是最优的,其中AUC值为0.962。根据消融实验结果可以看出,在单独的改进方法中动态多掩码策略和对抗学习的策略效果很好,在NEZHA模型的AUC损失值从0.038降低至0.029,提升在24%左右,数据增强和特征拼接的提高在5%到8%左右;当将改进手段集成在DaiNEZHA模型上时,取得了更优异的效果,对单独NEZHA模型的AUC损失值从0.038降低至0.028,提升在27%左右。从数据可以看出集成四种改进方法效果是最好的,动态多掩码和对抗训练单独作用时的效果比数据增强和特征拼接的效果要更好,这是因为中文文本匹配中,中文难以掩码的问题与数据集的问题相比,对结果的影响更大。[0160] 表3BQ数据集上基于macBERT的消融实验结果[0161][0162] 表3展示的是在BQ数据集上进行的消融实验结果,以macBERT作为基线模型,可以看出四种改进手段对模型的性能提升和表1一致,但是效果上有差异,最好的仍是动态多掩码和对抗训练,它们对基线的AUC损失值提升效果在9%左右,而数据增强和特征拼接对基线的AUC损失值提升相对较低,在1.5%左右;当把四个改进集成时,总的效果仍优于各改进单独进行,对基线的AUC损失值提升在12%左右。[0163] 表4小布数据集上基于macBERT的消融实验结果[0164][0165] 表4展示的是基于小布数据集进行的消融实验,采用macBERT作为基线;与之前的消融实验相同的是仍然是对抗训练的提升效果优于各其他改进手段,对基线的AUC损失值提升效果在13%左右,单独地采用动态掩码策略的提升效果次之,在8.5%左右;数据增强和特征拼接的效果仍是较低的,两者相差不大,提升效果在4.5%左右;当四种改进手段集成时(DaiMACBERT),模型的提升效果明显增强到了21%。[0166] 从消融实验的结果可以看出,本发明方法采用的四种改进都对模型的性能有不错的提升,尤其是四种改进集成的Dai(DMM,AA和IO)改进方法对模型的提升效果更加明显;本发明的改进方法在三种数据集上或采用不同模型作为基线时提升效果都明显,这体现了DAINets模型的泛化能力。[0167] 在LCMQA、BQ和小布数据集上的实验结果表明,DAINets模型在中文文本匹配任务上具有很好的性能:在DAINet中使用的方法对四种经典模型具有较强的适应性,可以显著提高基线模型的性能;同时,还可以将更丰富的知识映射集成到本发明方法中,使其更适合于特定的领域中的语义匹配任务,也说明了本模型的拓展性极佳。[0168] 最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。
专利地区:重庆
专利申请日期:2022-07-08
专利公开日期:2024-07-26
专利公告号:CN115081446B