Long Short-Term Memory Over Tree Structures

这里首先要明白两种网络:

  1. recursive neural network 递归神经网络:网络是定义在递归树结构上,每一个树结点是从它的孩子计算出来的向量。叶子节点和中间节点自底向上的组合。
  2. recurrent neural network 循环神经网络:链式结构,LSTM是循环神经网络的特例。

递归神经网络示例,来自论文Recursive Deep Models for Semantic Compositionality Over a Sentiment Treebank
Long Short-Term Memory Over Tree Structures

句子的语义并不是单词的线性的拼接;相反,句子有解析结构。

论文将LSTM扩展为树形结构,称为S-LSTMS-LSTM可以看作是上述两种网络的结合。

利用S-LSTM来代替recursive neural network中的语义组合层,从而更好的学习不同文本片段组合之后的文本语义表征。

与先前的recurrent neural network相比,S-LSTM有避免梯度消失的潜力,通过树结构对长距离交互进行建模。

S-LSTM的例子

图中的圆圈和横线分别代表pass(通过)和block(阻滞);这里通过LSTM中的遗忘门实现,是一个概率值。可以看出有多少个孩子结点,就有多少个遗忘门。孩子节点之间是没有交互的
Long Short-Term Memory Over Tree Structures

S-LSTM模型

S-LSTM的记忆单元包括一个输入门,一个输出门,和多个遗忘门(数量和孩子的结点数相同),图中是给出的二叉树的结构,所以有两个遗忘门,此结构在现实生活中应该有很多应用,也可以把一般的树转化为二叉树。
Long Short-Term Memory Over Tree Structures
对应的计算公式如下:

i t = σ ( W h i L h t − 1 L + W h i R h t − 1 R + W c i L c t − 1 L + W c i R c t − 1 R + b i ) i_{t} =\sigma(W_{h i}^{L} h_{t-1}^{L}+W_{h i}^{R} h_{t-1}^{R}+W_{c i}^{L} c_{t-1}^{L}+W_{c i}^{R} c_{t-1}^{R}+b_{i}) it​=σ(WhiL​ht−1L​+WhiR​ht−1R​+WciL​ct−1L​+WciR​ct−1R​+bi​)

f t L = σ ( W h f l L h t − 1 L + W h f l R h t − 1 R + W c f l L c t − 1 L + W c f l R c t − 1 R + b f l ) f_{t}^{L} =\sigma(W_{h f_{l}}^{L} h_{t-1}^{L}+W_{h f_{l}}^{R} h_{t-1}^{R}+W_{c f_{l}}^{L} c_{t-1}^{L}+W_{c f_{l}}^{R} c_{t-1}^{R}+b_{f_{l}}) ftL​=σ(Whfl​L​ht−1L​+Whfl​R​ht−1R​+Wcfl​L​ct−1L​+Wcfl​R​ct−1R​+bfl​​)

f t R = σ ( W h f r L h t − 1 L + W h f r R h t − 1 R + W c f r L c t − 1 L + W c f r R c t − 1 R + b f r ) f_{t}^{R} =\sigma(W_{h f_{r}}^{L} h_{t-1}^{L}+W_{h f_{r}}^{R} h_{t-1}^{R}+W_{c f_{r}}^{L} c_{t-1}^{L}+W_{c f_{r}}^{R} c_{t-1}^{R}+b_{f_{r}}) ftR​=σ(Whfr​L​ht−1L​+Whfr​R​ht−1R​+Wcfr​L​ct−1L​+Wcfr​R​ct−1R​+bfr​​)

x t = W h x L h t − 1 L + W h x R h t − 1 R + b x c t = f t L ⊗ c t − 1 L + f t R ⊗ c t − 1 R + i t ⊗ tanh ⁡ ( x t ) o t = σ ( W h o L h t − 1 L + W h o R h t − 1 R + W c o c t + b o ) h t = o t ⊗ tanh ⁡ ( c t ) \begin{aligned} x_{t} &=W_{h x}^{L} h_{t-1}^{L}+W_{h x}^{R} h_{t-1}^{R}+b_{x} \\ c_{t} &=f_{t}^{L} \otimes c_{t-1}^{L}+f_{t}^{R} \otimes c_{t-1}^{R}+i_{t} \otimes \tanh \left(x_{t}\right) \\ o_{t} &=\sigma\left(W_{h o}^{L} h_{t-1}^{L}+W_{h o}^{R} h_{t-1}^{R}+W_{c o} c_{t}+b_{o}\right) \\ h_{t} &=o_{t} \otimes \tanh \left(c_{t}\right) \end{aligned} xt​ct​ot​ht​​=WhxL​ht−1L​+WhxR​ht−1R​+bx​=ftL​⊗ct−1L​+ftR​⊗ct−1R​+it​⊗tanh(xt​)=σ(WhoL​ht−1L​+WhoR​ht−1R​+Wco​ct​+bo​)=ot​⊗tanh(ct​)​

与标准的LSTM区别在于:

(1) 标准的LSTM将上一个时刻的 h t − 1 h_{t-1} ht−1​, c t − 1 c_{t-1} ct−1​作为 t t t时刻的输入,而S-LSTM需要考虑左右孩子结点。

(2) 标准的LSTM每个时刻都有当前时刻对应的输入 x t x_{t} xt​,而S-LSTM对应的输入 x t x_{t} xt​来自于左右孩子结点隐层状态

反向误差传递的时候要区分当前处理的节点是左孩子还是右孩子。反向传播的时候,先计算各个门的的导数,然后再计算权重的导数,做更新。

目标函数需要考虑输出结构,依赖问题规模,本文定义目标函数是最小化所有节点的交叉熵的和。

E ( θ ) = ∑ i ∑ j t j i log ⁡ y s e n i j + λ ∥ θ ∥ 2 2 E(\theta)=\sum_{i} \sum_{j} t_{j}^{i} \log y^{s e n_{i}}{ }_{j}+\lambda\|\theta\|_{2}^{2} E(θ)=i∑​j∑​tji​logyseni​j​+λ∥θ∥22​

实验

在Stanford Sentiment Tree Bank 进行情感五分类的实验,该数据集不仅包含句子级别的情感类别信息,还包含了短语级别的情感类别信息,详见介绍

Long Short-Term Memory Over Tree Structures
RvNN 递归神经网络
RNTN 论文Recursive Deep Models for Semantic Compositionality Over a Sentiment Treebank
提出的模型

上一篇:2021-07-19 练习4-6 猜数字游戏 (15 分)


下一篇:Azure - BPG over IPsec