技术心得丨一种有效攻击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温度的方法 引言 为了满足实时性要 ...
随机推荐
- 14_Python语法示例(面向对象)
1.自己写一个Student类,此类的对象有属性name, age, score, 用来保存学生的姓名,年龄,成绩 # 1)写一个函数input_student读入n个学生的信息,用对象来存储这些信息 ...
- Activiti7 任务人员动态分配(UEL-Value方式)
先修改流程图 测试之前记得先删除之前发布的流程定义,并重新发布改过的 /** * 使用UEL-Value动态分配任务人员 */ @Test public void uelValue(){ // 获取R ...
- js判断一个字符串中出现次数最多的字符及次数
最近面试总是刷到这个题,然后第一次的话思路很乱,这个是我个人思路 for循环里两个 if 判断还可以优化 var maxLength = 0; var maxStr = ''; var count = ...
- Bypass windous/mac 登陆密码
前言 如题,在52破解里看到一个非常好用的工具 Kon-Boot 2.7 功能 不会去擦除windows密码 不会修改windows文件 此外,Kon-Boot的最新版是目前世界上唯一的一个能够绕过W ...
- leetcode刷题-47全排列2
题目 给定一个可包含重复数字的序列,返回所有不重复的全排列. 思路 其思路与46题完全一致,但是需要与组合总和2题一般,在同一层取出重复元素.因此可以在每一层设置一个set()类型,将访问过的元素放入 ...
- TP6.0中的密码验证逻辑、验证器的使用
目录 1. 场景一:只有一个密码框,并且是可选项,留空不修改密码,不留空则修改密码 2. 场景二:两个密码框,修改密码时有新密码.确认密码,新密码框不为空时,确认密码才验证 1. 场景一:只有一个密码 ...
- bind,call,apply模拟实现
首先,三者第一个参数都为this指向 区别 bind返回的是一个函数体 call和apply会直接执行,但是call参数需要一个一个进行传递,apply的第二个参数是一个数组 实现 bind 简单实现 ...
- 实践案例丨基于 Raft 协议的分布式数据库系统应用
摘要:简单介绍Raft协议的原理.以及存储节点(Pinetree)如何应用 Raft实现复制的一些工程实践经验. 1.引言 在华为分布式数据库的工程实践过程中,我们实现了一个计算存储分离. 底层存储基 ...
- MySQL的事务机制和锁(InnoDB引擎、MVCC多版本并发控制技术)
一.事务(数据库的事务都通用的定义) 1.1 事务定义 事务是由一步或几步数据库操作序列组成逻辑执行单元,这系列操作要么全部执行,要么全部放弃执行.事务通常以 BEGIN TRANSACTION 开始 ...
- TCP连接问题之CLOSE_WAIT和TIME_WAIT过多
参考博文 https://dengqsintyt.iteye.com/blog/2086485 Timeout waiting for connection异常排查:https://blog.csdn ...