尽管 LSTM 和 GRU 引入了门控机制,以应对简单 RNN 中存在的严重梯度消失问题,但它们在捕获序列中相距很远元素之间的关系时,仍面临固有的困难。这一局限性直接源于信息处理的序列性质。
可以将 RNN 中的隐藏状态 ht 视为截至时间步 t 所见序列的运行概括或记忆。为了影响在晚得多的时间步 N 的输出或状态,来自早期时间步 t 的信息必须成功地传播经过所有中间步骤 t+1,t+2,…,N−1。这条序列路径充当了瓶颈。
从数学角度来看,这与时间反向传播 (backpropagation)过程中梯度的传播有关。损失 L 对早期隐藏状态 ht 的梯度,取决于代表每一步状态转换的雅可比矩阵的乘积:
∂ht∂L=∂hN∂L(k=t+1∏N∂hk−1∂hk)
即使 LSTM 和 GRU 被设计成使这些雅可比范数平均更接近 1,但在大量步骤(N−t 很大)上传播信息仍然是困难的。门控提供了对信息流的控制,使得网络能够比简单 RNN 更长时间地保留重要信息。然而,这种控制并非完美。
- 信息衰减: 经过许多步骤后,每一步即使是少量的信息丢失或转换也会累积,使得网络难以精确回忆或使用来自久远过去的信息。状态向量 (vector) ht 具有固定大小,这迫使网络将任意长的历史压缩成固定维度的表示。这种压缩不可避免地导致信息丢失,特别是对于序列中更早的细节。
- 路径长度: 信息在序列中两点之间传播所需的计算步骤数与其距离成正比。这意味着学习远距离元素之间的依赖关系,需要梯度在相应长的路径上成功传播,即使有门控也仍然困难。LSTM 可能会忘记信息,即使它后来被证明是相关的,或者难以在数千个步骤中传输特定信息而没有退化。
考虑一下这种局限性变得明显的任务:
- 文档分析: 在处理一篇长文章时,将一个结论性陈述与第一段中引入的前提联系起来,需要在数千字间保持最初的语境。
- 机器翻译: 翻译句子时,语法一致性或词汇选择取决于源句中相距很远的词语(例如,跨多个从句的主谓一致)。
- 长篇问答: 回答一个问题,其答案需要综合一份长文档中分散的信息。
- 代码生成: 在大型代码文件中,保持对早前进行的变量声明或函数定义的语境。
下图说明了循环模型中固有的序列依赖路径。来自 Input 1 的信息必须经过每一个中间隐藏状态才能影响 Output N。
RNN 中时间步 t 和 N 之间信息流的序列路径长度与 N-t 成正比。
尽管 LSTM 和 GRU 是显著的改进,但在处理极长距离依赖方面的持续困难直接促使了能够创建相距遥远的序列元素之间更短路径的架构的发展。Transformer 模型,主要是通过其自注意力 (self-attention)机制 (attention mechanism),提供了一种直接建模序列中任意两个位置之间关系的方法,无论它们距离多远,从而克服了循环处理的这一根本局限。我们将在下一章详细考察这种机制。