35. Bert 之後衍伸的其他 NLP 預訓練模型
Bert之後,相關的模型可說是百花齊放,以下就會介紹主要的發展方向。
方向一:探索更多的訓練方式
變更掩碼範圍(MaskedLM)
原本Bert是使用單字掩碼,在英文中或許可行,但在中文中的字詞很多都是多餘一個字,例如尷尬,不管遮掩哪個字都可以輕易猜出另一個字,因此衍伸出了不同掩碼方式,主要有三種:
- 字詞级掩碼 — — Bert-wwm
- 短語级掩碼 — — ERNIE
- 缩放到特定長度 — — N-gram 掩碼/ Span 掩碼
至於掩碼比例,根據Google的實驗顯示,最好是15%。
後續句預測(NextSentencePrediction,NSP)
所謂後續句預測是指給定兩個句子,使用模型判斷兩者是否是前後句關係,是標籤最少且最接近語言模型的挑戰,在XLNET / RoBERTa / ALBERT 等模型在訓練上都在訓練時往這個方向進行了嘗試,但結果看起來加入 NSP 方式並沒有比其他調整方式更好。
由於NSP表現不夠好,因此大家研究的方向就轉向其他任務,主要的嘗試方向有 :
- 擋住部分標籤,預測遮擋內容
- 打亂句子順序,預測正確順序
- 刪掉部分標籤,預測哪裡被刪除了
- 隨機挑選些標籤,之後將所有內容前置,預測哪裡是正確的開頭
- 加上一些標籤,預測哪裡要刪
- 替換掉一些標籤,預測哪裡是被替換過的
方向二:輕量化
目前最為通用的方式仍是蒸餾法,因為其他限制較多
蒸餾法
在前一篇就有討論過蒸餾法,請點此處連結
修剪
修剪就是簡化部分模型,刪除一些權重較小的連結,概念上可以理解成經過挑選的 Drop Out 方式,來減少權重較少的神經連結。
矩陣分解
如同前面文章有提到word embedding的降維方法
參數共享
參數共享的概念取材於影像處理的深度學習,就是把之前類似案例的模型權重直接拿訓練現在手上的案例。
方向三:多語系
目前現有的研究中,英文資料相對較多,繁體中文資料則非常少,基於BERT 的預訓練方法並沒有語言限制,所以現在就有許多研究是把預訓練模型餵給其他任務,希望可以獲得更好的結果,例如Google 的 BERT-Multilingual 就是一例,在不添加中文數據的情況下,該模型在下游任務上的表現已經接近中文模型。