# 核心结构与工作原理

LSTMRNN 的一种改进,通过引入门控机制(gating mechanism) 来有效解决梯度消失问题,从而更好地捕获长距离依赖关系。它在每个时间步保留两个状态:隐藏状态(HtH_t单元状态(CtC_t

# 门控机制

LSTM 通过三个门(遗忘门输入门输出门)来控制信息的流动,这些门控单元都由Sigmoid激活函数和矩阵乘法组成,其输出值在 [0, 1] 之间,决定了信息的“通过”程度。

  1. 遗忘门 (F(t)F^{(t)}):决定单元状态中应该保留多少上一时间步的信息。

    • F(t)=σ(WfH(t1)+UfX(t)+bf)F^{(t)} = \sigma(W_f H^{(t-1)} + U_f X^{(t)} + b_f)
  2. 输入门 (I(t)I^{(t)}):决定单元状态中应该添加多少当前时间步的新信息。

    • I(t)=σ(WiH(t1)+UiX(t)+bi)I^{(t)} = \sigma(W_i H^{(t-1)} + U_i X^{(t)} + b_i)
  3. 候选记忆(C~(t)\tilde C^{(t)}):通过 tanh\tanh 激活函数创建新的候选记忆,这些记忆将与输入门结合。

    • C~(t)=tanh(WcH(t1)+UcX(t)+bc)\tilde C^{(t)} = \tanh(W_c H^{(t-1)} + U_c X^{(t)} + b_c)
  4. 更新单元状态:结合遗忘门输入门的输出,更新单元状态

    • C(t)=F(t)C(t1)+I(t)C~(t)C^{(t)} = F^{(t)} \odot C^{(t-1)} + I^{(t)} \odot \tilde C^{(t)}
  5. 输出门 (O(t)O^{(t)}):决定将单元状态中的哪些信息输出隐藏状态

    • O(t)=σ(WoH(t1)+UoX(t)+bo)O^{(t)} = \sigma(W_o H^{(t-1)} + U_o X^{(t)} + b_o)
  6. 更新隐藏状态:结合输出门单元状态,更新隐藏状态

    • H(t)=O(t)tanh(C(t))H^{(t)} = O^{(t)} \odot \tanh(C^{(t)})

# 优缺点

# 优点

  • 有效处理长序列:相较于 RNN,LSTM 在实践中可以有效地保留约 100 个时间步的信息,显著提高了模型捕获长距离依赖的能力。

# 缺点

  • 线性交互距离:模型需要 O(sequence length)O(\text{sequence length}) 的时间步才能在远距离词汇之间建立关联,因此仍然难以学习到非常遥远的依赖关系。
  • 计算效率:与 RNN 相同,LSTM 也只能进行串行计算,无法利用硬件并行优势。
  • 结构局限:线性顺序并非处理句子结构的唯一或最优方式,这也限制了其对复杂语义关系的建模能力。