引言
尽管预训练的语言模型(如BERT)在许多任务中都有出色的表现,但是它极易受对抗文本的影响,并且中文的文字具有“多义、字形”特性。为此,「今天分享的这篇文章基于中文特性,提出了RoChBERT框架,该框架通过使用更全面的对抗性图,在微调过程中将汉语语音和字形特征融合到预训练的表示中,基于Bert模型构建了更鲁棒的模型」。
背景介绍
预训练语言模型(PLMs)的出现使自然语言处理(NLP)进入了一个新时代。因此,像BERT这样的大规模PLM已经成为各种下游任务应用的主流模型,包括文本分类、问答和机器翻译,PLMs的应用可以大幅提高相关任务性能。在中文领域,许多经典的NLP任务也受益于Bert模型。
虽然说获得了特别好的性能,但基于Bert的模型易受对抗文本的影响。同时,在实际应用场景中,对手通常会制造混淆文本,即采用手动制作的对抗性文本来绕过在线安全敏感系统,这对已部署的系统构成了严重的威胁。与英语等字母语言相比,汉字的意义可以从发音和字形中得到暗示。因此,用特征相似的汉字来代替,很难对语境理解产生影响。因此,与用同义词替换单词来误导英语语言模型不同,针对中文语言模型,对手更喜欢用其它具有相似发音或字形的字符替换字符,如下图所示。
最近提出了一些防御方法有对抗训练(AT) 和对抗探测,它们大多专注于解决英语对抗性文本。但也有专家根据中文特点,提出了一些具有中国特色的方法。例如ChineseBERT 在模型预训练中融入了汉语发音和字形特征,并在许多汉语NLP任务中取得了SOTA性能。但是ChineseBERT需要从零开始进行预训练,其参数数量相当大。每次推理都需要查询输入字符对应的拼音和字形,这使得训练和预测非常缓慢。
为了解决上述问题,本文提出了一种轻量级且灵活的RoChBert方法来增强中文语言模型的鲁棒性。
模型方法
本文模型如下图所示,左边是模型架构,右边是它的工作流程。
其中:
首先根据所有常用汉字之间的语音和字形关系生成一个更新的对抗性图。以捕获字符之间的语音和字形关系,这是对抗性文本通常利用的关系。由于目前的AdvGraph只包含3000个常用字符,无法捕获某些字形关系,我们更新它以覆盖更多字符和更多字形关系。
然后,采用node2vec来学习每个字符 xi 的表示,将其用作节点嵌入。对文本x中的
进行节点嵌入拼接,通过特征提取模块。同时,x也被输入到目标PLM中。利用最后一层的隐藏状态作为x的预训练表示。在将预训练表示和特征嵌入连接起来后,使用一个多模态融合模块进一步融合来自两个通道的信息。
最后,融合表示可以用于大多数下游任务。此外,为了更好地增强融合过程,受课程学习启发,本文设计了一种高效的数据增强方法,充分利用对抗性文本,帮助模型进一步了解哪些字符在发音和字形上可能相似。该方法相比传统的对抗训练AT更有效。具体来说,是在训练数据集中同时添加中间文本和对抗文本,这是一种非常高效的计算方法,并且与传统AT相比不会降低良性文本的准确性。
实验结果
1、评估模型在良性文本上的性能
2、鲁棒性——RoChBERT在不牺牲良性文本精度的情况下,极大地提高了模型的鲁棒性。具体而言,该防御将无限攻击和有限攻击的成功率分别降低了59.43%和39.33%,而准确率保持了93.30%。
论文&&源码
Paper:https://arxiv.org/pdf/2210.15944.pdf
Code:https://github.com/zzh-z/rochbert