递归神经网络(RNN)是两类人工神经网络的总称,分别是时间递归神经网络和结构递归神经网络。(ps:也有不少文献称之为递归神经网络和循环神经网络)。算法
RNN在基础研究领域和工程领域都取得了不少突破性进展。在天然语言处理领域,采用神经网络模型来改进传统的N元统计模型。还应用于机器翻译领域、语音识别和个性化推荐领域等。网络
RNN处理的对象是一种时间序列数据,它将数据信息流以一种循环的方式进行传递处理。具有两个特色:数据结构
1. 持续性:在时间序列信息中,先后数据见不是相互独立,而是相互依赖的,当前阶段的输出结果受到过去的决策影响,同理,当前节点的输出也会影响到后面的决策。函数
2. 记忆性:RNN能够保留序列的“记忆”信息。例如:在序列式的个性化推荐场景中,为了在当前时刻给用户行为记录为“记忆”,相似于人的大脑机制,这些记忆将有助于对信息进行筛选。spa
BPTT,(BackPropagation Through Time)时间反向传播,是训练RNN网络模型的标准算法。它的流程与反向传播算法很类似。与BP算法同样,利用BPTT求解递归神经网络之因此会致使梯度消失,主要是因为激活函数的导数所引起的梯度降低叠加。在RNN网络中,梯度消失致使的后果是模型没法保证前面较远时间的记忆,所以,在实际获得应用中效果不甚理想。-----后面介绍两种改进的RNN模型,它们有效克服了梯度消失的缺点,对于捕获长时间的记忆信息效果很是显著。翻译
-----长短时记忆网络(long Short Term Memory, LSTM)是时间递归神经网络的一种变种形态,目前已经被普遍应用于机器翻译、语音识别等天然语言处理领域。LSTM对隐藏层的设计作了相应的改进以有效地保留长时间的记忆信息,有效地克服了梯度消失问题。特别地,LSTM隐藏层的核心设计,是一种叫记忆体的信息流,它负责把记忆信息从序列的初始位置传递到序列的末端,并经过4个相互交互的“门”单元,来控制着在每一时间步t对记忆信息值的修改。设计
1. 忘记门:其做用是控制着要从前面的记忆中丢弃多少信息。对象
2. 输入门:它决定了当前时刻的输入信息,有多少信息将被添加到记忆信息流中,与忘记门的计算公式几乎一致,输入门一样经过一个激活函数来实现。blog
3. 候选门:它用来计算当前的输入与过去的记忆所具备的信息总量。递归
4. 输出门:它控制着有多少记忆信息将被用于下一阶段的更新中。
总结:将数据经过在时间维度的展开,使得信息可以在时间维度上进行传递和积累,数据之间的联系表现为在时间维度上的先后依赖关系。
-----结构递归神经网络:是将数据在空间维度上展开,并以一种树结构的形式展现,数据之间的联系表现为总体与局部之间的空间组合关系。被普遍用于句子的分块和语法处理中。在天然语言文本中,语法的规则是一种递归的结构,一个句子能够由名词短语和动词短语构成,而名词短语又能够继续分解为其余的短语子结构。一个亟待解决的问题是,须要选择一个评价标准,并按照这个标准,构建出句子的最优语法递归树。采用beam search的方法构造出最优语法树,思想是对于当前的全部可能候选对,选择分数最高的候选对进行合并。
补充阅读:
语言模型是一个几率模型,利用该模型能够对任意给定的一个句子序列数据,获得该序列的合理性几率估计。在语音识别、机器翻译中扮演着很是重要的角色。语言模型的形式化定义为:
设S表示一个句子序列,它由单词序列构成,n表示句子的长度,则语言模型的任务是构建成这样
的几率模型。由条件几率公式,能够获得计算语言模型最简单的几率统计算法如公式12.32:
式子12.34对应的语言模型为N元统计模型,该模型为构建语言模型提供了一种有效的解决方案,但N元统计模型也存在着几个缺点:第一,空间复杂度高;第二,稀疏性,语言模型是针对共同出现的次数,不少词对没有出现过,形成不少零几率。稀疏性也会致使数据结构的置信度不高,解决方法是使用平滑技术:拉普拉斯平滑、古德-图灵平滑、线性插值平滑、卡茨平滑。
基于LSTM构建语言模型:将句子拆分为单词的组合,句子中的每个单词,按其出现的前后顺序做为输入层中每一时间步的输入数据,整个过程不须要关心输入数据是否在语料中出现。
利用递归神经网络构建语言模型,最核心的设计是中间的隐藏层,上图中设置了LSTM隐藏单元,经过前向操做,将句子中单词之间的联系信息,以记忆信息流的形态不断向后传递,影响每个新输入数据的处理和每一阶段的输出。