技术指南

双向循环网络

双向循环网络向前和向后读取序列,因此每个位置的表示都借鉴了过去和未来的上下文。

阅读时间:2分钟最后更新

概述

This matters because meaning often depends on what comes next, not just what came before.

深入探讨

双向 RNN 由 Schuster 和 Paliwal 于 1997 年提出,在同一输入上运行两个独立的循环层:一个从左到右处理序列,另一个从右到左处理序列。然后,通常通过串联将它们的隐藏状态组合起来,以在每个时间步形成对完整周围上下文进行编码的表示。这对于一次性提供全部输入的任务来说非常强大。例如,要将单词银行标记为金融机构而不是河边,模型可以从两侧的单词中受益。双向 LSTM 和 GRU 成为命名实体识别、词性标记和语音识别的标准。关键的限制是网络在产生输出之前需要完整的序列,因此它不能用于实时、流式或生成式从左到右的预测。

技术洞察

该架构维护两组独立的循环参数。前向层计算步骤1到T的隐藏状态;后向层从步骤 T 到 1 计算它们。在每个位置,两个隐藏向量在传递到输出层之前被连接(或求和)。至关重要的是,这两个方向从不共享权重,并且在循环过程中不会相互影响,因此每个方向都捕获组合合并的单方面上下文。

战略影响

成本与预算

多年来,架构决策决定着性能和运营成本。

更清晰的判决

技术教育帮助团队选择正确的堆栈,而不仅仅是最新的堆栈。

质量控制

更好的工程选择可以减少生产中的可靠性事故。

双向循环网络的未来

双向上下文在现代编码器中继续存在:BERT 风格的 Transformer 通过屏蔽注意力而不是循环实现了相同的目标,而且它们的并行性要好得多。双向 RNN 在轻量级管道、音频和生物信号处理以及完整序列较短且带有标签的设置中仍然具有相关性。预计将继续用于专门的、耐延迟的编码任务,而基于注意力的双向编码器将主导大规模语言理解。

现实世界的实施

命名实体识别,两侧周围的单词有助于将标记分类为人、地点或组织

使用前后上下文消除“lead”等单词的歧义的词性标记

离线语音识别中的声学建模,其中整个话语都可用

生物信息学中的蛋白质或 DNA 序列标记,其中基序取决于侧翼残基

风险与防护栏

优化一项基准测试可以隐藏更广泛的系统弱点。

基础设施和维护成本常常被低估。

随着系统变得更加复杂,安全性和可观察性差距可能会扩大。

实施路线图

1

在实施之前定义延迟、质量和成本目标。

2

在实际负载和数据条件下进行基准测试。

3

仪器监控错误、漂移和用户影响。

4

在扩展之前准备回滚和事件响应路径。

不断探索

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the Bidirectional Recurrent Networks quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

开始测验

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

下一个指南

循环神经网络

常见问题

What is Bidirectional Recurrent Networks?

双向循环网络向前和向后读取序列,因此每个位置的表示都借鉴了过去和未来的上下文。这很重要,因为意义往往取决于接下来发生的事情,而不仅仅是之前发生的事情。

是什么让循环网络成为双向的?

两个单独的循环遍历(从左到右和从右到左)为每个位置提供了过去和未来的上下文。

前向和后向隐藏状态通常如何组合?

两个特定于方向的隐藏向量通常连接起来以形成每步上下文丰富的表示。

双向 RNN 的主要限制是什么?

由于后向传递需要完整输入,因此双向 RNN 无法进行实时或生成式从左到右的预测。

在循环过程中,前向层和后向层是否共享权重?

每个方向都有自己独立的循环参数;它们仅在输出阶段合并。

哪个经典任务非常适合双向 RNN?

在完整句子上标记任务(例如 NER)可以从查看每个单词两侧的上下文中受益匪浅。