短时记忆
RNN 会受到短时记忆的影响。如果一条序列足够长,那它们将很难将信息从较早的时间步传送到后面的时间步。 因此,如果你正在尝试处理一段文本进行预测,RNN 可能从一开始就会遗漏重要信息。
在反向传播期间,RNN 会面临梯度消失的问题。 梯度是用于更新神经网络的权重值,消失的梯度问题是当梯度随着时间的推移传播时梯度下降,如果梯度值变得非常小,就不会继续学习。
标准的LSTM
前面提到LSTM由三个门来控制细胞状态,这三个门分别称为忘记门、输入门和输出门。下面一个一个的来讲述。
忘记门:
STM的第一步就是决定细胞状态需要丢弃哪些信息。这部分操作是通过一个称为忘记门的sigmoid单元来处理的。它通过查看ht-1和xt信息来输出一个0-1之间的向量,该向量里面的0-1值表示细胞状态Ct-1中的哪些信息保留或丢弃多少。0表示不保留,1表示都保留。忘记门如下图所示。
输入门:
下一步是决定给细胞状态添加哪些新的信息。这一步又分为两个步骤,首先,利用ht-1和xt通过一个称为输入门的操作来决定更新哪些信息。然后利用ht-1和xt通过一个tanh层得到新的候选细胞信息Ct,这些信息可能会被更新到细胞信息中。这两步描述如下图所示。
更新操作:
下面将更新旧的细胞信息Ct-1,变为新的细胞信息Ct。更新的规则就是通过忘记门选择忘记旧细胞信息的一部分,通过输入门选择添加候选细胞信息Ct的一部分得到新的细胞信息Ct。
输出门:
更新完细胞状态后需要根据输入的ht-1和xt来判断输出细胞的哪些状态特征,这里需要将输入经过一个称为输出门的sigmoid层得到判断条件,然后将细胞状态经过tanh层得到一个-1~1之间值的向量,该向量与输出门得到的判断条件相乘就得到了最终该RNN单元的输出。该步骤如下图所示。
LSTM变体
GRU
GRU(Gated Recurrent Unit ),这是由 Cho, et al. (2014) 提出。在 GRU 中,如下图所示,只有两个门:重置门(reset gate)和更新门(update gate)。同时在这个结构中,把细胞状态和隐藏状态进行了合并。最后模型比标准的 LSTM 结构要简单,而且这个结构后来也非常流行。
其中, rt表示重置门,zt表示更新门。重置门决定是否将之前的状态忘记。(作用相当于合并了 LSTM 中的遗忘门和传入门)当ht−1会被忘掉,隐藏状态hˆt会被重置为当前输入的信息。更新门决定是否要将隐藏状态更新为新的状态hˆt(作用相当于 LSTM 中的输出门) 。
和 LSTM 比较一下:
- GRU 少一个门,同时少了细胞状态Ct
- 在 LSTM 中,通过遗忘门和传入门控制信息的保留和传入;GRU 则通过重置门来控制是否要保留原来隐藏状态的信息,但是不再限制当前信息的传入。
- 在 LSTM 中,虽然得到了新的细胞状态 CtCt C_{t}Ct,但是还不能直接输出,而是需要经过一个过滤的处理:ht=ot∗tanh(Ct);同样,在 GRU 中, 虽然我们也得到了新的隐藏状态hˆt, 但是还不能直接输出,而是通过更新门来控制最后的输出:
ht=(1−zt)∗ht−1+zt∗h^t
多层LSTM
多层LSTM是将LSTM进行叠加,其优点是能够在高层更抽象的表达特征,并且减少神经元的个数,增加识别准确率并且降低训练时间。
BiLSTM
BiLSTM是Bi-directional Long Short-Term Memory的缩写,是由前向LSTM与后向LSTM组合而成。两者在自然语言处理任务中都常被用来建模上下文信息。
使用LSTM模型可以更好的捕捉到较长距离的依赖关系。因为LSTM通过训练过程可以学到记忆哪些信息和遗忘哪些信息。
但是利用LSTM对句子进行建模还存在一个问题:无法编码从后到前的信息。在更细粒度的分类时,如对于强程度的褒义、弱程度的褒义、中性、弱程度的贬义、强程度的贬义的五分类任务需要注意情感词、程度词、否定词之间的交互。举一个例子,“这个餐厅脏得不行,没有隔壁好”,这里的“不行”是对“脏”的程度的一种修饰,通过BiLSTM可以更好的捕捉双向的语义依赖。
BiLSTM-CRF
https://zhuanlan.zhihu.com/p/51603192
BiLSTM缺乏在整句层面的特征分析,所以需要借助条件随机场(Conditional Random Fields, CRF)的帮助。CRF将序列标注的重点放在句子级别上,根据特征模板来进行标注,通过Viterbi解码来获得最优解。然而CRF有提取特征困难,适用性不够广的问题,因此可以将CRF和LSTM结合起来,这样在保证能够提取足够整句特征的同时,使用有效的序列标注方法进行标注。
文本输入经过BiLSTM之后,会把前后向的隐藏态结果进行结合,生成BiLSTM的输出。最后,将BiLSTM的输出喂给CRF作为输入,这样就形成了BiLSTM- CRF结构。
这种结构结合了BiLSTM和CRF的特点和优势:
- 作为BiLSTM,它可以有效地保存整句的前后信息,提取句子中的特征信息;
- 作为CRF,它能够利用上下文的信息,进行具有很高准确率的序列标注。以下是BiLSTM-CRF的结构: