LSTM(Long Short-Term Memory,长短期记忆)网络是RNN的一种特殊类型,专为解决RNN在处理长序列数据时出现的梯度消失和梯度爆炸问题而设计。LSTM通过引入关键结构来应对这些问题。
图1-3展示了一个简单的LSTM内部结构,LSTM的核心是一个称为“记忆单元”的结构,它可以在长序列数据中保持信息。记忆单元由一个称为“细胞状态”的内部状态和一个称为“隐藏状态”的外部状态组成。细胞状态可以在时间步之间传递信息,从而保持对先前输入的记忆。隐藏状态基于当前输入和前一个时间步的隐藏状态计算得出。LSTM的记忆单元还包括三个门:遗忘门、输入门和输出门。这些门控制着细胞状态的更新和隐藏状态的输出,允许LSTM在长序列数据中捕捉时间依赖关系。遗忘门、输入门和输出门的作用并非仅仅“决定”某些信息应执行何种操作,而是通过学习到的权重控制信息的流动。
❑ 遗忘门:通过sigmoid函数对上一时间步的单元状态和当前时间步的输入进行线性变换,得到遗忘概率,并逐元素相乘,决定从单元状态中遗忘哪些信息。
❑ 输入门:通过sigmoid函数和tanh函数分别控制哪些信息要更新以及如何更新,并与上一时间步的单元状态和当前时间步的输入进行结合,得到新的单元状态。
❑ 输出门:通过sigmoid函数对当前时间步的单元状态进行线性变换后得到输出概率,随后逐元素相乘,以决定输出哪些信息。
图1-3 LSTM内部结构
除了引入门机制外,LSTM还进行了其他改进,例如窥孔连接和耦合遗忘门。
❑ 窥孔连接。通过窥孔连接,遗忘门可以直接查看当前时间步的记忆单元状态 C t ,以决定遗忘多少信息,从而更精确地控制信息流动。
❑ 耦合遗忘门能够更有效地处理输入序列中的噪声。
一个典型的应用场景是“机器翻译任务”。LSTM能够记住源语言句子的语义和结构,并在翻译过程中保持这些信息,从而生成更为准确的翻译结果。
LSTM在实际应用中也存在一些问题,研究者为此提出了若干改进模型。图1-4展示了LSTM的三个分支模型。
图1-4 LSTM的三个分支模型
LSTM的三个重要分支具体介绍如下。
❑ 门控循环单元:LSTM的简化版本,参数更少,训练速度更快,适用于对速度和效率要求较高的场景,如语音识别。
❑ 注意力机制:能够使模型聚焦于输入序列中与当前输出最相关的部分,适用于文本摘要、机器翻译等任务。
❑ 双向长短期记忆网络:能够同时利用前后信息处理序列数据,适用于需要对输入序列进行全局依赖建模的场景,如情感分析、文本分类等。
在这些分支中,注意力机制是最重要的一个分支。它能够使模型聚焦于输入序列中与当前输出最相关的部分,从而提升模型性能。随后,在Transformer模型中,注意力机制得到了进一步发展,成为自然语言处理领域的重要模型。