技术心得丨一种有效攻击BERT等模型的方法
Is BERT Really Robust? A Strong Baseline for Natural Language Attack on Text Classification and Entailment
作者机构:MIT,香港大学,A* STAR
论文发表:AAAI2020
论文连接:http://aaai.org/Papers/AAAI/2020GB/AAAI-JinD.7014.pdf
概要:机器学习模型对对抗样本敏感,在对抗样本上效果下降明显。本文提出了一个生成对抗样本的模型,TEXTFOOLER。通过替换样本中的重要词汇获得对抗样本,在对抗样本上模型的效果急剧下降。该方法可以用于数据增广,提升模型的鲁棒性和泛化能力。
背景介绍
对抗样本攻击是指通过某种方法生成一些样本,已经训练好的模型在这些生成的对抗样本上的效果急剧下降,模型非常脆弱。对抗样本攻击在计算机视觉领域研究的比较多,但是文本领域相对较少。本文提出了一种对抗样本生成模型,TEXTFOOLER,可以有效的生成对抗样本,并且生成的样本在语法、语义上都比较合理,其计算复杂度是线性的。
方法
TEXTFOOLER
输入:是候选样本X、样本的标注标签Y、已经训练好的模型F、句子相似度计算模型Sim,句子相似度阈值、整个语料词典对应的词向量Emb
输出:候选样本的对抗样本,即新生成的样本。
主要分两步:
第一步:词重要性排序,即获得基于重要性分数排序的词集合W。
第二步:对抗样本生成,即基于集合W对原始样本进行词替换获得对抗样本。
1. 词重要性排序
目标是获得输入样本中每个词在模型预测过程中的重要性。
Equation 1 词重要性分数
词的重要性分数按上述公式计算,即如果对抗样本标签原始样本标签一样,则重要性分数等于模型预测值得差值,若标签不一样,则重要性分数为标签为原始标签的模型预测值差值和标签为预测标签的模型预测值差值之和。得到每个词的重要性分数后,基于NLTK和spaCy过滤掉停用词,获得最终的词重要性排序集合W。
2. 对抗样本生成
目标是找到最终的每个词的替换词并用替换词替换样本得到最终的对抗样本集合。
1)同义词提取:对W中的每个词wj,根据词向量从词典中找到Top N的同义词,并通过词性过滤后得到候选替换词集合CANDIDATES。
2)句子相似度检查:对CANDIDATES中每个词ck,用ck替换wj得到新的对抗样本 同时计算原始样本X和对抗样本之间的相似度 (通过Universal Sentence Encoder得到句子的向量表示,然后计算余弦距离作为相似度)。作为两个句子的语义相似度。相似度高于给定阈值的替换词放进最终的替换词候选集合FINCANDIDATES.
3)对于FINCANDIDATES的每个词,如果有候选词改变了模型的预测的类别,那么选择句子相似度最大的词作为最终候选词。如果没有改变模型的预测类别,选择预测置信度最低的词作为最终的替换词。
4)重复1)-3)的操作。
图 1 生成的对抗样本的例子
实验结果
实验数据主要包含:
- 文本分类任务:预测文本的某个标签。
- 文本蕴含任务:预测文本对中两个句子的关系,即蕴含关系、矛盾关系或者中性。
图 2 在分类任务上的对抗结果
图 3 在文本蕴含上的对抗结果
结果:对测试集进行对抗样本替换后,准确率急剧下降,甚至到0.
和其他对抗模型比较
图 4 和其他对抗模型比较
结论:从替换词比例和攻击成功率(模型预测错误的比例)两个维度都比基线模型好。
人工评价
人工评价对抗样本的语法、人工标签、是否保留了原始样本的语义这三个维度。
结论:对抗样本语法合理,人工标签和原始样本标签在MR数据集上一致率达92%,句子语义相似度达0.91.
控制变量实验
通过控制变量的方法验证各个步骤对模型效果的影响。
词重要性排序
通过取消词重要性排序的步骤看该步骤对模型效果的影响。
图 5 取消词重要性排序的结果(Random)
结论:词重要性排序很重要。
语义相似度约束
通过取消候选替换词中的语义相似度约束看该步骤对模型效果的影响。
图 6 语义相似度约束对比 “/”前后表示有和无语义相似度约束的结果对比
结论:语义相似度约束对结果影响很大。
可迁移性
由一个模型生成的对抗样本是否可以使得其他模型出错。
图 7 对抗样本的可迁移性。行i,列j表示模型i生成的对抗样本在模型j上的准确率
结论:模型效果越好,基于该模型生成的对抗样本的可迁移性越高。
对抗训练
生成的对抗样本可以用于训练模型,增强模型的鲁棒性和泛化能力。
图 8 基于对抗样本的对抗训练结果
结论:对抗训练可显著提高模型效果。
启发:
1. 可以通过此方法生成对抗样本可以用于数据增广,加入到训练数据中来增强模型的鲁棒性和泛化能力。
2. 可通过文字的重要性词汇排序方法筛选标签相关的主题词汇,如构建情感词典、主题词挖掘、关键词挖掘等。
技术心得丨一种有效攻击BERT等模型的方法的更多相关文章
- 转载:一种云环境下SaaS软件部署方法及装置与流程
转载:http://www.xjishu.com/zhuanli/55/201710103925.html 本发明涉及云计算技术领域,特别是涉及一种云环境下SaaS软件部署方法及装置. 背景技术: 随 ...
- 【转】浅谈常用的几种web攻击方式
浅谈常用的几种web攻击方式 一.Dos攻击(Denial of Service attack) 是一种针对服务器的能够让服务器呈现静止状态的攻击方式.有时候也加服务停止攻击或拒绝服务攻击.其原理就是 ...
- php防止sql注入漏洞代码 && 几种常见攻击的正则表达式
注入漏洞代码和分析 ...
- CCF虚拟现实与可视化技术专委会丨面向增强现实的可视计算技术研究进展概述
https://mp.weixin.qq.com/s/I-rNwgXHEtwgdpkWzKtVXw 摘要 新一代增强现实技术需要依赖可视计算理论与方法解决大尺度复杂环境下的场景建模.内容生成.感知交互 ...
- 任何国家都无法限制数字货币。为什么呢? 要想明白这个问题需要具备一点区块链的基础知识: 区块链使用的大致技术包括以下几种: a.点对点网络设计 b.加密技术应用 c.分布式算法的实现 d.数据存储技术 e.拜占庭算法 f.权益证明POW,POS,DPOS 原因一: 点对点网络设计 其中点对点的P2P网络是bittorent ,由于是点对点的网络,没有中心化,因此在全球分布式的网
任何国家都无法限制数字货币.为什么呢? 要想明白这个问题需要具备一点区块链的基础知识: 区块链使用的大致技术包括以下几种: a.点对点网络设计 b.加密技术应用 c.分布式算法的实现 d.数据存储技 ...
- 关于Slow HTTP Denial of Service Attack slowhttptest的几种慢攻击DOS原理
关于Slow HTTP Denial of Service Attack slowhttptest的几种慢攻击DOS原理 http://www.myhack58.com/Article/60/sor ...
- 浅谈局域网ARP攻击的危害及防范方法(图)
浅谈局域网ARP攻击的危害及防范方法(图) 作者:冰盾防火墙 网站:www.bingdun.com 日期:2015-03-03 自 去年5月份开始出现的校内局域网频繁掉线等问题,对正常的教育教 ...
- 四种主要网络IO虚拟化模型
本文主要为大家简要介绍VMware.Redhat.Citrix.Microsoft主要虚拟化厂商使用的4种主要的虚拟化IO模型 (emulation.para-virtualization.pass- ...
- 一种快速查询多点DS18B20温度的方法(转)
源:http://hi.baidu.com/james_xiao/item/79b961c90623093e45941623 一种快速查询多点DS18B20温度的方法 引言 为了满足实时性要 ...
随机推荐
- Java中枚举的用法
public enum Week { DAY1("周一", 0.9), DAY2("周二", 0.9), DAY3("周三", 0.8), ...
- C++ 读入优化&输出优化
读入优化:读入优化只是针对整数,由于getchar()读字符非常的快,所以采用getchar()来进行读入,下设输入的数为x 负数处理:用一个标志变量f,开始时为1,当读入了'-'时,f变为-1,最后 ...
- pthon中取整的几个方法round、int、math
取整的几种方法:1.四舍五入 round(x) 2.向下取整 int(x) 3.取商和余 4.向上取整,需要用到math.ceil(x)(可以理解成大于x且最接近x的整数)import math 5 ...
- C#类库推荐 拼多多.Net SDK,开源免费!
背景介绍 近两年拼多多的发展非常迅速,即便口碑一般,也没有网页端,奈何我们已经全面小康,6亿月收入1000以下,9亿月收入2000以下,所以因为价格原因使用拼多多的用户也越来越多了.同样的,拼多多也开 ...
- [POJ1050]To the Max(最大子段和)
题目链接 http://poj.org/problem?id=1050 题意 求最大子矩阵和. 题解 即求二维的最大子段和.二维数组sumRec[I][j]存储原始数组数据rec[0][j] to r ...
- NOIP2017 Day1 T1 小凯的疑惑
题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每种金币小凯都有 无数个.在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的.现在小凯想知道在无法准确支付的物品中,最贵的价 ...
- python测试http、websocket接口
测试环境有个项目需要每天构造数据,来尽量保证测试环境和生产环境数据量保持一致.需要生成订单后商家接单完成,以下是代码,主要是用接口完成 创建订单 # coding=utf-8 import reque ...
- windows操作系统的电脑越用越卡?简说几种原因和解决方法。
很多人在使用windows操作系统的发现电脑越用越卡,但是不知道什么原因,只知道电脑越便宜的越卡(电脑配置低), 然而导致电脑卡顿缓慢的原因有很多,总结出来就是软件和硬件的问题,那怎么办呢? 电脑系统 ...
- 分布式系统监视zabbix讲解七之分布式监控
分布式监控 概述 Zabbix通过Zabbix proxy为IT基础设施提供有效和可用的分布式监控 代理(proxy)可用于代替Zabbix server本地收集数据,然后将数据报告给服务器. Pro ...
- 14个Spring MVC顶级技巧,随时用随时爽,一直用一直爽~
通常,在Spring MVC中,我们编写一个控制器类来处理来自客户端的请求.然后,控制器调用业务类来处理与业务相关的任务,然后将客户端重定向到逻辑视图名称,该名称由Spring的调度程序Servlet ...