BERT Pre-training of Deep Bidirectional Transformers/zh

    From Marovi AI
    Revision as of 04:08, 27 April 2026 by DeployBot (talk | contribs) (Batch translate BERT Pre-training of Deep Bidirectional Transformers unit 22 -> zh)
    (diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
    Other languages:
    Research Paper
    Authors Jacob Devlin; Ming-Wei Chang; Kenton Lee; Kristina Toutanova
    Year 2019
    Venue NAACL
    Topic area NLP
    Difficulty Research
    arXiv 1810.04805
    PDF Download PDF

    BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 是 Devlin 等人於 2019 年發表於 Google AI Language 的論文,該論文提出了 BERT(Bidirectional Encoder Representations from Transformers),一種用於預訓練深度雙向語言表示的方法。BERT 通過證明單個預訓練模型經過 fine-tuning 即可在各種下游任務上取得最先進的結果,且僅需對架構做最小化的任務特定修改,從而徹底變革了自然語言處理領域。

    概述

    在 BERT 之前,預訓練的語言表示要麼是單向的(如 GPT,從左到右讀取),要麼使用獨立訓練的從左到右和從右到左模型的淺層拼接(如 ELMo)。這些方法並不理想,因為標準語言模型本質上是單向的,無法讓 token 同時關注兩側的上下文。

    BERT 通過引入一種新穎的預訓練目標——掩碼語言建模(MLM)——解決了這一局限,使真正的雙向預訓練成為可能。結合下一句預測(NSP)任務,BERT 學習到了豐富的上下文表示,這些表示可以通過簡單的 fine-tuning 遷移到下游任務,消除了對任務特定架構的需求。

    主要貢獻

    • 掩碼語言建模(MLM):一種預訓練目標,隨機掩蓋輸入 token 並訓練模型從雙向上下文中預測它們,實現真正的雙向表示學習。
    • 下一句預測(NSP):一種二元分類預訓練任務,教導模型理解句對之間的關係。
    • 一種簡單而有效的 fine-tuning 範式:在預訓練模型上添加單個輸出層即足以應對各種 NLP 任務,從分類到問答。
    • 證明了深度雙向預訓練對於學習通用語言表示至關重要。

    方法

    BERT 使用 Transformer 架構的編碼器部分。該模型以 token 序列作為輸入,並為每個 token 生成上下文化的 embedding。共發布了兩種模型規模:BERT-Base(12 層,768 個隱藏單元,12 個 attention 頭,1.1 億參數)和 BERT-Large(24 層,1024 個隱藏單元,16 個 attention 頭,3.4 億參數)。

    掩碼語言建模目標的工作方式是隨機掩蓋 15% 的輸入 token。在這些被掩蓋的位置中,80% 被替換為 [MASK] token,10% 被替換為隨機 token,10% 保持不變。模型使用交叉熵損失在每個被掩蓋的位置預測原始 token:

    $ L_{\text{MLM}} = -\sum_{i \in \mathcal{M}} \log P(x_i \mid \mathbf{x}_{\backslash \mathcal{M}}) $

    其中 $ \mathcal{M} $ 是被掩蓋位置的集合,$ \mathbf{x}_{\backslash \mathcal{M}} $ 表示被破壞的輸入。

    對於下一句預測,模型接收句子對(A 和 B),並預測 B 是否是語料庫中 A 之後的真實下一句,還是一個隨機採樣的句子。輸入開頭的特殊 [CLS] token 捕獲了用於此二元分類的聚合序列表示。

    輸入表示結合了 token embedding、段 embedding(指示句子 A 或 B)以及位置 embedding。BERT 使用 WordPiece 分詞,詞表包含 30,000 個 token。

    預訓練使用了 BooksCorpus(8 億單詞)和英文維基百科(25 億單詞),運行 100 萬步,batch 大小為 256 個序列。在當時,預訓練所需的總計算量相當可觀,需要在 4 到 16 個 Cloud TPU 上運行四天(分別對應 Base 和 Large)。

    Fine-tuning 非常直接:對於每個下游任務,將任務特定的輸入和輸出接入預訓練模型,所有參數進行端到端的 fine-tuning。對於 token 級任務(如命名實體識別),將每個 token 的最終隱藏向量輸入到分類層。對於序列級任務(如情感分析),則使用 [CLS] token 的表示。

    結果

    在論文發表時,BERT 在十一個 NLP 基準上取得了最先進的結果:

    • GLUE 基準:BERT-Large 取得了 80.5 的平均分,比之前的最先進水平提高了 7.7 分。
    • SQuAD v1.1(問答):F1 得分 93.2,超過了人類表現(91.2 F1)。
    • SQuAD v2.0:F1 得分 83.1,比之前的系統提高了 5.1 分。
    • SWAG(常識推理):準確率 86.3%,超過了人類專家的表現(85.0%)。

    消融研究表明,兩個預訓練任務都很重要,而雙向性是最顯著的因素——移除它會導致所有任務上的大幅下降。增加模型規模始終能提升結果,即使在小規模任務上,只要進行適當的 fine-tuning 也是如此。

    該論文還表明,BERT 的表示可以作為固定的特徵提取器使用(無需 fine-tuning)並仍能取得強勁的結果,儘管 fine-tuning 始終優於基於特徵的方法。

    影響

    BERT 推動了 NLP 領域向"預訓練再 fine-tuning"方法論的範式轉變。它催生了一個龐大的衍生模型家族,包括 RoBERTa(改進了預訓練)、ALBERT(參數高效的變體)、DistilBERT(知識蒸餾),以及 BioBERT 和 SciBERT 等領域特定變體。該方法還通過 mBERT 和 XLM 等模型影響了多模態模型和跨語言表示。

    BERT 證明了大規模無監督預訓練能夠有效地將語言知識遷移到下游任務,減少了對任務特定標註數據和工程的需求。這種預訓練再 fine-tuning 的範式至今仍是現代 NLP 實踐的基礎。

    該論文在發表後的前五年內獲得了超過 10 萬次引用,是計算機科學領域被引用最多的著作之一。Google 於 2019 年將 BERT 集成到其搜索引擎中,標誌着神經語言模型在信息檢索領域最大規模的部署之一。該模型的影響超越學術界,在工業界獲得廣泛採用,基於 BERT 的系統驅動着搜索、內容審核、客戶服務以及許多其他應用。

    參見

    參考文獻

    • Devlin, J., Chang, M.-W., Lee, K., & Toutanova, K. (2019). BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding. Proceedings of NAACL-HLT 2019. arXiv:1810.04805
    • Peters, M. E., Neumann, M., Iyyer, M., et al. (2018). Deep Contextualized Word Representations. NAACL 2018.
    • Radford, A., Narasimhan, K., Salimans, T., & Sutskever, I. (2018). Improving Language Understanding by Generative Pre-Training. OpenAI.