【论文笔记】一种有效攻击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 生成的对抗样本的例子
实验结果
实验数据主要包含:
l 文本分类任务:预测文本的某个标签。
l 文本蕴含任务:预测文本对中两个句子的关系,即蕴含关系、矛盾关系或者中性。
图 2 在分类任务上的对抗结果
图 3 在文本蕴含上的对抗结果
结果:对测试集进行对抗样本替换后,准确率急剧下降,甚至到0.
和其他对抗模型比较
图 4 和其他对抗模型比较
结论:从替换词比例和攻击成功率(模型预测错误的比例)两个维度都比基线模型好。
人工评价
人工评价对抗样本的语法、人工标签、是否保留了原始样本的语义这三个维度。
结论:对抗样本语法合理,人工标签和原始样本标签在MR数据集上一致率达92%,句子语义相似度达0.91.
控制变量实验
通过控制变量的方法验证各个步骤对模型效果的影响。
词重要性排序
通过取消词重要性排序的步骤看该步骤对模型效果的影响。
图 5 取消词重要性排序的结果(Random)
结论:词重要性排序很重要。
语义相似度约束
通过取消候选替换词中的语义相似度约束看该步骤对模型效果的影响。
图 6 语义相似度约束对比 “/”前后表示有和无语义相似度约束的结果对比
结论:语义相似度约束对结果影响很大。
可迁移性
由一个模型生成的对抗样本是否可以使得其他模型出错。
图 7 对抗样本的可迁移性。行i,列j表示模型i生成的对抗样本在模型j上的准确率
结论:模型效果越好,基于该模型生成的对抗样本的可迁移性越高。
对抗训练
生成的对抗样本可以用于训练模型,增强模型的鲁棒性和泛化能力。
图 8 基于对抗样本的对抗训练结果
结论:对抗训练可显著提高模型效果。
启发:
1. 可以通过此方法生成对抗样本可以用于数据增广,加入到训练数据中来增强模型的鲁棒性和泛化能力。
2. 可通过文字的重要性词汇排序方法筛选标签相关的主题词汇,如构建情感词典、主题词挖掘、关键词挖掘等。
【论文笔记】一种有效攻击BERT等模型的方法相关推荐
- ECCV 2022 | 用于对抗攻击的频域模型增强方法
©作者 | 陈兆宇 单位 | 复旦大学ROILab 研究方向 | 对抗样本 论文标题: Frequency Domain Model Augmentation for Adversarial Atta ...
- EMNLP2018论文解读 | 三种提升多语言翻译模型的高效策略
本文(<三种提升一对多多语言翻译策略>)是搜狗和中科院自动化所合作发表在 EMNLP 2018 上的工作.搜狗翻译目前采用业界领先的神经网络机器翻译框架支持 60 种以上不同语言之间的互译 ...
- 【论文笔记 1】On-Line LDA 在线LDA模型
On-Line LDA: Adaptive Topic Models for Mining Text Streams with Applications to Topic Detection and ...
- 【论文笔记】基于U-Net的医学图像分割模型nnU-Net(no-new U-Net)
本文是 nnU-Net 论文的笔记,稍微做了整合了一下,可能有些地方有所遗漏,等以后看完代码之后再补充. 1. 摘要 nnU-Net(no-new-Net)是基于 U-Net 的一种模型,它在达到很好 ...
- 论文笔记--跨模态间的人脸与人名对齐方法研究-2012
论文信息: 硕士论文-跨模态间的人脸与人名对齐方法研究-2012-复旦大学-吴伟 文末附人脸标注论文下载地址 文章目录 摘要 技术 框架图 人名重要性评估 人名检测 句法分析获得人名重要性&语 ...
- 论文笔记:基于并行注意力 UNet的裂缝检测方法
0 简介 论文:基于并行注意力 UNet的裂缝检测方法(Parallel Attention Based UNet for Crack Detection): 发表:2021年发表在<计算机研究 ...
- 论文笔记:Densely Connected Convolutional Networks(DenseNet模型详解)
[ 转载自http://www.yyliu.cn/post/7cabb4ff.html ] CVPR 2017上,清华大学的Zhuang Liu.康奈尔大学的Gao Huang和Kilian Q.We ...
- 论文笔记:基于透射率修正的湍流模型与动态调整retinex的水下图像增强
基于透射率修正的湍流模型与动态调整retinex的水下图像增强 先验知识 lab空间 瑞利分布 维纳滤波 导向滤波 本文流程 匀光预处理 改进的湍流模型 retinex水下图像增强 实验结果 论文地址 ...
- ACL 2020 | MobileBERT:一种与任务无关的模型压缩方法
©PaperWeekly 原创 · 作者|蔡杰 学校|北京大学硕士生 研究方向|问答系统 论文标题:MobileBERT: a Compact Task-Agnostic BERT for Resou ...
最新文章
- 洛谷P1092 虫食算
- mmap原理及流程(kernel 4.1版本)
- 【机器视觉】 set_fuzzy_measure算子
- DL论文第一周-Deep learning
- SpringBoot笔记整理(一)
- switch()语句块的出口:break;
- Python笔记-UiSelector中resourceId定位方式
- 使用 ADO.NET 和 Oracle 进行高级数据访问
- Codeforce 697A - Pineapple Incident
- redis 慢日志查询
- java-练习2:MobilePhone
- 微信扫码授权登录-王者荣耀
- 开发者百宝箱——DevToys
- 静电除尘器工作原理应用实训教学QY-HJGC03
- php 朋友圈留言,php实例-PHP仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(上)...
- 多核cpu与多线程理解
- 复化梯形公式c语言实验,实验4_数值积分与数值微分(完成版).doc
- Windows7无法显示.png、.jpg图片缩略图的问题
- fabric 环境 搭建与安装
- InnoDB数据库隔离级别
热门文章
- 习题7.10 使用割线法求解方程
- matlab求负数分数幂问题
- java兵乓球队问题_Java两个乒乓球队比赛名单问题(判断素数)
- total是什么牌子的电脑_干货!如何用Python在笔记本电脑上分析100GB数据(上)...
- Facebook授权登录
- Intent.ACTION_PICK
- 【转】Maven实战(八)---模块划分
- Css3 display用法
- sql/c#十六进制与十进制的转换
- java调用javafx_Java代码调用JavaFX的例子(大力推荐)