本文共 1519 字,大约阅读时间需要 5 分钟。
作者:孙嘉伟
单位:燕山大学
这是一篇比较经典的论文,发表在EMNLP2017上面,可以说是文本对抗领域的开山之作,作者是Percy Liang 和Robin Jia。
论文地址:
代码地址:
文章所研究的问题是:阅读理解模型容易受到对抗样本的攻击。使用的数据集是经典的SQuAD1.0数据集。
首先介绍一下SQuAD数据集,SQuAD数据集可以概括为<q,c,a>三元组的集合。其中q是提问的问题;c是文本内容;a是问题对应的答案,是c中的一个片段。模型需要对文本内容c进行理解来回答问题q。而a就是<q,c>所对应的有监督训练标签。
“容易受到对抗样本的攻击”可能说起来有些抽象,我们以下边的例子来说明阅读理解模型是如何被攻击的:在上图中,黑色字体为原文本中的内容,蓝色字体为根据文本内容所产生的的干扰片段(adversarial distracting sentence)。在加入干扰片段后,我们人类可以判断出,问题所对应的答案并不会产生改变,但阅读理解模型的回答却由原来的John Elway(绿色字体)变为了Jeff Dean(红色字体)。
那最核心的要点来了!如何生成这个干扰性的片段呢?
以addSent数据集为例,addSent的生成由四个步骤组成。图片和文字结合观看更容易理解一些。
使用WordNet中的反义词替换名词和形容词,使用在预训练词向量GloVe中词性相近的词替换原文中的实体词和数字。问题中的大部分信息由于和问题具有高度的重合性,可以干扰模型对问题的判断。
生成假答案。和1中替换仅实体词和数字词的目的相同,这一步是为了不改变插入扰动前后问题、文章所对应的真实答案。
第三步就是组合工作了,这一步需要将第一第二步生成的结果拼接起来形成最终的干扰片段。这一步会将第一步生成的问题句子和第二步的结果转变为陈述性的句子。它的转换规则类似: w h a t / w h i c h N P 1 V P 1 ? what/which NP_{1} VP_{1} ? what/whichNP1VP1? 变换为: T h e N P 1 o f [ A n s w e r ] V P 1 The NP_{1} of [Answer] VP_{1} TheNP1of[Answer]VP1
最后一步是人工校准第三步生成的结果。这里不再赘述
addOneSent 的构造思路与addSent类似,只不过addSent需要从若干个生成的对抗样本中挑选对于模型最具有迷惑性的样本(输出概率高),而addOneSent则会随机选取一个。
文中还提到了addAny对抗集的构造,不同于addSent的构造,addAny在构造时不会考虑语法的正确性,使用该方法产生的数据质量较差,使用该数据集的人较少。由于文章是在2017年发表的,原文中分析了当时比较流行的Mtach-LSTM、BiDAF等16个阅读理解模型在该对抗集的效果:
表内数据是预测结果的F1值。可以看到,大部分模型的F1值均有大幅的下降。
现在的阅读理解任务当中,一般使用BERT+Fine-tuning的模型解决阅读理解任务。笔者也找到了近几年在该对抗数据集上的效果对比:
——引自《Robust Question Answering Through Sub-part Alignment》,NAACL 2021
——引自《Model Agnostic Answer Reranking System for Adversarial Question Answering》,EACL 2021
转载地址:http://lhmgi.baihongyu.com/