DrKIT intuition. Source: Dhingra et al
这个框架看起来可能会有些复杂,我们接下来将它分成几个步骤来说明。
1)首先,给定一个question(可能需要多跳推理),实体链接器会生成一组 entities(下图中的Z0)。
2)使用预先计算的索引(例如TF-IDF)将一组实体扩展为一组mentions(表示为稀疏矩阵A)。
3)在右侧,question 会通过一个类似BERT的编码器,从而形成一个紧密向量。
4)所有mentions 也通过一个类似BERT的编码器进行编码。
5)使用MIPS(Maximum Inner Product Search)算法计算scoring function(用来衡量mentions, entities 和 question相关分数),从而得到Top-k向量。
6)矩阵A乘以Top-K 选项;
7)结果乘以另一个稀疏的共指矩阵B(映射到一个实体)。
这构成了单跳推理步骤,并且等效于在虚拟KB中沿着其关系跟踪提取的实体。输出可以在下一次迭代中进一步使用,因此对N跳任务会重复N次!
此外,作者介绍了一个基于Wikidata的新的插槽填充数据集(采用SLING解析器构造数据集),并在MetaQA、HotpotQA上评估了 DrKIT,总体来说结果非常棒。
4、Learning to Retrieve Reasoning Paths over Wikipedia Graph for Question Answering
文章链接:https://openreview.net/pdf?id=SJgVHkrYDH
Asai等人的工作专注于HotpotQA,他们提出了Recurrent Retriever的结构,这是一种开放域QA的体系结构,能够以可区分的方式学习检索推理路径(段落链)。
Recurrent Retrieval architecture. Source: Asai et al
传统上,RC模型会采用一些现成的检索模型来获取可能的候选者,然后才执行神经读取pipeline。这篇工作则希望让检索具有差异性,从而将整个系统编程端到端的可训练模型。
1)整个Wikipedia(英语)都以图谱的形式组织,其边表示段落和目标页面之间的超链接。例如对于Natural Questions,大小约为3300万个节点,边有2.05亿个。
2)检索部分采用的RNN,初始化为一个隐状态h0,这是对问题 q 和候选段落p编码后获得的。这些候选段落首先通过TF-IDF生成,然后通过图谱中的链接生成。(上图中最左侧)
3)编码(q,p)对的BERT [CLS]令牌会被送到RNN中,RNN会预测下一个相关的段落。
4)一旦RNN产生一个特殊的[EOE]令牌,读取器模块就会获取路径,对其重新排序并应用典型的提取例程。
作者采用波束搜索和负采样来增强对嘈杂路径的鲁棒性,并很好地突出了路径中的相关段落。重复检索(Recurrent Retrieval )在HotpotQA的 full Wiki测试设置上的F1分数获得了惊人的73分。这篇工作的代码已发布。
5、Neural Symbolic Reader: Scalable Integration of Distributed and Symbolic Representations for Reading Comprehension
文章链接:https://openreview.net/pdf?id=ryxjnREFwH
6、Neural Module Networks for Reasoning over Text
文章链接:https://openreview.net/pdf?id=SygWvAVFPr
我们接下来谈两篇复杂数字推理的工作。
在数字推理中,你需要对给定的段落执行数学运算(例如计数、排序、算术运算等)才能回答问题。例如:
文本:“……美洲虎队的射手乔什·斯科比成功地射入了48码的射门得分……而内特·凯丁的射手得到了23码的射门得分……”问题:“谁踢出最远的射门得分?”
目前为止,关于这个任务只有两个数据集,DROP(SQuAD样式,段落中至少包含20个数字)和MathQA(问题较短,需要较长的计算链、原理和答案选项)。因此,这个任务的知识图谱并不很多。尽管如此,这仍然是一个有趣的语义解析任务。
在ICLR 2020 上,有两篇这方面的工作。一篇是是Chen 等人的工作,提出了一个神经符号读取器NeRd(Neural Symbolic Reader);另一篇是Gupta等人在神经模块网络NMN(Neural Module Networks)上的工作。
NeRd vs other approaches. Source: Chen et al
两项工作都是由读取器和基于RNN的解码器组成,从预定义的域特定语言(DSL,Domain Specific Language)生成操作(操作符)。从性能上相比,NeRd更胜一筹,原因在于其算符的表达能力更强,解码器在构建组合程序上也更简单。另一方面,NMN使用张量交互对每个运算符进行建模,于是你需要手工制定更多的自定义模块来完成具体任务。
此外,NeRd的作者做了许多努力,为弱监督训练建立了可能的程序集,并采用了带有阈值的Hard EM 算法来过滤掉虚假程序(能够基于错误的程序给出正确答案)。NeRd 在DROP测试集上获得了81.7 的F1 分数,以及78.3 的EM分数。
对NMN进行评估,其中月有25%的DROP数据可通过其模块来回答,在DROP dev测试中获得了77.4 的F1 分数 和74 的EM 分数。
二、知识图谱增强的语言模型
将知识融入语言模型,目前已是大势所趋。
7、Pretrained Encyclopedia: Weakly Supervised Knowledge-Pretrained Language Model
文章链接:https://openreview.net/pdf?id=BJlzm64tDH
今年的ICLR上,Xiong等人在预测[MASK] token之外,提出了一个新的训练目标:需要一个模型来预测entity是否已经被置换。
作者对预训练Wikipedia语料库进行处理,基于超链接,将Wiki的entity表面形式(标签)替换为相同类型的另一个entity。基于P31的「instance of」关系,从wikidata中获取类型信息。如下图所示,在有关Spider-Man的段落中,实体 Marvel Comics 可以替换为 DC Comics。
Pre-training objective of WKLM. Source: Xiong et al
模型的任务是预测实体是否被替换掉了。
WKLM(Weakly Supervised Knowledge-Pretrained Languge Model)使用MLM目标(掩蔽率为5%,而不是BERT的15%)进行预训练,每个数据点使用10个负样本,类似于TransE的训练过程。
作者评估了10个Wikidata关系中的WKLM事实完成性能(fact completion performance),发现其达到了约29 Hits@10的速率,而BERT-large和GPT-2约为16。
随后,作者在性能优于基准的WebQuestions,TriviaQA,Quasar-T和Search-QA数据集上对WKLM进行了微调和评估。
总结一句话,这是一个新颖的、简单的,但却有实质性意义的想法,有大量的实验,也有充分的消融分析。
三、知识图谱嵌入:循序推理和归纳推理
像Wikidata这样的大型知识图谱永远不会是静态的,社区每天都会更新数千个事实(facts),或者是有些事实已经过时,或者是新的事实需要创建新实体。
循序推理。说到时间,如果要列出美国总统,显然triple-base的知识图谱,会把亚当斯和特朗普都列出来。如果不考虑时间的话,是否意味着美国同时有45位总统呢?为了避免这种歧义,你必须绕过纯RDF的限制,要么采用具体化的方式(针对每个具体的歧义进行消除),要么采用更具表现力的模型。例如Wikidata状态模型(Wikidata Statement Model)允许在每个statement中添加限定符,以总统为例,可以将在限定符处放上总统任期的开始时间和结束时间,通过这种方式来表示给定断言为真的时间段。循序知识图谱嵌入算法(Temporal KG Embeddings algorithms)的目标就是够条件这样一个时间感知(time-aware)的知识图谱表示。在知识图谱嵌入中时间维度事实上,只是嵌入字(例如身高、长度、年龄以及其他具有数字或字符串值的关系)的一部分。
归纳推理。大多数现有的知识图谱嵌入算法都在已知所有实体的静态图上运行——所谓的转导设置。当你添加新的节点和边时,就需要从头开始重新计算整个嵌入;但对于具有数百万个节点的大型图来说,这显然不是一个明智的方法。在归纳设置(inductive setup)中,先前看不见的节点可以根据他们之间的关系和邻域进行嵌入。针对这个主题的研究现在不断增加,ICLR 2020 上也有几篇有趣的文章。
8、Tensor Decompositions for Temporal Knowledge Base Completion
文章链接:https://openreview.net/pdf?id=rke2P1BFwS
Lacroix等人使用新的正则化组件扩展了ComplEx嵌入模型,这些正则化组件考虑了嵌入模型中的时间维度。
这项工作非常深刻,具体表现在以下几个方面:1)想法是将连续的时间戳(如年,日及其数值属性)注入到正则化器中;2)作者提出TComplEx,其中所有谓词都具有time属性;提出TNTCompEx,其中对诸如「born in」这样“永久”的属性进行区别对待。实验表明,TNTCompEx的性能更好;3)作者介绍了一个新的大型数据集,该数据集基于Wikidata Statements,但带有开始时间和结束时间限定符,该数据集包含约40万个实体和700万个事实。