递归神经网络(Recursive Neural Network, RNN)

信息往往还存在着诸如树结构、图结构等更复杂的结构。这就需要用到递归神经网络 (Recursive Neural Network, RNN),巧合的是递归神经网络的缩写和循环神经网络一样,也是RNN,递归神经网络可以处理树、图这样的递归结构

递归神经网络

神经网络的输入层单元个数是固定的,因此必须用循环或递归的方式来处理长度可变的输入。循环神经网络实现通过长度不定的输入分割为等长度的小块,然后再依次的输入到网络中,从而实现了神经网络对变长输入的处理。一个典型的例子是,当我们处理一句话的时候,我们可以把一句话看作是词组成的序列,然后,每次向循环神经网络输入一个词,如此循环直至整句话输入完毕,循环神经网络将产生对应的输出。如此,我们就能处理任意长度的句子了。如下图所示:

然而有时候把句子看作是词的序列是不够的,比如下面这句话『两个外语学院的学生』:

上面两个图分别表示了两个不听的语法解析树。

第一个:『两个外语学院的/学生』,也就是学生可能有许多,但他们来自于两所外语学校;

第二个:『两个/外语学院的学生』,也就是只有两个学生,他们是外语学院的。

  我们的模型必须能够按照树结构去处理信息,而不是序列,这就是递归神经网络的作用。递归神经网络可以把一个树/图结构信息编码为一个向量,也就是把信息映射到语义向量空间中。这个语义向量空间满足某类性质,比如语义相似的向量更近。也就是(尽管内容不同)它的意思是相似的,那么把他们分别编码后的两个向量的距离也相近;反之如果两句话的意思截然不同,那么编码后向量的距离则很远。

猜你喜欢

转载自www.cnblogs.com/LXP-Never/p/10403048.html