M4-004M4: Sequences & TransformersRecurrent Models (RNN/LSTM/GRU)Medium
Mastery:
Recurrent Models (RNN/LSTM/GRU): 解释双向 RNN 与它的适用限制。
📐 Mathematical Definition
⚡ Executive Summary
Core Concept: 双向 RNN 用前向与后向两条链拼接隐状态,能同时利用左右上下文;但要求整条序列可见,不能用于自回归生成。
📌 Key Takeaways
- •前向 + 后向两个独立 RNN,输出拼接(或相加/平均)
- •每层需看到完整序列 → 不能流式、不能用于因果生成
- •适合分类/标注/NER,不适合语言模型解码
📐 Mathematical Derivations
数学机理:<strong>双向 RNN</strong> 并行训练两条独立的递归链:前向链 h⃗_t=f(W_f h⃗_{t−1}+W_x x_t) 从左到右累积信息,后向链 h⃖_t=f(W_b h⃖_{t+1}+W_x x_t) 从右到左累积信息,最终表示 h_t=[h⃗_t; h⃖_t](拼接)。<strong>能力</strong>——单向 RNN 在时刻 t 只见过 x_1..x_t,无法利用未来上下文;双向 RNN 同时利用过去与未来,故对<strong>需要全局语境</strong>的任务(词性标注、命名实体识别、句子分类、机器阅读理解)显著更好。<strong>限制的根源</strong>——后向链要求<strong>先看到整条序列的末尾</strong>才能算出 h⃖_1,故必须等序列全部输入完毕才能输出第一个位置的表示。这带来两个硬约束:(a) <strong>不能流式处理</strong>(无法逐 token 增量输出);(b) <strong>不能用于因果语言模型</strong>(生成第 t 个 token 时不允许看到 t 之后的内容,否则信息泄漏)。<strong>参数量</strong>——两条链各自有独立的权重(不共享),故参数量约单向的 2 倍(输入投影可共享)。<strong>与 Transformer 的关系</strong>——BERT 的'双向'是通过<strong>全向注意力 + 非因果 mask</strong> 实现的,无需两条链;这是 Transformer 相对双向 RNN 的优雅之处(一次前向即得全位置的双向表示,且可完全并行)。
🏭 Production Trade-offs
深度剖析与工程权衡:① <strong>编码器的标准选择</strong>——在 Transformer 出现前,双向 LSTM 是几乎所有 NLP 编码任务的默认(BiLSTM-CRF 曾是 NER 的 SOTA);现代则被 BERT 式编码器取代。② <strong>拼接 vs 相加</strong>——拼接保留两条链的独立性(维度翻倍),相加/平均则更省参数;拼接更常用。③ <strong>层数堆叠</strong>——多层双向 RNN 中,通常让相邻层的方向交替或全双向;深层双向 RNN 的梯度问题更严重,需残差与归一化辅助。④ <strong>与'prefix-LM'的对应</strong>——有些任务需要'部分双向'(前缀双向、后缀因果),Transformer 用自定义 mask 实现(如 prefix-LM),比双向 RNN 更灵活。⑤ <strong>在序列标注中的现状</strong>——BiLSTM 在低资源、低延迟、模型需极小的场景仍有价值(如移动端 NER);且 BiLSTM-CRF 的 CRF 层提供标签间依赖约束,这一思想在结构化预测中仍重要。⑥ <strong>面试要点</strong>——被问'双向 RNN 的限制',必须点出'<strong>需完整序列 → 不能流式、不能用于因果生成</strong>';并能对比'BERT 用非因果注意力实现双向',体现架构演进的连贯理解。
⚠️ Common Interview Pitfalls
- ✕在语言模型解码中使用双向 RNN(信息泄漏)
- ✕忽略双向 RNN 无法流式处理这一工程约束
🎯 Interviewer Follow-ups
- ?为什么双向 RNN 不能用于语言模型?
- ?双向 RNN 的参数量是单向的几倍?
📚
Associated Knowledge Base Guides & Mindmaps
Explore the comprehensive technical article, exam cards, and global architecture tree.