博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
论文笔记 | Adversarial Examples for Evaluating Reading Comprehension Systems
阅读量:4290 次
发布时间:2019-05-27

本文共 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的生成由四个步骤组成。图片和文字结合观看更容易理解一些。

在这里插入图片描述

  1. 使用WordNet中的反义词替换名词和形容词,使用在预训练词向量GloVe中词性相近的词替换原文中的实体词和数字。问题中的大部分信息由于和问题具有高度的重合性,可以干扰模型对问题的判断。

  2. 生成假答案。和1中替换仅实体词和数字词的目的相同,这一步是为了不改变插入扰动前后问题、文章所对应的真实答案。

  3. 第三步就是组合工作了,这一步需要将第一第二步生成的结果拼接起来形成最终的干扰片段。这一步会将第一步生成的问题句子和第二步的结果转变为陈述性的句子。它的转换规则类似: 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

  4. 最后一步是人工校准第三步生成的结果。这里不再赘述

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/

你可能感兴趣的文章
yum的使用
查看>>
./configure 的配置和用法
查看>>
web.config
查看>>
web.xml
查看>>
web.xml(简介介绍)
查看>>
asp.net控件
查看>>
Java 面试题
查看>>
Java 代码安全(Coding Safe)
查看>>
正则表达式
查看>>
常用正则表达式大全
查看>>
JDK1.5(jdk5.0)新特性
查看>>
JDK1.6(jdk6.0)新特性
查看>>
java中的集合存储结构
查看>>
java中的集合存储结构
查看>>
Java基础——对象和类,类中的变量和方法
查看>>
谈谈JDBC
查看>>
jdbc_API中的说明
查看>>
jdbc_javax包
查看>>
Android 6.0 APIs_新特性(google官方)
查看>>
maxwell斗胆也来谈谈"学习方法“_转自黑马论坛
查看>>