从5.11日开始对该领域一片空白,到现在5.17晚,对文本攻击有了一个大致全面的掌握。
为什么要会有这个领域?
企业工程角度:安全性、民众信任
深度学习角度:DNN模型的不可解释与其快速发展之间的gap
研究者的角度:CV的借鉴、NLP处理的困难、领域的相对空白
研究的目地
检测
- 数据集(分布、内容上的不合理,诱导模型)
- 模型(模型本身的能力不足、虚假学习、trick表现)
鲁棒(根本目的,研究初衷)
- 扩充数据集(类似于数据增强)
- 挖掘模型性能(retrain)
防御
- 企业工程更加关注(并没有解决根本问题)
要求
攻击样本与原样本差别不大(不会越过理想决策边界)
- 词性相同
- 词义相近
- 句意相近
- 语法通顺
- 拼写正确(除character-level)
模型受到干扰(越过模型决策边界)
- 分类错误(classification)
- 输出干扰(NMT)
- 输出错误(QA)
- 恶意掩藏
如何攻击
level
- sentence
- word
- character
- multi
前两者研究较多,且下游任务更加困难
optimize
- 白箱(gradient)
样本质量更高,下游任务更多,消耗时间更长,实施更加困难 - 黑箱 (query)
样本质量更低,实施更加简单,多次query计算消耗大,样本确信度低
target
- target:某些下游任务更加适合(NMT),生成样本质量更高,攻击性能更强,多和白箱匹配
- untarget:多和黑相匹配
范式
如何生成攻击样本:
- score:选择适合的攻击对象,抓住弱点攻击
梯度攻击(HotFlip)、下游探测(PWWS)、句意影响(USE、TS\TTS)、part of sentence(ADDsent)、随机 - substitute:选择攻击对象的替代集
sentence:句式
word: NE、名词、动词、形容词(wordnet、义元、LM、embedding distance)
character: 字符集 - method:候选集替换方法(按照替换后的影响程度选最优)
search(word): greedy、遗传算法、粒子群
增删改替(character)
迭代轮数(one-shot、greedy)
其他
- human-in-loop
理想决策边界,生成样本质量一般更高,但速度慢 - 实验分析
研究统计规律,发现数据集漏洞,人为修改
evaluate
评估攻击样本质量好坏:
by test:
- basic:原模型、原任务直接的drop
- Transferability:
原模型、其他任务
原任务、其他模型
任务越难、模型越强,训练的样本攻击力越高,迁移性也越强
by human:
- basic :不会影响人类(理想)的决策
- Perceivability:不易被察觉(grammar、logic、less modification)
some work
new:
- 新的架构
- 新的思路
- 新的优化
- 新的问题
effective:
- 更快的搜索
- 更好的替换
- 更客观的评估
- 更统一的标准