概述
这一点很重要,因为含义往往取决于接下来的内容,而不仅仅是之前的内容。
深入探讨
双向 RNN 由 Schuster 和 Paliwal 于 1997 年提出,在同一输入上运行两个独立的循环层:一个从左到右处理序列,另一个从右到左处理序列。然后,通常通过串联将它们的隐藏状态组合起来,以在每个时间步形成对完整周围上下文进行编码的表示。这对于一次性提供全部输入的任务来说非常强大。例如,要将单词银行标记为金融机构而不是河边,模型可以从两侧的单词中受益。双向 LSTM 和 GRU 成为命名实体识别、词性标记和语音识别的标准。关键的限制是网络在产生输出之前需要完整的序列,因此它不能用于实时、流式或生成式从左到右的预测。
现实世界的实施
命名实体识别,两侧周围的单词有助于将标记分类为人、地点或组织
使用前后上下文消除“lead”等单词的歧义的词性标记
离线语音识别中的声学建模,其中整个话语都可用
生物信息学中的蛋白质或 DNA 序列标记,其中基序取决于侧翼残基
双向循环网络的未来
双向上下文在现代编码器中继续存在:BERT 风格的 Transformer 通过屏蔽注意力而不是循环实现了相同的目标,而且它们的并行性要好得多。双向 RNN 在轻量级管道、音频和生物信号处理以及完整序列较短且带有标签的设置中仍然具有相关性。预计将继续用于专门的、耐延迟的编码任务,而基于注意力的双向编码器将主导大规模语言理解。
付诸实践
为什么这很重要
- 成本与预算. 多年来,架构决策决定着性能和运营成本。
- 更清晰的判决. 技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。
- 质量控制. 更好的工程选择可以减少生产中的可靠性事故。
留意
- 优化一项基准测试可以隐藏更广泛的系统弱点。
- 基础设施和维护成本常常被低估。
- 随着系统变得更加复杂,安全性和可观察性差距可能会扩大。
后续步骤
- 在实施之前定义延迟、质量和成本目标。
- 在实际负载和数据条件下进行基准测试。
- 仪器监控错误、漂移和用户影响。
- 在扩展之前准备回滚和事件响应路径。
不断探索
常见问题
什么是双向循环神经网络?
双向循环网络向前和向后读取序列,因此每个位置的表示都借鉴了过去和未来的上下文。这很重要,因为意义往往取决于接下来发生的事情,而不仅仅是之前发生的事情。
双向 RNN 如何处理输入序列?
该指南描述了对同一输入进行两次方向相反的循环传递。
为什么来自两个方向的上下文有助于标记诸如“bank”之类的词?
该指南将上下文消歧作为双向表示的一个优势。
两个方向的隐藏状态通常如何在某个位置进行组合?
该指南指出,方向状态通常在输出前进行拼接。
为什么双向 RNN 可能不适合流式生成?
该指南指出,必须先获得完整输入,才能产生使用未来上下文的输出。
离线序列标记与双向性结合的一个优势是什么?
两次传递都提供了当前位置之前和之后的上下文。