文本对抗攻击入坑宝典

文 | 阿毅
编 | 小轶

如果是咱家公众号的忠实粉丝就一定还记得之前咱家一篇关于NLP Privacy的文章,不出意外的话,你们是不是现在依然还担心自己的隐私被输入法窃取而瑟瑟发抖。所以,我们又来了!今天给大家讨论的是NLP Privacy中一个非常核心的话题——文本对抗攻击。

相信大家已经非常熟悉对抗攻击了,此类攻击是攻击者针对机器学习模型的输入即数值型向量(Numeric Vectors)设计的一种可以让模型做出误判的攻击。简言之,对抗攻击就是生成对抗样本的过程。对抗样本的概念最初是在2014年提出的,指的是一类人为构造的样本,通过对原始的样本数据添加针对性的微小扰动所得到(该微扰不会影响人类的感知),但会使机器学习模型产生错误的输出[1]。因此,从上述定义可知,对抗攻击以及对抗样本的生成研究最开始被用于计算机视觉领域。在当时,那家伙,文章多的你看都看不完…当然在这里我也抛出当时写的比较好的一篇综述:“Threat of Adversarial Attacks on Deep Learning in Computer Vision: A Survey”[2]。大家可以温故而知新啦。

当视觉领域中的对抗攻击研究很难再有重大突破的时候(坑已满,请换坑),研究人员便把目光转移到了NLP领域。其实就NLP领域而言,垃圾邮件检测、有害文本检测、恶意软件查杀等实用系统已经大规模部署了深度学习模型,安全性对于这些系统尤为重要。但相比于图像领域,NLP领域对抗攻击的研究还远远不够,特别是文本具有离散和前后输入具有逻辑的特点使得对抗样本的生成更具挑战性,也有更多的研究空间。我们欣喜地看到,目前有越来越多的 NLP 研究者开始探索文本对抗攻击这一方向,以 2020 年 ACL 为例,粗略统计有超过 10 篇相关论文,其中最佳论文 Beyond Accuracy: Behavioral Testing of NLP Models with CheckList [3]中大部分测试方法其实和文本对抗攻击有异曲同工之妙。故在本次推文中,我们一起来探究和领略一下如何在NLP领域实施对抗攻击,并提供一些在该领域继续深入挖掘的工具和方向。

对抗攻击的分类

对抗攻击按攻击者所掌握的知识来分的话,可分为以下两类:

  • 白盒攻击:称为white-box attack,也称为open-box attack,即攻击者对模型(包括参数、梯度等信息)和训练集完全了解,这种情况比较攻击成功,但是在实际情况中很难进行操作和实现。

  • 黑盒攻击:称为black-box attack,即攻击者对模型不了解,对训练集不了解或了解很少。这种情况攻击很难成功但是与实际情况比较符合,因此也是主要的研究方向。

如果按攻击者的攻击目标来分的话,可以分为以下两类:

  • 定向攻击:称为targeted attack,即对于一个多分类网络,把输入分类误判到一个指定的类上

  • 非定向攻击:称为non-target attack,即只需要生成对抗样本来欺骗神经网络,可以看作是上面的一种特例。

发展历史与方法分类

我们先谈谈白盒攻击,因为白盒攻击易于实现,因此早在2014年关于对抗样本的开山之作“Intriguing Properties of Neural Networks”中设计了一种基于梯度的白盒攻击方法。具体来说,作者通过寻找最小的损失函数添加项,使得神经网络做出误分类,将问题转化成了凸优化。问题的数学表述如下:

表示习得的分类映射函数,表示改变的步长,公式表达了寻找使得映射到指定的类上的最小的。在此之后,许多研究人员在上述方法的基础上提出了许多改进的基于梯度的方法,具体可见[4-6]。

后来,研究人员逐渐从白盒攻击的研究转向研究黑盒攻击,Transfer-based方法就是过渡时期的产物。Nicolas Papernot等人在2017年的时候利用训练数据可以训练出从中生成对抗性扰动的完全可观察的替代模型[7]。因此,基于Transfer的攻击不依赖模型信息,但需要有关训练数据的信息。此外,[8]文献证明了如果在一组替代模型上生成对抗性样本,则在某些情况下,模型被攻击的成功率可以达到100%(好家伙,100%真厉害)。近几年,不同类型的攻击方法越来越多,但总体来说归为以下三类:Score-based方法、Decision-based方法、Attack on Attention方法[9](这个方法非常新,有坑可跳),前两大类方法的相关研究和参考文献可阅读原文一探究竟,在这里不再赘述。

文本对抗攻击

基本概念

下图展示了文本领域内实现对抗攻击的一个例子。语句(1)为原始样本,语句(2)为经过几个字符变换后得到的对抗样本。深度学习模型能正确地将原始样本判为正面评论,而将对抗样本误判为负面评论。而显然,这种微小扰动并不会影响人类的判断。

算法的分类

首先,根据上述对抗攻击的分类。同样地,文本中的对抗攻击也可以分为黑盒攻击和白盒攻击。除此之外,由于文本涉及到字符、词汇、句子。因此我们可以根据添加扰动时所操作的文本粒度可以分为字符级、单词级和语句级攻击。具体来说,字符级攻击是通过插入、删除或替换字符,以及交换字符顺序实现;单词级攻击主要通过替换单词实现,基于近义词、形近词、错误拼写等建立候选词库;语句级攻击主要通过文本复述或插入句子实现。具体分类详见下图.

攻击方式的发展和分类

根据攻击策略和攻击方式我们可以分为Image-to-Text(借鉴图像领域的经典算法)、基于优化的攻击、基于重要性的攻击以及基于神经网络的攻击。Image-to-Text攻击方式的思想是将文本数据映射到连续空间,然后借鉴图像领域的一些经典算法如FGSM、JSMA等,生成对抗样本;基于优化的攻击则是将对抗攻击表述为带约束的优化问题,利用现有的优化技术求解,如梯度优化、遗传算法优化;基于重要性的攻击通常首先利用梯度或文本特性设计评分函数锁定关键词,然后通过文本编辑添加扰动;基于神经网络的攻击训练神经网络模型自动学习对抗样本的特征,从而实现对抗样本的自动化生成。具体的算法细节大家可移步一篇写的非常全面的综述“Adversarial Attacks on Deep Learning Models in Natural Language Processing: A Survey“。

文本对抗攻击相关资源

文献总结

如下图所示,清华大学自然语言处理与社会人文计算实验室(THUNLP)总结了各类文本对抗领域的相关文献,其中包含但不限于工具包、综述、文本对抗攻击、文本对抗防御、模型鲁棒性验证、基准和评估等内容。针对本文涉及的文本对抗攻击领域,该列表收录了句级、词级、字级、混合四个子部分,并且还为每篇论文打上了受害模型可见性的标签:
gradient/score/decision/blind
除了提供论文 pdf 链接之外,如果某篇论文有公开代码或数据,也会附上相应的链接[19]。

其中必须的综述论文如下:

-- Analysis Methods in Neural Language Processing: A Survey. Yonatan Belinkov, James Glass. TACL 2019.
-- Towards a Robust Deep Neural Network in Text Domain A Survey. Wenqi Wang, Lina Wang, Benxiao Tang, Run Wang, Aoshuang Ye. 2019.
-- Adversarial Attacks on Deep Learning Models in Natural Language Processing: A Survey. Wei Emma Zhang, Quan Z. Sheng, Ahoud Alhazmi, Chenliang Li. 2019.

文本对抗攻击工具包

目前文本攻击工具包为该领域的研究人员提供了非常好的开发和研究基础。这里介绍两个比较常用的:

  • 清华大学自然语言处理与社会人文计算实验室开源的OpenAttack[20]

  • 弗吉尼亚大学祁妍军教授领导的 Qdata 实验室开发的TextAttack[21]

至于如何使用上述两种工具包,请大家火速前往项目主页一探究竟,并不要忘了给一个Star哦!!!

后台回复关键词【入群

加入卖萌屋NLP/IR/Rec与求职讨论群

后台回复关键词【顶会

获取ACL、CIKM等各大顶会论文集!

 

[1]. Szegedy C, Zaremba W, Sutskever I, et al. Intriguing properties of neural networks[J]. arXiv preprint arXiv:1312.6199, 2013.

[2]. Akhtar N, Mian A. Threat of adversarial attacks on deep learning in computer vision: A survey[J]. IEEE Access, 2018, 6: 14410-14430.

[3]. Ribeiro M T, Wu T, Guestrin C, et al. Beyond accuracy: Behavioral testing of NLP models with CheckList[J]. arXiv preprint arXiv:2005.04118, 2020.

[4]. Tramèr F, Kurakin A, Papernot N, et al. Ensemble adversarial training: Attacks and defenses[J]. arXiv preprint arXiv:1705.07204, 2017.

[5]. Moosavi-Dezfooli S M, Fawzi A, Frossard P. Deepfool: a simple and accurate method to fool deep neural networks[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 2574-2582.

[6]. Papernot N, McDaniel P, Goodfellow I. Transferability in machine learning: from phenomena to black-box attacks using adversarial samples[J]. arXiv preprint arXiv:1605.07277, 2016.

[7]. Papernot N, McDaniel P, Goodfellow I, et al. Practical black-box attacks against machine learning[C]//Proceedings of the 2017 ACM on Asia conference on computer and communications security. 2017: 506-519.

[8]. Lu J, Issaranon T, Forsyth D. Safetynet: Detecting and rejecting adversarial examples robustly[C]//Proceedings of the IEEE International Conference on Computer Vision. 2017: 446-454.

[9]. Chen S, He Z, Sun C, et al. Universal adversarial attack on attention and the resulting dataset damagenet[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2020.

[10]. https://www.secrss.com/articles/25644

[11]. Zhang W E, Sheng Q Z, Alhazmi A, et al. Adversarial attacks on deep-learning models in natural language processing: A survey[J]. ACM Transactions on Intelligent Systems and Technology (TIST), 2020, 11(3): 1-41.

[12]. Cheng M, Le T, Chen P Y, et al. Query-efficient hard-label black-box attack: An optimization-based approach[J]. arXiv preprint arXiv:1807.04457, 2018.

[13]. Brendel W, Rauber J, Bethge M. Decision-based adversarial attacks: Reliable attacks against black-box machine learning models[J]. arXiv preprint arXiv:1712.04248, 2017.

[14]. Mrkšić N, Séaghdha D O, Thomson B, et al. Counter-fitting word vectors to linguistic constraints[J]. arXiv preprint arXiv:1603.00892, 2016.

[15]. Alzantot M, Sharma Y, Elgohary A, et al. Generating natural language adversarial examples[J]. arXiv preprint arXiv:1804.07998, 2018.

[16]. https://www.secrss.com/articles/25644

[17]. https://www.jiqizhixin.com/articles/2019-06-10-6

[18]. https://www.aminer.cn/research_report/5f50600e3c99ce0ab7bcb539

[19]. https://github.com/thunlp/TAADpapers

[20]. http://nlp.csai.tsinghua.edu.cn/project/openattack/

[21]. https://github.com/QData/TextAttack

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/478964.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 350. 两个数组的交集 II(哈希)

文章目录1. 题目2. 解题2.1 hash2.2 数组已排序1. 题目 给定两个数组,编写一个函数来计算它们的交集。 示例 1:输入: nums1 [1,2,2,1], nums2 [2,2] 输出: [2,2] 示例 2:输入: nums1 [4,9,5], nums2 [9,4,9,8,4] 输出: [4,9] 说明:输出结果中每个元…

会议交流 | CCKS2020 第十四届全国知识图谱与语义计算大会

CCKS2020第十四届全国知识图谱与语义计算大会China Conference on Knowledge Graph and Semantic Computing, 2020南昌.江西,11月12日-15日主办: 中国中文信息学会语言与知识计算专业委员会承办: 江西师范大学会议网站:www.sigkg.cn/ccks2020大会主题&a…

用微前端的方式搭建类单页应用

前言 微前端由ThoughtWorks 2016年提出,将后端微服务的理念应用于浏览器端,即将 Web 应用由单一的单体应用转变为多个小型前端应用聚合为一的应用。 美团已经是一家拥有几万人规模的大型互联网公司,提升整体效率至关重要,这需要很…

12种NumpyPandas高效技巧

文 | Kunal Dhariwal本文分享给大家 12 种 Numpy 和 Pandas 函数,这些高效的函数会令数据分析更为容易、便捷。最后,读者也可以在 GitHub 项目中找到本文所用代码的 Jupyter Notebook。项目地址:https://github.com/kunaldhariwal/12-Amazing…

LeetCode 1002. 查找常用字符(哈希)

1. 题目 给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表。例如,如果一个字符在每个字符串中出现 3 次,但不是 4 次,则需要在最终答案中包含该字符…

抖音算法推荐机制详解

抖音算法推荐机制详解!(科普向) 众所周知抖音的流量分配是去中心化的,这种去中心化算法,让每个人都有机会爆红,可为什么别人几个粉玩抖音,就能轻松获得10w点赞?而你怒拍几十条也枉然? 抖音的…

论文浅尝 - ICLR2020 | 用于半监督分类的图形推理学习

论文笔记整理:周虹廷,浙江大学研究生。研究方向:知识图谱,图表示学习等。论文链接:https://arxiv.org/pdf/2001.06137.pdf本文是发表在ICLR2020上针对图数据做节点半监督分类任务的论文。现有的算法解决图上节点分类问…

WMRouter:美团外卖Android开源路由框架

WMRouter是一款Android路由框架,基于组件化的设计思路,功能灵活,使用也比较简单。 WMRouter最初用于解决美团外卖C端App在业务演进过程中的实际问题,之后逐步推广到了美团其他App,因此我们决定将其开源,希望…

Android官方开发文档Training系列课程中文版:管理系统UI之变暗系统条

原文地址:http://android.xsoftlab.net/training/system-ui/index.html 引言 系统条(System Bars)是屏幕上的一块显示区域,专门用来显示通知,设备的通讯状态以及设备的导向。典型的System Bars与APP同时显示在屏幕上。APP展示了具体的内容&…

实话实说:中文自然语言处理的N个真实情况

文 | Liu Huanyong按语中文自然语言处理,目前在AI泡沫之下,真假难辨,实战技术与PPT技术往往存在着很大的差异。目前关于AI或者自然语言处理,做的人与讲的人往往是两回事。作者简介Liu Huanyong,就职于中国科学院软件研…

Android官方开发文档Training系列课程中文版:管理系统UI之隐藏状态条

原文地址:http://android.xsoftlab.net/training/system-ui/status.html 这节课将会介绍如何隐藏不同的版本的状态条。隐藏状态条可以使内容展示区域更大,因此可以提供一种更强的身临其境的用户体验。 含有状态条的APP: 隐藏状态条的APP&am…

论文浅尝 - ACL2020 | 用于回答知识库中的多跳复杂问题的查询图生成方法

论文笔记整理:谭亦鸣,东南大学博士。来源:ACL 2020链接:https://www.aclweb.org/anthology/2020.acl-main.91.pdf1.介绍在以往的工作中,知识图谱复杂问答一般被分为两种类型分别处理:其一是带有约束的问题&…

深入理解JSCore

背景 动态化作为移动客户端技术的一个重要分支,一直是业界积极探索的方向。目前业界流行的动态化方案,如Facebook的React Native,阿里巴巴的Weex都采用了前端系的DSL方案,而它们在iOS系统上能够顺利的运行,都离不开一个…

全球44家机构,55位大佬,历时两年,打造最强NLG评测基准!

文 | 小轶(大家好,我是已经鸽了夕总仨月没写文章了的小轶(y)!新的一年一定改过自新,多读paper多写稿,望广大读者敦促(ง •̀_•́)ง)今天要和大家分享的是卖萌屋学术站上的本月最热…

LeetCode 171. Excel表列序号(26进制转10进制)

1. 题目 给定一个Excel表格中的列名称,返回其相应的列序号。 例如,A -> 1B -> 2C -> 3...Z -> 26AA -> 27AB -> 28 输入: "A" 输出: 1输入: "AB" 输出: 28输入: "ZY" 输出: 701来源:力扣&…

用户评论标签的抽取

原文链接:https://blog.csdn.net/shijing_0214/article/details/71036808 无意中在知乎中看到一个问题:淘宝的评论归纳是如何做到的? 了解之后觉得较为容易实现,就简单实现了一个对用户评论的标签抽取功能,纯属兴趣所致…

开源开放|数据地平线通过OpenKG开放全行业因果事理、大规模实时事理等7类常识知识库...

本期介绍开放中文简称、中文同义、中文抽象、全行业因果事理、实体概念描述、实时事理知识库、军事武器装备知识等七个事理相关知识图谱。截至目前,该七个数据集规模达数千万、累计下载次数达两千余次,可用于底层事理推理、查询扩展、数据增强等多个自然…

写给工程师的十条精进原则

引言 时间回到8年前,我人生中第一份实习的工作,是在某互联网公司的无线搜索部做一个C工程师。当时的我可谓意气风发,想要大干一场,结果第一次上线就写了人生中第一个Casestudy。由于对部署环境的不了解,把SVN库里的配置…

我删掉了Transformer中的这几层…性能反而变好了?

文 | chaos编 | 小轶基于Transformer结构的各类语言模型(Bert基于其encoder,Gpt-2基于其decoder)早已经在各类NLP任务上大放异彩,面对让人眼花缭乱的transformer堆叠方式,你是否也会感到迷茫?没关系,现在让…

LeetCode 821. 字符的最短距离

1. 题目 给定一个字符串 S 和一个字符 C。返回一个代表字符串 S 中每个字符到字符串 S 中的字符 C 的最短距离的数组。 示例 1:输入: S "loveleetcode", C e 输出: [3, 2, 1, 0, 1, 0, 0, 1, 2, 2, 1, 0]来源:力扣(LeetCode) 链…