针对文本分类器的自然对抗样本生成方法及相关装置转让专利

申请号 : CN202110884051.5

文献号 : CN113326356B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张华高浩然杨兴国涂腾飞王华伟秦素娟高飞

申请人 : 北京邮电大学

摘要 :

本公开提供一种针对文本分类器的自然对抗样本生成方法及相关装置,将文本样本所对应的离散向量映射到连续空间中,并利用梯度在连续空间中寻找通用扰动,并通过控制噪声的更新阈值来进一步平衡攻击率和自然性之间的关系。通过这种通用扰动生成对抗样本,能够保证样本集中任意样本添加通用扰动后,均具有良好的自然语言特性,并保持了与原始样本高度的相似性,由此高效和准确的实现了针对文本分类器的自然对抗样本的生成。

权利要求 :

1.一种针对文本分类器的自然对抗样本生成方法,包括:步骤S100:获取目标文本分类器所对应的文本样本;

步骤S110:生成所述文本样本对应的第一离散向量,并生成所述第一离散向量对应的连续向量;

步骤S120:对所述连续向量进行降维,生成所述连续向量对应的潜在向量;

步骤S130:确定是否存在上一次迭代,当存在上一次迭代时,获取上一次迭代中步骤S180生成的确定噪声作为当前迭代的初始噪声;当不存在上一次迭代时,利用正态分布随机生成当前迭代的所述初始噪声;

步骤S140:将当前迭代的所述初始噪声添加至所述潜在向量中,生成所述潜在向量对应的第一连续空间向量;

步骤S150:对所述第一连续空间向量进行升维至与所述连续向量的维度相同,生成所述第一连续空间向量对应的第二连续空间向量;

步骤S160:生成所述第二连续空间向量对应的第二离散向量;

步骤S170:利用所述目标文本分类器对所述第二离散向量进行文本分类,获得所述第二离散向量对应的类别结果,将所述类别结果与所述文本样本对应的预设类别结果的交叉熵作为损失;并确定当前迭代次数是否小于最大迭代次数,当小于时执行步骤S180,当等于时执行步骤S190;

步骤S180:计算所述损失对于当前迭代的所述初始噪声的求导结果,将当前迭代的所述初始噪声与所述求导结果的和作为当前迭代的所述确定噪声,并转到执行步骤S130;

步骤S190:针对各次迭代分别对应的所述损失,获取最大的所述损失对应的所述第二离散向量,作为所述文本样本对应的所述自然对抗样本。

2.根据权利要求1所述的方法,其中,利用编码器生成所述第一离散向量对应的所述连续向量;所述编码器包括:嵌入层和三个CNN卷积层;

其中,所述嵌入层和三个所述CNN卷积层依次串联;所述嵌入层的输入维度为11004;所述嵌入层的嵌入维度为300;三个所述CNN卷积层的过滤器的大小分别为500、700和1000;三个所述CNN卷积层的步长分别为1、2和2;三个所述CNN卷积层的上下文窗口分别为3、3和3。

3.根据权利要求1所述的方法,其中,利用逆转器对所述连续向量进行降维,生成所述连续向量对应的所述潜在向量;所述逆转器包括:三个全连接层;

其中,前两个所述全连接层依次对接BN批标准化和Relu激活函数;三个所述全连接层的输出维度分别为300、300和100。

4.根据权利要求1所述的方法,其中,利用生成器对所述第一连续空间向量进行升维至与所述连续向量的维度相同,生成所述第一连续空间向量对应的所述第二连续空间向量;

所述生成器包括三个全连接层;

其中,前两个所述全连接层依次对接BN批标准化和Relu激活函数;三个所述全连接层的输出维度分别为100、300和300。

5.根据权利要求1所述的方法,其中,利用解码器生成所述第二连续空间向量对应的所述第二离散向量;所述解码器包括:Lstm单元和一个全连接层;

其中,所述Lstm单元与所述全连接层串联;所述Lstm单元的输入维度为600;所述Lstm单元的隐藏维度为300;所述全连接层的输出维度为11004。

6.根据权利要求1所述的方法,其中,在所述计算所述损失对于当前迭代的所述初始噪声的求导结果,将当前迭代的所述初始噪声与所述求导结果的和作为当前迭代的所述确定噪声之后,还包括:

响应于确定当前迭代生成的所述确定噪声与利用正态分布随机生成的所述初始噪声的差大于阈值,利用投影法处理当前迭代生成的所述确定噪声以使处理后的当前迭代生成的所述确定噪声与利用正态分布随机生成的所述初始噪声的差不大于所述阈值,并将处理后的当前迭代生成的所述确定噪声用于下一次迭代。

7.一种针对文本分类器的自然对抗样本生成装置,包括:文本样本获取模块,被配置为执行步骤S100:获取目标文本分类器所对应的文本样本;

连续向量生成模块,被配置为执行步骤S110:生成所述文本样本对应的第一离散向量,并生成所述第一离散向量对应的连续向量;

潜在向量生成模块,被配置为执行步骤S120:对所述连续向量进行降维,生成所述连续向量对应的潜在向量;

噪声获取模块,被配置为执行步骤S130:确定是否存在上一次迭代,当存在上一次迭代时,获取上一次迭代中步骤S180生成的确定噪声作为当前迭代的初始噪声;当不存在上一次迭代时,利用正态分布随机生成当前迭代的所述初始噪声;

第一连续空间向量生成模块,被配置为执行步骤S140:将当前迭代的所述初始噪声添加至所述潜在向量中,生成所述潜在向量对应的第一连续空间向量;

第二连续空间向量生成模块,被配置为执行步骤S150:对所述第一连续空间向量进行升维至与所述连续向量的维度相同,生成所述第一连续空间向量对应的第二连续空间向量;

第二离散向量生成模块,被配置为执行步骤S160:生成所述第二连续空间向量对应的第二离散向量;

损失生成模块,被配置为执行步骤S170:利用所述目标文本分类器对所述第二离散向量进行文本分类,获得所述第二离散向量对应的类别结果,将所述类别结果与所述文本样本对应的预设类别结果的交叉熵作为损失;并确定当前迭代次数是否小于最大迭代次数,当小于时执行步骤S180,当等于时执行步骤S190;

噪声生成模块,被配置为执行步骤S180:计算所述损失对于当前迭代的所述初始噪声的求导结果,将当前迭代的所述初始噪声与所述求导结果的和作为当前迭代的所述确定噪声,并转到执行步骤S130;

自然对抗样本生成模块,被配置为执行步骤S190:针对各次迭代分别对应的所述损失,获取最大的所述损失对应的所述第二离散向量,作为所述文本样本对应的所述自然对抗样本。

8.根据权利要求7所述的装置,其中,所述噪声生成模块中还包括噪声调整子模块;

所述噪声调整子模块,被配置为响应于确定当前迭代生成的所述确定噪声与利用正态分布随机生成的所述初始噪声的差大于阈值,利用投影法处理当前迭代生成的所述确定噪声以使处理后的当前迭代生成的所述确定噪声与利用正态分布随机生成的所述初始噪声的差不大于所述阈值,并将处理后的当前迭代生成的所述确定噪声用于下一次迭代。

9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1至6任意一项所述的方法。

10.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行权利要求1至6任一所述方法。

说明书 :

针对文本分类器的自然对抗样本生成方法及相关装置

技术领域

[0001] 本公开涉及对抗样本技术领域,尤其涉及一种针对文本分类器的自然对抗样本生成方法及相关装置。

背景技术

[0002] 对抗样本目前在计算机视觉领域已经有了比较深入的研究和比较广泛的应用。例如,可以通过在图像输入上加入精心设计的扰动,使得接收该输入的模型产生完全错误的
输出,而这一扰动本身却非常微小,甚至对于人眼是不可见的。
[0003] 对抗样本产生作用往往意味着模型使用了不鲁棒的特征,这会使得模型本身也不鲁棒。对抗训练通过数据增强的方式,将对抗样本按比例掺入训练集中,在新的数据集上训
练得到的模型不再使用这些不鲁棒的特征,从而会使得模型的鲁棒性更强。
[0004] 如何在自然语言处理任务上有效地构建对抗样本在目前而言还存在诸多挑战。首先,由于句子空间是离散的,沿梯度方向进行扰动的难度很高,梯度方向代表了最有效的扰
动方向,无法有效地利用梯度就无法高效地生成对抗样本;其次,增删改字词的操作难以保
证句子的通顺性。也就是说,现有技术中想要将对抗样本应用在自然语言处理领域中,具有
梯度难以利用和句子的通顺性难以保障的问题。

发明内容

[0005] 有鉴于此,本公开的目的在于提出一种针对文本分类器的自然对抗样本生成方法及相关装置。
[0006] 基于上述目的,本公开提供了一种针对文本分类器的自然对抗样本生成方法,包括:
[0007] 获取目标文本分类器所对应的文本样本;
[0008] 生成所述文本样本对应的第一离散向量,并生成所述第一离散向量对应的连续向量;
[0009] 对所述连续向量进行降维,生成所述连续向量对应的潜在向量;
[0010] 响应于确定当前迭代次数为一,利用正态分布随机获取噪声;响应于确定当前迭代次数不为一,获取上一次迭代生成的所述噪声;
[0011] 将所述噪声添加至所述潜在向量中,生成所述潜在向量对应的第一连续空间向量;
[0012] 对所述第一连续空间向量进行升维至与所述连续向量的维度相同,生成所述第一连续空间向量对应的第二连续空间向量;
[0013] 生成所述第二连续空间向量对应的第二离散向量;
[0014] 利用所述目标文本分类器对所述第二离散向量进行文本分类,获得所述第二离散向量对应的类别结果,并将所述类别结果与所述文本样本对应的预设类别结果的交叉熵作
为损失;
[0015] 响应于确定当前迭代次数小于最大迭代次数,计算所述损失对于所述噪声的求导结果,并将所述噪声与所述求导结果的和作为当前迭代生成的所述噪声以用于下一次迭
代;
[0016] 响应于确定所述当前迭代次数等于所述最大迭代次数,针对各次迭代分别对应的所述损失,获取最大的所述损失对应的所述第二离散向量,作为所述文本样本对应的所述
自然对抗样本。
[0017] 基于同一发明构思,本公开提供了一种针对文本分类器的自然对抗样本生成装置,包括:
[0018] 文本样本获取模块,被配置为获取目标文本分类器所对应的文本样本;
[0019] 连续向量生成模块,被配置为生成所述文本样本对应的第一离散向量,并生成所述第一离散向量对应的连续向量;
[0020] 潜在向量生成模块,被配置为对所述连续向量进行降维,生成所述连续向量对应的潜在向量;
[0021] 噪声获取模块,被配置为响应于确定当前迭代次数为一,利用正态分布随机获取噪声;响应于确定当前迭代次数不为一,获取上一次迭代生成的所述噪声;
[0022] 第一连续空间向量生成模块,被配置为将所述噪声添加至所述潜在向量中,生成所述潜在向量对应的第一连续空间向量;
[0023] 第二连续空间向量生成模块,被配置为对所述第一连续空间向量进行升维至与所述连续向量的维度相同,生成所述第一连续空间向量对应的第二连续空间向量;
[0024] 第二离散向量生成模块,被配置为生成所述第二连续空间向量对应的第二离散向量;
[0025] 损失生成模块,被配置为利用所述目标文本分类器对所述第二离散向量进行文本分类,获得所述第二离散向量对应的类别结果,并将所述类别结果与所述文本样本对应的
预设类别结果的交叉熵作为损失;
[0026] 噪声生成模块,被配置为响应于确定当前迭代次数小于最大迭代次数,计算所述损失对于所述噪声的求导结果,并将所述噪声与所述求导结果的和作为当前迭代生成的所
述噪声以用于下一次迭代;
[0027] 自然对抗样本生成模块,被配置为响应于确定所述当前迭代次数等于所述最大迭代次数,针对各次迭代分别对应的所述损失,获取最大的所述损失对应的所述第二离散向
量,作为所述文本样本对应的所述自然对抗样本。
[0028] 基于同一发明构思,本公开提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述的方
法。
[0029] 基于同一发明构思,本公开提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行上述方法。
[0030] 从上面所述可以看出,本公开提供的针对文本分类器的自然对抗样本生成方法及相关装置,将文本样本所对应的离散向量映射到连续空间中,并利用梯度在连续空间中寻
找通用扰动,在一些实施例中,并通过控制噪声的更新阈值来进一步平衡攻击率和自然性
之间的关系。通过这种通用扰动生成对抗样本,能够保证样本集中任意样本添加通用扰动
后,均具有良好的自然语言特性,并保持了与原始样本高度的相似性,由此高效和准确的实
现了针对文本分类器的自然对抗样本的生成。

附图说明

[0031] 为了更清楚地说明本公开或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的
实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附
图获得其他的附图。
[0032] 图1为本公开实施例提供的针对文本分类器的自然对抗样本生成方法的一种流程示意图;
[0033] 图2为本公开实施例提供的针对文本分类器的自然对抗样本生成装置的一种结构示意图;
[0034] 图3为本公开实施例所提供的一种更为具体的电子设备硬件结构示意图。

具体实施方式

[0035] 为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
[0036] 需要说明的是,除非另外定义,本公开实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开实施例中使用的“第
一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的
组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在
该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”
等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接
的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位
置改变后,则该相对位置关系也可能相应地改变。
[0037] 如背景技术部分所述,相关技术在自然语言处理任务中构建对抗样本时,具有梯度难以利用和句子的通顺性难以保障的问题。具体的,一方面,文本数据具有离散性质,因
此不能直接应用图像领域的扰动生成方法,离散数据沿梯度方向进行扰动的难度很高,梯
度方向代表了最有效的扰动方向,无法有效地利用梯度就无法高效地生成对抗样本;另一
方面,在文本领域中,小的扰动通常是可以明显感知到的,例如替换句子中的一个单词可能
会极大地改变句子的语义,因此增加了在文本领域产生扰动的难度。例如,Papernot等人通
过将序列中随机选择的单词替换为在嵌入空间中梯度方向上与它最接近的单词来产生新
样本,由于随机选择替换文本序列中的单词,将导致对抗样本中出现语法错误的概率非常
高,并且容易被系统或人发现。
[0038] 为了解决上述问题,本公开利用编码器和逆转器将文本样本所对应的离散向量映射到连续空间中,并利用梯度在连续空间中寻找通用扰动,并通过控制噪声的更新阈值来
进一步平衡攻击率和自然性之间的关系,通过这种通用扰动生成对抗样本,能够保证样本
集中任意样本添加通用扰动后,均具有良好的自然语言特性,并保持了与原始样本高度的
相似性,由此高效、准确的实现了针对文本分类器的自然对抗样本的生成。
[0039] 参考图1,其为本公开实施例提供的针对文本分类器的自然对抗样本生成方法的一种流程示意图。针对文本分类器的自然对抗样本生成方法,包括:
[0040] S100、获取目标文本分类器所对应的文本样本。
[0041] 文本分类是指在预定义的分类体系下,根据文本的特征(内容或属性),将给定文本与一个或多个类别相关联的过程。文本分类任务的最终目的是要找到一个有效的映射函
数,准确地实现域到值的映射,这个映射函数实际上就是通常所说的分类器。
[0042] 本公开所讨论的文本分类器,是基于机器学习的文本分类器,该文本分类器使用训练样本进行特征选择和分类器参数训练,根据选择的特征对待分类的输入样本进行形式
化,然后输入到分类器进行类别判定,最终得到输入样本的类别。
[0043] 对抗样本是指在原样本(输入样本)的基础之上,进行一定的扰动,最终使得分类器出错(输出错误的类别)的样本。对抗样本产生作用往往意味着分类器使用了不鲁棒的特
征,这会使得分类器本身也不鲁棒,基于这样的原理,对抗样本可以用于攻击分类器,也可
以用于对分类器进行增强训练,例如,在对抗训练中通过数据增强的方式,将对抗样本按比
例掺入训练集中,在新的数据集上训练得到的分类器不再使用这些不鲁棒的特征,从而会
使得分类器的鲁棒性更强。
[0044] 相关技术中生成的对抗样本缺少语义上的意义,简单来说,就是这样的对抗样本不能保证且往往破坏了句子的通顺性,这样的对抗样本是不自然的,容易被系统或人发现。
而本公开得到的对抗样本是可以映射到合理的语义空间中的,因而往往显得自然,称为自
然对抗样本。
[0045] 因此,想要生成针对文本分类器的自然对抗样本,首先需要确定目标文本分类器,并获取目标文本分类器所对应的文本样本,从而在该文本样本的基础上,进行一定的扰动,
以生成针对该目标文本分类器的自然对抗样本。简单说明一下文本分类器的训练过程。训
练文本分类器的文本样本集中包括多个文本样本,对于每一个文本样本,均预设一类别结
果,将文本样本所对应的离散向量输入文本分类器,输出文本样本的类别结果,通过预设的
类别结果和输出的类别结果之间的损失,进行文本分类器的迭代优化。
[0046] 获取目标文本分类器所对应的文本样本,包括至少两种情况:随机获取目标文本分类器所对应的文本样本和针对某一特定类别获取目标文本分类器所对应的文本样本。
[0047] 在一些实施方式中,随机获取目标文本分类器所对应的文本样本。不同类别的文本样本,对应有不同的类别结果,且对于任一文本样本,其对应的类别结果是有限的,一般
的,一个特定的文本样本,不可能囊括目标文本分类器所对应的所有的类别结果,因此,随
机获取目标文本分类器所对应的文本样本,生成的自然对抗样本,对于目标文本分类器的
攻击或者训练是不特定的。
[0048] 在一些实施方式中,针对某一特定类别,获取目标文本分类器所对应的文本样本。在这种情况下,攻击者或者训练者可以控制想要攻击或者训练的目标文本分类器所对应的
类别结果,具体的,意图攻击或者训练目标文本分类器的哪一类别结果,则获取该类别结果
对应的文本样本。这种情况下,对于目标文本分类器的攻击或者训练是有针对性的,且对于
其他类别结果的影响较上一实施方式小。
[0049] 获取的文本样本可以是一个或者多个,其中,对于每一个文本样本,分别执行本公开所述的方法。
[0050] S110、生成所述文本样本对应的第一离散向量,并生成所述第一离散向量对应的连续向量。
[0051] 在一些实施例中,利用编码器生成所述第一离散向量对应的所述连续向量;所述编码器包括:嵌入层和三个CNN卷积层;
[0052] 其中,所述嵌入层和三个所述CNN卷积层依次串联;所述嵌入层的输入维度为11004;所述嵌入层的嵌入维度为300;三个所述CNN卷积层的过滤器的大小分别为500、700
和1000;三个所述CNN卷积层的步长分别为1、2和2;三个所述CNN卷积层的上下文窗口分别
为3、3和3。
[0053] 作为一个示例,输入编码器的第一离散向量x的大小为[batch_size,10],首先进入嵌入层,该嵌入层的输入维度为11004,嵌入维度为300,则output_shape为[batch_size,
10,300],经过下一层之前reshape为[batch_size,300,10]。
[0054] 接着进入第一卷积层加BN层(批标准化层)加激活函数层,第一卷积层的输入通道为300、输出通道为500、窗口大小为3、步长为1,激活函数为LeakyReLU,则output_shape为
[batch_size, 500,8]。
[0055] 然后进入第二卷积层加BN层加激活函数层,第二卷积层的输入通道为500、输出通道为700、窗口大小为3、步长为2,激活函数为LeakyReLU,则output_shape为[batch_size, 
700,3]。
[0056] 之后进入第三卷积层加BN层加激活函数层,第三卷积层的输入通道为700、输出通道为1000、窗口大小为3、步长为2,激活函数为LeakyReLU,则output_shape为[batch_size, 
1000,1],经过下一层之前reshape为[batch_size,1000]。
[0057] 最后再串接一个输出维度为300的全连接层,则out_shape为[batch_size, 300]。
[0058] S120、对所述连续向量进行降维,生成所述连续向量对应的潜在向量。
[0059] 在一些实施例中,利用逆转器对所述连续向量进行降维,生成所述连续向量对应的所述潜在向量;所述逆转器包括:三个全连接层;
[0060] 其中,前两个所述全连接层依次对接BN批标准化和Relu激活函数;三个所述全连接层的输出维度分别为300、300和100。
[0061] 作为一个示例,对于各全连接层应用所实现的维度变化即为:
[0062] [batchsize,300]‑>[batchsize,300]‑>[batchsize,100]。
[0063] 本公开利用编码器和逆转器将文本样本所对应的离散向量映射到连续空间中,将离散性质的数据转换为连续性质的数据,从而使得能够利用梯度在连续空间中寻找扰动。
克服了相关技术中由于文本数据具有离散性质,因此不能直接应用图像领域的扰动生成方
法,离散数据沿梯度方向进行扰动的难度很高,梯度方向代表了最有效的扰动方向,无法有
效地利用梯度就无法高效地生成对抗样本的问题。
[0064] S130、响应于确定当前迭代次数为一,利用正态分布随机获取噪声;响应于确定当前迭代次数不为一,获取上一次迭代生成的所述噪声。
[0065] 在第一次迭代时,由于没有上一次迭代,本公开利用正态分布随机获取噪声。可选的,利用扰动自身分布满足正态分布的特点,如果出现小概率事件(概率低于阈值),那么该
扰动被认为是噪声。
[0066] 在非第一次迭代时,本公开获取上一次迭代生成的噪声作为本次迭代使用的噪声。一次次在上一次迭代生成噪声并在下一次迭代中使用的过程,正是利用梯度在连续空
间中寻找扰动的过程。
[0067] S140、将所述噪声添加至所述潜在向量中,生成所述潜在向量对应的第一连续空间向量。
[0068] 在文本样本的基础上,进行一定的扰动,潜在向量即文本样本此时的形态,噪声即加入的扰动。
[0069] S150、对所述第一连续空间向量进行升维至与所述连续向量的维度相同,生成所述第一连续空间向量对应的第二连续空间向量。
[0070] 在一些实施例中,利用生成器对所述第一连续空间向量进行升维至与所述连续向量的维度相同,生成所述第一连续空间向量对应的所述第二连续空间向量;所述生成器包
括三个全连接层;
[0071] 其中,前两个所述全连接层依次对接BN批标准化和Relu激活函数;三个所述全连接层的输出维度分别为100、300和300。
[0072] S160、生成所述第二连续空间向量对应的第二离散向量。
[0073] 在一些实施例中,利用解码器生成所述第二连续空间向量对应的所述第二离散向量;所述解码器包括:Lstm单元和一个全连接层;
[0074] 其中,所述Lstm单元与所述全连接层串联;所述Lstm单元的输入维度为600;所述Lstm单元的隐藏维度为300;所述全连接层的输出维度为11004。
[0075] S170、利用所述目标文本分类器对所述第二离散向量进行文本分类,获得所述第二离散向量对应的类别结果,并将所述类别结果与所述文本样本对应的预设类别结果的交
叉熵作为损失。
[0076] S180、响应于确定当前迭代次数小于最大迭代次数,计算所述损失对于所述噪声的求导结果,并将所述噪声与所述求导结果的和作为当前迭代生成的所述噪声以用于下一
次迭代。
[0077] 在一些实施方式中,在S180之后,还包括:
[0078] 响应于确定当前迭代生成的所述噪声与利用正态分布随机获取的所述噪声的差大于阈值,利用投影法处理当前迭代生成的所述噪声以使处理后的当前迭代生成的所述噪
声与利用正态分布随机获取的所述噪声的差不大于所述阈值,并将处理后的当前迭代生成
的所述噪声用于下一次迭代。
[0079] 投影法的公式表示如下:
[0080] ;
[0081] 其中,r表示当前迭代生成的噪声;r0表示利用正态分布随机获取的噪声;  为阈值。其中,噪声r和r0均为向量表示,下角标的2表示二范数,二范数是指空间上两个向量矩
阵的直线距离。
[0082] 投影法中,处理后的当前迭代生成的噪声r(由于处理后的当前迭代生成的噪声是对于当前迭代生成的噪声的修正,为了简洁,所以未引入新的参数表示),保留了r  ‑ r0向
量的方向,其模长为阈值 的大小。
[0083] 本公开通过控制噪声的更新阈值来进一步平衡攻击率和自然性之间的关系,以保证生成的对抗样本具有足够的自然性,避免攻击率过高而自然性不足的问题,通过这种噪
声扰动生成对抗样本,能够保证样本集中任意样本添加通用扰动后,均具有良好的自然语
言特性,并保持了与原始样本高度的相似性。
[0084] S190、响应于确定所述当前迭代次数等于所述最大迭代次数,针对各次迭代分别对应的所述损失,获取最大的所述损失对应的所述第二离散向量,作为所述文本样本对应
的所述自然对抗样本。
[0085] 本公开利用梯度在连续空间中寻找的扰动为通用扰动,通用扰动对应的通用对抗攻击不依赖于输入,可以添加到任何输入中。这使得可以使用相同的扰动实现对目标分类
器的攻击,降低了实现对目标分类器攻击的难度。并且,通用对抗攻击对于分类器的威胁性
更高,因此,本公开生成的自然对抗样本用于攻击或者训练文本分类器时效果更好。
[0086] 从上面所述可以看出,本公开提供的针对文本分类器的自然对抗样本生成方法,将文本样本所对应的离散向量映射到连续空间中,并利用梯度在连续空间中寻找通用扰
动,在一些实施例中,并通过控制噪声的更新阈值来进一步平衡攻击率和自然性之间的关
系。通过这种通用扰动生成对抗样本,能够保证样本集中任意样本添加通用扰动后,均具有
良好的自然语言特性,并保持了与原始样本高度的相似性,由此高效和准确的实现了针对
文本分类器的自然对抗样本的生成。
[0087] 需要说明的是,本公开实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种
分布式场景的情况下,这多台设备中的一台设备可以只执行本公开实施例的方法中的某一
个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
[0088] 需要说明的是,上述对本公开的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述
实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定
要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理
和并行处理也是可以的或者可能是有利的。
[0089] 基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种针对文本分类器的自然对抗样本生成装置。
[0090] 参考图2,所述针对文本分类器的自然对抗样本生成装置,包括:
[0091] 文本样本获取模块200,被配置为获取目标文本分类器所对应的文本样本。
[0092] 连续向量生成模块210,被配置为生成所述文本样本对应的第一离散向量,并生成所述第一离散向量对应的连续向量。
[0093] 潜在向量生成模块220,被配置为对所述连续向量进行降维,生成所述连续向量对应的潜在向量。
[0094] 噪声获取模块230,被配置为响应于确定当前迭代次数为一,利用正态分布随机生成噪声;响应于确定当前迭代次数不为一,获取上一次迭代生成的所述噪声。
[0095] 第一连续空间向量生成模块240,被配置为将所述噪声添加至所述潜在向量中,生成所述潜在向量对应的第一连续空间向量。
[0096] 第二连续空间向量生成模块250,被配置为对所述第一连续空间向量进行升维至与所述连续向量的维度相同,生成所述第一连续空间向量对应的第二连续空间向量。
[0097] 第二离散向量生成模块260,被配置为生成所述第二连续空间向量对应的第二离散向量。
[0098] 损失生成模块270,被配置为利用所述目标文本分类器对所述第二离散向量进行文本分类,获得所述第二离散向量对应的类别结果。并将所述类别结果与所述文本样本对
应的预设类别结果的交叉熵作为损失。
[0099] 噪声生成模块280,被配置为响应于确定当前迭代次数小于最大迭代次数,计算所述损失对于所述噪声的求导结果,并将所述噪声与所述求导结果的和作为当前迭代生成的
所述噪声以用于下一次迭代。
[0100] 在一些实施方式中,所述噪声生成模块280中还包括噪声调整子模块;
[0101] 所述噪声调整子模块,被配置为响应于确定当前迭代生成的所述噪声与利用正态分布随机获取的所述噪声的差大于阈值,利用投影法处理当前迭代生成的所述噪声以使处
理后的当前迭代生成的所述噪声与利用正态分布随机获取的所述噪声的差不大于所述阈
值,并将处理后的当前迭代生成的所述噪声用于下一次迭代。
[0102] 自然对抗样本生成模块290,被配置为响应于确定所述当前迭代次数等于所述最大迭代次数,针对各次迭代分别对应的所述损失,获取最大的所述损失对应的所述第二离
散向量,作为所述文本样本对应的所述自然对抗样本。
[0103] 为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本公开时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
[0104] 上述实施例的装置用于实现前述任一实施例中相应的针对文本分类器的自然对抗样本生成方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
[0105] 基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理
器执行所述程序时实现上任意一实施例所述的针对文本分类器的自然对抗样本生成方法。
[0106] 图3示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中
处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间
在设备内部的通信连接。
[0107] 处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个
或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方
案。
[0108] 存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储
操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案
时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
[0109] 输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/ 模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中
输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、
扬声器、振动器、指示灯等。
[0110] 通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式 
(例如移动网络、WIFI、蓝牙等)实现通信。
[0111] 总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
[0112] 需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运
行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实
现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
[0113] 上述实施例的电子设备用于实现前述任一实施例中相应的针对文本分类器的自然对抗样本生成方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
[0114] 基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指
令用于使所述计算机执行如上任一实施例所述的针对文本分类器的自然对抗样本生成方
法。
[0115] 本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或
其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器
(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器
(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读
存储器(CD‑ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或
其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
[0116] 上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的针对文本分类器的自然对抗样本生成方法,并且具有相应的方法实施例的有益效
果,在此不再赘述。
[0117] 需要说明的是,本公开的实施例还可以以下方式进一步描述:
[0118] 一种针对文本分类器的自然对抗样本生成方法,包括:
[0119] 获取目标文本分类器所对应的文本样本;
[0120] 生成所述文本样本对应的第一离散向量,并生成所述第一离散向量对应的连续向量;
[0121] 对所述连续向量进行降维,生成所述连续向量对应的潜在向量;
[0122] 响应于确定当前迭代次数为一,利用正态分布随机获取噪声;响应于确定当前迭代次数不为一,获取上一次迭代生成的所述噪声;
[0123] 将所述噪声添加至所述潜在向量中,生成所述潜在向量对应的第一连续空间向量;
[0124] 对所述第一连续空间向量进行升维至与所述连续向量的维度相同,生成所述第一连续空间向量对应的第二连续空间向量;
[0125] 生成所述第二连续空间向量对应的第二离散向量;
[0126] 利用所述目标文本分类器对所述第二离散向量进行文本分类,获得所述第二离散向量对应的类别结果,并将所述类别结果与所述文本样本对应的预设类别结果的交叉熵作
为损失;
[0127] 响应于确定当前迭代次数小于最大迭代次数,计算所述损失对于所述噪声的求导结果,并将所述噪声与所述求导结果的和作为当前迭代生成的所述噪声以用于下一次迭
代;
[0128] 响应于确定所述当前迭代次数等于所述最大迭代次数,针对各次迭代分别对应的所述损失,获取最大的所述损失对应的所述第二离散向量,作为所述文本样本对应的所述
自然对抗样本。
[0129] 可选的,其中,利用编码器生成所述第一离散向量对应的所述连续向量;所述编码器包括:嵌入层和三个CNN卷积层;
[0130] 其中,所述嵌入层和三个所述CNN卷积层依次串联;所述嵌入层的输入维度为11004;所述嵌入层的嵌入维度为300;三个所述CNN卷积层的过滤器的大小分别为500、700
和1000;三个所述CNN卷积层的步长分别为1、2和2;三个所述CNN卷积层的上下文窗口分别
为3、3和3。
[0131] 可选的,其中,利用逆转器对所述连续向量进行降维,生成所述连续向量对应的所述潜在向量;所述逆转器包括:三个全连接层;
[0132] 其中,前两个所述全连接层依次对接BN批标准化和Relu激活函数;三个所述全连接层的输出维度分别为300、300和100。
[0133] 可选的,其中,利用生成器对所述第一连续空间向量进行升维至与所述连续向量的维度相同,生成所述第一连续空间向量对应的所述第二连续空间向量;所述生成器包括
三个全连接层;
[0134] 其中,前两个所述全连接层依次对接BN批标准化和Relu激活函数;三个所述全连接层的输出维度分别为100、300和300。
[0135] 可选的,其中,利用解码器生成所述第二连续空间向量对应的所述第二离散向量;所述解码器包括:Lstm单元和一个全连接层;
[0136] 其中,所述Lstm单元与所述全连接层串联;所述Lstm单元的输入维度为600;所述Lstm单元的隐藏维度为300;所述全连接层的输出维度为11004。
[0137] 可选的,其中,在所述响应于确定当前迭代次数小于最大迭代次数,计算所述损失对于所述噪声的求导结果,并将所述噪声与所述求导结果的和作为当前迭代生成的所述噪
声以用于下一次迭代之后,还包括:
[0138] 响应于确定当前迭代生成的所述噪声与利用正态分布随机获取的所述噪声的差大于阈值,利用投影法处理当前迭代生成的所述噪声以使处理后的当前迭代生成的所述噪
声与利用正态分布随机获取的所述噪声的差不大于所述阈值,并将处理后的当前迭代生成
的所述噪声用于下一次迭代。
[0139] 一种针对文本分类器的自然对抗样本生成装置,包括:
[0140] 文本样本获取模块,被配置为获取目标文本分类器所对应的文本样本;
[0141] 连续向量生成模块,被配置为生成所述文本样本对应的第一离散向量,并生成所述第一离散向量对应的连续向量;
[0142] 潜在向量生成模块,被配置为对所述连续向量进行降维,生成所述连续向量对应的潜在向量;
[0143] 噪声获取模块,被配置为响应于确定当前迭代次数为一,利用正态分布随机获取噪声;响应于确定当前迭代次数不为一,获取上一次迭代生成的所述噪声;
[0144] 第一连续空间向量生成模块,被配置为将所述噪声添加至所述潜在向量中,生成所述潜在向量对应的第一连续空间向量;
[0145] 第二连续空间向量生成模块,被配置为对所述第一连续空间向量进行升维至与所述连续向量的维度相同,生成所述第一连续空间向量对应的第二连续空间向量;
[0146] 第二离散向量生成模块,被配置为生成所述第二连续空间向量对应的第二离散向量;
[0147] 损失生成模块,被配置为利用所述目标文本分类器对所述第二离散向量进行文本分类,获得所述第二离散向量对应的类别结果,并将所述类别结果与所述文本样本对应的
预设类别结果的交叉熵作为损失;
[0148] 噪声生成模块,被配置为响应于确定当前迭代次数小于最大迭代次数,计算所述损失对于所述噪声的求导结果,并将所述噪声与所述求导结果的和作为当前迭代生成的所
述噪声以用于下一次迭代;
[0149] 自然对抗样本生成模块,被配置为响应于确定所述当前迭代次数等于所述最大迭代次数,针对各次迭代分别对应的所述损失,获取最大的所述损失对应的所述第二离散向
量,作为所述文本样本对应的所述自然对抗样本。
[0150] 可选的,其中,所述噪声生成模块中还包括噪声调整子模块;
[0151] 所述噪声调整子模块,被配置为响应于确定当前迭代生成的所述噪声与利用正态分布随机获取的所述噪声的差大于阈值,利用投影法处理当前迭代生成的所述噪声以使处
理后的当前迭代生成的所述噪声与利用正态分布随机获取的所述噪声的差不大于所述阈
值,并将处理后的当前迭代生成的所述噪声用于下一次迭代。
[0152] 一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述的方法。
[0153] 一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行上述方法。
[0154] 所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例
或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如
上所述的本公开实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
[0155] 另外,为简化说明和讨论,并且为了不会使本公开实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此
外,可以以框图的形式示出装置,以便避免使本公开实施例难以理解,并且这也考虑了以下
事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本公开实施例的平台
的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,
电路)以描述本公开的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以
在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本公开实施例。因
此,这些描述应被认为是说明性的而不是限制性的。
[0156] 尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例
如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
[0157] 本公开实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本公开实施例的精神和原则之内,所做的任何省略、修改、等同替换、
改进等,均应包含在本公开的保护范围之内。