COMMONSENSEQA: A Question Answering Challenge Targeting Commonsense Knowledge

 

题目与摘要

本文针对什么任务?任务简要介绍下。

创建问答数据集,基于知识图谱

本文发现了什么问题?该文大体是怎么解决的?解决得如何?

以往的问答都是针对给定文字或者段落,提出问题,选择答案。回答问题所需的广泛知识背景(段落未给出)比较少。

基于CONCEPTNET创建了COMMONSESENSEQA数据集。在CONCEPTNET中抽取具有相同语义关系的source concept和target concept。以source为基础编写,target作为答案,编写单项选择题。希望workers可以利用到以前的知识。创建了12,247个问题。

acc baseline 56%,但是距离人类标准89%还有很大差距。

解释下题目。题目起得如何?能概括内容并吸引人吗?

题目简单明了,概括了整篇文章内容。

介绍

这个任务以往是如何解决的?作者沿着哪条路径继续研究的?为什么?

以往大部分是在给定文本中寻找问题答案,常识需求特别少。

SWAG给定事件的描述,推测后续的事件发展。但是在未标注的语料上就可以很好的训练,所以SWAG的水平已经达到人类。

VCR,看图回答问题:需要更广的常识。

目前工作存在什么问题?为什么?你觉得可能还存在什么其他问题?为什么?

目前的常识研究只触及表面。需要研究模型到底学习到了什么,以及还有什么缺陷。

常识的划分还不够细,CONCEPT与CONCEPT之间的relation对应到语言,还是有问题。一些语义规则是否能很好的融入到模型中,或者人类的语言规则与机器学习到的是否一致?

该文准备如何解决这个问题?为什么可以这样解决?你觉得该文解决这个问题的方法如何?为什么?你觉得可以如何/或更好的解决这个问题?为什么?

构建了一个基于CONCEPTNET的常识问答数据集,提出了完整的流程生成问题。

因为依据常识的生成问题中,选取一个source concept 以及3个具有相同语义关系的target concept。从中选取一个正确答案,并填加2个干扰项,并众包构建问题,筛选。

因为workers需要用到知识来构建问题以区分CONCEPT。

控制变量做的很好。因为这样构建的单选题的选项比较相似,难度也比较大,更易考验,模型是否能够区分。

我觉得应该使用大量的文本,让模型进行学习总结,单纯不给背景知识,仅依靠词向量所包含的信息以及模型自身能力进行测试可能比较单薄。依据知识图谱,知识图谱一些语义关系的成立也应该是有条件的,模型又不知道,什么情况下,这种关系成立。

 

1、测试是否可以理解知识图谱,那应该对知识图谱进行读取,虽然baseline使用了CONCEPTNET node embedding(知识图谱的节点编码)

2、阅读模型大量文本,看是否可以结合知识图谱进行解答。主要是问题的难度,以及,source 与target在段落中是否具有比较明显的关系。

本文也尝试了阅读理解,在web上选取包含文本与答案的,段落作为背景,进行阅读理解。

列出该文贡献(该文自己觉得的)

创建了一个新的QA数据集。包含12,247案例

生成常识问题的新方法从CONCEPTNET

即便在目前最好的NLU模型上,结果对比人类还差了很多。

数据集

COMMONSENSEQA: A Question Answering Challenge Targeting Commonsense Knowledge

构建过程

1、在CONCEPTNET中抽取sub-graph (包含一个source concept 以及3个target concept,并且source 与target的relation相同).

CONCEPT包含32,000,000个(source,relation,target)对。

过滤:

  1. 类似is a ,related to 比较简单的relation,最后只留22 relation
  2. concept包含超过4个词,或者并非英语
  3. source targe的edit distance距离过近。

过滤后236,208对(q,r,a) 

2、亚马逊众包workers为每个sub-graph 编写3个问题,一个问题对应一个target concept。并为每个问题添加一个与source-target relation相同的干扰项 concept ,以及一个worker自己添加,认为与问题相关,但人类易忽略掉的干扰项。

  1. 编写问题,workers进行打分比较问题表面有答案线索,例如"open"  "door"。最后只接受75%问题
  2. 为问题添加干扰项,一个是相同的relation,另一个worker自行添加

3、验证:2名worker进行问题回答,至少一名回答正确才算是有效,过滤掉15%问题

4、在搜索引擎中搜索问题为每个问题增添文本,以便作为阅读理解的背景。

谷歌搜索问题加答案,每个答案取前100片段,5个答案,500片段,作为阅读理解背景。

16242问题中国选取12247个最终问题。一个问题平均$0.33.

数据分析

The top-5 question concepts in COMMONSENSEQA are ‘Person’(3.1%), ‘People’ (2.0%), ‘Human’ (0.7%), ‘Water’(0.5%) and ‘Cat’ (0.5%).(sub-graph要求relation相同,所以relation不同,但是question concept相同,并没有关系)

统计了问题中relation的分布比,

COMMONSENSEQA: A Question Answering Challenge Targeting Commonsense Knowledge

因为worker标注时,并没有注明relation是什么,所以worker编写的问题侧重点可能不是relation。例如:“What do audiences clap for?” was generated from the AtLocation relation, but focuses on social conventions instead.

122 worker参与10worker 编写了85%问题

对问题的第一个词与第二个词进行统计

发现:

  1. 44%是WH(what,where,how,when...)词
  2. 5%使用故事作为开头
  3. 7%使用if,作为假设性条件。

显示了问题语言多样性

COMMONSENSEQA: A Question Answering Challenge Targeting Commonsense Knowledge

commonsense skill:

分析了从问题推理到答案的过程,从开发集随机选取100个案例进行分析,标注了人类推理答案所需使用的commonsense skill。俩个节点之间的边是skill。

COMMONSENSEQA: A Question Answering Challenge Targeting Commonsense Knowledge

平均回答一个问题需要使用1.75skill

在100案例中所使用的skill的统计

COMMONSENSEQA: A Question Answering Challenge Targeting Commonsense Knowledge

 

实验

模型及评价标准介绍

是否是完全预训练的模型,是否使用了网页上的搜索文本。

COMMONSENSEQA: A Question Answering Challenge Targeting Commonsense Knowledge

VECSIM:余弦相似度,词向量平均作为句子表示。

LM1B:1百万词大规模上训练的语言模型。2种方式:将问题与答案拼接、对于"what is"类似问题将答案拼在问题前方。其余的将答案拼在问题后边。(LSTM和CharCNN,数据量比较小)

QABILINEAR:双线性模型,question和answer都是词向量的均值。过softmax

COMMONSENSEQA: A Question Answering Challenge Targeting Commonsense Knowledge

QACOMPARE:语言理解模型

COMMONSENSEQA: A Question Answering Challenge Targeting Commonsense Knowledge

ESIM:语言推理模型

DIDAF++:阅读理解模型,BIDAF基础增加self-attention以及elmo。

GPT:“[start] If ... ? [sep] bedroom [end]” 对[end]标签的隐藏层状态做分类

Bert:“[CLS] If ... ? [sep] bedroom [sep]” 在bert-large进行。CLS作为隐藏层表示做分类。

数据集划分方法:

随机切割,以及将每个sug-graph的3个问题都分布在训练集,验证集,测试集(8/1/1).

acc评价标准

SANTITY,将所有干扰项换成随机选择

300Glove词向量

300 Numberbatch CONCEPTNET node  embedding

不随结果进行训练

人类随机抽取100问题进行回答。88.9%

结果分析

COMMONSENSEQA: A Question Answering Challenge Targeting Commonsense Knowledge

1、设置干扰项还是有一定作用,因为SANTITY数值比较低。随机分割难度比依据question分割难度大。

上半部分是没有被训练过的模型。ELMO低于Glove可能是因为,不能反向传播到表示自身。BIDAF++使用web片段并没有提升说明文本并没有携带很多信息(zsf:不一定,感觉文本没找好,或者模型问题)。

BAD CASE:

Bert的错误案例分析

对于问题表面就存在线索77.7%

否定词或者否定意义 42.8

需要使用事实知识38.4

需要细粒度干扰项35.4

存在假设条件,干扰项只满足一项,23.8

COMMONSENSEQA: A Question Answering Challenge Targeting Commonsense Knowledge

你觉得这篇paper创新与贡献是(不一定如作者所说)?为什么?

创建了语料,可以更深入研究模型学到了什么知识,在语料的构建过程中,控制变量做的很好,concept需要区分很细,提升了任务难度。一套严谨的问题生成方法,不局限于问题生成。bad case分析指明了目前的缺陷。

有没有进一步深入的价值?为什么?

有,以后需要用到知识,如何更好地表示,并运用到文本中需要探索。这个数据库可以验证,我们模型区分概念之间还存在什么问题。

列出该文弱点(或者是你觉得应该是什么问题,他解决的不好,你会如何解决?)

除了使用CONCEPT node embedding对于知识库还不够。可以拓展到从文本与知识库的对应上,怎样更准确。如果不加背景单纯靠词向量获取除语料外的知识,恐怕还不够。或者揭示了目前模型缺陷。

该文对你的启发是?

严谨,详细。

列出其中有价值的需要进一步阅读的参考文献

Robert Speer, Joshua Chin, and Catherine Havasi. 2017. Conceptnet 5.5: An open multilingual graph of general knowledge. In AAAI, pages 4444–4451