CoQA: A Conversational Question Answering Challenge (Siva Reddy, Danqi Chen, Christopher D. Manning) https://arxiv.org/pdf/1808.07042v1.pdf
CoQA Challenge: https://stanfordnlp.github.io/coqa/
最近在读陈丹琦学姐的博士毕业论文,论文里面涉及到的关键论文和模型都会在近期进行一下总结,以帮助理解毕业论文中的相关模型以及思想。
【笔记1-2】基于维基百科的开放域问题问答系统DrQA
【笔记1-3】斯坦福机器阅读理解模型Stanford Attentive Reader
【笔记1-4】陈丹琦毕业论文 NEURAL READING COMPREHENSION AND BEYOND
初步感慨:不看陈丹琦学姐的论文是真的不知道她有多么厉害,看了之后不仅自己要感慨一番学姐的过人之处,还要拉着旁边的同学安利一波,是真的非常佩服了,恨不得自己高中的时候也早早搭上AI的车。看来以后要多多努力了,站在巨人的肩膀上也还是能够有所成就的。
1. CoQA是什么:
人们在日常对话中可以通过问答来逐渐地接收以及传递信息,但是传统的机器阅读理解并不具备这一功能,基于这一需求,产生了CoQA。CoQA (Conversational Question Answering)对应的中文发音为“扣卡”,是一个用来衡量机器进行对话式问答能力的数据集,包含来自8000个对话的127000对问题+答案(见下图示例)。
与传统机器阅读理解中的问题和答案不同,该数据集中的问题和答案形式更加简洁,自由,基于对话的形式进行,与人们的日常对话更加相似。此外,得出相应答案的文章内容会进行标注。
2. 为什么要有CoQA:
以往的机器阅读理解以及基于此研究出来的对话机器都有一个显著的特点,对话不够自然。基于这一问题开发的CoQA旨在实现以下几个目标:
3. CoQA有什么独特之处:
4. CoQA有什么难点以及目前最佳模型的表现:
近一半的CoQA问题中都用到了共指关系(如下图所示),需要根据历史信息得出正确答案,这对于传统机器问答而言是一项巨大的挑战。作者在对CoQA划定benchmark的时候,发现基于答案依据(rationale)的序列到序列(seq2seq)模型表现最好,但相比人类表现而言依旧有很大的提升空间(F1:65.1% < 88.8%)
模型表现跟进:
2018在CoQA数据集上表现最佳的是微软语音与对话研究团队开发的SDNet,其F1高达80.7%,成为第一个在CoQA数据集上得分超过80%的模型。
2019年1月,搜狗研究团队凭借BERT + Answer Verification(单一模型),在CoQA上F1高达82.8%
(之后有时间的话会对这部分相关内容进行跟进了解)
任务:
给定一篇文章和一段对话,回答对话中的下一个问题。
对话中的每一轮由问题(Q),答案(A),依据( R)组成,答案往往比依据简洁很多。
回答问题时,需要考虑对话中的历史信息,比如回答 Q 2 Q_2 Q2时,要基于对话历史 Q 1 Q_1 Q1, A 1 A_1 A1以及回答依据 R 2 R_2 R2,可以简单表示为:
A 2 = f ( Q 2 , Q 1 , A 1 , R 2 ) A n = f ( Q n , Q 1 , A 1 , . . . Q n − 1 , A n − 1 , R n ) A_2 = f(Q_2, Q_1, A_1, R_2) \\ A_n = f(Q_n, Q_1, A_1,...Q_{n-1},A_{n-1},R_n) A2=f(Q2,Q1,A1,R2)An=f(Qn,Q1,A1,...Qn−1,An−1,Rn)
对于无法回答的问题,给出“unknown”的回答,不标注任何依据(R)
CoQA数据收集过程中,每个对话都包含一个提问者和回答者:
对于提问者和回答者有不同的界面(见下图),提问者根据文章进行提问,回答者回答问题并标注出处(依据,R)
提问者界面:鼓励提问者问出不同类型的问题,确保数据的丰富度,不允许照搬原文,完全复制。
回答者界面:需要注明答案依据,鼓励对答案进行简洁化,转换表达方式,答案要专注于文中出处,确保答案的准确性。
正如前文所述,CoQA选取了七个领域的文章:
文章选取原则:
包含多个实体、事件以及代词
数据集划分:
对于领域1-5: 开发集100篇文章+测试集100篇文章+其余文章作为训练集
对于领域6-7: 测试集100篇文章+其余文章作为训练集
由于问题的答案可能存在不同表述方式,即存在变体,因此在开发集和测试集中额外选取了三个答案。但是由于CoQA中的问题和答案以对话的形式展开,因此问题会影响答案,答案反过来又会影响到问题。为了保证对话的连贯性,采取了让回答者预测原始答案,尽量让回答者的答案向原始答案的方向上靠,这样能够让F1提升5.4%
SQuAD 2.0介绍:
SQuAD 是由 Rajpurkar 等人提出的阅读理解数据集。包含 10 万个(问题,原文,答案)三元组,来自于 536 篇维基百科文章,问题和答案的构建主要是通过众包的方式,让标注人员提出最多 5 个基于文章内容的问题并提供正确答案,且答案出现在原文中。SQuAD 和之前的完形填空类阅读理解数据集如 CNN/DM[2],CBT[3]等最大的区别在于:SQuAD 中的答案不再是单个实体或单词,而可能是一段短语,这使得其答案更难预测。SQuAD 包含公开的训练集和开发集,以及一个隐藏的测试集,采用与ImageNet 类似的封闭评测的方式,研究人员需提交算法到一个开放平台,并由 SQuAD 官方人员进行测试并公布结果。
CoQA与SQuAD区别:
作者认为数据库中文章的结构会影响到对话的流程,因此对文章结构进行了统一。参考rationale将文章划分为十块,然后记录对话进行过程中,对十个大块的关注程度的变化情况,如下图所示:
图中,横轴表示对话的轮数(即第几轮问答)纵轴表示对话块的分布。从上往下(红色到深绿)依次为文章的第一块到最后一块,文中的灰色频率带宽度表示块与块之间转换的频繁程度,越频繁的转换,带宽越宽。
由图可知,最开始对话总是集中在前面几块,随着对话轮数的进行,关注点逐渐偏向后面的块(表现为红色部分逐渐减小,下方其他部分逐渐增大)块与块之间的转移表明相邻块之间的转移更加频繁。
问题与文章和对话历史的关系:
词汇匹配:问题包含至少一个出现在文章中的内容词(9.8 %)
释义:基本原理的释义,同义、反义词、上下义和否定(43.0 %)
语用学:常识和预设(27.2 %)
不依赖于与会话历史的共指,可以自己回答(30.5 %)
包含明确的共指(49.7 % )
没有明确的共指(19.8 %)
模型任务:
给定文章 p p p,对话历史 { q 1 , a 1 , . . . , q i − 1 , a i − 1 } \{q_1,a_1,...,q_{i-1},a_{i-1}\} {q1,a1,...,qi−1,ai−1}
输入:问题 q i q_i qi
输出:答案 a i a_i ai
模型构成:PGNet+DrQA
https://arxiv.org/pdf/1704.04368.pdf
Get To The Point: Summarization with Pointer-Generator Networks
模型概述:
PGNet:以传统的seq2seq模型为基础,使用包含注意力模型的seq2seq生成答案
将文章,对话历史,当前问题输入双向LSTM的encoder中,在decoder中引入允许从文章中复制词语的复制机制。
https://arxiv.org/pdf/1704.00051.pdf
Reading Wikipedia to Answer Open-Domain Questions
模型概述:
DrQA:Document Retriever + Document Reader用于根据问题找出指定范围,并根据指定范围得出问题的答案。
由于DrQA无法生成与文章不相重合的答案,因此将上述两个模型进行组合。
DrQA模型用于找到文章当中对应问题的依据所在,然后使用PGNet对找到的依据进行自然化,生成形式自由的答案。引用之前的标注,即:
对于问题 Q Q Q,DrQA在文章中找到依据 R R R,再由此利用PGNet生成答案 A A A
模型调整:
根据模型实际的表现,基于原模型基础,作出以下调整(简化):
DrQA仅输出文章中对应的出处(R)作为问题的答案;
仅将当前问题以及由DrQA得到的范围预测作为PGNet encoder的输入
评估指标: 根据重合度计算的F1分值
SQuAD: 模型输出的每一个结果与n个人工答案进行比较,得到n个F1分值,取n个分值中最大的值作为该模型输出的F1分值。
问题:n个人工答案仅与n-1个答案进行比较评估,会导致对人类表现的低估。
CoQA: 将n个人工答案分配到n个集合当中,每个集合包含n-1个答案,对于每个问题,取这n个集合得出的F1分值的平均值作为模型表现的分值。
在开发集上调试超参数:使用的历史对话的问答轮数,隐藏层个数,各层隐藏单元的个数,dropout值;
对于对话模型,使用GloVw构建词映射矩阵(word embedding)在训练过程中会对矩阵进行更新;
对于阅读理解模型,使用fastText进行文本分类
对话历史轮数:
模型表现会随着历史对话轮数的增加而降低,PGNet除外。大部分模型在有一轮历史对话的时候模型效果会有一定的提升,但之后会随着历史对话轮数上升而下降。
本文主要介绍了数据集CoQA的收集,特点及意义,在实验过程中利用PGNet和DrQA对数据集的benchmark进行评定,以供后续研究进行参考与比对。