- 标题:Neural Symbolic Reader: Scalable Integration of Distributed and Symbolic Representations for Reading Comprehension
- 链接:https://openreview.net/forum?id=ryxjnREFwH
- 来源:ICLR2020
- 主题:神经符号计算,阅读理解
- 作者:Xinyu Chen,Google Brain
摘要
- 以往工作不足:将分布式表示与符号操作集成对于需要复杂推理(如计数、排序和算术)的阅读理解非常重要,但现有的大多数方法依赖于专门的神经模块,难以适应多领域或多步推理。
- 本文:在这项工作中,我们提出了神经符号解读器(NeRd),它包括一个Reader,例如BERT,用来编码文章和问题,以及一个Programmer,例如LSTM,用来产生一个多步骤推理的程序。通过使用像span选择这样的操作符,程序可以在文本上执行来生成答案。
- 创新点:
- NeRd在两个方面具有更强的可扩展性:(1)与领域无关,相同的神经结构适用于不同的领域;(2)复合性,即通过组合基本的符号运算符可以生成复杂的程序。
- 为了克服训练弱监督的NeRd的挑战,我们应用了数据扩充技术和带有阈值的hard期望最大化(EM)。
- 实验:
- 在DROP上,一个需要离散推理的具有挑战性的阅读理解数据集,NeRd在Exact-Match(EM)/F1指标上获得了1.37%/1.18%的绝对收益。
- 在相同的架构下,NeRd的表现明显优于MathQA的基线(MathQA是一种数学问题基准测试,需要多步推理)
- 在所有标注程序数据上训练时,准确率提高了25.5%,更重要的是,即使只有20%的程序标注数据,NeRd的表现仍然超过基线。
引言
- 虽然应用BERT等预训练模型后,神经网络在一些基准测试中表现优于人类,但这种进步主要局限于抽取问题的回答,其中的答案是一个single span的文本。这种类型的基准测试通常测试文本模式匹配的能力,而不是推理的能力。
- 在DROP (Dua et al ., 2019)和MathQA (Amini et al ., 2019)数据集上, 为了研究语言理解和离散符号推理的能力,直接应用的最先进的pre-trained语言模型,如BERT或QANet (Yu et al ., 2018),达到非常低的准确性,这对于纯神经网络方法尤其具有挑战性。
- 因为通过神经网络学习的离散算子,如加法和排序,如果没有专门的设计,很难推广到任意大小的输入(Reed & de Freitas, 2016;Cai等,2017;Kaiser & Sutskever, 2015)。
- 将神经网络与符号推理相结合是解决这些新任务的关键。
- 神经语义分析的最新进展(Jia & Liang, 2016;Liang等人,2017)提出要解决这个问题。然而,这种成功主要局限于结构化数据源的QA,例如,知识图谱(Berant et al., 2013)或表格数据库(Pasupat)。通过将文本解析成结构化的表示来扩展阅读理解,会受到级联错误的严重影响:数据预处理的结构化解析问题是学习神经模型性能较差的原因(Dua et al., 2019)。
- 近期的一系列工作(Dua等人,2019;Hu et al., 2019;Andor等人,2019)扩展BERT/QANet对DROP数据集执行推理。然而,他们不能很容易地扩展到多个领域或多步骤复杂推理,因为:
- (1)他们通常为每一种类型的问题依靠手工制作和专门的模块;
- (2)不支持运算符的复合应用,所以很难进行多步推理。
- 在这项工作中,我们提出了用于阅读理解的神经符号解读器(NeRd),它包括
- (1)一个将段落和问题编码成向量表示的Reader;
- (2)一个Programmer来生成程序,这些程序被执行来产生答案。
-
NeRd背后的关键见解如下:
- (1)通过引入一组span选择操作符,这些程序通常是针对语义分析中的数据库等结构化数据执行的, 但组合程序现在可以在文本上执行了;
- (2)相同的体系结构可以简单地通过扩展符号运算符集应用于不同的领域。
- 训练NeRd的一个主要挑战是,收集标注的程序数据通常很昂贵,因此模型需要从弱监督中学习,也就是说只可查阅最终答案。这就给学习提出了两个问题:
- (1)冷启动问题。在训练开始时没有可用的程序,因此训练无法进行。我们通过数据扩充来解决这个问题,生成有噪声的训练数据来引导训练;
- (2)伪程序问题,即某些程序对错误的原理给出正确的答案。我们提出了一个带阈值的hard EM算法,过滤训练过程中的虚假程序。
- 在我们的评估中,NeRd比以前的方法有三个主要优势:
- (1)更准确。它在EM/F1上相比以前的SOTA提高为1.37%/1.18%,而在所有注释程序的训练下,MathQA上的基线的准确率要高出25.5%。值得注意的是,它仍然只使用了20%的程序注释就超过了MathQA基线;
- (2)更具有可伸缩性(领域无关性和组合性)。以前的方法依赖于不支持操作符组合应用的专门模块,而NeRd可以应用于不同领域的任务,例如DROP和MathQA,而不需要改变体系结构,更复杂的程序可以通过扩展操作符集和组合基本操作符来生成。
- (3)更好的可解释性。通过检查产生答案的程序,可以更容易地解释和验证答案,特别是对于涉及复杂推理的问题,如计数和排序。
模型
架构
- Reader: 给定包含问题和段落的自然语言文本,reader组件将文本中的每个token编码为一个嵌入ei。请注意,我们的框架与编码器的架构选择无关,因此任何将单词转换为向量的神经模块都是适用的,例如BERT (Devlin et al., 2019)。
- Programmer:P将R的输出作为输入,然后将解码为程序的token。同样,我们的模型对解码器的设计是不可知的。为简单起见,我们使用LSTM (Hochreiter & Schmidhuber, 1997)解码器+注意力机制(Bahdanau et al., 2014)到编码的文本上+自我注意(Vaswani et al., 2017)之前生成的令牌上