写在前面
这个是对
这篇论文主要解决了一个问题:
提出了ON-LSTM框架
理解这个ON-LSTM框架也是比较重要
推介https://blog.youkuaiyun.com/c9Yv2cf9I06K2A9E/article/details/90709078
Introduction
task:给定一个句子,预测相应的潜在树结构
监督学习方法的局限性:
- 数据的缺失(只有极少数的语言有全面解析的数据 few languages have comprehensive annotated data for
supervised parser training) - 语言的发展使得语法发生一定的变化(languages change over time with use, so syntax rules may evolve)
- 在一些特定情况下,语法并不一定适用,比如说聊天时用的一些语言(in some domains, syntax rules tend to be broken)
另一个task:语法归纳(grammar induction),在不依赖于专家数据的情况下,从原始语料库学习语法结构。
目前RNN在语言学习上有很好的表现,LSTM等RNN的变种很好地解决的长记忆问题和泛化能力问题。
但是,LSTM是有一个隐藏的树结构,这种偏好是否会对学习长生一定的影响?
LSTM中的高级神经元负责对长记忆的存储,低级神经元负责对短记忆的存储,低级的神经元中存储的信息很快被遗忘。针对这两种神经元之间的gap,使用了一种新的函数cumax()cumax()cumax()。
Related work
这一部分着重看一下一些常见的baseline:
- LSTM
- PRPN
Ordered Neurons
给定一个序列S=(x1,...,xT)S = (x_1,...,x_T)S=(x1,...,xT),我们的目标是针对观察到的序列推断出未观察到的树结构。
每一个隐藏状态hth_tht包括了从当前叶子节点xtx_txt到根的信息。虽然隐藏状态hth_tht的维数是一定的,但是不同的时间步长和句子中连接叶子和树根的路径长度可能是不同的,因此需要将隐藏状态动态的分配到每个节点上。
高级的神经元(high-ranking neurons)保留了长期信息或者全局信息,从几个时间步长持续到整个句子,表示树根附近的节点。
低级的神经元(low-ranking neurons)保存短期信息或者局部信息,持续最后一个或几个时间步长,表示较小的组成部分。
而更新高级神经元需要先更新低级神经元。
model:ON-LSTM
在standard LSTM的基础上进行改进,standard LSTM更新如下:
ft=σ(Wfxt+Ufht−1+bf)it=σ(Wixt+Uiht−1+bi)ot=σ(Woxt+Uoht−1+bo)c‾t=σ(Wcxt+Ucht−1+bc)ht=ot ∘ tanh(ct) f_t=\sigma(W_fx_t+U_fh_{t-1}+b_f) \\ i_t=\sigma(W_ix_t+U_ih_{t-1}+b_i) \\ o_t=\sigma(W_ox_t+U_oh_{t-1}+b_o) \\ \overline{c}_t=\sigma(W_cx_t+U_ch_{t-1}+b_c) \\ h_t=o_t\ \circ\ tanh(c_t) ft=σ(Wfxt+Ufht−1+bf)it=σ(Wixt+Uiht−1+bi)ot=σ(W