Dropout视角下的MLM和MAE:一些新的启发
?PaperWeekly 原創 ·?作者 |蘇劍林
單位 |追一科技
研究方向 |NLP、神經網絡
大家都知道,BERT 的 MLM(Masked Language Model)任務在預訓練和微調時的不一致,也就是預訓練出現了 [MASK] 而下游任務微調時沒有 [MASK],是經常被吐槽的問題,很多工作都認為這是影響 BERT 微調性能的重要原因,并針對性地提出了很多改進,如 XL-NET [1]、ELECTRA [2]、MacBERT [3] 等。
本文我們將從 Dropout 的角度來分析 MLM 的這種不一致性,并且提出一種簡單的操作來修正這種不一致性。同樣的分析還可以用于何凱明最近提出的比較熱門的 MAE(Masked Autoencoder)模型,結果是 MAE 相比 MLM 確實具有更好的一致性,由此我們可以引出一種可以能加快訓練速度的正則化手段。
Dropout
首先,我們重溫一下 Dropout。從數學上來看,Dropout 是通過伯努利分布來為模型引入隨機噪聲的操作,所以我們也簡單復習一下伯努利分布。
伯努利分布
伯努利分布(Bernoulli Distribution)算得上是最簡單的概率分布了,它是一個二元分布,取值空間是 ,其中 取 1 的概率為 ,取 0 的概率為 ,記為
伯努利分布的一個有趣的性質是它的任意階矩都為 ,即
所以我們知道它的均值為 ,以及方差為
訓練和預測
Dropout 在訓練階段,將會以 將某些值置零,而其余值則除以 ,所以 Dropout 事實上是引入了隨機變量 ,使得模型從 變成 。其中 可以有多個分量,對應多個獨立的伯努利分布,但大多數情況下其結果跟 是標量是沒有本質區別,所以我們只需要針對 是標量時進行推導。
在《又是Dropout兩次!這次它做到了有監督任務的SOTA》中我們證明過,如果損失函數是 MSE,那么訓練完成后的最佳預測模型應該是
這意味著我們應該要不關閉 Dropout 地預測多次,然后將預測結果進行平均來作為最終的預測結果,即進行“模型平均”。但很顯然這樣做計算量很大,所以實際中我們很少會用這種做法,更多的是直接關閉 Dropout,即將 改為 1。而我們知道
所以關閉 Dropout 事實上是一種“權重平均”(將 視為模型的隨機權重)。也就是說,理論的最優解是“模型平均”,但由于計算量的原因,我們通常用“權重平均”來近似,它可以視為“模型平均”的一階近似。
MLM模型
在這一節中,我們將 MLM 模型視為一種特殊的 Dropout,由此可以清楚描述地預訓練和微調的不一致之處,并且可以導出一個簡單的修正策略,可以更好地緩解這種不一致性。
Dropout視角
簡單起見,我們先來分析一個簡化版本的 MLM:假設在預訓練階段,每個 token 以 的概率保持不變,以 的概率被替換為 [MASK],并且第 個 token 的 Embedding 記為 ,[MASK] 的 Embedding 記為 ,那么我們可以同樣引入隨機變量 ,將 MLM 的模型記為
這樣,MLM 跟 Dropout 本質是相同的,它們都是通過伯努利分布給模型引入了隨機擾動。現在,按照 Dropout 的常規用法,它的預測模型應該是“權重平均”,即
此時,MLM 在微調階段的不一致性就體現出來了:我們將預訓練的 MLM 視為一種特殊的 Dropout,那么微調階段對應的是“取消 Dropout”,按照常規做法,此時我們應該將每個 token 的 Embedding 改為 ,但事實上我們沒有,而是保留了原始的 。
修正Embedding
按照 BERT 的默認設置,在訓練 MLM 的時候,會有 15% 的 token 被選中來做 MLM 預測,而在這 15% 的 token 中,有 80% 的概率被替換為[MASK],有 10% 的概率保持不變,剩下10%的概率則隨機替換為一個隨機 token,這樣根據上述分析,我們在 MLM 預訓練完成之后,應該對 Embedding 進行如下調整:
其中 是 [MASK] 的 Embedding,而 的全體 token 的平均 Embedding。在 bert4keras 中,參考代碼如下:
embeddings?=?model.get_weights()[0]??#?一般第一個權重就是Token?Embedding v1?=?embeddings[tokenizer._token_mask_id][None]??#?[MASK]的Embedding v2?=?embeddings.mean(0)[None]??#?平均Embedding embeddings?=?0.85?*?embeddings?+?0.15?*?(0.8?*?v1?+?0.1?*?embeddings?+?0.1?*?v2)??#?加權平均 K.set_value(model.weights[0],?embeddings)??#?重新賦值那么,該修改是否跟我們期望的那樣有所提升呢?筆者在 CLUE 上對比了 BERT 和 RoBERTa 修改前后的實驗結果(baseline代碼參考《bert4keras在手,baseline我有:CLUE基準代碼》[4]),結論是“沒有顯著變化”。
看到這里,讀者也許會感到失望:敢情你前面說那么多都是白說了?筆者認為,上述操作確實是可以緩解預訓練和微調的不一致性的(否則我們不是否定了Dropout?);至于修改后的效果沒有提升,意味著這種不一致性的問題并沒有我們想象中那么嚴重,至少在 CLUE 的任務上是這樣。
一個類似的結果出現的 MacBERT 中,它在預訓練階段用近義詞來代替 [MASK] 來修正這種不一致性,但筆者也在用同樣的 baseline 代碼測試過 MacBERT,結果顯示它跟 RoBERTa 也沒顯著差別。因此,也許只有在特定的任務或者更大的 mask 比例下,才能顯示出修正這種不一致性的必要性。
MAE模型
不少讀者可能已經聽說過何凱明最近提出的 MAE(Masked Autoencoder)[5] 模型,它以一種簡單高效的方式將 MLM 任務引入到圖像的預訓練之中,并獲得了有效的提升。在這一節中,我們將會看到,MAE 同樣可以作為一種特殊的 Dropout 來理解,從中我們可以得到一種防止過擬合的新方法。
Dropout視角
如下圖所示,MAE 將模型分為 encoder 和 decoder 兩部分,并且具有“encoder深、decoder 淺”的特點,然后它將 [MASK] 只放到 decoder 中,而 encoder 不處理 [MASK]。這樣一來,encoder 要處理的序列就變短了,最關鍵的一步是,MAE 使用了 75% 的 mask 比例,這意味著 encoder 的序列長度只有通常的 1/4,加上“encoder 深、decoder 淺”的特點,總的來說模型的預訓練速度快了 3 倍多!
▲ MAE模型示意圖
我們也可以從另一個角度來實現 MAE 模型:MAE 把 [MASK] 從 encoder 中移除,這等價于剩下的 token 不與被 mask 掉的 token 交互,而對于 Transformer 模型來說,token 之間的交互來源于Self Attention,所以我們依然可以保持原始輸入,但在 Attention 矩陣中 mask 掉對應的列。如圖所示,假設第 個 token 被 mask 掉,事實上就相當于 Attention 矩陣的第 列的所有元素被強制置 0:
▲ MAE的等價Attention Dropout示意圖
當然,從實用的角度看,這種做法純粹是浪費算力,但它有助于我們得到一個有意思的理論結果。我們設有 的輸入 token,原始的 Attention 矩陣為 (softmax 后的),定義 為一個 矩陣,它的第 列為 0、其余都為 1,然后定義隨機矩陣 ,它以 的概率為全1矩陣,以 的概率為 ,那么 MAE 模型可以寫成
這里 是指將矩陣重新按行歸一化; 時逐個元素對應相乘;當有多個 Attention 層時,各個 Attention 層共用同一批 。
這樣,我們將 MAE 轉換為了一種特殊的 Attention Dropout。那么同樣按照微調階段“取消 Dropout”的做法,我們知道它對應的模型應該是
其中第二個等號是因為 是一個第 列為 、其余為 1 的矩陣,那么 事實上就是一個全為 的矩陣,所以與 相乘的結果等價于 直接乘以常數 ;第三個等號則是因為全體元素乘以同一個常數,不影響歸一化結果。
從這個結果中看到,對于 MAE 來說,“取消Dropout”之后跟原模型一致,這說明了 MAE 相比原始的 MLM 模型,不僅僅是速度上的提升,還具有更好的預訓練與微調的一致性。
防止過擬合
反過來想,既然 MAE 也可以視為一種 Dropout,而 Dropout 有防止過擬合的作用,那么我們能不能將 MAE 的做法當作一種防止過擬合的正則化手段來使用呢?如下圖所示,在訓練階段,我們可以隨機扔掉一些 token,但要保持剩余 token 的原始位置,我們暫且稱之為“DropToken”:
▲ DropToken示意圖
之所以會這樣想,是因為常規的 Dropout 雖然通常被直接地理解為采樣一個子網絡訓練,但那純粹是直觀的想象,實際上 Dropout 的加入還會降低訓練速度,而 DropToken 由于顯式了縮短了序列長度,是可以提高訓練速度的,如果有效那必然是一種非常實用的技巧。此外,有些讀者可能已經試過刪除某些字詞的方式來進行數據擴增,它跟 DropToken 的區別在于 DropToken 雖然刪除了一些 Token,但依然保留了剩余 token 的原始位置,這個實現依賴于 Transformer 結構本身。
在 CLUE 上做的幾個實驗對比,基準模型為 BERT base,下標的數字是 drop 比例,最終的效果參差不齊,除了 IFLYTEK 明確有效外,其他看緣分(其實很多防止過擬合手段都這樣),最優 drop 比例在 0.1~0.15 之間:
本文小結
本文從 Dropout 的視角考察了MLM 和 MAE兩個模型,它們均可視為特殊的 Dropout,從這個視角中,我們可以得到了一種修正 MLM 的不一致性的技巧,以及得到一種類似 MAE 的防止過擬合技巧。
參考文獻
[1] https://arxiv.org/abs/1906.08237
[2] https://arxiv.org/abs/2003.10555
[3] https://arxiv.org/abs/2004.13922
[4] https://kexue.fm/archives/8739
[5] https://arxiv.org/abs/2111.06377
特別鳴謝
感謝 TCCI 天橋腦科學研究院對于 PaperWeekly 的支持。TCCI 關注大腦探知、大腦功能和大腦健康。
更多閱讀
#投 稿?通 道#
?讓你的文字被更多人看到?
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學術熱點剖析、科研心得或競賽經驗講解等。我們的目的只有一個,讓知識真正流動起來。
📝?稿件基本要求:
? 文章確系個人原創作品,未曾在公開渠道發表,如為其他平臺已發表或待發表的文章,請明確標注?
? 稿件建議以?markdown?格式撰寫,文中配圖以附件形式發送,要求圖片清晰,無版權問題
? PaperWeekly 尊重原作者署名權,并將為每篇被采納的原創首發稿件,提供業內具有競爭力稿酬,具體依據文章閱讀量和文章質量階梯制結算
📬?投稿通道:
? 投稿郵箱:hr@paperweekly.site?
? 來稿請備注即時聯系方式(微信),以便我們在稿件選用的第一時間聯系作者
? 您也可以直接添加小編微信(pwbot02)快速投稿,備注:姓名-投稿
△長按添加PaperWeekly小編
🔍
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
·
總結
以上是生活随笔為你收集整理的Dropout视角下的MLM和MAE:一些新的启发的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在农村适合开什么小店比较好 教你选择适
- 下一篇: 2021胡润全球富豪榜 钟睒睒成全球前十