一种文本对抗样本生成方法、设备及介质
文献发布时间:2023-06-19 18:30:43
技术领域
本发明涉及人工智能信息安全技术领域,具体涉及一种文本对抗样本生成方法、设备及介质。
背景技术
在互联网时代,随着海量数据积累、计算能力升级以及机器学习框架不断创新进化,深度神经网络(Deep Neural Networks,DNNs)在解决计算机视觉、语音识别、自然语言处理(Natural Language Processing,NLP)等领域取得巨大成功,人工智能正在走向人类的历史性时刻。现如今,大量的深度学习技术日趋成熟,并逐步地应用于各行各业,极大地促进深度学习领域产业化发展。在自然语言处理领域,基于深度学习的文本分类、机器翻译、智能问答等任务得到迅猛发展,形成了情感分析、有害内容检测、翻译助手、智慧客服等一系列具有现实意义的应用。然而,尽管深度神经网络模型在各个领域都有着出色的表现,但其自身也存在许多安全问题。据机器学习和安全领域的研究表明,在面对精心构造的恶意对抗性样本时,即使表现非常出色的深度神经网络模型也显现出极大的脆弱性。这类攻击在合法输入中通过添加精心设计且难以察觉的扰动,愚弄模型做出错误预测的同时又不会影响人的判断。
常用对抗攻击方法根据是否了解模型的具体信息划分为:白盒攻击和黑盒攻击。白盒攻击:能够完全访问目标模型,知道模型的完整信息,包括输入输出、模型结构、参数、损失函数、激活函数等,攻击者可以通过使用目标模型的梯度来精心设计对抗样本,通常这种攻击非常有效,难以防御;黑盒攻击:不清楚目标模型的体系结构,无法访问模型的结构、参数等,只能获取模型的输入输出,通过采用不断的查询和观察目标模型的输出来产生最优的对抗样本。白盒攻击根据模型的具体结构生成对抗样本,相较于黑盒攻击更具有针对性,能够发现模型存在的不足,使用对抗样本对模型进行对抗性训练可以有效地提高模型的鲁棒性,对人工智能应用实际落地有着巨大的推动作用。
在白盒场景中,现有的攻击方法基本都存在对抗样本质量不足的问题,如字符级攻击替换单词的某个或某几个字符会出现严重的语法错误,单词级攻击使用同义词对关键词进行替换,但是往往不符合当前上下文的语境,容易被人类所察觉;并且,数据集中存在大量重复关键词,每次出现都需要再次生成替换候选词,存在效率太低的问题。
发明内容
本申请所要解决的技术问题是在白盒场景中,现有的攻击方法基本都存在对抗样本质量不足,字符级攻击替换单词会出现严重的语法错误,单词级攻击不符合当前上下文的语境,使得攻击容易被人类所察觉,目的在于提供一种文本对抗样本生成方法、设备及介质,通过文本分类模型和雅可比矩阵定位关键词,使用替换语料库中的替换策略或预训练模型进行预训练生成符合当前语境上下文的多种替换策略对关键词进行替换并生成对抗样本从而解决了现有文本白盒攻击中存在的对抗样本质量不足和效率太低的问题。
本发明通过下述技术方案实现:
本发明第一方面提供了一种文本对抗样本生成方法,包括
获取文本数据集,并对所述文本数据集进行预处理,得到文本;
基于文本分类模型和雅可比矩阵,对文本进行计算,得到文本中词语的贡献度,通过词语的贡献度定位关键词;
构建替换语料库,将所述关键词与所述替换语料库进行比对;
若所述关键词与所述替换语料库匹配,采用替换语料库中的替换案例进行替换生成对抗样本;
若所述关键词与所述替换语料库不匹配,则采用预训练模型生成该关键词的替换候选词,采用贪心算法从替换候选词中选取替换词对关键词进行替换并生成对抗样本。
上述技术方案中,通过文本分类模型对文本的雅可比矩阵进行计算得到词语的贡献度,通过词语的贡献度定位关键词,词语的贡献度即词语的重要程度,将重要程度高的词语作为关键词并进行替换有助于提升对抗样本的成功率。
通过使用成功案例库来构建替换语料库,替换语料库中存在具有相同关键词的候选词,在采用预训练模型生成替换候选词之前,先将关键词与替换语料库中进行比对,若存在相同关键词的候选词则采用替换语料库中的成功案例,从而减小整个攻击系统的开销提升了生成对抗样本的效率。
采用预训练模型生成该关键词的替换候选词,并采用贪心算法从替换候选词中选取替换词对关键词进行替换生成对抗样本。通过预训练模型得到的替换候选词是进行预训练符合上下文语境的词语,由于候选替换词是对整个词语进行替换故不存在拼写等语法错误,从而解决了现有技术中字符级攻击和单词级攻击存在语法错误、不符合上下文语境的问题,提升了对抗样本的质量,使得攻击不易被察觉。再采用贪心算法从替换候选词中选取最贴近于上下文语境的替换词对关键词的替换生成的对抗样本提升了对抗样本的质量,使得攻击不易被人类所察觉。
在一种可选实施例中,基于文本分类模型和雅可比矩阵,对文本进行计算之前还包括:
采用文本数据集对文本分类模型和预训练模型进行训练,使文本分类模型和预训练模型学习所述文本数据集中文本的序列特征。
在一种可选实施例中,采用预训练模型生成该关键词的替换候选词的方法如下:
将文本中的关键词用[MASK]标记进行掩码;
在预训练模型中引入掩码语言任务,基于完形填空的特性用掩码语言任务生成掩码的替换候选词。
在一种可选实施例中,将文本中的关键词用[MASK]标记进行掩码还包括在关键词的左侧插入[MASK]标记或在关键词的右侧插入[MASK]标记。
在一种可选实施例中,采用贪心算法从替换候选词中选取替换词的方法如下:
A、计算使用替换候选词替换前文本的置信值以及使用替换候选词替换后文本的置信值;
B、根据步骤A使用替换候选词替换前后文本置信值的变化选择最优候选词;
C、使用最优候选词替换掩码获得扰动文本S′;
D、使用余弦相似度计算扰动文本S′与未替换之前的文本S的语义相似性,若扰动文本S′的语义相似性在阈值之上,则对抗样本生成成功;若扰动文本S′的语义相似性在阈值之下,则重复步骤A直至扰动文本S′的语义相似性在阈值之上或所有替换候选词使用完毕。
在一种可选实施例中,使用余弦相似度计算扰动文本S′与未替换文本S之间的语义相似性的方法如下:
sim(S,S′)≥∈
其中,sim(·,·)为余弦相似度计算公式,S为未替换文本,S′为扰动文本,∈为阈值。
在一种可选实施例中,通过文本分类模型对所述文本的雅可比矩阵计算词语的贡献度的方法如下:
其中,K表示文本分类y总的类别数,
在一种可选实施例中,对所述文本数据集进行预处理的方法如下:
使用NLTK工具对原始文本数据的每个句子进行分词操作,得到句子的词语集合S=(x
本申请第二方面提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现一种文本对抗样本生成方法。
本申请第三方面提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现一种文本对抗样本生成方法。
本申请与现有技术相比,具有如下的优点和有益效果:
本发明提供了一种文本对抗样本生成方法,使用预训练模型生成符合当前语境上下文的多种替换策略和改进现有的替换词搜索方法,解决现有文本白盒攻击中存在的文本对抗样本质量不足和效率太低的问题。
附图说明
为了更清楚地说明本发明示例性实施方式的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。在附图中:
图1为本申请一实施例提供的一种文本对抗样本生成方法的流程图;
图2为本申请一实施例提供的预训练模型生成替换候选词的示意图;
图3为本申请一实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
实施例1
图1为本发明实施例1提供的一种文本对抗样本生成方法的流程图,如图1所示,文本对抗样本生成方法包括如下步骤:
S1、获取文本数据集,并对文本数据集进行预处理,得到文本。
其中,步骤S1中所提及的对文本数据集进行预处理是指对收集的原始数据进行一些清洗工作,以便于进行后续的主要操作。
对于文本数据集,需要对数据进行一些清洗工作,如删除多余的符号、分词等。
进一步的,本申请使用NLTK工具对原始文本数据的每个句子进行分词操作,得到句子的词语集合S=(x
S2、基于文本分类模型和雅可比矩阵,对文本进行计算得到文本中词语的贡献度,通过词语的贡献度定位关键词。
其中,确定关键词通过计算文本分类模型
进一步的,通过文本分类模型相对于给定句子的雅可比矩阵计算句子中每个词的贡献度,并将其按贡献度由高到低排序,取前n(n=3,4,5)个单词通过替换语料库对关键词进行替换,成功生成对抗样本则结束,反之进入下一步;
计算文本分类模型
因此,词的贡献度可以表示为
S3、构建替换语料库,将关键词与替换语料库进行比对。
其中,替换语料库是使用成功案例库进行构建的,替换语料库中存在具有相同关键词以及该关键词所对应的替换案例。将通过步骤S2所定位的关键词与替换语料库中的词语进行对比,相较于遇到相同关键词时则继续使用攻击模型再次生成替换词的现有技术而言可以减小整个攻击系统的开销提升了生成对抗样本的效率。
S4、若关键词与替换语料库匹配,采用替换语料库中的替换案例进行替换生成对抗样本。
其中,替换语料库初始条件下为空,每次攻击成功生成对抗样本后,将替换案例加入语料库中。以后出现相同关键词时,首先使用语料库中的替换词进行替换,若替换后攻击成功则结束攻击流程;反之,失败则进入步骤S5。
S5、若所述关键词与所述替换语料库的案例不匹配,则采用预训练模型生成该关键词的替换候选词,采用贪心算法从替换候选词中选取替换词对关键词进行替换并生成对抗样本。
其中,本申请实施例使用的预训练语言模型是目前被广泛使用的BERT模型。由于BERT在NLP各个领域都取得了突破性的性能提升,而BERT使用海量文本进行无监督的训练中,包含两个方法,一个是掩码语言模型MLM,另一个是下句预测(Next SentencePrediction,NSP)判断一个句子的是否是该句子在段落中的下一个句子。
在BERT预训练当中,采用MLM是为了实现双向的上下文编码,为了让模型能够学习到双向的上下文信息。在使用MLM进行预训练的过程中,MLM使用掩码技巧,将文本中的关键字的Token用[MASK]标记进行掩码,[MASK]是在预训练语言摸型的词表中的特殊字符,在进行上文本语义编码的过程中会对应相应的词向量,也就是说预训练模型把[MASK]当成一个正常Token处理,然后通过预测掩码位置的词进行无监督语义特征的学习。
本申请实施例将文本的替换过程看作是一个完形填空任务,用掩码语言模型来生成文本中某个词的替换词。
如图2所示,原始文本为“The government made a quick decision”,通过步骤S2计算原始文本的置信度,其中“government”的置信度最高则将其作为关键词,若“government”不存在于替换语料库中,则执行步骤S5,使用预训练模型对原始文本进行训练。
其中,采用掩码语言模型MLM将“government”使用[MASK]标记进行掩码,预训练模型把[MASK]当成一个正常Token处理,然后通过预测掩码位置的词进行无监督语义特征的学习从而获得“government”的替换候选词“judge”、“doctor”和“captain”。相较现有技术而言,本申请对于关键词的替换是基于词语整体而言的,不会出现字符级攻击替换单词的某个或某几个字符会出现严重的语法错误。同时,相较于现有技术中对于中文文本处理而言,中文的替换一般是结合字音字形来生成替换词,比如将“好”拆分成“女”和“子”,而英文文本的整体性较强,无法应用中文文本处理的方法生成替换词。若采用中文文本处理的方法生成替换词可能会出现将“government”拆分成“govern”和“ment”两部分,这破坏了词语的整体性,可能会出现严重的语法错误。
进一步的,相较于现有的方法只对关键词进行替换,本发明不仅通过用[MASK]标记关键词生成替换候选词,还用[MASK]标记关键词左侧空格生成左插入候选词和用[MASK]标记关键词右侧空格生成右插入候选词,替换策略更多样更全面。
如图2所示,依据上述例子得到的关键词“government”,左插入即为在“government”的左侧空格处插入一个[MASK]标记,对[MASK]标记采用预训练模型进行训练生成候选词“state”、“british”和“federal”。右插入的步骤与左插入相同,具体插入结果见附图2。
相较现有技术而言,本实施例中生成的候选词符合上下文的语境。比如“Thegovernment made a quick decision”中“government”的替换候选词“judge”、“doctor”和“captain”,将任意一个替换候选词替换“government”都符合上下文语境,比如“Thedoctor made a quick decision”,从上下文语境而言生成的该句子是成立且合理的,若采用该句子生成的对抗样本进行攻击是不容易被人类所察觉的。
进一步的,贪心算法将从问题的某一个初始解出发一步一步地进行,每一步都要确保能获得局部最优解。每一步只考虑一个数据,他的选取应该满足局部优化的条件。若下一个数据和部分最优解连在一起不再是可行解时,就不把该数据添加到部分解中,直到把所有数据枚举完,或者不能再添加算法停止。
其中,采用贪心算法从替换候选词中选取替换词的方法如下:
A、计算使用替换候选词替换前文本的置信值以及使用替换候选词替换后文本的置信值;
B、根据步骤A使用替换候选词替换前后文本置信值的变化选择最优候选词;
C、使用最优候选词替换掩码获得扰动文本S′;
D、使用余弦相似度计算扰动文本S′与未替换之前的文本S的语义相似性,若扰动文本S′的语义相似性在阈值之上,则对抗样本生成成功;若扰动文本S′的语义相似性在阈值之下,则重复步骤A直至扰动文本S′的语义相似性在阈值之上或所有替换候选词使用完毕。
对于关键词排序取前n(n=3,4,5)个单词,从最重要的关键词使用候选词进行替换,获得新的扰动文本S′。如果分类模型
在一种可选实施例中,通过文本分类模型对所述文本的雅可比矩阵进行计算之前还包括:采用文本数据集对文本分类模型和预训练模型进行训练,学习文本数据集中文本的序列特征,进而提升文本分类模型和预训练模型的准确性。
因为,对抗攻击的场景目标大多是已经训练好的神经网络模型,因此需要使用现有的数据集对文本分类模型进行有监督训练,完成其相应参数的学习过程。而预训练模型则使用数据集的无标签数据进行针对当前任务的预训练,能够让模型学习当前数据集上相关文本的序列特征,便于生成更符合上下文语义的候选词,
实施例2
图3为本发明实施例2提供的一种电子设备的结构示意图,如图3所示,该电子设备包括处理器21、存储器22、输入装置23和输出装置24;计算机设备中处理器21的数量可以是一个或多个,图3中以一个处理器21为例;电子设备中的处理器21、存储器22、输入装置23和输出装置24可以通过总线或其他方式连接,图3中以通过总线连接为例。
存储器22作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块。处理器21通过运行存储在存储器22中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现实施例1的一种文本对抗样本生成方法。
存储器22可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器22可进一步包括相对于处理器21远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置23可用于接收用户输入的id和密码等。输出装置24用于输出配网页面。
实施例3
本发明实施例3还提供一种计算机可读存储介质,所述计算机可执行指令在由计算机处理器执行时用于实现如实施例1所提供的一种文本对抗样本生成方法。
本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于实施例1所提供的方法操作,还可以执行本发明任意实施例所提供的一种文本对抗样本生成方法中的相关操作。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
- 一种训练样本生成方法及装置、设备、介质
- 一种基于生成对抗网络的林火图像样本生成方法
- 对抗文本样本生成方法、计算机设备和介质
- 文本对抗样本生成方法、系统、计算机设备和存储介质