本篇是ICLR2019的两篇Best Paper之一。另一篇:THE LOTTERY TICKET HYPOTHESIS: FINDING SPARSE, TRAINABLE NEURAL NETWORKS
自然语言是分层结构的:较小的单元(例如短语)嵌套在较大的单元(例如子句)中。当较大的组件结束时,嵌套在其中的所有较小的组件也必须关闭。虽然标准的LSTM体系结构允许不同的神经元在不同的时间尺度上跟踪信息,但它并没有明确地偏向于对成分层次结构建模。本文提出通过对神经元进行排序来增加这种诱导偏差;一个主输入和遗忘门的向量确保当一个给定的神经元被更新时,按照顺序跟随它的所有神经元也被更新。我们的新递归结构,有序神经元LSTM (ON-LSTM),在语言建模、无监督解析、目标语法评估和逻辑推理四个不同的任务上都取得了良好的性能。
自然语言具有连续的显性形式,如口语和书面语,但语言的基本结构并不是严格的连续的。这种结构通常是树状的。语言学家们就决定这种结构的一套规则或语法达成了一致意见(Chomsky, 1956; 1965; Sandra & Taft, 2014)并指示单个单词如何组成更大的有意义的单位,也称为成分(Koopman et al., 2013)。人类的大脑也可以隐式地获得语言的潜在结构(Dehaene et al., 2015):在语言习得过程中,儿童不会得到带注释的解析树。受生物神经系统中信息处理和通信模式的启发,人工神经网络方法对潜在结构的诱导引起了人们更多的兴趣。从实际的角度来看,将树结构集成到神经网络语言模型中可能有很多重要的原因:
近年来,利用树状结构对自然语言句子进行推理和表示的深度神经网络技术得到了广泛的关注(Bowman et al., 2016; Yogatama et al., 2016; Shen et al., 2017; Jacob et al., 2018; Choi et al., 2018; Williams et al., 2018; Shi et al., 2018)。
给定一个句子,预测相应的潜在树结构的一种直接方法是通过一个有监督的语法分析器。这些解析器生成的树被用来指导将单词语义组合成句子语义(Socher et al., 2013;Bowman et al., 2015),甚至帮助预测下一个单词给出之前的单词(Wu et al., 2017)。但是,受监督的解析器受到限制,原因有以下几个:1)很少有语言具有用于受监督解析器培训的全面注释数据;ii)在某些领域,语法规则往往会被打破(例如在tweets中);第三)语言会随着使用的时间而变化,所以语法规则可能会进化。
另一方面,语法归纳法仍然是一个有待解决的问题,它的定义是在不访问专家标记的数据的情况下,从原始语料库学习语法结构。最近的许多这样的尝试都遭遇了诱导一个琐碎结构(例如,一个左分支或右分支树(Williams et al., 2018)),或者遇到了由使用强化学习的分支策略(RL)导致的训练困难(Yogatama et al., 2016)。此外,一些方法的实现和训练相对复杂,如Shen等(2017)提出的PRPN模型。
递归神经网络(RNNs)已被证明在语言建模任务中非常有效(Merity et al., 2017;Melis等人,2017)。RNNs显式地对数据施加一个链结构。这种假设似乎与潜在的非时序的语言结构和可能造成几个困难的处理自然语言数据与深度学习方法,导致捕获等问题长期依赖(Bengio et al ., 2009),实现良好的泛化(鲍曼et al ., 2015),处理否定(Socher et al ., 2013),等等。同时,也有证据表明,具有足够能力的LSTMs可能通过隐式编码树结构来实现句法处理机制,如Gulordava等(2018);Kuncoro等人(2018年)以及最近的Lakretz等人(2019年)。我们认为,下面的问题仍然存在:具有对学习这种潜在树结构的归纳偏见的体系结构能否获得更好的语言模型?
在这项工作中,我们介绍了有序神经元,一个新的诱导偏见的递归神经网络。这种诱导偏差促进了存储在每个神经元内的信息的生命周期的分化:高级神经元存储长期信息,这些信息被保存了大量步骤,而低级神经元存储短期信息,这些信息可以很快被遗忘。为了避免高阶和低阶神经元之间的严格划分,我们提出了一种新的激活函数,称为累积softmax或cumax(),用于主动分配神经元来存储长/短期信息。我们使用cumax()函数来生成一个主输入向量,而忘记了门,以确保当一个给定的神经元被更新(擦除)时,按照顺序跟随它的所有神经元也被更新(擦除)。基于cumax()和LSTM体系结构,我们设计了一个新的模型ON-LSTM,它偏向于执行类似树的组合操作。该模型在语言建模、无监督选区分析、目标句法评价(Marvin &(Linzen, 2018)和逻辑推理(Bowman et al., 2015)。对无监督选民分析的结果表明,所提出的归纳bias比先前提出的模型更符合人类专家提出的语法原则。实验还表明,在需要捕获长期依赖关系的任务中,ON-LSTM模型的性能优于标准LSTM模型,并能更好地泛化较长的序列。
已有文献利用树结构来完成自然语言任务。Socher等(2010);Alvarez-Melis,Jaakkola (2016);周等(2017);Zhang等(2015)使用专家标记的树库上的监督学习来预测解析树。Socher等人(2013)和Tai等人(2015)使用来自外部的解析信息显式地对树结构建模解析器。后来,Bowman等人(2016)利用了监督解析器的指导(Klein &为了训练一个堆栈增广神经网络。
从理论上讲,RNNs和LSTMs可以对上下文无关文法和上下文敏感文法(Gers &Schmidhuber, 2001)。然而,最近的研究结果表明,在LSTMs中引入结构信息是有益的。Kuncoro et al.(2018)表明,RNNGs (Dyer et al., 2016)在主谓一致任务上表现优于LSTMs (Linzen et al., 2016), RNNGs对句法结构具有明显的建模倾向。在我们的论文中,我们运行了一个更广泛的语法测试套件,最近由Marvin &Linzen (2018)。Bowman等(2014;2015)也证明了树结构模型对于数据由递归程序生成的下游任务更有效。有趣的是,Shi等人(2018)认为,虽然指定的语法树可能不是理想的,但某种层次结构(可能依赖于任务)可能会有所帮助。然而,如何从观测数据有效地推断这种结构仍然是一个悬而未决的问题。
从数据中学习底层语法的任务被称为语法归纳(Chen, 1995;科恩等人,2011)。早期的工作将句法结构纳入到语言建模的上下文中(Roark, 2001;Charniak, 2001;Chelba,内克,2000)。最近,有人尝试使用神经模型为下游任务合并一些结构(Grefenstette et al., 2015;Sun等,2017;Joulin,Mikolov, 2015)。一般来说,这些工作用堆栈扩充了一个主要的递归模型,并专注于解决算法任务。Yogatama等人(2018)关注于语言建模和句法评估任务(Linzen等人,2016),但他们没有显示出模型学习的结构与黄金标准解析树的匹配程度。Shen等人(2017)引入了解析-读取-预测网络(parsing- read- predict Networks, PRPN)模型,该模型试图通过解决语言建模任务来执行解析。该模型使用自我注意来组合之前的状态,其中注意范围由学习的句法距离控制。作者表明,这个值对应于解析树的深度。然而,在使用PRPN模型时增加的复杂性使其在实践中变得笨拙。
另一种可能的解决方案是开发具有不同递归时间尺度的模型,作为捕获这个层次结构的一种方法。El痛快哭,Bengio (1996);Schmidhuber (1991);Lin等人(1998)描述了以预先确定的时间尺度捕获层次结构的模型。最近,Koutnik等人(2014)提出了Clockwork RNN,它通过在不同的时间尺度上更新来分割RNN的隐藏状态。这些方法通常对数据建模中涉及的层次结构的规律性做出了强有力的假设。Chung等人(2016)提出了一种方法,与Clockwork RNN不同,该方法将学习多尺度层次递归。然而,模型仍然有一个层次结构的预先确定的深度,这取决于层的数量。我们的工作更接近于Rippel et al。(2014),提出诱导一个层次结构的表示单位运用嵌套辍学面具:单位不是独立随机下降但每当单位下降,所有的单位,按照顺序也下降了。我们的工作可以被看作是通过拟议的cumax()激活实现的软松弛。此外,我们建议根据特定的输入设置更新掩码,并将整个模型应用于顺序数据。因此,我们的模型可以根据观察到的数据调整结构,而Clockwork RNN和嵌套dropout都将预定义的层次结构强加给隐藏的表示。
给定一个token序列S = (x1,…,xT)及其相应的选区树(图2 (a)),我们的目标是推断出未被注意的树结构在处理观察序列,即在每个时间步长计算隐藏状态ht t。在每个时间步,理想情况下ht将包含一个信息之间的路径上的所有节点当前的叶子节点xT和图2中的根s (c),我们将说明ht如何包含包含当前令牌xt的所有组成部分的信息,即使这些信息只是部分观察到的。这种直觉表明,树中的每个节点都可以由一组处于隐藏状态的神经元表示。然而,虽然隐藏状态的维数是预先确定的,但是不同的时间步长和句子中连接叶子和树根的路径长度可能是不同的。因此,模型的一个要求是动态地将隐藏状态的维数重新分配到每个节点。
鉴于这些要求,我们引入有序神经元,这是一种诱导偏差,迫使神经元在不同的时间尺度上表示信息。在我们的模型中,高级神经元保持长期存在或全局的信息,它将持续从几个时间步骤到整个句子的任何位置,表示树根附近的节点。低级别神经元编码的短期或局部信息只持续一个或几个时间步长,表示更小的成分,如图2(b)所示。通过控制单个神经元的更新频率,以完全数据驱动的方式学习高阶和低阶神经元之间的区别:为了删除(或更新)高阶神经元,模型应该首先删除(或更新)所有低阶神经元。换句话说,一些神经元总是比其他神经元更新得更频繁(或更少),而这个顺序是作为模型架构的一部分预先确定的。
在本节中,我们提出了一个新的RNN单元,ON-LSTM(“有序神经元LSTM”)。新模型采用了与标准LSTM类似的体系结构,如下:
与LSTM的不同之处在于,我们用一个新函数替换了细胞状态ct的update函数,这个新函数将在下面的小节中进行解释。遗忘门ft和输入门用于控制细胞状态ct上的擦除和写入操作,与以前一样。由于LSTM中的门独立作用于每个神经元,因此通常很难辨别神经元之间的信息层次。为此,我们建议通过强制执行神经元更新的顺序,使每个神经元的门依赖于其他神经元。
为了强制执行更新频率的顺序,我们引入了一个新的激活函数:
式中,和为累积和。我们将表明,矢量gˆ可以被看作是一个二进制的期望门g = (0,…, 0,1,…这个二进制门将细胞状态分成两段:0段和1段。因此,模型可以对这两个部分应用不同的更新规则来区分长/短期信息。用d表示分类随机表示g中第一个1的索引的变量。
变量d表示两个段之间的分界点。我们可以计算g的k值的概率的概率被评估1 k前的析取任何值的分割点,这是。自类别是互斥的,我们可以通过计算累积分布函数:
理想情况下,g应该采用离散变量的形式。不幸的是,计算图中包含离散变量时的梯度并不是平凡的(Schulman et al., 2015),因此在实际中,我们通过计算量p(d k)来使用连续松弛法,该量由softmax的累积和得到。由于gk是二进制的,这相当于计算。因此,。
基于cumax()函数,我们引入一个主忘记门和主输入门:
根据cumax()激活的性质,主忘记门中的值从0单调地增加到1,而主输入门中的值从1单调地减少到0。这些门用作单元状态更新操作的高级控制。使用主门,我们定义了一个新的更新规则:
为了解释新更新规则背后的直觉,我们假设主门是二进制的:
由于主门只关注coarse-grained控制,因此用与隐藏状态相同的维度对它们进行建模在计算上是昂贵且不必要的。在实际中,我们将ft设为维向量,其中D为隐藏状态的维数,C为块大小因子。我们将每个维数重复C次,然后再与ft和it进行元素明智的乘法。这种缩减大大减少了需要添加到LSTM的额外参数的数量。因此,每个c大小的块中每个神经元共享相同的主门。
我们从语言建模、无监督选区分析、目标句法评价(Marvin &(Linzen, 2018)和逻辑推理(Bowman et al., 2015)。
词级语言建模是对模型s处理各种语言现象(如共现、句法结构、动主语一致等)能力的宏观评价。我们通过测量Penn TreeBank (PTB)上的perplexity来评估我们的模型(Marcus et al., 1993;Mikolov, 2012)的任务。
为了公平比较,我们严格遵循AWD-LSTM中引入的模型超参数、正则化和优化技术(Merity et al., 2017)。我们的模型使用了一个三层ONLSTM模型,隐藏层为1150个单元,嵌入尺寸为400。对于主门,缩小因子C = 10。参数的总数略有增加,从2400万到2500万附加矩阵计算主门。我们根据验证性能手动搜索on - lstm的一些dropout值。单词向量上用于dropout的值,LSTM层之间的输出,最后一个LSTM层的输出,以及其中的嵌入dropout(0.5, 0.3, 0.45, 0.1)。对复发的权重矩阵采用0.45的权重减除。
如表1所示,我们的模型在共享相同的层数、嵌入维数和隐藏状态单元的情况下,比标准的LSTM性能更好。回想一下,主门只控制信息如何存储在不同的神经元中。值得注意的是我们还可以改进LSTM模型的性能无需添加跳过连接或显著增加参数的数量。
无监督的选民分析任务将模型诱导的潜在stree结构与人工专家注释的stree结构进行比较。实验后设置提出Htut et al。(2018),我们把我们最好的模型语言建模的任务,和测试WSJ10数据集和WSJ测试集。WSJ10 7422句,过滤从WSJ数据集约束的十个字,标点符号和空元素(Klein & Manning, 2002)。WSJ的测试集包含2416个不同长度的句子。
值得注意的是,WSJ10测试集包含句子的训练,验证和测试组肺结核数据集,而WSJ有关肺结核测试使用相同的句子作为测试集,来推断从pre-trained句子的树形结构模型,我们初始化隐藏状态零向量,然后喂句子译成语言建模的模型做的任务。在每一个时间步长,我们都计算出dft的估计值:
其中为与主遗忘门关联的分裂点上的概率分布,为隐藏状态的大小。鉴于,我们可以使用自顶向下的贪婪的解析算法在Shen et al. (2017)无监督选区解析。我们首先把递减顺序。首先我们排序的序列,我们把句子分成成分。然后,我们递归地对成分(xi)重复这个操作,直到每个成分只包含一个单词。
性能如表2所示。on - lstm的第二层在WSJ测试集中实现了最先进的无监督选区解析结果,而第一层和第三层的性能并不好。一种可能的解释是,第一层和最后一层可能过于专注于捕获对语言建模任务有用的本地信息,因为它们分别直接暴露于输入标记和输出预测,因此可能不鼓励学习更抽象的树结构。由于华尔街日报的测试集包含了不同长度的句子,而这些句子在训练中是没有被观察到的,因此我们发现ON-LSTM比以前的模型对长句子提供了更好的泛化和健壮性。我们也看到ON-LSTM模型可以为短语检测提供强有力的结果,包括ADJP(形容词短语)、PP(介词短语)和NP(名词短语)。该特性可以使许多下游任务受益,如问题回答、命名实体识别、联合引用解析等。
在Marvin &中提出了有针对性的句法评价任务Linzen (2018)。它是一组任务,根据三种不同的结构敏感语言现象来评估语言模型:主谓一致、反身回指和负极性项。给定大量最少不同的英语句子对,每对句子由一个语法和一个非语法的句子组成,语言模型应该为一个语法句子分配比一个非语法句子更高的概率。
使用已发布的codebase和Marvin &中建议的相同设置Marvin & Linzen (2018),我们在Wikipedia的9000万单词子集上训练我们的on -LSTM模型和基线LSTM语言模型。两种语言模型都有两层650个单元,批量大小为128,辍学率为0.2,学习率为20.0,经过40个时代的训练。输入预埋件尺寸为200,输出预埋件尺寸为650。表3显示,on -LSTM在长期依赖情况下性能更好,而基线LSTM在短期依赖情况下性能更好。这可能是由于相对较小的隐藏层单元的数量。这不足以同时考虑长期和短期资料。我们还注意到,新产品导入测试用例的结果在不同超参数间具有异常高的方差。这一结果可能与Marvin &中讨论的非语法线索有关Marvin & Linzen (2018)。尽管如此,on - lstm实际上在验证集上实现了更好的复杂度perplexity。
我们还分析了模型在Bowman等人(2015)描述的逻辑推理任务上的性能。该任务基于一种包含六个单词和三个逻辑操作的词汇表的语言,or、and、not。描述两句之间关系的逻辑关系有七种相互排斥的关系:两种类型的蕴涵关系、等价关系、穷尽矛盾和非穷尽矛盾以及两种类型的语义独立性。与自然语言推理任务类似,这个逻辑推理任务要求模型预测给定一对句子的正确标签。原始codebase3中描述了训练/测试分割,并留出10%的训练集作为验证集。
我们在这个数据集中评估on -LSTM和标准LSTM。给定一对句子(s1, s2),我们将这两个句子都输入一个RNN编码器,以最后一个隐藏状态(h1, h2)作为句子嵌入。(h1, h2, h1 h2, abs(h1 h2))的串联作为多层分类器的输入,给出了7个标签上的概率分布。在我们的实验中,RNN模型在一个隐层中参数化400个单元,输入嵌入大小为128。在不同层之间应用0.2的dropout。这两种模型都是针对包含6个或更少逻辑操作的序列进行训练的,并在最多包含12个操作的序列上进行测试。
图3显示了on -LSTM和标准LSTM在逻辑推理任务上的性能。虽然这两种模型在短序列上的准确率都接近100%(3),但在lstm上的准确率达到了100%在较长时间序列上的性能优于3。在训练中没有出现的较长序列上,表现差距继续扩大。因此,与标准LSTM模型相比,ON-LSTM模型在面对不同长度的结构化数据时具有更好的泛化性能。树结构模型由于具有ground truth结构作为输入,可以在该数据集上获得较强的性能(Bowman et al., 2015)。相同复合函数的递归应用程序非常适合这项任务。我们还包括RRNet (Jacob et al., 2018)的结果,它可以从下游任务诱导潜在的树结构。注意,结果可能不具有可比性,因为没有提供用于培训的超参数。
本文提出了一种新的递归神经网络诱导偏置——有序神经元。基于这一思想,我们提出了一种新的循环单元on - lstm,它包括一个新的门控机制和一个新的激活函数cumax(·)。这使得递归神经网络更接近于执行树状组合操作,通过将包含长期和短期信息的隐藏状态神经元分开分配。模型在无监督区域解析上的性能表明,on - lstm以一种与人类专家注释相一致的方式引入了自然语言的潜在结构。归纳偏差还使on - lstm能够在语言建模、长期依赖和逻辑推理任务上获得良好的性能。