雙向編碼器 是什麼?

Bidirectional Encoder:雙向編碼器 的完整解釋

能同時處理序列的前向和後向上下文,在每個位置都能看到完整序列信息的神經網路編碼器,相比單向模型提供更豐富的上下文表示,是 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 等混合模型在理解和生成間尋求平衡。

常見問題