本文共 2402 字,大约阅读时间需要 8 分钟。
作者:孙嘉伟
单位:燕山大学
目录
该篇论文是 EMNLP2020 的一篇finding,作者:Johannes Welbl、Pasquale Minervini、Max Bartolo、Pontus Stenetorp、Sebastian Riedel。主要讲解现有模型存在对语义变化敏感度不足的问题,并针对该问题提出了一些解决方法。
论文链接:
现在的阅读理解模型在域内问题上的泛化效果较好但是在对抗样本上却表现不佳。先前的工作表明附加对文本语义变化无影响的扰动会导致模型预测错误,而该文中的工作侧重于:模型无法察觉到因为细微改变导致的问题/段落语义的变化,进而在回答该类问题时出错。
以下图为例,替换掉问句中的实体词后模型不但没有改变预测答案,输出的概率反而更高了。
将实体词Fort Caroline 替换为 Robert Oppenheimer 后生成对抗样例。
在本节介绍了生成模型无法察觉语义变化的对抗样例的方法,包括添加基于词性的扰动和添加基于实体的扰动。
使用与原文中词性相同的词语替换原文来添加扰动。具体在使用时会从数据集的段落中收集各种词性类型的词。
Who patronized the monks in Italy? 经过基于词性的扰动后被变换为: Who betrayed the monks in Italy?
替换原文中类别一致的实体词来添加扰动。与基于词性的方法相同,实体词也是从数据集的段落中收集得到。
Who patronized the monks in Italy? 经过基于词实体的扰动后被变换为:Who patronized the monks in Las Vegas?
在了解了两种添加扰动的方式之后就可以进行对抗样本的生成了。文中记基于词性(Part-of-Speech)和实体(Named Entity)两种方式所产生的扰动空间为和。所产生的扰动样本为,原样本为。在寻找对抗样本时需要让,即模型对两种样本的预测值相同。但扰动样本的寻找还不仅只需要预测值相等。记表示预测答案概率值的差值。如果生成的对抗样本满足且,那么就称之为一次敏感性攻击。寻找对抗样本的过程中用到了束搜索(beam search)算法。这里简单介绍一下束搜索算法:
束搜索是贪心搜索和穷举搜索的一种折中。以下图的机器翻译任务为例,I代表“我”,H代表“恨”,U代表“你”,在进行翻译任务时需要使用搜索算法找到全局最优解。beam search 束搜索算法包含有一个超参数beam size(束宽)b,在每次根据前文翻译结果x寻找下一步的最优解时,束搜索总是会选择概率最高的前b个结果作为当前最优进行下一步搜索,最终得到b个结果。
——图片引用自
对应本文中的三个参数为、、 分别代表束宽、搜索的token个数、搜索深度。为了方便大家理解,以上图中的任务为例,具体说明三个参数的意义。在该任务中只有三个字(词,I、H、U),所以的值为3,又因为最终也要生成三个字(词),故搜索深度也为3,在每次选取时选取了2个结果,其束宽为2。束搜索会不断进行直到找到一个对抗样本使得,下图展示了不同参数下束搜索的效果。
这部分我们主要分析该论文提出的搜索对抗样本的方法的效果以及使用数据增强和对抗训练进行完善的模型在通用数据集上的效果。
了解了寻找对抗样本的方式后,作者统计了使用该方法寻找到的对抗样本的效果,如下图所示。可以看到使用基于实体的扰动的方式产生的对抗样本有效率更高,而使用基于词性的的方式生成的对抗样本只有大概一半的有效率。
下表展示了数据增强和对抗训练对于文中定义的“不敏感”问题的影响。从论文当中的数据可以看到,在不影响准确率的情况下“不敏感”问题的错误率有着显著的下降。但个人认为论文当中的结果并不全面,该实验结果是SQuAD2.0 dev集上的结果,其中可回答的问题与不可回答的问题比例大约50%;50%。由于数据增强和对抗训练会导致模型回答UNKNOW问题的能力提高的同时也影响了有答案问题的抽取。故如果可回答和不可回答的问题的比例发生改变,其中最终结果也会发生变化,不能说两种方法对准确率没有影响。
文中提到了解决“不敏感”问题的两种方法,下边介绍一下两种方法。
NLP领域数据增强主要依靠于语义不变性,常见方法:词汇替换、回译、字面转换、随机噪声注入等。下边是数据增强的一个例子:
说到数据增强就不得不提一下现在大火的对比学习了。对比学习是自监督学习的一种,自监督学习包括Generative Methods(生成式方法)和Contrastive Methods(对比式方法)。对比学习的目标是区分两个实例是否是由同一个源数据采样/增强得来,如果是,让它们在表示空间中越接近;如果不是,让它们在表示空间中远离:
对比学习的优化目标InfoNCE:
细心的同学可能发现了其实这就是一个交叉熵函数(softmax+nll),分子和分母可以分别体现对比学习的主要思想:拉近“Alignment”的同时,使“Uniformity”尽可能的提高。
对抗训练的过程就是针对每个样本生成对抗样本进行训练的过程。对抗训练可以概括为以下公式:
其中 X 表示样本的输入表示,δ 表示叠加在输入上的扰动, f是神经网络函数,y是样本的标签,L(f(X+δ)+y)则表示在样本X上叠加一个扰动δ,再经过神经网络函数,与标签y比较得到的损失。 max(L) 是优化目标,即寻找使损失函数最大的扰动,简单来讲就是添加的扰动要尽量让神经网络迷惑。但δ的大小也要保持在ϵ内,否则就不是微小扰动了。
转载地址:http://qqmgi.baihongyu.com/