对抗文本攻击防御方法、系统、介质、计算机设备及终端
技术领域
本发明属于人工智能信息安全技术领域,尤其涉及一种对抗文本攻击防御方法、系统、介质、计算机设备及终端。
背景技术
目前,随着深度学习技术的不断发展,基于深度学习的应用已经广泛存在与各个领域,而针对深度学习的安全问题也受到越来越多研究人员的关注。对抗样本攻击对基于深度学习的自然语言处理任务造成了很大的影响,在文本添加细微的扰动都会使得基于深度学习的文本分类器误分类,这对网络环境造成了巨大的安全隐患,针对文本对抗样本攻击的防御是提升网络安全的基础。
文本对抗样本的防御方法主要是针对不同攻击方法设定的,现有的攻击方法可以分类以下几种类型:基于视觉相似性的同形字符攻击,针对单词中字符的添加、交换、删除等字符级攻击;基于语义相似性的同义词或近义词替换等词语级攻击;添加无意义或有特定意义的短语或句子等相关的句子级攻击。识别并恢复文本中的细微扰动是防御文本对抗样本的核心,但是目前针对文本对抗样本攻击的防御研究还相对较少,并且有一定的局限性,基本所有的防御方法都是针对一种形式的攻击进行的,同时还需要知道模型参数或者重新训练模型,这样的方式很难针对现实的攻击进行防御。因此针对文本对抗样本的防御还有很大的研究空间与,同时对提高基于深度学习文本任务应用的安全性与鲁棒性也有十分重要的实际应用价值。
通过上述分析,现有技术存在的问题及缺陷为:目前针对文本对抗样本攻击的防御研究还相对较少,并且有一定的局限性,基本所有的防御方法都是针对一种形式的攻击进行的,同时还需要知道模型参数或者重新训练模型,这样的方式很难针对现实的攻击进行防御。
解决以上问题及缺陷的难度为:目前文本对抗样本攻击按照不同粒度可以分为很多种形式,通用的文本对抗防御需要了解每一种攻击的原理并有针对性的进行防御,同时在防御过程中需要保证文本的语义不变性,在成功防御的同时还要使文本具有较高的可读性。
解决以上问题及缺陷的意义为:文本对抗样本的有效防御,可以提高基于深度学习文本分类器的分类效果,准确的分类可以有效保证互联网文本的安全,减少广告与恶意样本的干扰,进一步提高互联网的安全。
发明内容
针对现有深度学习网络存在的文本对抗攻击防御问题,本发明提供了一种对抗文本攻击防御方法、系统、介质、计算机设备及终端,尤其涉及一种针对多重攻击形式的面向英文文本分类的对抗样本防御方法及系统。
本发明是这样实现的,一种对抗文本攻击防御方法,所述对抗文本攻击防御方法包括以下步骤:
本发明提出了一种简单通用的对抗文本防御方法,通过同形恢复、拼写检查与方向翻译三个不同的模块对引文文本进行处理,以达到对文本对抗样本攻击的有效防御,相较于其他只针对单粒度的防御,本发明可以防御目前所有对抗文本的攻击。
步骤一,对文本数据预处理;
经过与处理的文本可以获取有效保持文本语义同时删除一些无用的符号,对字符级攻击进行初步防御。
步骤二,同型字符攻击防御;
针对字符级的同形攻击进行防御,能有效恢复文本分类模型的分类精度。
步骤三,字符级对抗样本防御;
除添加无意义的标点与同形字符攻击,针对单词内不修改的文本对抗样本攻击进行防御,提高模型分类精度。
步骤四,词语级对抗样本防御;
在保证文本语义的前提下,对文本进行词语级防御,针对替换同义词的词语级攻击进行文本语义重建。
步骤五,生成新的防御文本。
修改上一步骤中重建的文本,使其语法更加通顺,语义更加完整,防御效果更佳。
进一步,所述步骤一中的对文本数据预处理包括:
清理数据,删除掉无用的符号和各种标签;
将文本数据进行读取,对文本中的空格、标点符合以及其他的无用字符进行删除,并重新保存为新的文本数据。
进一步,所述步骤二中的同型字符攻击防御包括:
(1)对文本进行检测同形字符检测;
将步骤一保存文本进行读取,将文本的每一条数据中的所有字符转换成Unicode编码,逐个将字符编码与标准的ASCII码进行比较,若字符的Unicode编码均在ASCII码的范围之内,则将文本存储于文件S11中,否则将文本存入文件S12中。
(2)文本中包含的同形字符进行恢复;
读取文本文件S12,使用Python中的Homoglyphs模块来对文本中包含的同形字符进行恢复,将恢复的文本加入到S11中保存并形成新的文件S2。
进一步,所述步骤三中的字符级对抗样本防御包括:
(1)对文本进行拼写检查;
读取文本文件S2,使用Python中的pyenchan模块对文本中的单词进行拼写检测,若文本中没有包含拼写错误的单词则将文本存于文件S21中,否则将有拼写错误的单词存于文件S22中。
(2)对拼写矫正工具ScRNN进行优化改进;
1)对文本分词方式进行处理;
改变原有英文单词的分词方法,使用空格对英文文本进行分词,使得所有包含缩写的单词可以成为一个整体。
2)对文本训练集进行扩充;
选择IMDb数据集的随机一部分和SST数据集的全部作为ScRNN的训练数据的候选集,打乱后再随机筛选出一部分文本数据,使得出现的词语数量控制在25000以下。
3)对训练过程中单词错误类型进行扩充;
允许三个字母以上的单词修改首尾字母,同时扩充错误单词修改方式,包括插入、删除、替换、交换以及字母与其在键盘相邻的字母替换。
4)在单词特征表示增加上下文关系的表示;
使用ElMo对文本中的每一个单词进行基于上下文的分值计算,将计算所得的分值加入到单词特征表示的维度中,作为一个统一的整体。
(3)训练优化后的拼写矫正工具ScRNN;
(4)对文本进行拼写矫正;
读取文件S22,将文本输入ScRNN以得到矫正后的文本,并将矫正后的文本添加的文件S21中保存并形成新的文件S3。
进一步,所述步骤四中的词语级对抗样本防御包括:
读取文件S3输入到谷歌的API中进行反向翻译,通过翻译对文本进行释义重述,保存重述的文本S4。
进一步,所述步骤五中的生成新的防御文本包括:
读取文本S4使用语法矫正工具grammarly对文件进行语法修改以生成防御文本。
本发明的另一目的在于提供一种应用所述的对抗文本攻击防御方法的对抗文本攻击防御系统,所述对抗文本攻击防御系统包括:
文本数据预处理模块,用于进行数据清理,并删除掉无用的符号和标签;
同型字符攻击防御模块,用于对文本进行检测同形字符检测,并将文本中包含的同形字符进行恢复;
字符级对抗样本防御模块,用于对文本进行拼写检查,对拼写矫正工具ScRNN进行优化改进和训练,进而对文本进行拼写矫正;
词语级对抗样本防御模块,用于读取文件S3输入到谷歌的API中进行反向翻译,通过翻译对文本进行释义重述,保存重述的文本S4;
新的防御文本生成模块,用于读取文本S4使用语法矫正工具grammarly对文件进行语法修改以生成防御文本。
本发明的另一目的在于提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
对文本数据预处理,清理数据,删除掉无用的符号和各种标签;同型字符攻击防御,对文本进行检测同形字符检测,文本中包含的同形字符进行恢复;字符级对抗样本防御,包括对文本进行拼写检查,对拼写矫正工具ScRNN进行优化改进,训练优化后的拼写矫正工具ScRNN,并对文本进行拼写矫正;
词语级对抗样本防御,读取文件S3输入到谷歌的API中进行反向翻译,通过翻译对文本进行释义重述,保存重述的文本S4;生成新的防御文本,读取文本S4使用语法矫正工具grammarly对文件进行语法修改以生成防御文本。
本发明的另一目的在于提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
对文本数据预处理,清理数据,删除掉无用的符号和各种标签;同型字符攻击防御,对文本进行检测同形字符检测,文本中包含的同形字符进行恢复;字符级对抗样本防御,包括对文本进行拼写检查,对拼写矫正工具ScRNN进行优化改进,训练优化后的拼写矫正工具ScRNN,并对文本进行拼写矫正;
词语级对抗样本防御,读取文件S3输入到谷歌的API中进行反向翻译,通过翻译对文本进行释义重述,保存重述的文本S4;生成新的防御文本,读取文本S4使用语法矫正工具grammarly对文件进行语法修改以生成防御文本。
本发明的另一目的在于提供一种信息数据处理终端,所述信息数据处理终端用于实现所述的对抗文本攻击防御系统。
结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明提供的对抗文本攻击防御方法,在保证一定的语义和可读性的同时,对文本中包含的所有同形字符进行恢复,使得文本中同形攻击不会再对分类器造成影响;其次,检查文本中包含的拼写错误,同时对错误的单词进行矫正,不仅有效防御了字符级的对抗样本还可以帮助完善文本本身的语义;最后,对文本进行反向翻译,通过对文本的释义重述在一定程度上缓解词语级对抗样本的同义词攻击,提高了文本分类器的分类准确率。本发明从源头上对文本进行了处理,无需获取及修改模型结构,简单高效的提高了文本对抗样本的防御性能。该方法不仅能够针对多种形式的对抗文本攻击,还能在不需要获取模型参数的情况下保留完整的语义信息并取得较高的防御效果。
本发明采用的方法是通过三个不同的模块对带有对抗扰动的文本进行处理,恢复文本本身的语义以消除扰动达到防御的效果。本发明可以在不获取模型参数以及数据且无需针对模型进行重训练的情况下,针对包含不同粒度的混合对抗文本攻击进行高效的防御,并且本发明能够有效的保留文本的语义。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的对抗文本攻击防御方法流程图。
图2是本发明实施例提供的对抗文本攻击防御方法原理图。
图3是本发明实施例提供的对抗文本攻击防御系统结构框图;
图中:1、文本数据预处理模块;2、同型字符攻击防御模块;3、字符级对抗样本防御模块;4、词语级对抗样本防御模块;5、新的防御文本生成模块。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种对抗文本攻击防御方法、系统、介质、计算机设备及终端,下面结合附图对本发明作详细的描述。
如图1所示,本发明实施例提供的对抗文本攻击防御方法包括以下步骤:
S101,对文本数据预处理;
S102,同型字符攻击防御;
S103,字符级对抗样本防御;
S104,词语级对抗样本防御;
S105,生成新的防御文本。
本发明实施例提供的对抗文本攻击防御方法原理图如图2所示。
如图3所示,本发明实施例提供的对抗文本攻击防御系统包括:
文本数据预处理模块1,用于进行数据清理,并删除掉无用的符号和标签;
同型字符攻击防御模块2,用于对文本进行检测同形字符检测,并将文本中包含的同形字符进行恢复;
字符级对抗样本防御模块3,用于对文本进行拼写检查,对拼写矫正工具ScRNN进行优化改进和训练,进而对文本进行拼写矫正;
词语级对抗样本防御模块4,用于读取文件S3输入到谷歌的API中进行反向翻译,通过翻译对文本进行释义重述,保存重述的文本S4;
新的防御文本生成模块5,用于读取文本S4使用语法矫正工具grammarly对文件进行语法修改以生成防御文本。
下面结合具体实施例对本发明的技术方案作进一步描述。
本发明主要是针对文本对抗样本的高效防御技术,在保证一定的语义和可读性的同时,提供一种针对多重攻击形式的英文文本的对抗样本防御方法。
本发明所提供的技术方案是,一种对抗文本攻击防御方法,主要特征包括以下步骤:
步骤1:对文本数据预处理;
步骤1.1:清理数据,删除掉无用的符号和各种标签;
将文本数据进行读取,对文本中的空格、标点符合以及一些其他的无用字符进行删除,并重新保存为新的文本数据。
由于有些字符级的对抗文本会在单词或句子中加入无意义的符号进行对抗攻击,清理数据不仅是文本预处理的基本步骤,也可以删除句子中这些恶意添加的扰动,针对这类攻击进行有效的防御。
步骤2:同型字符攻击防御;
由于有些字符级的对抗文本会在单词或句子中加入无意义的符号进行对抗攻击,清理数据不仅是文本预处理的基本步骤,也可以删除句子中这些恶意添加的扰动,针对这类攻击进行有效的防御。
步骤2.1:对文本进行检测同形字符检测;
将步骤1.1保存文本进行读取,将文本的每一条数据中的所有字符转换成Unicode编码,逐个将字符编码与标准的ASCII码进行比较,若都字符的Unicode编码都在ASCII码的范围之内,则将文本存储于文件S11中,反之将文本存入文件S12中。
步骤2.2:文本中包含的同形字符进行恢复;
读取文本文件S12,使用Python中的Homoglyphs模块来对文本中包含的同形字符进行恢复,将恢复的文本加入到S11中保存并形成新的文件S2。
步骤3:字符级对抗样本防御;
除了添加无意义的符号,文本字符级对抗攻击还有对单词中的字符进行添加或修改等操作的,这种操作会造成单词的拼写错误,因此我们需要利用文本进行拼写错误检查,先判断时候存在字符级攻击,使用拼写矫正结合上下文对单词进行矫正,同时可以进一步对同形攻击中没有恢复的字符进行矫正。
步骤3.1:对文本进行拼写检查;
读取文本文件S2,使用Python中的pyenchan模块对文本中的单词进行拼写检测,若文本中没有包含拼写错误的单词则将文本存于文件S21中,反之将有拼写错误的单词存于文件S22中。
步骤3.2:对拼写矫正工具ScRNN进行优化改进;
步骤3.2.1:对文本分词方式进行处理;
改变原有英文单词的分词方法,使用空格对英文文本进行分词,使得所有包含缩写的单词可以成为一个整体。
步骤3.2.2:对文本训练集进行扩充;
选择IMDb数据集的随机一部分和SST数据集的全部作为ScRNN的训练数据的候选集,打乱后再随机筛选出一部分文本数据,使得出现的词语数量控制在25000以下。
步骤3.2.3:对训练过程中单词错误类型进行扩充;
允许三个字母以上的单词修改首尾字母,同时扩充错误单词修改方式,包括插入、删除、替换、交换以及字母与其在键盘相邻的字母替换。
步骤3.2.4:在单词特征表示增加上下文关系的表示;
使用ElMo对文本中的每一个单词进行基于上下文的分值计算,将计算所得的分值加入到单词特征表示的维度中,作为一个统一的整体。
步骤3.3:训练优化后的拼写矫正工具ScRNN;
步骤3.4:对文本进行拼写矫正;
读取文件S22,将文本输入ScRNN以得到矫正后的文本,并将矫正后的文本添加的文件S21中保存并形成新的文件S3。
步骤4:词语级对抗样本防御;
步骤4.1:读取文件S3输入到谷歌的API中进行反向翻译,通过翻译对文本进行释义重述,保存重述的文本S4。
步骤5:生成新的防御文本。
步骤5.1:读取文本S4使用语法矫正工具grammarly对文件进行语法修改以生成防御文本。
本发明采用的方法是通过三个不同的模块对带有对抗扰动的文本进行处理,恢复文本本身的语义以消除扰动达到防御的效果。本发明可以在不获取模型参数以及数据且无需针对模型进行重训练的情况下,针对包含不同粒度的混合对抗文本攻击进行高效的防御,并且本发明能够有效的保留文本的语义。
下面结合实验对本发明的技术效果作详细的描述。
本发明还通过一些实验验证了所提出防御方法的有效性,分别针对了三个数据集(IMDb与SST是英文电影评论数据集,AG是新闻分类数据集)和三个典型的深度学习墨子那个,其防御结果如表1所示(初始分类准确率/混合攻击后的准确率/防御后的准确率)。
表1文本对抗样本防御效果
|
TextCNN |
LSTM |
biLSTM |
IMDB |
86.35/7.3/72 |
85.7/12.55/73.5 |
75.1/8.65/57.65 |
SST |
79.04/42.15/69.05 |
83.2/39.7/75.23 |
79.6/45.7/65.1 |
AG |
90.37/27/58.7 |
98.79/29.5/57.8 |
90.04/28.2/57.2 |
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如DVD)、或者半导体介质(例如固态硬盘Solid StateDisk(SSD))等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。