一文读懂文本处理中的对抗训练
本作作者:追一科技 算法研究员 Leo, 算法工程师 WenZe
背景与研究意义
深度学习技术的快速发展,大幅提升了众多自然语言处理任务(比如文本分类,机器翻译等)的效果,越来越多的深度学习模型被用于现实生活中。但是深度学习模型本质上的黑箱属性,也为实际应用带来了潜在的风险。
早在 2014 年,Szegedy et al. [1]发现只要对深度学习模型的输入添加一些微小的扰动就能轻易改变模型的预测结果。后续的研究将该种扰动称之为对抗扰动,扰动后的输入称为对抗样本,将输入对抗样本误导模型的这一过程称为对抗攻击。深度学习模型遭遇对抗攻击时所表现出的脆弱性,给实际应用带来了极大的风险。自然语言处理的应用比如文本分类、情感分类、问答系统、推荐系统等也都受到了对抗攻击的威胁 [2]。
在上述背景下,已经有大量的研究集中于提升深度学习模型对于对抗攻击的鲁棒性(也称为对抗防御),其中对抗训练是其中的主要方法之一。本文对文本处理中的对抗训练进行初步的梳理和总结。
本文接下来先介绍对抗训练及其相关概念的基本定义,这一部分重点阐述的对抗扰动的基本特征及对应产生扰动的基本方法,由于对抗训练最早开始于图像处理中,其在图像领域中的进展也领先于文本,因此本文第三部分结合其在图像处理领域的研究进展,详细介绍了对抗攻击的基本类型与代表方法,然后简单介绍我们最近在文本分类和鲁棒性上做的实践,最后进行总结。
基本定义与概念
本章节介绍对抗训练[3]及相应的基本概念,此段内容主要源于文献 [2]。对抗训练指的是在模型的训练过程中构建对抗样本并将对抗样本和原始样本混合一起训练模型的方法,换句话说就是在模型训练的过程中对模型进行对抗攻击从而提升模型对于对抗攻击的鲁棒性(也称为防御能力)。可以说不同的对抗攻击方式决定了不同的对抗训练方法。因此文本中的不同对抗攻击方式是本文阐述的重点,简单的对抗攻击示列如图 1。
![https://i-blog.csdnimg.cn/blog_migrate/0ae6b6ae4d3032f581649da169e584fb.jpeg](https://i-blog.csdnimg.cn/blog_migrate/0ae6b6ae4d3032f581649da169e584fb.jpeg)
如图 1 所示(左图为原始样本,中间为添加的对抗扰动,右图为构造的对抗样本),可以看出在加入对抗扰动后原始的图片被误判(雪山变识别成了狗,河豚被识别成了螃蟹),但是人眼并不能够明显发现原图和对抗样本的差异,更不会产生如此离谱的判断。
可以看出对抗攻击指的是在模型原始输入上添加对抗扰动构建对抗样本从而使模型产生错误判断的过程。而在这一过程中,对抗扰动的选择和产生是关键。对抗扰动指的是在模型输入上添加能够误导模型输出的微小变动(图 1 中间部分)。
虽然不同的文章对于对抗扰动的定义略有不同,但是一般来说对抗扰动具有两个特点:
1. 扰动是微小的甚至是肉眼难以观测到的(图 1 中间部分);
2. 添加的扰动必须有能力使得模型产生错误的输出(图 1 右侧部分)。
为了满足上述特点,已有大量研究集中于如何产生有效的对抗扰动。不同于图像领域,连续值的扰动直接添加到原始输入矩阵中,在文本处理中添加的扰动可以是离散的也可以是连续的,一般来说离散扰动指的是直接对输入文本字符进行微小修改(如图 2),连续扰动一般指的是直接在输入文本中的词向量矩阵中添加的扰动[4]。文本处理中的离散扰动示列如图 2:
![https://i-blog.csdnimg.cn/blog_migrate/ca0921d43e384ed0d33f440b0007b15d.jpeg](https://i-blog.csdnimg.cn/blog_migrate/ca0921d43e384ed0d33f440b0007b15d.jpeg)
如图 2 所示,part1 指的是原始的输入文本,part2 指的是