【读论文-001】OpenAttack: An Open-source Textual Adversarial Attack Toolkit

最近,对文本对抗这个方向比较感兴趣,所以找了一部分论文打算一篇一篇慢慢地读,顺便记录下来,也正好能理一理思路。文章题目是《OpenAttack: An Open-source Textual Adversarial Attack Toolkit》,原文地址在https://arxiv.org/pdf/2009.09191.pdf,同时收录在https://github.com/thunlp/TAADpapers中,这个项目中还有许多其他文本对抗相关的内容。

这篇论文主要是介绍了名为OpenAttack的一个用于文本对抗的开源库,同时也把文本对抗相关的基本知识做出了介绍。

OpenAttack主要有以下三个优点:一,包含12种攻击模型,包含了所有类别的攻击;二,提供了8种不同的评价指标,用于评价攻击效果;三,由于模块化的设计思想,可以轻松的自定义受害者模型和攻击方法。

之后是关于文本对抗的基本知识。文本对抗简单来说就是,给定一个句子x被受害者模型F判定标签为y,攻击模型A目的是对样本x添加一个微小的扰动,记为\widetilde{x},使得F对\widetilde{x}的判定结果为\widetilde{y},且\widetilde{y}≠y。并且,根据所能获得信息的不同,攻击可分为四类:基于梯度,基于分数,基于决策和盲模型。也可以被分为白盒和黑盒攻击,除第一个外,后三个都属于黑盒。基于梯度的攻击模型需要知道目标模型的所有信息,黑盒模型中的三类方法分别需要了解被分为某类的概率,最终的分类结果和不需要任何信息。除此之外,还可以根据添加扰动的级别,可以分为字符集,词汇级和语句级。

OpenAttack采取模块化设计,主要模块有

  • TextProcessor:对文本进行预处理,由几个功能组成,分别用于标记化、引理化、去界线化和词义消歧(WSD),命名实体识别(NER)和依赖解析。

  • Classifier:封装受害者模型,可获得模型的输入,预测分数和梯度。

  • Attacker:包含多种攻击方法,并可以自定义生成对抗样例。

  • Substitute:包含多种不同的词汇和字符的替换策略。包括基于词嵌入,基于同义词和基于义素的词替换方法和视觉字符替换方法。

  • Metric:提供了数个对抗示例质量度量。

  • AttackEval:从攻击效能、攻击实例质量和攻击效率等不同角度对文本对抗性攻击进行评估。

  • DataManager:管理所有数据以及其他模块中使用的已保存的模型。并支持访问和下载数据/模型。

论文的下一部分介绍了该库的基本使用方法,使用默认的模型和自定义模型进行测试。并评估了相关的攻击方法。

最后,与另一个开源库TextAttack做了一些比较,TextAttack也提供了一些攻击方法,但是,较于OpenAttack,攻击方法更少,且欠缺一些灵活性,不易于使用自定义的方法。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值