在這篇文章中,我會介紹一篇最新的預訓練語言模型的論文,出自MASS的同一作者。這篇文章的亮點是:將兩種經典的預訓練語言模型(MaskedLanguage Model, Permuted Language Model)統一到一個框架中,并且基于它們的優勢和缺點,取長補短,提出了一個新的預訓練語言模型----MPNet,其混合了MLM和PLM各自的優勢,達到了比兩者更好的效果,在Natural Language Understanding和NaturalLanguageGeneration任務中,都取得了較好的結果。實驗表明MPNet在大量下游任務中超越了MLM和PLM,從而證明了pretrain方法中的2個關鍵點:
被預測的token之間的依賴關系 (MPNet vs MLM)
整個序列的位置信息 (MPNet vs PLM)
MPNet: Masked and Permuted Pre-training for Language Understanding(https://arxiv.org/pdf/2004.09297.pdf)
【小小說】這篇論文我很喜歡,讀下來有一種打通了任督二脈一般行云流水的感覺。在本文中,我會從BERT和XLNet的統一理論框架講起,然后引出作者如何得到MPNet這一訓練方式,接著會介紹一下作者具體實現上用到的方法。希望本文可以讓你對預訓練語言模型的設計有一個更加理論化的認識。
1. BERT和XLNet各自的優缺點
?既然是從BERT和XLNet到MPNet,那么當然是要先從這兩者講起。大家對BERT應該比較熟悉,它是劃時代的工作,可以說從BERT開始,NLP領域正式進入了“預訓練模型”的時代。而XLNet是隨后的重磅之作,在這一節中,我們先來回顧一下它們。?
「BERT」: Masked Language Model , 使用了雙邊的context信息,但是忽略了masked token之間的依賴關系
「XLNet」: Permuted Language Model , 保留了masked token之間的依賴關系,但是預測的時候每個token只能看到permuted sequence中的前置位的token的信息,不能看到所有token的信息。(p.s. 不知道XLNet的寶寶辛苦去復習 【論文串講】從GPT和BERT到XLNet )
作者分別從input和output兩個角度總結了兩者的優缺點分別存在的地方:
「Input Discrepancy」: 在Natural Language Understanding的任務中,模型可以見到完整的input sentence,因此要求在預訓練階段,input要盡可能輸入完整的信息
MLM中,token的語言信息是不完整的,不過位置信息是保留的(通過position embedding,p.s. 想具體了解如何通過position embedding保留的,請移步參考 【經典精讀】Transformer模型深度解讀 中"使用Positional Encoding帶來的獨特優勢"這部分的內容)
PLM中,每個被預測的token只能“看”到被打亂的序列中位于它自己前面的token,而不能像MLM一樣“看”到兩側的token。
「Output Dependency」:
MLM中,輸出的token,即在input端被mask掉的token,是「互相獨立的」。也就是說這些被mask掉的token之間是假定沒有context層面的關系的。
PLM規避了MLM中的問題,被預測的token之間也存在context層面的關系。
「總結一下就是:」
?「PLM在output dependency的問題上處理得比MLM好,但是預訓練階段和fine-tune階段之間的差異比MLM的更大。」?
2. 統一MLM和PLM的優化目標
?了解了BERT和XLNet各自的優缺點和適用的場景后,本文的作者試圖從一個統一的視角去總結這兩種預訓練模型,而這個總結,引出了后來的MPNet。?
基于以上兩點觀察,本文的作者提出了統一Masked Language Model和Permuted Language Model的想法,并且起名叫「M」asked and「P」ermuted Language Model,縮寫「MPNet」,意在取兩者之長,避兩者之短。
2.1. 統一優化目標的提出
MLM: 由于Masked Language Model中的獨立性假設“每個被mask的位置的token之間是彼此獨立的”,我們可以換一種方式看待Masked Language Model: 把Masked tokens統一挪到序列的末尾,這樣做并不會改變模型的任何部分,只是我們的看待方式變了。
重新看待Masked Language Model
2. PLM: 原順序 被打亂成
,然后最右邊的兩個token 和 就被選作要預測的token。
重新看待Permuted Language Model
基于上述的討論,作者給出了統一MLM和PLM訓練目標的框架:將沒有被mask的token放在左邊,而將需要被預測的token(被mask掉的)放在右邊。
「MLM」
「PLM」
其中,是序列的其中一個permutation,表示在該permutation中的第 位,表示位置小于的所有位置。
2.2. 討論
MLM和PLM的訓練目標公式非常接近,唯一的區別在于,MLM條件概率的條件部分是 和 ; 而PLM的條件部分是,它們的區別是:
MLM比PLM多了 這個條件,也就是比PLM多了關于序列長度的信息(一個[M]就是一個位置)。
PLM比MLM多了被預測部分token之間的相關性:PLM的 是隨著預測的進行(t的變化)而動態變化的,MLM的 對于整個模型預測過程進行是恒定不變的。
3. 提出MPNet
?
基于上一節的總結,作者按照相同的思路提出了MPNet的預訓練目標
?
「a. MPNet的預訓練目標」
我們既要像MLM那樣,在預測時獲取到序列長度的信息;又要像PLM那樣,在預測后一個token時,以前面的所有token(包含前置位被預測出來的)為條件。MPNet做到了:
MPNet示意圖
(b)圖中灰色的部分是encoder端的bidirectional self-attention
(b)圖中藍色和綠色的部分分別是decoder端的two stream self-attention的content stream和query stream (two stream self-attention的具體定義請參考 【論文串講】從GPT和BERT到XLNet ),這里提一下,content stream相當于query stream右移一步。
(a)圖中黑色的線+綠色的線即對應了(b)圖中的綠色點,(a)圖中黑色的線+藍色的線即對應了(b)圖中的藍色點。
(b)圖中的行對應著query position,列對應著column position。
「b. ”位置補償“」
由于用到了Permuted Language Model的思想,所以MPNet和XLNet一樣,也要使用two-stream self-attention。想要實現預訓練目標中的 ,在實現上作者提出了“位置補償”(positioncompensation),也就是說,在預測過程的每一步,query stream和contentstream都可以看到N(N即序列長度)個token,具體結合圖中的例子來說就是,
預測 時: 已知 , , , , , , , ,
預測 時: 已知 , , , , , , , , ,
預測 時: 已知 , , , , , , , , , ,
也就是說,無論預測到哪一步, , ,
, , , 這6個位置信息都可見。我們回顧一下XLNet,作一下對比:
預測 時: 已知 , , , , , ,
預測 時: 已知 , , , , , , , ,
預測 時: 已知 , , , , , , , , , ,
可以看出,在預測 時,比MPNet少了 , ,在預測 時,比MPNet少了 。
「c. 總結」
MPNet有效性來自于它保留了更多的信息
通過上面的詳細講解,相信到這兒大家也明白了:MPNet保留的信息是BERT和XLNet的并集,第一,它利用PLM的自回歸特性,規避了MLM的獨立性假設,在預測后面token時也利用了之前預測出來的token;第二,它利用MLM建模中自帶的序列信息,規避了PLM在預測前面的token時不知道序列整體的長度的缺點。這兩點保證了MPNet完美揚長避短,因此在下游任務中完美擊敗了前兩者。
給我們的啟發
致力于彌合pre-train階段和下游任務fine-tune階段的預訓練目標,盡可能減少訓練和預測過程中信息的損失,是研究預訓練模型的重中之重,也是預訓練模型領域整體的發展方向。讀預訓練系列論文的時候一定要抓住這個核心線索去讀。
責任編輯:xj
原文標題:【論文串講】從BERT和XLNet到MPNet
文章出處:【微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。
-
PLM
+關注
關注
2文章
121瀏覽量
20869 -
nlp
+關注
關注
1文章
488瀏覽量
22037 -
訓練模型
+關注
關注
1文章
36瀏覽量
3822
原文標題:【論文串講】從BERT和XLNet到MPNet
文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論