雙向編碼器(Bidirectional Encoder)是什麼?

能同時處理序列的前向和後向上下文,在每個位置都能看到完整序列信息的神經網路編碼器,相比單向模型提供更豐富的上下文表示,是 BERT 等預訓練模型的核心。|本頁含完整原理、應用場景、iPAS 考試重點與 3 個常見問答。

英文
Bidirectional Encoder
主題標籤
深度學習、自然語言處理、大型語言模型
考點定位
非 iPAS 核心術語
最後更新
2026/06/22
雙向編碼器(Bidirectional Encoder)是什麼? 深度學習自然語言處理
術語快查

搜尋意圖: 如果你在找「雙向編碼器 是什麼」或「雙向編碼器 和相近概念差在哪」,先看這頁的短定義、完整說明與延伸比較。

TL;DR: 能同時處理序列的前向和後向上下文,在每個位置都能看到完整序列信息的神經網路編碼器,相比單向模型提供更豐富的上下文表示,是 BERT 等預訓練模型的核心。

實用情境: 適合用在閱讀 AI 文章、產品文件或和同事討論時,先用一頁快速對齊概念。

下一步: 先讀完定義,再往下看延伸比較與對應工具,把概念轉成實際應用。

能同時處理序列的前向和後向上下文,在每個位置都能看到完整序列信息的神經網路編碼器,相比單向模型提供更豐富的上下文表示,是 BERT 等預訓練模型的核心。

核心概念

雙向編碼器(Bidirectional Encoder)的核心優勢在於其「全視」特性:序列中的每個位置都能直接存取序列中的所有其他位置的信息,無論前後。這與傳統循環神經網路(RNN)的單向性形成鮮明對比。

在自注意力框架中,實現雙向性非常直接:

  • 單向(Causal):自注意力遮蔽掩蓋當前位置之後的所有位置,使當前只能關注過去
  • 雙向:不施加任何遮蔽,當前位置可同時關注前後所有位置

數學上,雙向注意力的遮蔽矩陣(mask)全為 0(無遮蔽),而單向的遮蔽矩陣在下三角為 0,上三角為負無窮。

運作原理

雙向編碼器的編碼過程分為以下階段:

  1. 輸入表示層:將輸入序列(如詞或 subword tokens)映射到嵌入空間,加上位置編碼和段落編碼(如區分兩個句子)。

  2. 多層自注意力堆疊:通過多層(通常 12-24 層)的自注意力層,每層都是完全雙向的,沒有因果遮蔽。每層內部使用多頭注意力(8-16 頭),捕捉多個依賴維度。

  3. 逐層信息融合:低層(接近輸入)自注意力捕捉局部和語法特徵,中層捕捉組合特徵,高層(接近輸出)捕捉語義和上下文特徵。

  4. 全序列上下文編碼:通過多層堆疊,每個位置的表示逐漸吸收整個序列的信息。第 L 層位置 i 的隱藏狀態實際上包含了整個序列的信息(通過前面 L-1 層的多步傳播)。

  5. 輸出編碼表示:最後一層的隱藏狀態就是雙向編碼結果。每個位置都有一個編碼向量,同時包含前向和後向上下文。

實際應用

雙向編碼器在多個自然語言理解任務中表現優異:

  1. 文本分類:BERT 等雙向編碼器能為整篇文檔生成完整的上下文表示,顯著提升分類準確率。相比單向模型,同一詞的表示會根據完整上下文變化。

  2. 命名實體識別(NER):序列標籤任務需要充分的上下文。「bank」在「bank robbery」(搶銀行)和「river bank」(河岸)中含義不同,雙向編碼器能準確區分。

  3. 詞性標註:標記詞性通常需要前後文。「lead」在「Lead the team」(lead)和「Heavy lead」(lead)中詞性不同,雙向編碼無法遗漏任何上下文線索。

  4. 語義相似度計算:孿生網路(Siamese Networks)用雙向編碼器對兩個句子分別編碼,再計算相似度,用於相似問題檢測、重複項去重。

  5. 問答系統:SQuAD 等閱讀理解任務中,雙向編碼器編碼問題和段落,通過注意力機制定位答案起點和終點。

  6. 知識圖譜補全:編碼實體和關係,利用雙向上下文推斷缺失的關係。

  7. 信息檢索:雙向編碼器生成的密集表示用於語義搜索,相比 BM25 等詞頻方法更準確。

常見誤區

  1. 誤以為雙向編碼器不能生成文本:雙向編碼器確實更適合理解任務,但通過特殊設計(如掩蓋開啟漸進式解碼)也能做文本生成。主要是生成質量不如專門的單向生成模型。

  2. 混淆「雙向」與「完全上下文」:雙向意味著信息能雙向流動,但多層堆疊才能實現「完全上下文」(每位置真正知道整個序列)。單層雙向注意力只有一層近鄰的上下文。

  3. 編碼成本的忽視:雙向編碼整個序列的計算成本為 O(n²),編碼時間較長。推理環節如果需要逐位置增量編碼,無法充分利用雙向性,反而成本更高。

  4. 預訓練和微調的差異:BERT 在預訓練時使用掩蔽語言模型(MLM)目標,利用完整序列上下文。微調時如果輸入不完整(如機器翻譯需要逐步生成),雙向性的優勢減弱。

與相關技術的比較

  • 雙向編碼器 vs 單向解碼器:BERT(雙向)在文本理解任務上優於 GPT(單向),但 GPT 在文本生成上優於 BERT。雙向獲得完整上下文,單向允許自迴歸生成。選擇應基於任務性質。

  • 雙向編碼器 vs 雙向 LSTM:都支持雙向信息流,但實現不同。BiLSTM 用前向和後向兩個 LSTM 分別處理序列,再連接結果。Transformer 雙向編碼器通過自注意力一次性進行,更高效。

  • 完全雙向 vs 限制雙向:完全雙向意味著無任何因果遮蔽。某些模型(如 XLNet)採用排列語言建模(Permutation Language Modeling),在訓練時隨機改變位置順序,實現「有限度的雙向性」以保留某些因果結構。

  • 雙向編碼 vs 編碼-解碼架構:BERT 是純編碼器,適合理解。T5 等編碼-解碼模型在編碼側雙向,解碼側單向,適合生成式任務。ELECTRA 等混合模型在理解和生成間尋求平衡。

常見問題

雙向編碼器為什麼不能用於文本生成?

文本生成是自迴歸的過程:生成第一個詞、再根據第一個詞生成第二個、依此類推。在推理時,未來的詞還不存在,無法作為上下文。雙向編碼器在訓練時能看到完整序列,但推理時無法利用未來信息。相比之下,單向解碼器(如 GPT)的因果遮蔽設計完全適配自迴歸生成。理論上雙向編碼器也能生成(通過掩蔽開啟、迭代填補),但效率低,生成質量不如單向模型。

BERT 的掩蔽語言模型目標為何使用雙向編碼器?

掩蔽語言模型(MLM)的訓練目標是預測序列中被隨機掩蔽的詞。若使用單向編碼器(如 GPT 風格),掩蔽詞右側的信息無法看到,損失大量有用上下文。雙向編碼器能看到掩蔽詞的完整上下文(前後均可見),使預測任務更有意義,模型能學習到更深層的語義理解。這就是為什麼 BERT(雙向+MLM)的文本理解性能優於 GPT(單向+因果語言模型)。

雙向編碼器的推理效率為何較低?

在文本理解任務(如文本分類)中,雙向編碼器一次性編碼整個序列,效率很高。但在序列標籤(如 NER)或增量預測任務中,如果需要逐位置更新編碼,每次都必須重新計算整個序列的自注意力(無法複用前面的計算),成本為 O(n²) × 序列數。相比之下,單向 LSTM 的循環結構能高效地增量更新(O(n))。在生成任務中,單向模型能快速地逐詞生成(每步 O(1)),而雙向編碼器無法利用自迴歸的增量特性。