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模组。