# 核心结构与工作原理
LSTM 是 RNN 的一种改进,通过引入门控机制(gating mechanism) 来有效解决梯度消失问题,从而更好地捕获长距离依赖关系。它在每个时间步保留两个状态:隐藏状态(Ht)和单元状态(Ct)。
# 门控机制
LSTM 通过三个门(遗忘门、输入门和输出门)来控制信息的流动,这些门控单元都由Sigmoid激活函数和矩阵乘法组成,其输出值在 [0, 1] 之间,决定了信息的“通过”程度。
-
遗忘门 (F(t)):决定单元状态中应该保留多少上一时间步的信息。
- F(t)=σ(WfH(t−1)+UfX(t)+bf)
-
输入门 (I(t)):决定单元状态中应该添加多少当前时间步的新信息。
- I(t)=σ(WiH(t−1)+UiX(t)+bi)
-
候选记忆(C~(t)):通过 tanh 激活函数创建新的候选记忆,这些记忆将与输入门结合。
- C~(t)=tanh(WcH(t−1)+UcX(t)+bc)
-
更新单元状态:结合遗忘门和输入门的输出,更新单元状态。
- C(t)=F(t)⊙C(t−1)+I(t)⊙C~(t)
-
输出门 (O(t)):决定将单元状态中的哪些信息输出到隐藏状态。
- O(t)=σ(WoH(t−1)+UoX(t)+bo)
-
更新隐藏状态:结合输出门和单元状态,更新隐藏状态。
- H(t)=O(t)⊙tanh(C(t))
# 优缺点
# 优点
- 有效处理长序列:相较于 RNN,LSTM 在实践中可以有效地保留约 100 个时间步的信息,显著提高了模型捕获长距离依赖的能力。
# 缺点
- 线性交互距离:模型需要 O(sequence length) 的时间步才能在远距离词汇之间建立关联,因此仍然难以学习到非常遥远的依赖关系。
- 计算效率:与 RNN 相同,LSTM 也只能进行串行计算,无法利用硬件并行优势。
- 结构局限:线性顺序并非处理句子结构的唯一或最优方式,这也限制了其对复杂语义关系的建模能力。