超一流 | 从XLNet的多流机制看最新预训练模型的研究进展
關注小夕并星標,解鎖自然語言處理
搜索、推薦與算法崗求職秘籍
文 |?老饕(某廠研究員,祖傳調參)
美 | 人美心細小謹思密達
導讀
作為 NLP 近兩年來的當紅炸子雞,以 ELMo/BERT 為代表的語言預訓練技術相信大家已經很熟悉了。簡單回顧下 18 年以來幾個預訓練的重要工作:
ELMo, GPT and BERTELMo 首先提出了基于語言模型的預訓練技術,成功驗證了在大規模語料上基于語言模型進行文本自監督學習的有效性。
GPT 提出了 NLP 預訓練技術使用時應該像 CV 預訓練技術一樣,在下游任務中通過 fine-tuning 微調的方式進行,在 GLUE 任務榜單上取得了突破。
BERT 在 GPT 的基礎上,提出了改進的雙向語言模型學習技術 Mask language model。相較傳統語言模型,Mask language model (aka MLM) 能夠更有效的利用文本的上下文信息,在 transformer 這種依賴全局 attention 表示機制的學習器中,更是如虎添翼。BERT 在通用語言理解評估(GLUE)中大幅刷新了基準水平,一舉打破了 11 項 NLP 記錄,成為新一代語言預訓練技術的大成之作。
BERT 的發表引發了 NLP 學界和業界對語言預訓練技術的極大熱情,針對 BERT 的一系列改進工作也如雨后春筍般涌出。ERNIE(Baidu)/SpanBert 改進了 MLM 任務的 masking 機制, UniLM 把 GPT/BERT 進行聯合訓練實現了統一語言預訓練,XLM 把 BERT 預訓練技術擴展到多語言。
然而,MLM 雖然解決了傳統 language model 僅能看到單向文本信息的問題,但不得不在預訓練階段引入了不低比例的 [MASK] 掩碼 ID 占位。這樣在語言模型學習中就存在信息丟失(被掩碼的 token 彼此不可見)。同時,MLM 的樣本構造方式與 fine-tuning 階段的訓練樣本存在 gap,可能影響下游任務的使用效果。針對這兩個問題,XLNet 提出了 Permuted Language Modeling(aka PLM) 預訓練任務。為了實現PLM,作者提出了雙流機制,也因此拋玉引玉,引出了更多應用并改進雙流機制的工作。
本篇文章將從XLNet的雙流機制講起,帶大家一覽近期的優秀工作,它們是百度的ERNIE-GEN、微軟的ProphetNet、UniLMv2和MPNet。
XLNet: PLM 和 雙流機制
PLM 任務
PLM的做法是將輸入的順序打亂,比如將“夕小瑤的賣萌屋”,變成“屋小夕的瑤萌賣”后進行單向語言模型的訓練,這樣在預測“萌”時會用到“屋小夕的瑤”的信息,可以認為同時利用了上下文。
輸入方面,MLM 待預測 token([M])互相間僅可見位置信息(實線連接)。PLM 中待預測 token x_2 不可見 ?token x_4 (虛線連接) ?、但 token x_4 可見 token x_2 (實線連接)。
在 15% 的掩碼比例下,MLM 通過保留了 100% 的位置信息和 ?85% 的 token 信息,PLM 保留了(期望)92.5 % 的位置信息和 92.5% 的 token 信息。
對于 PLM 來講,給定一段文本 x = (x1,x2,··· ,xn),就有 n 的階乘中排列組合。在 PLM 的理想世界里,雖然對于特定序列的文本 x_i,語言模型仍然只能看到位于 x_i 之前的單向文本(上文),但考慮 x_i 之前的序列可能包含整段文本的所有組合,因此仍可認為 PLM 是有能力建模上下文信息的。
我們可以對 MLM 和 PLM 進行 “unified view” 的描述:
左:MLM、右:PLM (圖自 MPNet )雙流機制XLNet 為了實現 PLM 提出了雙流機制??梢钥吹?PLM 任務的是通過 Query stream 進行學習的。
XLNet 雙流機制為了更容易理解,我們重新整理 XLNet 的雙流輸入,在上節 PLM content stream 輸入的基礎上補充 query stream 輸入。
其中 [P] 占位符代表 PLM 中待預測的 Token,預測順序為 4 -> 5 -> 2。
以下為 PLM 對應輸入的 self-attention 掩碼矩陣,其中 context (x_1, x_3, x_6) 可以同時被 content/query stream 所有 tokens 可見。
“超一流”預訓練模型
XLNet 定義的雙流機制,其中 query stream 把“預測任務”和輸入文本(content stream)進行了分離,具有很強的通用性。事實上,我們可以定義不同的 query stream 預訓練任務,甚至定義多個 query stream (多流)。今年以來,涌現出了不少基于多流機制的預訓練工作,其中包括刷新多個語言生成任務 SOTA 的語言生成預訓練技術 ERNIE-GEN(百度)和第二代統一語言預訓練技術 UniLMv2 (微軟)。
目前,基于多流機制的預訓練工作包括語言生成和語言理解兩大類。
“超一流”定義
超一流模型,均包含 2+ 預訓練任務 “流”
現有工作
ERNIE-GEN(百度):Multi-flow 框架,首次在生成預訓練引入 span-by-span 任務,在 pre-training & ? ? fine-tuning 階段利用 noise-aware 機制緩解 seq-to-seq 語言生成框架面臨的曝光偏差問題,應用于語言生成任務(accepted ? ? by IJCAI 2020)
ProphetNet(微軟):Ngram-stream 框架,每個 stream 單獨建模一個粒度,用于語言生成預訓練 (投稿 icml ? ? 2020)
UniLMv2(微軟):繼承 unilm v1 的思路,用 PLM 替換原 LM 任務。利用雙流機制,同時做 MLM 和 PLM 任務,應用于語言理解和生成任務 (accepted by ICML 2020)
MPNet(微軟):接近 UniLMv2,從“信息保留”理論上更好的解釋了為什么需要同時保留 MLM 和 PLM 兩個流的數據構造方式。預訓練任務僅包含 PLM 任務,應用于語言理解任務
多流預訓練技術之語言生成
ERNIE-GEN (Baidu)
ERNIE-GEN 是百度研究者提出的語言生成預訓練模型。ERNIE-GEN 繼承了通用語言理解預訓練技術 ERNIE1.0 的思想,率先在語言生成預訓練中引入了 Span-by-span 生成流,使得預訓練模型具有的直接生成 Span 級(bigrams/trigrams)完整語義單元的能力。
除了 Span-by-span 生成流,ERNIE-GEN 中還包括 Contextual 流(建模待生成語義單元前的上文信息)和一個 Word-by-Word 生成流。因此 ERNIE-GEN 設計了 Mulit-flow Attention 模塊來進行多流的聯合學習。
ERNIE-GEN: Multi-Flow Attention 實現同時,ERNIE-GEN 在預訓練階段即有意識的設計了填充生成 (Infilling generation) 和噪音感知 (Noise-aware) 機制,來緩解 Sequence-to-Sequence 生成框架面臨的曝光偏差問題。
ERNIE-GEN 論文地址:https://paperswithcode.com/paper/ernie-gen-an-enhanced-multi-flow-pre-training
ERNIE-GEN 開源地址:https://github.com/PaddlePaddle/ERNIE/tree/repro/ernie-gen
ProphetNet (微軟)
ProphetNet 是微軟研究者提出的語言生成預訓練模型。與 ERNIE-GEN 類似的,ProphetNet 同樣關注了語言生成中模型建模完整語義單元的能力,并提出了 N-gram stream 多流機制來解決該問題。
ProphetNet 預訓練時會同時建模多個不同粒度的語義單元。ProphetNet 把這種同時建模多種粒度的機制叫 “Future N-gram Prediction”。在實際預訓練中,出于效果和效率的權衡,ProphetNet 僅使用 1-gram (word) 和 2-gram (bigram) 兩個預測流。
此外,ProphetNet 在預訓練中除絕對編碼 embedding 外,還額外引入了相對位置編碼 embedding,不過論文并沒有做相關的消融實驗。
ProphetNet 論文地址:https://arxiv.org/abs/2001.04063
ProphetNet 開源地址:https://github.com/microsoft/ProphetNet
多流預訓練技術之語言理解
接下來我們介紹基于多流機制的語言理解預訓練模型。
UniLMv2 (微軟)
UniLMv2 是微軟研究者提出的第二代統一語言預訓練模型。與 UniLM v1 相比,v2 保留了 v1 版本的 MLM 任務,但把傳統 language model 任務替換成了 PLM 任務。
UniLMv2 中,MLM 和 PLM 的聯合建模是通過類似 XLNet 的多流機制實現的。
UniLMv2 在 PLM 建模中還提出了 “partially autoregressive” 機制。傳統的 “autoregressive” 預測是 token-by-token 的, “partially autoregressive” 的預測則是包含一個類似 Span 的概念(論文中稱之為 block-wise masking),在生成的時候,組成 Span 的 token 是一起預測的,也即在 PLM 中進行 Span-by-Span 預測。
“partially autoregressive” 預測:(x_1, x_3, x_6) -> t=1, predict span by (x_4, x_5) -> t=2, predict token by (x_2)
UniLMv2 15% mask 比例里,其中 40% 按 n-gram (span) 進行 mask, 60% 按 token 進行 mask。
UniLMv2 在論文做了非常完善的策略消歧實驗,有興趣的同學可以直接去圍觀。
UniLMv2 論文地址:https://arxiv.org/abs/2002.12804
UniLMv2 開源地址:https://github.com/microsoft/unilm
MPNet (微軟)
MPNet 也是微軟研究者的工作。這篇工作和 UniLMv2 比較神似,都是在探討如何融合 MLM 和 PLM 這兩種任務。MPNet 論文首先從統一的視角對 MLM 和 PLM 進行對比:
輸出依賴(Output Dependency): MLM 假設被掩碼的 tokens 是相互獨立的(或者說他們彼此間是互相屏蔽的),這樣建模上下文的時候就存在信息丟失。而 PLM 的待預測的 tokens 預測順序可以有 N 階乘的排列組合,因此可以更好的建模待預測 tokens 的上下文。
輸入差異(Input Discrepancy): MLM 中 mask 掩碼隱藏了 token 信息,但通過“占位”的方式保留了位置信息。而標準的 PLM 待預測的 token 只能看到對應 permute 序列的前序部分,在 15% 預測比例下,期望能看到 85% + 7.5% = 92.5% 的 token 和 位置信息。
MPNet 在輸入上保留了 MLM 的掩碼 [M] 進行占位,而輸出僅進行 PLM 的學習。因此,在輸入上 MPNet 和 UniLMv2 是非常相似的,主要的區別是 UniLMv2 的輸出也進行 MLM 的學習。
MPNet:輸入包含 MLM 的掩碼占位、輸出僅進行 PLM 的學習
MPNet 的實驗做的比較扎實,消融實驗分別驗證了 “position compensation”([Maskl] 占位)、"output dependency” (PLM) 去除后的下游任務效果。
MPNet 論文地址:
https://arxiv.org/abs/2004.09297
MPNet 開源地址:https://github.com/microsoft/MPNet
總結
BERT 橫空出世一年多以來,語言預訓練技術不斷發展融合。XLNet 提出的 PLM,以及實現 PLM 的雙流機制,在更多的語言預訓練后起之秀的手中不斷發揚光大。
恩,一切都是那么美好。
萌屋公告
喜歡本文的小伙伴們,記得掃描下方二維碼關注并星標置頂,我才能來到你面前哦。
賣萌屋妹子們的原創技術干貨有?ACL2020學術前沿系列、NLP綜述系列、NLP論文清單系列、NLP基礎入門系列、搜索與推薦系列、深度學習初/中/高級煉丹技巧、機器學習入門系列、算法崗offer收割系列等。訂閱號后臺回復【干貨】即可打包帶走。
賣萌屋里有眾多頂會審稿人、大廠研究員、知乎大V和美麗小姐姐(劃掉?????♀?),我們成立了?自然語言處理 / 知識圖譜 / 深度學習 / 機器學習 / 校招求職?高質量討論群,訂閱號后臺回復【入群】即可上車。
夕小瑤的賣萌屋
_
關注&星標小夕,帶你解鎖AI秘籍
訂閱號主頁下方「撩一下」有驚喜哦
總結
以上是生活随笔為你收集整理的超一流 | 从XLNet的多流机制看最新预训练模型的研究进展的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 算法工程师思维导图—数据结构与算法
- 下一篇: Facebook、阿里等大佬现身说法,N