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等模型的方法的更多相关文章

  1. 转载:一种云环境下SaaS软件部署方法及装置与流程

    转载:http://www.xjishu.com/zhuanli/55/201710103925.html 本发明涉及云计算技术领域,特别是涉及一种云环境下SaaS软件部署方法及装置. 背景技术: 随 ...

  2. 【转】浅谈常用的几种web攻击方式

    浅谈常用的几种web攻击方式 一.Dos攻击(Denial of Service attack) 是一种针对服务器的能够让服务器呈现静止状态的攻击方式.有时候也加服务停止攻击或拒绝服务攻击.其原理就是 ...

  3. php防止sql注入漏洞代码 && 几种常见攻击的正则表达式

    注入漏洞代码和分析                                                                                           ...

  4. CCF虚拟现实与可视化技术专委会丨面向增强现实的可视计算技术研究进展概述

    https://mp.weixin.qq.com/s/I-rNwgXHEtwgdpkWzKtVXw 摘要 新一代增强现实技术需要依赖可视计算理论与方法解决大尺度复杂环境下的场景建模.内容生成.感知交互 ...

  5. 任何国家都无法限制数字货币。为什么呢? 要想明白这个问题需要具备一点区块链的基础知识: 区块链使用的大致技术包括以下几种: a.点对点网络设计 b.加密技术应用  c.分布式算法的实现 d.数据存储技术 e.拜占庭算法 f.权益证明POW,POS,DPOS 原因一: 点对点网络设计 其中点对点的P2P网络是bittorent ,由于是点对点的网络,没有中心化,因此在全球分布式的网

    任何国家都无法限制数字货币.为什么呢? 要想明白这个问题需要具备一点区块链的基础知识: 区块链使用的大致技术包括以下几种: a.点对点网络设计 b.加密技术应用  c.分布式算法的实现 d.数据存储技 ...

  6. 关于Slow HTTP Denial of Service Attack slowhttptest的几种慢攻击DOS原理

    关于Slow HTTP Denial of Service Attack  slowhttptest的几种慢攻击DOS原理 http://www.myhack58.com/Article/60/sor ...

  7. 浅谈局域网ARP攻击的危害及防范方法(图)

    浅谈局域网ARP攻击的危害及防范方法(图)   作者:冰盾防火墙 网站:www.bingdun.com 日期:2015-03-03   自 去年5月份开始出现的校内局域网频繁掉线等问题,对正常的教育教 ...

  8. 四种主要网络IO虚拟化模型

    本文主要为大家简要介绍VMware.Redhat.Citrix.Microsoft主要虚拟化厂商使用的4种主要的虚拟化IO模型 (emulation.para-virtualization.pass- ...

  9. 一种快速查询多点DS18B20温度的方法(转)

    源:http://hi.baidu.com/james_xiao/item/79b961c90623093e45941623 一种快速查询多点DS18B20温度的方法 引言      为了满足实时性要 ...

随机推荐

  1. Mysql慢查询(分析工具)

    慢查询分析工具[mysqldumpslow] 常用的慢查询日志分析工具 汇总除查询条件外其他完全相同的SQL,并将分析结果按照参数中所指定的顺序输出 语法: mysqldumpslow -s r -t ...

  2. MyBatis源码流程分析

    mybatis核心流程三大阶段 Mybatis的初始化  建造者模式 建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象.这种类型的设计模式属于创建型模式,它提 ...

  3. CentOS 7 安装部署 cassandra作为kairosdb的数据存储

    环境 Centos 7.4 java 1.8.0 安装步骤 java yum -y install java-1.8.0-openjdk* cassandra wget https://mirrors ...

  4. java集合类源码学习三——ArrayList

    ArrayList无疑是java集合类中的一个巨头,而且或许是使用最多的集合类.ArrayList继承自AbstractList抽象类,实现了List<E>, RandomAccess, ...

  5. xampp安装和使用:windows和linux使用安装微擎小程序

    1.官网下载xampp XAMPP:Apache+MySQL+PHP+PERL,适用于windows+linux+macos x+Solaris等多系统使用 官网地址:https://www.apac ...

  6. linux系统的默认用户

    1.可以通过cat /etc/passwd |cut -f1 -d:   可以提取/etc/passwd文件的第一个字段 2.也可以通过vipw进入vi编辑器来查看该文件每一行的第一个字段 linux ...

  7. mysql优化的常用方法

    mysql的优化,大体分为三部分:索引的优化,sql语句的优化,表的优化 1.索引的优化 只要列中含有NULL值,就最好不要在此列设置索引,复合索引如果有NULL值,此列在使用时也不会使用索引 尽量使 ...

  8. 容器云平台No.9~kubernetes日志收集系统EFK

    EFK介绍 EFK,全称Elasticsearch Fluentd Kibana ,是kubernetes中比较常用的日志收集方案,也是官方比较推荐的方案. 通过EFK,可以把集群的所有日志收集到El ...

  9. 解决pycharm py文件运行后停止按钮变成了灰色的问题

  10. springboot的启动流程源码分析

    .测试项目,随便一个简单的springboot项目即可: 直接debug调试: 可见,分2步,第一步是创建SpringApplication对象,第二步是调用run方法: 1.SpringApplic ...