企业网站改一下多少钱,wordpress 上传图片 500,欢迎访问中国建设银行网上银行网站,石材网站建设方案尽管最近出现的Transformer系列的模型在nlp领域内很流行#xff0c;但RNN仍然有着重要的地位。本文介绍的模型来自于ICLR 2019的最佳论文之一#xff0c;它针对自然语言具有语法分层的特点#xff0c;对原有的LSTM模型的结构做出了改进#xff0c;使得新模型不仅具有更好的…尽管最近出现的Transformer系列的模型在nlp领域内很流行但RNN仍然有着重要的地位。本文介绍的模型来自于ICLR 2019的最佳论文之一它针对自然语言具有语法分层的特点对原有的LSTM模型的结构做出了改进使得新模型不仅具有更好的性能还能够无监督地从语料文本中学习到句子的语法结构。LSTM与ON-LSTM先介绍一下该模型的出发点自然语言虽然从表面来看呈现出来的是序列形式但其实句子的结构并不是连续的序列而是树状结构如下图所示。因此如果我们能够设计一种可以考虑到句子的语法结构的模型那么就有可能在nlp任务中表现的更好。先来看原始的LSTM模型如下所示其中 分别是遗忘门和输入门可以看出它们通过对于 的更新来实现对于历史信息 和当前输入信息 的记忆与忘记。LSTM流程图来自参考资料[2]在原始LSTM中更新的方式是通过遗忘门和输入门来完成的即 。而ON-LSTM做出改进的地方就在这里它通过语法层次来控制哪些信息需要记忆或忘记对于语法层次较高的内容语法树中更靠近根节点的内容它们影响的范围更大对于这些信息模型应该保留较长的时间而对于层次较低的它们对之后内容影响较小模型应该尽快忘记它们以免这些信息干扰后面的过程。有序的神经元为了达到这样的目的首先我们就需要对信息进行语法分层对神经元按照语法层次进行排序语法层次较高的信息储存在上面的神经元中较低的则储存在下面的神经元然后根据层次的不同采用不同的更新方式。如下图所示对于句子中较高层次的信息S则位于cell states的上面的维度这类信息的更新频率不应该很快而对于底层信息如N和V它们位于cell states的下部这些信息应该较快地进行更新。这样我们就能通过cell stats的维度的高低来将信息中不同语法层次的内容分开从而实现了有序的神经元。完成了对cell states的排序之后我们接下来就是划分区间以便模型按照区间的不同实现不同的更新方式。为了实现区间的划分模型用到了两个整数 它们分别用来表示历史信息的最低层次和当前信息的最高层次如下图所示。区间划分来自参考资料[3]对于上面的区间有如下的更新规则当 时两区间有交叠。对于交叠的部分采用原始LSTM的方式进行更新对于高于 的部分 只保留原来的历史信息对于低于 的部分 只保留当前输入的信息。当 时两区间没有交叠。对于没有交叠的部分直接设其为0而对于大于 和小于 的部分分别只保留历史信息和当前输入信息。更新规则来自参考资料[3]可以看出其实模型在这里认为高层次的语法信息主要是来自于历史信息而低层次的主要来自当前输入信息而这也比较符合人们的直观印象对于一个新的输入它对于语法信息的影响往往局限于一个较低的层次高层次的信息如句子或者短语信息仍然来自于历史信息只有当一个句子或者短语完结的时候历史信息的影响变小这时新的输入才有可能影响较高语法层次的信息。而这样也就使得高语法层次的信息的更新频率较低大多时候是保持不变而低语法层次的信息则随着当前的输入在一直变化。上面是区间划分的思想而具体的实现过程如下定义向量定义函数可以得到它们表示了历史信息和当前信息的影响范围可以看作窗口函数也就起到了区间划分的作用。这两个向量需要通过模型学习得到但是如果直接去学习 这样的one hot向量会导致更新过程不可导这就会比较麻烦因此我们对它做一些“软化”用 函数来表示one hot向量输入历史信息 和当前输入信息 通过神经网络来对 进行预测则有得到 之后就可以按照上面的思想进行区间划分具体形式如下其中对上式简单分析一下 主要由三个区间组成如下图所示区间分布 与此类似这样我们就实现了对于 的更新把公式放到一起则整个ON-LSTM的更新公式为其流程图如下ON-LSTM流程图来自参考资料[2]最后补充一下通常隐层神经元的数目都比较大而实际中语法的层数远远达不到这个数字因此对于而言其实不需要那么多的维数这样会导致需要学习的参数量过多但是 要求它们的维数必须这么大因此我们可以构造一个维数为 的向量其中D为隐层神经元的维数然后在将其扩充为D维向量例如D6c3先构造一个向量 然后将其扩充为 。无监督提取语法结构上面就是ON-LSTM模型的全部内容不过该模型除了在性能表现上更优以外还有一个很有意思的特性那就是能够无监督地提取出句子的语法结构其基本思想如下在时间步t可以得到历史信息的语法层次 我们可以认为这个数字的大小代表了历史信息对当前输入影响的大小如果较小则时间步t之前的历史信息对当前影响较小可以认为出现了一个新的语法结构。对于所有的时间步则可以得到一个序列 然后采用下面的贪心算法来提取出语法结构对于然后找出层级序列中最大值所在的下标比如k那么就将输入序列分区为 。然后对子序列 和 重复上述步骤直到每个子序列长度为1。其中 的计算方式如下下图是一些语法结构提取的实验结果对比其中左侧是模型结果右侧是人类专家的结果总结该ON-LSTM模型从语法结构的角度出发根据语法层次对cell states进行有序排列再按照语法层次的不同实行不同的更新规则从而实现对于较高语法层次信息的保留这样对于语言模型等任务无疑是很有利的。另外利用该模型还能够较好地从句子中无监督地提取出语法结构而这也是该模型的一大亮点。参考资料[1] ORDERED NEURONS: INTEGRATING TREE STRUCTURES INTO RECURRENT NEURAL NETWORKS[2] 苏剑林. (2019, May 28). 《ON-LSTM用有序神经元表达层次结构 》[Blog post]. Retrieved from https://kexue.fm/archives/6621[3] ON-LSTM能表示语言层次的LSTM