余温|文本对抗攻击基础、前沿及相关资源( 二 )


和白盒设定相对的是黑盒(Black-Box)设定 , 在这种设定下 , 攻击者无法得知受害模型的内部结构及参数 , 仅仅可以调用受害模型来获取其相对于给定输入的输出结果 。 根据输出结果的类型 , 黑盒攻击可以细分为基于分数(Score-Based)和基于决定(Decision-Based)的攻击——前者可以得知受害模型最终的输出分数(如分类模型的各类的概率) , 后者只能知道受害模型给出的判断结果(如分类模型给出的类别) 。
此外 , 攻击者甚至可能无法调用受害模型 , 在没有任何关于受害模型信息的情况下进行攻击 。 这种攻击被称为盲攻击(Blind Attack) 。
纵观以上四种不同的攻击 , 基于梯度的攻击对受害模型可见性要求太高 , 真实的攻击场景中往往并不可行;盲攻击由于已知信息太少 , 攻击效果往往很差;相比之下 , 基于分数和基于决定的攻击既符合真实的攻击设定又有足够的已知信息来有效进行攻击 , 因此目前大多数文本对抗攻击是这两种类型 , 尤其是基于分数的攻击 。
(3) 扰动粒度
对抗攻击还可以从扰动产生的粒度分为句级、词级以及字级攻击 。
句级攻击将整句原始输入视作扰动的对象 , 意图产生一个和原始输入语义相同(至少针对当前任务的真实标签不改变)但却使得受害模型判断改变的对抗样本 。 常用的句级攻击方法包括改述(Paraphrasing)[4,5]、编码后重新解码[6]、添加无关句子[7]等 。
词级攻击扰动的对象是原始输入中的词 , 最主要方法为词替换 。 替换词的选择有多种多样 , 包括基于词向量相似度[8,9]、同义词[10]、义原[11]、语言模型分数[12]等词替换方法 。 此外也有研究尝试添加或删除词[13] , 但是这样做往往会影响所生成的对抗样本的语法性、通顺性 。
字级攻击主要对原始输入中的字符进行扰动 , 常用的方法包括字符的添加、删除、替换、交换顺序等 , 具体到字替换而言 , 有随机替换[14]、基于One-Hot编码的字替换[15]以及基于字形相似的替换[16]等 。
此外 , 有的攻击方法也会同时进行词级和字级扰动[17] 。
对比以上三种不同粒度的扰动 , 句级的扰动往往使得对抗样本和原始输入之间有巨大的差别 , 很难控制所产生的对抗样本的质量 , 更无法保证其有效性(即具有和原始输入相同的真实标签) , 而且从实验结果看攻击效果也比较一般;字级扰动所产生的对抗样本质量往往很差 , 大概率会破坏其语法性 , 造成对抗样本不可读 , 尽管攻击成功率较高 , 但是目前有一些基于语法纠错的防御方法可以很好地应对字级的攻击[18] 。
相比之下 , 词级攻击在对抗样本质量和有效性控制以及攻击成功率方面有更好的表现 。 就对抗样本质量和有效性控制而言 , 一般对一句话中某些词进行同义替换很难改变这句话的语义 , 再加上利用语言模型进行控制 , 所产生的对抗样本的通顺性、流畅性也更容易保证 。 就攻击成功率而言 , 白盒设定下基于梯度的攻击方法往往可以最快地找到合适的被替换词和替换词 , 一般而言有较高的攻击成功率;即使在黑盒设定下 , 现有的词级攻击方法利用受害模型的反馈(即针对一次词级扰动后产生的准对抗样本的输出) , 迭代地进行词替换操作 , 最终也有较高的攻击成功率 。 例如 , 目前最先进的基于义原+离散粒子群优化的词级攻击在IMDB数据集上攻击BiLSTM时可以达到100%的成功率[11] 。
接下来 , 我们对现有的词级文本对抗攻击进行简单的梳理 。
2 词级别文本对抗攻击
[11]提出 , 词级文本对抗攻击本质上是一个组合优化(Combinatorial Optimization)问题 。 所谓组合优化就是在有限个可行解的集合中找出最优解的优化问题 。 对于词级文本对抗攻击 , 在词表有限的情况下 , 词级扰动也是有限的 , 而攻击的目标则是找出一个能够成功攻击受害模型的对抗样本——即最优解 。 当然 , 成功攻击受害模型的对抗样本可能不止一个 , 一般而言找到一个即可结束 。


推荐阅读