機器學習2021 — 自督導式學習 (Self-supervised Learning)

機器學習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 任務的新時代。

  1. BERT 的基礎概念與架構

1.1 核心架構與功能

BERT 的架構基於 Transformer 模型的 Encoder 部分。它是一種語言代表模型,透過無監督的方式利用大量無標註文本「煉成」。BERT 的核心突破在於它能夠產生有語境的詞彙代表向量。

這種有語境的表示方式能夠反映人類語言的真實情況:同一個詞彙(word token)在不同的上下文情境下,其含義是不同的。這與傳統上不蘊含上下文資訊的詞嵌入向量(如 Word2Vec、GloVe)有很大差異。

1.2 遷移學習範式

BERT 的應用遵循近來 NLP 領域流行的兩階段遷移學習:

  1. 預訓練(Pre-training): 事先使用語言模型(Language Model, LM)的方式,在海量的文本數據(例如維基百科及 BooksCorpus,共 33 億個字)上訓練出一個對自然語言有一定「理解」的通用模型。

  2. 微調(Fine-tuning): 將預訓練好的 BERT 模型作為基礎,對下游的監督式任務進行微調。

這種方法的優勢是能夠減少處理不同 NLP 任務所需的架構設計(architecture engineering)成本,因為可以使用相同的 BERT 架構訓練多種 NLP 任務。

  1. BERT 在自監督學習(SSL)中的定位

2.1 SSL 定義與「芝麻街」命名

自監督學習(SSL)是一種在沒有外部標籤(label)的情況下進行訓練的方法。它將資料分為兩部分:一部分作為神經網路模型的輸入 (x′),另一部分作為模型的「標註」或「標籤」 (x′′),目標是讓模型的輸出與這個自我生成的標註越接近越好。

值得一提的是,許多知名的 SSL 模型都習慣以芝麻街(Sesame Street)人物命名,例如 ELMo、BERT、ERNIE,甚至是大鳥(Big Bird Transformers for Longer Sequences)。

2.2 預訓練任務:真正的雙向性

BERT 在預訓練階段同時執行兩個任務:

  1. 克漏字填空 (Masked Language Model, MLM): 隨機遮蔽([MASK])輸入中的部分詞彙,讓模型預測被遮蔽的詞彙。MLM 使 BERT 能夠更好地建模每個詞彙在不同語境下該有的代表向量。可以透過類似softmax的方式讓器學習如何的機率能夠找出最適合的答案。

  2. 判斷下一句是否相接 (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 美元)。

參數數量比人腦的神經元數量還要多

這種巨大的訓練成本令人思考,這是否已成為「大公司遊戲」。

  1. BERT 與其他 SSL 模型的比較

BERT 並不是第一個嘗試產生有語境詞彙代表向量的模型。其與 ELMo 和 GPT 在架構和應用模式上有顯著差異:

3.1 架構與訓練目標

3.2 應用模式的差異

BERT 和 GPT 系列在遷移學習的下游應用上,採取了不同的策略:

  1. BERT 的實際應用與微調細節

BERT 的 Transformer Encoder 架構非常適合用於自然語言理解(NLU)任務。模型的好壞通常透過 GLUE (General language understanding evaluation) 基準資料集來評估,它包含九個 NLP 任務。

4.1 處理下游任務的步驟

將 BERT 應用到下游任務(如假新聞分類、NLI)的過程涉及五個步驟,其中最關鍵的是輸入轉換和模型建立:

  1. 輸入編碼(轉換成 BERT 相容格式):原始文本必須轉換成 BERT 需要的三種 ID tensors:

◦ tokens_tensor:代表每個 wordpiece 的索引值。BERT 使用 Google NMT 提出的 WordPiece Tokenization。

◦ segments_tensor:用於識別句子界限,第一句為 0,第二句為 1。

◦ masks_tensor:用來界定自注意力機制範圍,1 代表 BERT 需要關注該位置,0 代表是 padding 不需關注。

  1. 模型建立:對於分類任務,會使用 BertForSequenceClassification 等模型。它是在 BERT 預訓練模型之上,加入 Dropout 層和一個簡單的線性分類器(Linear Classifier)。

  2. 微調:整個模型(BERT 參數與新加入的分類器參數)都使用下游任務的目標函數進行優化(梯度下降)。

使用預先訓練過的model去training 的表現更好

4.2 視覺化與洞察

在進行假新聞分類等成對句子分類任務時,通常會使用特殊的 [CLS] token。該 token 的最終層表示向量會被視為整個輸入序列的代表。

透過 BertViz 視覺化工具的觀察顯示,在經過少量數據微調之後,BERT Encoder 的特定注意力頭在更新 [CLS] 的表示時,會開始關注與下游任務目標相關的特定詞彙(例如在假新聞分類中關注「闢謠」或「去世」等衝突詞彙),將這些資訊納入 [CLS] 向量,從而幫助線性分類器做出更好的預測。

  1. 發展與未來趨勢

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),其中包含十個不同的任務,涵蓋識別內容、說話者、語氣以及語意等多個面向。
    參考資訊

生成影片: https://youtu.be/BwxwtQM35MI

Comments

Loading comments…

Leave a Comment