0%

ORDERED NEURONS: INTEGRATING TREE STRUCTURES INTO RECURRENT NEURAL NETWORKS

Recent Language Model Papers

On-LSTM

ICLR’19的Best Paper, By YiKang。

1.解决的问题

RNN把序列顺序的处理,但是语言本身常常是具有非序列化结构的(比如树结构)。这样可以获取语言组合性语义的影响,学习到层次化的表示。首先,无监督的Grammer Induction还是一个open problem,通常训练的模型倾向于产生trivial的结构(左分支/右分支树)或者在利用RL学习branching策略的时候有困难。其次LSTM本质上适合建模链式结构的数据,虽然已有的研究表明它能够学习到语言中的树形结构,但是显式的引入一个带有树形结构的inductive bias会不会帮助LSTM更好的建模呢?

2.相关的方法

1.一些工作尝试LSTM中引入结构化信息,但是没有解决如何从观测数据中推导结构化信息的问题;2.也有一些工作针对1中的问题,即grammar induction;3.在recurrent结构模型中引入不同scale的recurrent结构从而让链式的先验具有层次化。(比如ClockWorkRNN和nested dropout,但是本文提出的方法更灵活更具有泛化能力)

3. 提出的方法(Ordered Neurons)思路

预先在模型中定义神经元的序,高阶神经元更新的更久代表长程/全局信息,低阶神经元更新步数更少代表较小的constituent,当高阶神经元的信息在某个step被抹去其对应的子神经元的信息也应当被抹去(对应一个constituent结束)。神经元的序被如下定义,由parse得到的成分句法树决定。

4.具体实现(ON-LSTM)

LSTM中利用三个门来进行输入遗忘和输出,而每个时间步具有Cell State 和输出向量,而中低维的部分代表低层级信息高维的部分代表高层级信息,经典LSTM中。而这篇工作希望在更新的时候能够计算得到当前信息代表的信息层级$d_i$和历史信息代表的信息层级,而后对于不同的维度使用不同的信息更新策略。作者为了这个目标,增加了主遗忘门和主输入门,并进行了软分类,如下公式。其中前者是单调递增的,表示低阶信息应当受历史信息影响较小;后者是单调递减的,其隐含意义是高阶信息应当受当前输入影响较小(更新较慢)。

这样的设计,保证了高层信息可能保留相当长的距离(因为高层直接复制历史信息,导致历史信息可能不断被复制而不改变),而低层信息在每一步输入时都可能被更新(因为低层直接复制输入,而输入是不断改变的),所以就通过信息分级来嵌入了层级结构。**更通俗地说就是分组更新,更高的组信息传得更远(跨度更大),更低的组跨度更小,这些不同的跨度就形成了输入序列的层级结构。

具体的理解这个blog讲的很棒:https://www.linkresearcher.com/theses/54a0ba37-b625-4200-9065-5120b94933b1

处理维度不同:针对树形结构层级和LSTM隐层神经元数量的不同,作者将层级维度重复q次得到主遗忘门和主输入门。

5.实验

1.在语言模型任务上和一些LSTM变种进行了比对。2.无监督的句法成分分析,从作为语言模型预训练的模型中利用主遗忘门找到每个序列元素代表的层级,并利用贪心算法自顶向下的构建成分分析树。3.此外还在句法评价(2018)和逻辑推断任务上进行了实验。

Future:Bi-direction Context;CNN or Attention + Syntactic Structure;modeling syntactic role as well as syntatic structure。