35. Bert 之後衍伸的其他 NLP 預訓練模型

柯頌竹
Programming with Data
Feb 24, 2021

Bert之後,相關的模型可說是百花齊放,以下就會介紹主要的發展方向。

方向一:探索更多的訓練方式

變更掩碼範圍(MaskedLM)

原本Bert是使用單字掩碼,在英文中或許可行,但在中文中的字詞很多都是多餘一個字,例如尷尬,不管遮掩哪個字都可以輕易猜出另一個字,因此衍伸出了不同掩碼方式,主要有三種:

  1. 字詞级掩碼 — — Bert-wwm
  2. 短語级掩碼 — — ERNIE
  3. 缩放到特定長度 — — N-gram 掩碼/ Span 掩碼

至於掩碼比例,根據Google的實驗顯示,最好是15%。

後續句預測(NextSentencePrediction,NSP)

所謂後續句預測是指給定兩個句子,使用模型判斷兩者是否是前後句關係,是標籤最少且最接近語言模型的挑戰,在XLNET / RoBERTa / ALBERT 等模型在訓練上都在訓練時往這個方向進行了嘗試,但結果看起來加入 NSP 方式並沒有比其他調整方式更好。

由於NSP表現不夠好,因此大家研究的方向就轉向其他任務,主要的嘗試方向有 :

  • 擋住部分標籤,預測遮擋內容
  • 打亂句子順序,預測正確順序
  • 刪掉部分標籤,預測哪裡被刪除了
  • 隨機挑選些標籤,之後將所有內容前置,預測哪裡是正確的開頭
  • 加上一些標籤,預測哪裡要刪
  • 替換掉一些標籤,預測哪裡是被替換過的

方向二:輕量化

目前最為通用的方式仍是蒸餾法,因為其他限制較多

蒸餾法

在前一篇就有討論過蒸餾法,請點此處連結

修剪

修剪就是簡化部分模型,刪除一些權重較小的連結,概念上可以理解成經過挑選的 Drop Out 方式,來減少權重較少的神經連結。

矩陣分解

如同前面文章有提到word embedding的降維方法

參數共享

參數共享的概念取材於影像處理的深度學習,就是把之前類似案例的模型權重直接拿訓練現在手上的案例。

方向三:多語系

目前現有的研究中,英文資料相對較多,繁體中文資料則非常少,基於BERT 的預訓練方法並沒有語言限制,所以現在就有許多研究是把預訓練模型餵給其他任務,希望可以獲得更好的結果,例如Google 的 BERT-Multilingual 就是一例,在不添加中文數據的情況下,該模型在下游任務上的表現已經接近中文模型。

--

--

柯頌竹
Programming with Data

熱愛自由行、參觀各種形式的展覽,踏上過20個國家的領土。歡迎詢問各種在歐洲自由行的問題。偶爾分享一下資料分析的讀書筆記。