BERT論文筆記
- 2019 年 10 月 4 日
- 筆記
作者:太子長琴(NLP演算法工程師)
Paper: https://arxiv.org/pdf/1810.04805.pdf
Code: https://github.com/google-research/bert
Bert 的核心思想:MaskLM 利用雙向語境 + MultiTask。
Abstract
BERT 通過聯合訓練所有層中的上下文來獲取文本的深度雙向表示。
Introduction
兩種應用 pre-trained model 到下有任務的方法:
- feature-based:比如 ELMo,將 pre-trained 表示作為額外的特徵
- fine-tuning:比如 OpenAI GPT,引入少量特定任務參數,在下游任務中 fine-tuning 所有的參數
現在的技術有個限制,就是只能採用從左到右的單向機制,這對有些任務是不適合的,比如問答。
Bert 通過 「masked language model」 緩和了這個限制,即隨機 mask 輸入中的一些 token,目標是只根據上下文(左邊和右邊)預測 mask 掉的原始 vocabulary id。
同時,還聯合訓練了一個 「next sentence prediction」 的任務用來表示文本對。
Related Work
Unsupervised Feature-based Approaches
- Word Embedding:
- 從左到右的語言模型(Mnih and Hinton,2009)
- 從上下文中區分出正確的中心詞(Mikolov,2013)
- Sentence Embedding:
- 對候選的一組下一句進行排序(Jernite, 2017; Logeswaran and Lee, 2018)
- 給定句子從左到右生成下一句的詞(Kiors, 2015)
- 去噪自動編碼(Hill, 2016)
ELMo 使用從左到右和從右到左兩個語言模型,每個 token 的上下文表示都與兩個語言模型關聯。
Melamud (2016) 通過一個從左右上下文預測一個單獨的詞的任務(使用 LSTMs)學習上下文表示。
Unsupervised Fine-tuning Approaches
- 直接從語料中訓練 embedding(Collobert and Weston, 2018)
- 從文本中訓練上下文表示,在下游任務中 fine-tuning(Dai and Le, 2015; Howard and Ruder, 2018; Radford, 2018)
- OpenAI GPT (Radford, 2018)
Transfer Learning from Supervised Data
一些有效的遷移學習:
- 自然語言推理
- 機器翻譯
BERT
兩步:
- pre-training:基於多任務
- fine-tuning:用 pre-trained 參數初始化,然後在有監督任務上精調

Model Architecture
- 多層雙向 Transformer encoder
- Layer number (Transformer blocks): L (Base 12, Large 24)
- hidden size: H (Base 768, Large 1024)
- number of self-attention heads: A (Base 12, Large 16)
Input/Output Representations
- 輸入句子對(比如 《問題,答案》)作為一組 token 序列,「一句」 是指相鄰的文本,而不是實際中的 「一句」
- 使用 WordPiece Embedding (Wu, 2016)
- 最後一個隱層的狀態作為序列的表示
- 兩種方法將句子對被處理成一個句子:用特殊標記(SEP)分開;或用一個新的 Embedding 標記每個 token 屬於哪一句
- 每一個 token 的輸入表示由 token + segment + position 的 Embedding 組成

Pre-training BERT
沒有使用自左向右或相反方向的語言模型,而是使用了兩個無監督任務。
Task #1: Masked LM (MLM)
隨機 mask 輸入中一定比例(15%)的 token,然後預測這些 token,最後的隱層向量將餵給 softmax。
只預測 mask 掉的 token,而不是重建整個輸入。
但有個問題是 fine-tuning 的時候沒有 mask,所以並不是簡單地直接把 mask 的 token 替換成 [MASK]
:
- 80% 替換為
[MASK]
- 10% 選擇一個隨機 token
- 10% 依然使用原來的 token
Task #2: Next Sentence Prediction (NSP)
所有的句子對中,50% 是上下句關係,50% 是隨機的下一句。
Pre-training data
使用文檔級別的 corpus 而不是隨機化的句子級別的 corpus。
Fine-tuning BERT
pre-training 中的句子 A 和 B 在不同任務中相當於:
- 釋義:句子對
- 蘊涵:假設-前提對
- 問答:問題-段落對
- 文本分類、序列標記:文本-空對
Experiments
- GLUE: 一組自然語言理解任務。
- SQuAD v1.1: 問答任務。
- SQuAD v2.0: 無短答案的問答任務。
- SWAG: 常識推理任務。
Ablation Studies
Effect of Pre-training Tasks

Effect of Model Size

Feature-based Approach with BERT

相關文章:ERNIE Tutorial(論文筆記 + 實踐指南) BERT_Paper_Chinese_Translation: BERT論文中文翻譯版
原文鏈接:
https://yam.gift/2019/08/05/Paper/2019-08-05-Bert-Paper/