Recursive Neural Network/递归神经网络

循环神经网络(Recurrent NN)可以用来处理包含序列结构的信息。通过将长度不定的输入分割为等长度的小块,然后再依次的输入到网络中,从而实现了神经网络对变长输入的处理。一个典型的例子是,当我们处理一句话的时候,我们可以把一句话看作是词组成的序列,然后,每次向循环神经网络输入一个词,如此循环直至整句话输入完毕,循环神经网络将产生对应的输出。如此,我们就能处理任意长度的句子了。

但是除此之外信息往往还存在着诸如树结构、图结构等更复杂的结构,如”两个外语学院的学生“,是有歧义的,一个是『两个外语学院的/学生』,也就是学生可能有许多,但他们来自于两所外语学校;另一个是『两个/外语学院的学生』。如果仅使用RNN按照字符分割,无法区别这两种含义。递归神经网络(Recursive NN)就是为了解决这个问题的。它将输入按照树结构去处理,而不是序列。
Recursive Neural Network/递归神经网络_第1张图片
递归神经网络可以把一个树/图结构信息编码为一个向量,也就是把信息映射到一个语义向量空间中。这个语义向量空间满足某类性质,比如语义相似的向量距离更近。也就是说,如果两句话(尽管内容不同)它的意思是相似的,那么把它们分别编码后的两个向量的距离也相近;反之,如果两句话的意思截然不同,那么编码后向量的距离则很远。

有人说,循环神经网络(Recurrent NN)是时间维度的展开,代表信息在时间维度上从前向后的传播和积累。递归神经网络(Recursive NN)是空间维度的展开,假设句子是一个树状结构,由几个部分(主语、谓语、宾语)组成,而每个部分又可以分成几个小部分,即某一部分的信息是由它的子树的信息组合而来。

还有人说:循环神经网络可以视为递归神经网络的特例,当递归神经网络的每个父节点都仅与一个子节点连接时,其结构等价于全连接的循环神经网络。也有人说,递归神经网络是循环神经网络的推广。还有人说,在一定程度上可以认为Recurrent NN是Recursive NN的一种变体。Recursive NN更general。

你可能感兴趣的:(AI学习,人工智能,nlp)