跳转至

递归神经网络

1 递归神经网络概念

  1. 因为神经网络的输入层单元个数是固定的,因此必须用循环或者递归的方式来处理长度可变的输入。有时候把句子看做是词的序列是不够的

1614968996860

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

  1. 递归神经网络可以把一个树/图结构信息编码为一个向量,也就是把信息映射到一个语义向量空间中,语义相似的向量距离更近。

1614969008805

  1. 递归神经网络是一种表示学习,它可以将词、句、段、篇按照他们的语义映射到同一个向量空间中,也就是把可组合(树/图结构)的信息表示为一个个有意义的向量。递归神经网络在做情感分析时,可以比较好的处理否定句,这是胜过其他一些模型的:

1614969016738

白色是中性评级,蓝色表示正面评价,红色表示负面评价。每个节点是一个向量,这个向量表达了以它为根的子树的情感评价。

  1. 缺点:递归神经网络具有更为强大的表示能力,但是在实际应用中并不太流行。其中一个主要原因是,递归神经网络的输入是树/图结构,而这种结构需要花费很多人工去标注。想象一下,如果我们用循环神经网络处理句子,那么我们可以直接把句子作为输入。然而,如果我们用递归神经网络处理句子,我们就必须把每个句子标注为语法解析树的形式。

2 递归神经网络前向计算

  1. 结构图

1614969026925

  1. 公式: 递归神经网络的权重和偏置项在所有的节点都是共享的。

3 递归神经网络的训练

  1. 残差从当前时刻反向传播到初始时刻, 也就是BPTS算法

  2. 算例:

1614969036694

  • 权重梯度计算 由于权重是在所有层共享的,所以和循环神经网络一样,递归神经网络的最终的权重梯度是各个层权重梯度之和:

  • 偏置项的计算

  • 权重更新