告别 RNN:为何注意力机制成为新主流
我们曾对递归神经网络(RNN)、长短期记忆网络(LSTM)及其变体寄予厚望。它们曾是序列学习、机器翻译(Seq2Seq)以及语音识别领域的基石,推动了 Siri、Alexa 等智能助手的崛起。
然而,随着 ResNet 和注意力机制(Attention)在 2015-2016 年的出现,技术风向发生了根本性转变。越来越多的证据表明,基于注意力的模型正在取代 RNN 及其变体。谷歌、Facebook、Salesforce 等巨头已率先采用这一策略,这并非偶然。
为什么需要放弃 RNN?
1. 顺序处理的瓶颈
RNN 及其变体的核心问题在于其固有的顺序处理特性。信息必须按时间步依次穿过所有单元才能到达当前节点。这意味着长距离依赖信息在传递过程中极易受损,导致梯度消失或爆炸问题。
虽然 LSTM 通过门控机制缓解了这一问题,允许信息绕过部分节点以保留更长的记忆,但它本质上仍是一条从旧单元到新单元的序列路径。尽管复杂,这条路径依然限制了有效记忆的长度,通常只能稳定处理数百个时间步的序列,难以应对数千甚至更长序列的需求。

2. 硬件友好度不足
RNN 对硬件资源的要求极高。由于每个时间步都需要进行线性层计算,LSTM 在每个序列步骤中需要消耗大量的内存带宽。对于硬件设计师而言,这是最大的挑战之一。增加计算单元相对容易,但提升内存带宽却非常困难。
这种架构导致 RNN 难以利用并行计算优势,在云端扩展时成本高昂。随着语音转文本等应用需求的增长,我们需要在边缘设备上进行高效处理,而 RNN 的低效使其难以满足实时性和可扩展性的要求。
注意力机制的优势
1. 并行计算与路径长度
要解决序列处理问题,我们需要一种能够'回溯'或'前进'的机制,特别是在处理非实时因果数据(如文档翻译、视频分析)时,我们可以一次性获取所有数据并进行推理。
神经注意力模型正是为此而生。通过结合多个注意力模块,例如分层神经注意力编码器,我们可以将过去的编码向量汇总到上下文向量中。

在这种架构下,多层注意力可以查看过去的一小部分向量,上层则整合这些模块的信息,从而将有效记忆范围扩展到数万步。更重要的是,表示向量传播到输出所需的路径长度与层次结构层数 N 的对数成正比(log(N)),而非 RNN 所需的 T 步(T >> N)。跳跃几次比跳跃几百次更容易记住序列。
2. 动态记忆选择
这种架构类似于神经元图灵机,但让神经网络通过注意力决定从记忆中读取什么。这意味着网络能自主判断哪些历史向量对未来决策至关重要。
关于记忆存储效率,上述架构将所有先前的表示存储在记忆中。虽然可能存储了冗余数据(如视频中相似帧的表示),但这可以通过应用程序指导来优化,例如仅保存与之前差异显著的向量。目前这也是研究的一个重点方向。
补充技术细节
训练与硬件限制
RNN 和 LSTM 难以训练的主要原因在于内存带宽的计算需求。LSTM 在每个时间步需要 4 个线性层(MLP 层),这严重限制了神经网络解决方案的适用性。一个潜在的解决方案是在内存设备中进行计算,但这需要特定的硬件支持。
相关研究与参考
- 分层神经注意力:与 WaveNet 的思想类似,但使用分层注意力模块替代卷积神经网络。
- 双向模型:分层神经注意力模型也可以设计为双向的。
- TCN 对比:时域卷积网络(TCN)在不同任务和数据集上优于经典循环网络,展示了更长的有效记忆能力。
- 人类记忆机制:人脑学习长序列往往采用分块策略(Chunking),这与小卷积或局部注意力机制有异曲同工之妙,随后通过层次化串联形成整体认知。

