本发明涉及人工智能,特别是一种涉及面向文本分类任务的对抗样本生成方法及模型对抗训练方法。
背景技术:
1、文本分类任务的对抗样本问题作为人工智能安全中的一个重要分支备受关注。对抗样本(adversarial example)技术最早由szegedy等人在图像领域中首次提出,这种技术通过对文本、图像等做特殊处理来达到误导深度神经网络的目的。例如,在邮件分类系统中,攻击者会精心将垃圾邮件伪装成正常邮件,将其发送给广大用户,污染网络环境。针对对抗样本的防御可以分为检测和模型增强两种。前者通过检测输入进行防御,而后者则通过增强模型的鲁棒性抵御攻击。对抗样本是一种具有特定目的的数据。因此,提前检测出对抗样本可以作为一种让模型免受攻击的防御手段。使模型能够有效抵御对抗攻击的另外一种增强模型的方式是对抗训练。对抗训练包括对原始样本x添加扰动生成对抗样本xiadv,然后在x和xiadv混合的增强集合上训练模型,提高模型对对抗样本的容忍度。而此前已有研究指出使用动态对抗训练来提高模型的鲁棒性,该方法通过在训练过程中动态地生成对抗样本,让模型不断地遭受不同类型的对抗攻击,从而提高模型的鲁棒性和泛化能力,但这个方法会显著地增加训练的时间和计算成本。因此,寻找一种高效的对抗样本生成方法以及研究高效的对抗训练方法来提高模型鲁棒性十分重要。
2、对抗训练可以在一定程度上提高模型的鲁棒性和泛化性,但其性能的提升幅度受制于对抗样本的质量和多样性,现有生成对抗样本的算法大都是启发式搜索算法解决的组合优化问题,其通过不断地迭代来寻找最优的对抗样本,而这样的迭代搜索过程是十分复杂且昂贵的,生成一条对抗样本有可能进行成千上万次的搜索和查询,这种高昂的成本极大地阻碍了将对抗样本用于对抗训练来提升模型鲁棒性的实用性。现有的对抗训练方法都是使用一种攻击方法攻击模型一次之后生成对抗样本并将其与干净样本混合对模型对抗式的训练以提高模型的鲁棒性,这样的训练方法很难适应模型动态变化的特性,对模型鲁棒性的提升始终是有限的。
3、将对抗样本用于对抗训练的一个关键的地方就是对抗样本生成的时间损耗。此前的大部分研究都证明了计算词重要性排名是十分重要的,其能够帮助模型定位影响分类判断的重要单词,该方法为逐个删除句中的一个单词,然后输入到模型中判断置信度分数的变化幅度来确定重要的单词。虽然基于删除的方法十分有效,但对于长文本的任务,这就意味着在确定重要词这一步就需要进行上百次的向前传递,伴随而来的是大量的时间消耗,因此不适用于对抗训练。使用基于梯度的方法确定重要词虽然加快了确定重要词的速度,但前向传播和反向传播仍然需要大量的计算资源和时间损耗,且不适用于黑盒场景。
技术实现思路
1、本发明的目的在于提供一种面向文本分类任务的对抗样本生成方法及模型对抗训练方法,至少解决面向文本分类任务的对抗样本生成时间较长的问题。
2、为达到上述目的,本申请第一方面提供一种面向文本分类任务的对抗样本生成方法,所述方法包括:步骤1、确定句子中单词在整个数据集中的词频大小,去除停止词并按词频降序排序作为单词重要性排名;选取部分重要单词为其生成待替换词集合w;步骤2、为待替换词集合w中的单词选择替换词构建同义词候选集;步骤3、使用同义词候选集中的单词替换原句子中的单词;从标签一致性、语义相似性两方面筛选出最优的对抗样本构建对抗样本集合。
3、进一步的,步骤1中构建单词重要性排名的方法如下:给定一个包含j个单词的句子xi={x1,x2,……,xj},选择基于词频的方法来确认句中显著的单词,依据句子中单词xj在整个数据集中的词频对句中的单词按照词频高低降序排列,将得到的序列作为单词重要性排名。
4、进一步的,步骤1中利用nltk和spacy库去除停止词。
5、进一步的,步骤2中构建同义词候选集的方法如下:使用counter-fitting词嵌入来表示单词;首先为每个重要的单词xj通过词嵌入的余弦相似度判断两个词之间的语义相似性构建同义词集合s;然后从集合s中筛选出相似度较高且词性相同的m个单词并将其按照词频升序排列,若在词频字典中查询不到,则将其词频设置为0,置于集合的最前端,得到的单词xj的最终同义词候选集为wxj={w1,w2,……,wk}。
6、进一步的,步骤3中构建对抗样本集合的方法如下:得到步骤2中的同义词候选集后,依次使用候选集wxj中的单词替换原句子中的xj,得到生成的对抗样本xiadv;然后输入目标模型中判断其标签,并计算xi和xiadv之间的句子语义相似度;若语义相似度高于阈值ω且预测的标签与xi的真实标签不同,则将该样本输出为对抗样本;如果不满足条件,则回到替换单词步骤,按序列从候选集中选择单词继续替换;其次,如果在单词xj的候选集wxj中没有一个单词能够满足条件,则将xj替换为w1,继续替换下一个重要的单词xj+1;若是无法达到标签变化、语义相似度高于阈值或者查询次数低于阈值的条件,则抛弃本条样本,使用数据集中的下条样本生成对抗样本。
7、本申请第二方面提供一种模型对抗训练方法,应用上述所述方法生成的对抗样本对语言模型进行动态训练。
8、进一步的,所述对抗训练方法如下:首先使用干净的样本微调预训练模型;其次,在每次攻击之前随机打乱数据集,并使用算法agfat生成对抗样本集合;将生成的对抗样本与干净样本混合训练模型,然后保存模型;在下一次对抗训练之前攻击上一次训练好的模型,不断迭代训练模型。
9、本发明的有益效果在于:本发明提供了一种面向文本分类任务的对抗样本生成方法及模型对抗训练方法,本方法提出的对抗训练方法,其核心是针对对抗训练而改进的对抗样本生成方法agfat和改善的动态的对抗训练方法agfat-dat。agfat使用了基于词频的方法确定重要词、筛选替换词候选集,并使用了高效的语义约束模块,以此来缩短对抗样本生成的时间;agfat-dat采用了循环攻击对抗训练后模型,生成对抗样本再次用于对抗训练的动态对抗训练方式。实验证明,提出的方法能够较为显著地缩短对抗样本生成的时间,对抗训练后的模型还可以有效防御词级对抗攻击。
1.面向文本分类任务的对抗样本生成方法,其特征在于,所述方法包括:
2.根据权利要求1所述的面向文本分类任务的对抗样本生成方法,其特征在于,步骤1中构建单词重要性排名的方法如下:给定一个包含j个单词的句子xi
3.根据权利要求1所述的面向文本分类任务的对抗样本生成方法,其特征在于,步骤1中利用nltk和spacy库去除停止词。
4.根据权利要求2所述的面向文本分类任务的对抗样本生成方法,其特征在于,步骤2中构建同义词候选集的方法如下:使用counter-fitting词嵌入来表示单词;首先为每个重要的单词xj通过词嵌入的余弦相似度判断两个词之间的语义相似性构建同义词集合s;然后从集合s中筛选出相似度较高且词性相同的m个单词并将其按照词频升序排列,若在词频字典中查询不到,则将其词频设置为0,置于集合的最前端,得到的单词xj的最终同义词候选集为wxj={w1,w2,……,wk}。
5.根据权利要求4所述的面向文本分类任务的对抗样本生成方法,其特征在于,步骤3中构建对抗样本集合的方法如下:得到步骤2中的同义词候选集后,依次使用候选集wxj中的单词替换原句子中的xj,得到生成的对抗样本xiadv;然后输入目标模型中判断其标签,并计算xi和xiadv之间的句子语义相似度;若语义相似度高于阈值ω且预测的标签与xi的真实标签不同,则将该样本输出为对抗样本;如果不满足条件,则回到替换单词步骤,按序列从候选集中选择单词继续替换;其次,如果在单词xj的候选集wxj中没有一个单词能够满足条件,则将xj替换为w1,继续替换下一个重要的单词xj+1;若是无法达到标签变化、语义相似度高于阈值或者查询次数低于阈值的条件,则抛弃本条样本,使用数据集中的下条样本生成对抗样本。
6.模型对抗训练方法,其特征在于,应用权利要求5所述方法生成的对抗样本对语言模型进行动态训练。
7.根据权利要求6所述的模型对抗训练方法,其特征在于,所述对抗训练方法如下:首先使用干净的样本微调预训练模型;其次,在每次攻击之前随机打乱数据集,并使用算法agfat生成对抗样本集合;将生成的对抗样本与干净样本混合训练模型,然后保存模型;在下一次对抗训练之前攻击上一次训练好的模型,不断迭代训练模型。