【笔记1-1】基于对话的问答系统CoQA (Conversational Question Answering)

CoQA: A Conversational Question Answering Challenge

  • (一)论文概述(摘要+简介)
  • (二)目标任务
  • (三)数据收集过程
    • 3.1 数据收集界面
    • 3.2 文章选取
    • 3.3 收集多个答案
  • (四)数据集分析
    • 4.1 CoQA与SQuAD 2.0对比
    • 4.2 对话流程
    • 4.3 语言现象
  • (五)模型部分
    • 5.1 对话模型(PGNet)
    • 5.2 阅读理解模型(DrQA)
    • 5.3 模型的组合
  • (六)模型评估
    • 6.1 评估指标
    • 6.2 实验
    • 6.3 结果
  • (七)总结

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对问题+答案(见下图示例)。
【笔记1-1】基于对话的问答系统CoQA (Conversational Question Answering)_第1张图片
与传统机器阅读理解中的问题和答案不同,该数据集中的问题和答案形式更加简洁,自由,基于对话的形式进行,与人们的日常对话更加相似。此外,得出相应答案的文章内容会进行标注。

2. 为什么要有CoQA:

以往的机器阅读理解以及基于此研究出来的对话机器都有一个显著的特点,对话不够自然。基于这一问题开发的CoQA旨在实现以下几个目标:

  1. 还原人类对话的性质:人们在日常对话中很少像阅读理解一样,基于材料给出常常的问题,或者基于材料生搬硬套出一个答案,要还原对话的这一本质,就需要解决传统阅读理解问题的问题-文章依赖性,以及实现基于对话历史的问答
  2. 保证答案的自然性:正如前文所述,以往的阅读理解会依赖材料截取答案,导致答案不够自然,不够口语化。因此要通过CoQA训练出形式较为自由的抽象答案(如上图相关回答),而不是简单的信息提取。
  3. 实现QA系统在不同领域的稳健性:以往的QA数据集来源于单一领域(如NewsQA, SQuAD, MS Marco, RACE等)而CoQA的数据来源于七个领域(域内:children’s
    stories, literature, middle and high school English exams, news, Wikipedia,域外: science and Reddit),以提高模型的泛化能力。

3. CoQA有什么独特之处:

  1. 来自8000个对话的127000轮问答,单个对话平均有15轮问答,每轮问答包含一个问题一个答案
  2. 答案形式自由,附带答案在文章中的相应出处(rationale,也就是得出该答案的依据)
  3. 文章来源于七个领域(5域内+2域外)

4. CoQA有什么难点以及目前最佳模型的表现:

近一半的CoQA问题中都用到了共指关系(如下图所示),需要根据历史信息得出正确答案,这对于传统机器问答而言是一项巨大的挑战。作者在对CoQA划定benchmark的时候,发现基于答案依据(rationale)的序列到序列(seq2seq)模型表现最好,但相比人类表现而言依旧有很大的提升空间(F1:65.1% < 88.8%)
【笔记1-1】基于对话的问答系统CoQA (Conversational Question Answering)_第2张图片
模型表现跟进
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,...Qn1,An1,Rn)
对于无法回答的问题,给出“unknown”的回答,不标注任何依据(R)

(三)数据收集过程

CoQA数据收集过程中,每个对话都包含一个提问者和回答者:

  1. 相对于单方面的回答系统,对话会更加自然
  2. 当一方给出模棱两可的问题或者错误的答案时,另一方可以据此进行标记
  3. 当两者意见不统一时,可以在一个独立的聊天窗中进行讨论

3.1 数据收集界面

对于提问者和回答者有不同的界面(见下图),提问者根据文章进行提问,回答者回答问题并标注出处(依据,R)

提问者界面:鼓励提问者问出不同类型的问题,确保数据的丰富度,不允许照搬原文,完全复制。
回答者界面:需要注明答案依据,鼓励对答案进行简洁化,转换表达方式,答案要专注于文中出处,确保答案的准确性。
【笔记1-1】基于对话的问答系统CoQA (Conversational Question Answering)_第3张图片
【笔记1-1】基于对话的问答系统CoQA (Conversational Question Answering)_第4张图片

3.2 文章选取

正如前文所述,CoQA选取了七个领域的文章:

  1. MCTest (儿童故事)
  2. Project Gutenberg(literature)
  3. RACE(中学英语考试)
  4. CNN (新闻)
  5. wikipedia
  6. AI2 Science Questions(科学文章)
  7. Writing Prompts(Reddit )
    【笔记1-1】基于对话的问答系统CoQA (Conversational Question Answering)_第5张图片

文章选取原则:
包含多个实体、事件以及代词

数据集划分:
对于领域1-5: 开发集100篇文章+测试集100篇文章+其余文章作为训练集
对于领域6-7: 测试集100篇文章+其余文章作为训练集

3.3 收集多个答案

由于问题的答案可能存在不同表述方式,即存在变体,因此在开发集和测试集中额外选取了三个答案。但是由于CoQA中的问题和答案以对话的形式展开,因此问题会影响答案,答案反过来又会影响到问题。为了保证对话的连贯性,采取了让回答者预测原始答案,尽量让回答者的答案向原始答案的方向上靠,这样能够让F1提升5.4%

(四)数据集分析

4.1 CoQA与SQuAD 2.0对比

【笔记1-1】基于对话的问答系统CoQA (Conversational Question Answering)_第6张图片
【笔记1-1】基于对话的问答系统CoQA (Conversational Question Answering)_第7张图片
SQuAD 2.0介绍:
SQuAD 是由 Rajpurkar 等人提出的阅读理解数据集。包含 10 万个(问题,原文,答案)三元组,来自于 536 篇维基百科文章,问题和答案的构建主要是通过众包的方式,让标注人员提出最多 5 个基于文章内容的问题并提供正确答案,且答案出现在原文中。SQuAD 和之前的完形填空类阅读理解数据集如 CNN/DM[2],CBT[3]等最大的区别在于:SQuAD 中的答案不再是单个实体或单词,而可能是一段短语,这使得其答案更难预测。SQuAD 包含公开的训练集和开发集,以及一个隐藏的测试集,采用与ImageNet 类似的封闭评测的方式,研究人员需提交算法到一个开放平台,并由 SQuAD 官方人员进行测试并公布结果。

CoQA与SQuAD区别:

  1. SQuAD中不存在指代词,但CoQA几乎每个部分都包含指代词,体现了CoQA的对话性
  2. CoQA答案形式更自由,问题也相应的更丰富
  3. SQuAD大部分是关于what的问题,而CoQA的问题类型分布更广泛(如上图所示)
  4. did, was, is, does and这些词经常在CoQA中见到,但SQuAD中却很少见
  5. CoQA的问题和答案更短(平均:5.5<10.1)
  6. SQuAD中包含更多无法回答的问题,CoQA中有更多抽象而无法直接进行提取的问题
    【笔记1-1】基于对话的问答系统CoQA (Conversational Question Answering)_第8张图片

4.2 对话流程

作者认为数据库中文章的结构会影响到对话的流程,因此对文章结构进行了统一。参考rationale将文章划分为十块,然后记录对话进行过程中,对十个大块的关注程度的变化情况,如下图所示:
图中,横轴表示对话的轮数(即第几轮问答)纵轴表示对话块的分布。从上往下(红色到深绿)依次为文章的第一块到最后一块,文中的灰色频率带宽度表示块与块之间转换的频繁程度,越频繁的转换,带宽越宽。
由图可知,最开始对话总是集中在前面几块,随着对话轮数的进行,关注点逐渐偏向后面的块(表现为红色部分逐渐减小,下方其他部分逐渐增大)块与块之间的转移表明相邻块之间的转移更加频繁。
【笔记1-1】基于对话的问答系统CoQA (Conversational Question Answering)_第9张图片

4.3 语言现象

问题与文章和对话历史的关系:
词汇匹配:问题包含至少一个出现在文章中的内容词(9.8 %)
释义:基本原理的释义,同义、反义词、上下义和否定(43.0 %)
语用学:常识和预设(27.2 %)

不依赖于与会话历史的共指,可以自己回答(30.5 %)
包含明确的共指(49.7 % )
没有明确的共指(19.8 %)
【笔记1-1】基于对话的问答系统CoQA (Conversational Question Answering)_第10张图片

(五)模型部分

模型任务:
给定文章 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,...,qi1,ai1}
输入:问题 q i q_i qi
输出:答案 a i a_i ai
模型构成:PGNet+DrQA

5.1 对话模型(PGNet)

https://arxiv.org/pdf/1704.04368.pdf
Get To The Point: Summarization with Pointer-Generator Networks

模型概述:
PGNet:以传统的seq2seq模型为基础,使用包含注意力模型的seq2seq生成答案
将文章,对话历史,当前问题输入双向LSTM的encoder中,在decoder中引入允许从文章中复制词语的复制机制。

5.2 阅读理解模型(DrQA)

https://arxiv.org/pdf/1704.00051.pdf
Reading Wikipedia to Answer Open-Domain Questions

模型概述:
DrQA:Document Retriever + Document Reader用于根据问题找出指定范围,并根据指定范围得出问题的答案。

5.3 模型的组合

由于DrQA无法生成与文章不相重合的答案,因此将上述两个模型进行组合。

DrQA模型用于找到文章当中对应问题的依据所在,然后使用PGNet对找到的依据进行自然化,生成形式自由的答案。引用之前的标注,即:
对于问题 Q Q Q,DrQA在文章中找到依据 R R R,再由此利用PGNet生成答案 A A A

模型调整
根据模型实际的表现,基于原模型基础,作出以下调整(简化):
DrQA仅输出文章中对应的出处(R)作为问题的答案;
仅将当前问题以及由DrQA得到的范围预测作为PGNet encoder的输入

(六)模型评估

6.1 评估指标

评估指标: 根据重合度计算的F1分值
SQuAD: 模型输出的每一个结果与n个人工答案进行比较,得到n个F1分值,取n个分值中最大的值作为该模型输出的F1分值。
问题:n个人工答案仅与n-1个答案进行比较评估,会导致对人类表现的低估。
CoQA: 将n个人工答案分配到n个集合当中,每个集合包含n-1个答案,对于每个问题,取这n个集合得出的F1分值的平均值作为模型表现的分值。

6.2 实验

在开发集上调试超参数:使用的历史对话的问答轮数,隐藏层个数,各层隐藏单元的个数,dropout值;
对于对话模型,使用GloVw构建词映射矩阵(word embedding)在训练过程中会对矩阵进行更新;
对于阅读理解模型,使用fastText进行文本分类

6.3 结果

【笔记1-1】基于对话的问答系统CoQA (Conversational Question Answering)_第11张图片

  1. 各模型中,seq2seq表现最差
  2. DrQA+PGNet效果最好
  3. 最好的模型比人类表现差23.7%
  4. 模型在域外数据集上效果更差,尤其是reddit

对话历史轮数:
模型表现会随着历史对话轮数的增加而降低,PGNet除外。大部分模型在有一轮历史对话的时候模型效果会有一定的提升,但之后会随着历史对话轮数上升而下降。
【笔记1-1】基于对话的问答系统CoQA (Conversational Question Answering)_第12张图片

(七)总结

本文主要介绍了数据集CoQA的收集,特点及意义,在实验过程中利用PGNet和DrQA对数据集的benchmark进行评定,以供后续研究进行参考与比对。

你可能感兴趣的:(笔记,陈丹琦论文)