一、递归神经网络与循环神经网络
该部分以情感分析任务为例来说明递归神经网络(recursive neural network)和循环神经网络(recurrent neural network)的关系。
如下图所示,在使用RNN来搭建情感分析神经网络模型时,我们首先使用word embedding的方法来将获取句子的embedding序列,然后将序列中的每一个token的embedding输入到RNN中,最后将最后一个时间点的输出向量输入到一个分类器(可以是一个前馈网络)中来完成情感分类任务。而使用递归结构时需要事先确定文本序列的结构信息,然后按照文本的结构来按顺序将embedding向量输入到中,可以是一个神经网络,最终需要将最后一个的输入输入到分类器中获得情感分类的结果:
情感分析
循环神经网络可以看做递归神经网络的特殊情况,递归神经网络需要事先定义序列内token的关系来决定输入的顺序,只要定义这个顺序和循环神经网络一样,递归神经网络就成了循环神经网络。
二、递归神经网络
该部分以一个具体的例子来说明递归神经网络的设计。
- 架构
递归神经网络
通常不会是两个输入向量的简单相加,因为获取两个词结合起来的意思可能需要比较复杂的函数来拟合,举例来说:
Case1:
not:neutral
good:positive
not good:negative
Case2:
好棒:positive
棒:positive
好棒棒:negative
通过上面的例子可以想象两个词向量的简单相加是不能表达其结合起来的意义的,因此通常是一个神经网络。在下面两图中,我们使用蓝色来代表positive的意思,橙色来代表negative的意思。两张图分别表达了“not”要将跟其结合的词的意义转向(reverse),而“very”要将跟其结合的词的意义加强(emphasize),因此需要是一个复杂的神经网络:
not
very
训练这个网络的整个过程如下,将所有词按照文法结构输入给,最终将的输入输入到分类器中最终得到类别的分布,然后再将这个分布跟标签取loss然后更新网络的参数:
过程
- 网络的设计
前面说过,不能是两个输入向量的简单相加,下图这种的设计方式会使得输入向量和由很少的交互,最终输出的的每一维度都只是和的简单相加,因此仍需要更复杂的设计:
f的结构
- Recursive Neural Tensor Network
下面介绍的这种的设计中包含了Tensor Network的结构,因此叫做Recursive Neural Tensor Network。下图展示了这种的具体设计:
Recursive Neural Tensor Network
我们定义和拼接起来的向量为,图中方框内的部分会得到一个标量,这样和就因为有了更多的相乘的关系而有了更强的交互。这里使用了多个方框中的结构是为了能够得到一个向量与加号右边的部分相加。需要注意多个方框内的是不同的。
- Matrix-Vector Recursive Network
Matrix-Vector Recursive Network这种设计虽然在效果上不如上述方法,但其设计思想值得学习一下。这种方法做的主要的假设是一个词的embedding的一部分代表这个词的意义,另一部分代表这个词如何去影响别的词:
假设
每个输入的词的一部分代表其含义,另一部分代表其如何影响别的词,我们将这一部分排列成一个矩阵。当两个词(以“not”和“good”为例)同时输入到函数中时,每个词的代表含义的向量将和另一个词的代表影响的矩阵相乘得到两个向量,然后将这两个向量拼接起来再乘以一个权重矩阵得到新的含义向量;每个词的影响矩阵会拼接到一起然后乘以一个一个权重矩阵得到新的影响矩阵,然后将含义向量和影响矩阵排列成新的向量在通过激活函数就是的输出。该过程如下图所示:
Matrix-Vector Recursive Network
可以推测,像“not”这样的中性词,其含义向量可能为,而其会将与之结合的词的意义反转,所以其影响矩阵可能为对角元素为的对角矩阵;而“good”对与之结合的词没有太大影响,其影响矩阵可能是单位矩阵。
- Tree LSTM
LSTM
Tree LSTM也就是使用LSTM来充当递归神经网络的:
Recursive Neural Network
这里的LSTM输入两个向量,每个向量都包含和,然后输出另一个和:
Tree LSTM
三、应用
如果输入的序列有明显的结构层次(比如数学公式),那么使用递归神经网络会有比较好的效果,对于一般的文本递归神经网络的提升并不大,这是因为定义的文本结构也不一定是正确的。
除了应用在情感分析上,递归神经网络也有一些别的应用,比如评估句子相似度(sentence relatedness)。具体的做法是将两个句子输入到递归神经网络中得到其输出,然后将输出输入到一个别的神经网络中得到评估的结果:
sentence relatedness
得到的效果如下,每句话前面的数字代表打分:
效果
上述例子的论文链接:https://arxiv.org/abs/1503.00075