機器學習2021 — 自督導式學習 (Self-supervised Learning)
機器學習2021 — 自督導式學習 (Self-supervised Learning) BERT¶
自然語言處理(NLP)領域在近年來經歷了一場由深度學習驅動的革命,其中最受矚目的便是 Google 推出的 BERT 模型。BERT (Bidirectional Encoder Representations from Transformers) 被譽為 NLP 領域的巨人之力。它的出現,標誌著利用大量無標註文本進行自監督學習(Self-Supervised Learning, SSL),並透過兩階段遷移學習(Transfer Learning)解決複雜 NLP 任務的新時代。
- BERT 的基礎概念與架構
1.1 核心架構與功能
BERT 的架構基於 Transformer 模型的 Encoder 部分。它是一種語言代表模型,透過無監督的方式利用大量無標註文本「煉成」。BERT 的核心突破在於它能夠產生有語境的詞彙代表向量。
這種有語境的表示方式能夠反映人類語言的真實情況:同一個詞彙(word token)在不同的上下文情境下,其含義是不同的。這與傳統上不蘊含上下文資訊的詞嵌入向量(如 Word2Vec、GloVe)有很大差異。
1.2 遷移學習範式
BERT 的應用遵循近來 NLP 領域流行的兩階段遷移學習:
-
預訓練(Pre-training): 事先使用語言模型(Language Model, LM)的方式,在海量的文本數據(例如維基百科及 BooksCorpus,共 33 億個字)上訓練出一個對自然語言有一定「理解」的通用模型。
-
微調(Fine-tuning): 將預訓練好的 BERT 模型作為基礎,對下游的監督式任務進行微調。
這種方法的優勢是能夠減少處理不同 NLP 任務所需的架構設計(architecture engineering)成本,因為可以使用相同的 BERT 架構訓練多種 NLP 任務。
- BERT 在自監督學習(SSL)中的定位
2.1 SSL 定義與「芝麻街」命名
自監督學習(SSL)是一種在沒有外部標籤(label)的情況下進行訓練的方法。它將資料分為兩部分:一部分作為神經網路模型的輸入 (x′),另一部分作為模型的「標註」或「標籤」 (x′′),目標是讓模型的輸出與這個自我生成的標註越接近越好。
值得一提的是,許多知名的 SSL 模型都習慣以芝麻街(Sesame Street)人物命名,例如 ELMo、BERT、ERNIE,甚至是大鳥(Big Bird Transformers for Longer Sequences)。
2.2 預訓練任務:真正的雙向性
BERT 在預訓練階段同時執行兩個任務:
-
克漏字填空 (Masked Language Model, MLM): 隨機遮蔽([MASK])輸入中的部分詞彙,讓模型預測被遮蔽的詞彙。MLM 使 BERT 能夠更好地建模每個詞彙在不同語境下該有的代表向量。可以透過類似softmax的方式讓器學習如何的機率能夠找出最適合的答案。
-
判斷下一句是否相接 (Next Sentence Prediction, NSP): 判斷第二個句子是否是原始文本中緊接在第一個句子之後。NSP 旨在幫助 BERT 建模兩個句子之間的關係。然而,有文獻(如 RoBERTa)認為 NSP 可能過於簡單,效用不大。
透過 MLM 的概念和 Transformer Encoder 的架構,BERT 成功擺脫了以往語言模型只能從單個方向(由左到右或由右到左)估計下個詞彙出現機率的限制。這使得 BERT 訓練出一個真正的雙向語言代表模型,輸出的每個 token 的代表向量都同時蘊含了前後文資訊。因此training 出來的model可以應用在無關填空的地方,例如downstream task,以model為幹細胞,當成pre-trained model然後再去做其他應用。
2.3 模型的巨大化與成本
BERT 本身已是一個龐大的模型:
• BERT-BASE(12 層)擁有 1.1 億參數,訓練需要 16 個 TPU chips 跑 4 天(花費 500 美元)。
• BERT-LARGE(24 層)擁有 3.4 億參數,比作業四中的 Transformer 模型(0.1M 參數)大了三千倍,訓練需要 64 個 TPU chips(約 7,000 美元)。
參數數量比人腦的神經元數量還要多
這種巨大的訓練成本令人思考,這是否已成為「大公司遊戲」。
- BERT 與其他 SSL 模型的比較
BERT 並不是第一個嘗試產生有語境詞彙代表向量的模型。其與 ELMo 和 GPT 在架構和應用模式上有顯著差異:
3.1 架構與訓練目標
3.2 應用模式的差異
BERT 和 GPT 系列在遷移學習的下游應用上,採取了不同的策略:
- BERT 的實際應用與微調細節
BERT 的 Transformer Encoder 架構非常適合用於自然語言理解(NLU)任務。模型的好壞通常透過 GLUE (General language understanding evaluation) 基準資料集來評估,它包含九個 NLP 任務。
4.1 處理下游任務的步驟
將 BERT 應用到下游任務(如假新聞分類、NLI)的過程涉及五個步驟,其中最關鍵的是輸入轉換和模型建立:
- 輸入編碼(轉換成 BERT 相容格式):原始文本必須轉換成 BERT 需要的三種 ID tensors:
◦ tokens_tensor:代表每個 wordpiece 的索引值。BERT 使用 Google NMT 提出的 WordPiece Tokenization。
◦ segments_tensor:用於識別句子界限,第一句為 0,第二句為 1。
◦ masks_tensor:用來界定自注意力機制範圍,1 代表 BERT 需要關注該位置,0 代表是 padding 不需關注。
-
模型建立:對於分類任務,會使用 BertForSequenceClassification 等模型。它是在 BERT 預訓練模型之上,加入 Dropout 層和一個簡單的線性分類器(Linear Classifier)。
-
微調:整個模型(BERT 參數與新加入的分類器參數)都使用下游任務的目標函數進行優化(梯度下降)。
使用預先訓練過的model去training 的表現更好
4.2 視覺化與洞察
在進行假新聞分類等成對句子分類任務時,通常會使用特殊的 [CLS] token。該 token 的最終層表示向量會被視為整個輸入序列的代表。
透過 BertViz 視覺化工具的觀察顯示,在經過少量數據微調之後,BERT Encoder 的特定注意力頭在更新 [CLS] 的表示時,會開始關注與下游任務目標相關的特定詞彙(例如在假新聞分類中關注「闢謠」或「去世」等衝突詞彙),將這些資訊納入 [CLS] 向量,從而幫助線性分類器做出更好的預測。
- 發展與未來趨勢
5.1 NLG 任務與更通用的模型
BERT 的 Encoder 架構雖然強大,但較適合 NLU 任務,對於文章摘要等自然語言生成(NLG)任務則不太適用。
• UniLM 透過「玩弄」注意力遮罩,使其能夠在預訓練階段同時訓練三種語言模型,讓 NLG 任務也能進行微調。
• BART 和 T5 等 Seq2Seq 模型則採用將編碼器的輸入破壞(corrupted),期望解碼器輸出破壞前的結果,藉此進行預訓練。
• XLNet 據稱表現已經打敗 BERT,成為「NLP 新王者」。
5.2 跨領域的 SSL 應用
自監督學習的概念已經超越了文本領域,應用於語音和影像(CV)。
• 語音 SSL:可以訓練語音版的 BERT(透過填空題遮蓋聲音訊號)或語音版的 GPT(預測接下來的聲音序列)。
- 基準資料庫:為了全面檢測 SSL 模型在語音處理上的能力,研究人員開發了類似 GLUE 的語音基準資料庫 SUPERB (Speech processing Universal PERformance Benchmark),其中包含十個不同的任務,涵蓋識別內容、說話者、語氣以及語意等多個面向。
參考資訊
Comments
Loading comments…
Leave a Comment