本文的不足之处在于可能会生成虽然能够迷惑RNN但是语意不通的句子。比如原句为 “I wouldn’t rent this one even on dollar rental night.”更改为 “Excellent wouldn’t rent this one even on dollar rental night.”
最后,对于所有的训练样本,将之前获得的热点短语按照样本的标签收集在一起。从这些短语中,我们确定了最常用的短语,称为热训练短语(Hot Training Phrases )。以Building类为例,下图展示了它的前10个htps。单词级DNN的HTPs可以用类似的方法获得,只是例子中热短语是通过寻找具有最大最大梯度的词向量直接识别的。
插入策略
对于一个给定的文本t,如果
F
(
t
)
=
c
,则该策略的目标是在t中插入一些新的文本项(攻击有效载荷),这可以有效地提升t对感兴趣的类c'的分类置信度
(
c
′
≠
c
)
,并且相对应的可以降低对原始类别c的置信度。如下图插入historic后可以将原本属于Company的类别分到Building类别。
修改策略
是通过略微操控输入中的一些HTPs来影响模型输出,主要方法为增加损失函数
J
(
F
,
t
,
c
)
,同时减少损失函数
J
(
F
,
t
,
c
)
,并且为了在不引起人类观察者注意,修改的方向应该是沿着损失函数
J
(
F
,
t
,
c
)
的梯度。主要的修改方式有两种,第一种是用常见的拼写错误替换正确的词汇film改成flim,第二种是将单词中的一些字符改编成视觉上外观相似的错误拼写,比如将小写字母“i”改成数字“1”。
过程优化
优化算法首先通过调用Perturb子程序S次以创建一组对原始句子的不同修饰来创建大小为S的初代
P
0
,然后,计算当前世代中每个种群成员的适应度,作为作为查询被攻击模型函数f得到的target标签预测概率。如果一个种群成员的预测标签与target标签相等,则优化完成。否则,将以与它们的适应度值成正比的概率随机采样当前一代的成对种群成员。然后,通过使用均匀分布从两个父句中独立采样,从一对父句中合成一个新的子句。最后,将Perturb子程序应用于结果子代。
根据上述约束,我们用同义词在输入文本中放置单词,用相似的命名实体(NEs)替换原始的NEs来生成对抗样本。NE是指在样本文本中具有特定含义的实体,如人名、位置、组织或专有名词等。用一个相似的NE替换原始文本中的一个NE会在语义上产生轻微的变化,但不会引起词汇或语法上的变化。因此假设当前输入样本属于
y
t
r
u
e
类,且字典
D
y
t
r
u
e
⊆
D
包含所有出现在文本中且属于类别
y
t
r
u
e
的NEs,则我们可以在补集字典
D
−
D
y
t
r
u
e
中使用最常见的命名实体
N
E
a
d
v
作为替代词,此外替代词
N
E
a
d
v
必须与原始NE的类型一致。
作者介绍而PWWS的单词替换策略如下,对于x中的每个单词
w
i
,使用WordNet为其构建一个同义词集
L
i
⊆
D
,该同义词集中包含
w
i
的所有同义词。如果
w
i
是一个命名实体(NE),且
N
E
a
d
v
与
L
i
具有类型一致的
w
i
,那么每一个
w
i
′
∈
L
i
都是
w
i
的候选词,接着从
L
i
中挑选任意一个
w
i
′
来代替一个欲替换词
w
i
∗
,其中欲替换词
w
i
∗
在替换后可引起分类概率发生最大变化。替代词的选择方式
R
(
w
i
,
L
i
)
如下
此外,在文本分类任务中,输入样本中的每个单词可能对最终分类产生不同程度的影响。因此作者将单词显著性加入到算法中来确定替换顺序。单词显著性是指当一个单词被设置为未知(即在词汇表外)时,分类器输出概率的变化程度。单词的显著性
S
(
x
,
w
i
)
计算方法如下
形式上可以通过求解一个优化问题,对一个训练样本
(
x
,
y
)
生成一组对抗样本
Z
(
x
,
y
)
。
先前的论文中给出了对抗样本的生成等式,如下
此处
J
(
⋅
)
用于衡量样本具有对抗性的可能性,是用于表示对抗性示例
x
′
输出最可能的目标类别
y
′
(
y
1
≠
y
)
的函数。而
R
(
x
′
,
x
)
则表示对扰动的不敏感程度。
给定一个句子对
(
x
,
y
)
带入上式子,可以得到等式
这里的
g
x
i
是梯度向量,
x
∈
ν
x
是源语言的词汇表,
s
u
m
(
⋅
,
⋅
)
表示计算两个向量的余弦相似度函数。接着,令
Q
(
x
i
,
x
)
∈
R
|
V
|
表示句子
x
的第一个单词的似然度,定义
V
x
i
=
t
o
p
_
n
(
Q
(
x
i
,
x
)
)
为
Q
(
x
i
,
x
)
前n个得分中n个最有可能的单词集合。