首页 理论教育 了解递归神经网络:处理递归结构的神器

了解递归神经网络:处理递归结构的神器

时间:2023-06-21 理论教育 版权反馈
【摘要】:递归神经网络可以处理诸如树、图这样的递归结构。递归神经网络于1990年被提出,被视为循环神经网络的推广[9]。图5-10利用递归神经网络做情感分析在图5-10中,灰色表示正面评价,黑色表示负面评价。尽管递归神经网络具有更为强大的表示能力,但是在实际应用中并不太流行。很多时候,相对于递归神经网络能够带来的性能提升,这个投入是不太划算的。

了解递归神经网络:处理递归结构的神器

前文介绍了循环神经网络,它可以用来处理包含序列结构的信息。然而,除此之外,信息往往还存在着诸如树结构、图结构等更复杂的结构。对于这种复杂的结构,循环神经网络就无能为力了。为此,本章介绍一种更为强大、复杂的神经网络:递归神经网络(Recursive Neural Network,RNN)以及它的训练算法BPTS(Back Propagation Through Structure)。

巧合的是,递归神经网络的缩写和循环神经网络一样,也是RNN,但是在研究的时候千万不要混淆。递归神经网络可以处理诸如树、图这样的递归结构。在本节的最后部分,我们将实现一个递归神经网络,并介绍它的几个应用场景。

递归神经网络于1990年被提出,被视为循环神经网络的推广[9]。当递归神经网络的每个父节点都仅与一个子节点连接时,其结构等价于全连接的循环神经网络[10]。递归神经网络可以引入门控机制(gated mechanism),以学习长距离依赖[10]

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

图5-7 循环神经网络处理句子

然而,有时候把句子看作词的序列是不够的,比如图5-8所示的这句话“两个外语学院的学生”。

图5-8显示了这句话的两个不同的语法解析树,可以看出来这句话有歧义,不同的语法解析树则对应了不同的意思。一个是“两个外语学院的/学生”,也就是学生可能有许多,但他们来自两个外语学院;另一个是“两个/外语学院的学生”,也就是只有两个学生,他们都是外语学院的。为了能够让模型区分出两个不同的意思,我们的模型必须能够按照树结构去处理信息,而不是序列,这就是递归神经网络的作用。当面对按照树/图结构处理信息更有效的任务时,递归神经网络通常都会获得不错的结果。

图5-8 不同的语义解析树(www.zuozong.com)

递归神经网络可以把一个树/图结构信息编码为一个向量,也就是把信息映射到一个语义向量空间中。这个语义向量空间满足某类性质,比如语义相似的向量距离更近。也就是说,如果两句话(尽管内容不同)的意思是相似的,那么把它们分别编码后的两个向量的距离也相近;反之,如果两句话的意思截然不同,那么编码后向量的距离则很远,如图5-9所示。

图5-9 含义相近的句子的向量表示

从图5-9我们可以看出,递归神经网络将所有的词、句都映射到一个2维向量空间中。句子“the country of my birth”和“the place where I was born”的意思是非常接近的,所以表示它们的两个向量在向量空间中的距离很近。另外两个词“Germany”和“France”因为表示的都是地点,所以它们的向量与上面两句话的向量的距离,就比另外两个表示时间的词“Monday”和“Tuesday”的向量的距离近得多。这样通过向量的距离就得到了一种语义的表示。

图5-9还显示了自然语言可组合的性质:词可以组成句,句可以组成段落,段落可以组成篇章,而更高层的语义取决于底层的语义以及它们的组合方式。递归神经网络是一种表示学习,它可以将词、句、段、篇等按照它们的语义映射到同一个向量空间中,也就是把可组合(树/图结构)的信息表示为一个个有意义的向量。比如上面这个例子,递归神经网络把句子“the country of my birth”表示为二维向量[1,5]。有了这个“编码器”之后,我们就可以这些有意义的向量为基础去完成更高级的任务(比如情感分析等)。如图5-10所示,递归神经网络在做情感分析时,可以比较好地处理否定句,这是胜过其他一些模型的。

图5-10 利用递归神经网络做情感分析

在图5-10中,灰色表示正面评价,黑色表示负面评价。每个节点都是一个向量,这个向量表达了以它为根的子树的情感评价。比如“intelligent humor”是正面评价,而“care about cleverness,wit or any other kind of intelligent humor”是中性评价。我们可以看出,模型能够正确地处理doesn’t的含义,将正面评价转变为负面评价。

尽管递归神经网络具有更为强大的表示能力,但是在实际应用中并不太流行。其中一个主要原因是,递归神经网络的输入是树/图结构,而这种结构需要花费很多人工去标注。想象一下,如果我们用循环神经网络处理句子,那么我们可以直接把句子作为输入。然而,如果我们用递归神经网络处理句子,我们就必须把每个句子都标注为语法解析树的形式,这无疑要花费非常大的精力。很多时候,相对于递归神经网络能够带来的性能提升,这个投入是不太划算的。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈

相关推荐