微软统一预训练语言模型UniLM 2.0解读
微軟研究院在2月底發布的UniLM 2.0(Unified Language Model \ 統一語言模型)文章,相比于19年上半年發布的UniLM 1.0,更加有效地整合了自然語言理解(NLU)與自然語言生成(NLG)這兩種不同目標下的訓練任務。無論是兩種訓練目標結合的統一性,還是在測評數據集上表現的性能,UniLM 2.0都在前一代的基礎上有較大的改進。
本文將就近年來基于Transformer的預訓練語言模型在NLU與NLG兩種不同訓練目標上的分化做簡單介紹,再研究UniLM 1.0如何有機地結合這兩種訓練目標,進而介紹UniLM 2.0在1.0的基礎上的變化和進步
1 ? 預訓練語言模型的分化
預訓練語言模型(Pre-trained Language Model)的應用,使得原本無法針對各種語境變化的靜態詞向量表征,向著真正基于語境的語義特征表示(Contextual Word Representation)演進。而Transformer[1]的出現,無疑讓這次演進煥發出了勃勃生機。
Transformer的提出,最早是為了解決循環神經網絡RNN在神經機器翻譯(Neural Machine Translation \ NMT)中無法有效地并行計算的效率問題。而Transformer的結構,也天然地有著NMT任務中典型的Encoder-Decoder結構。編碼器encoder用于生成原始文本的語義表征,而解碼器decoder則利用原始文本的語義表征,轉寫得到目標語言的翻譯文本。
圖1 Transformer有著典型的NMT任務中的Encoder-Decoder結構Transformer encoder有將文本序列轉為特征表示的天然能力,且編碼高效,語義信息的編碼不因序列長度而衰減,成為了后續問世的pre-trained LM的標配,比如來自OpenAI的GPT語言模型[2]和Google的BERT語言模型[3],都是基于Transformer encoder名噪一時的語言模型。不過兩者在預訓練的實現邏輯和原理的差別,也分化出了預訓練語言模型的兩種典型目標:
適用于NLG任務的自回歸(AutoRegressive \ AR)語言模型
適用于NLU任務的自編碼(AutoEncoding \ AE)語言模型
1.1 自回歸(AR)語言模型
自回歸AR語言模型是一種有著先后解碼順序的語言模型。比如從左往右,根據前文預測當前token(字符)的概率。這一點非常契合按照時間步對序列進行編碼的RNN網絡,基于2個單向LSTM的語言模型ELMo也屬于這類。GPT沿襲AR語言模型的做法,從左往右編碼,不過使用的是Transformer encoder作為編碼器。值得注意的是,Transformer利用self-attention的機制,使得每個位置的token,都有機會attend(注意)到任意位置的token。那么GPT又是如何做到避免下文信息泄露的呢?答案在于attention mask。
Attention mask矩陣經過配置,可以讓屏蔽來自的注意力,只需要把矩陣對應位置元素設置為。注意力權重加上后經過softmax規整后對應權重為0,從而避免指向的信息泄露。下面的公式[4]中,M代表attention mask,Q/K/V分別代表了self-attention中的輸入序列在l層的query/key/value特征向量:
下圖中,attention mask矩陣是一個右上角均為的矩陣,表示任意位置token,都無法接收來自下文的信息。GPT采用的attention mask矩陣就是如此。圖2 attention mask圖示Attention mask并非GPT首創,在Transformer decoder中就有提出,是為了避免在翻譯解碼的過程中看到后文的翻譯結果。有些地方稱GPT采用的是Transformer decoder,其實并不嚴謹。準確來說,GPT是有著decoder特征的encoder,自然地也更適用于NLG類型任務,包括翻譯、摘要生成和對話生成等等。
1.2 自編碼(AE)語言模型
自編碼AE語言模型沒有順序和次序約束,可以一次性獲取到序列中的所有信息。可以簡單理解AR模型是有順序的,而AE模型是無序的。BERT就是一個利用Transformer encoder實現的AE模型,它沒有去預測「下一個」token,而是預測缺失的token。原始輸入序列帶有被掩蓋(mask)的token,根據上下文的信息去預測masked token,類似于英語考試中的完形填空(cloze task)。BERT的出現使得很多NLU任務的最好成績都有不小的提升,比如實體識別、答案抽取和文本分類等等。
AE語言模型有著解決NLU任務的天然屬性,卻也是處理NLG任務的先天不足。而微軟提出UniLM統一語言模型,目的就是為了整合這2種不同的語言模型訓練目標。
2? UniLM 1.0
UniLM 1.0是微軟發表于2019年的文章[4]中提出的模型,從它的名字「統一」(unified) 看出文章實現的是NLU與NLG的統一預訓練模型。文章引入了4種不同的訓練目標:
Left-to-Right LM \ 從左往右單向LM
Right-to-Left LM \ 從右往左單向LM
Bidirectional LM \ 雙向LM
Sequence-to-sequence LM \ 序列到序列LM
上述目標的統一訓練實現,依靠的就是attention mask。
圖3 UniLM 1.0的實現原理上圖中3路不同走向的具體解釋:
Bidirectional LM的attention mask矩陣全是白色方格,表示任何位置的token可以相互attend,與BERT訓練目標一致
Left-to-Right LM的attention mask矩陣右上角為灰(對應為),表示每個token只能attend到該token左側的token,與GPT訓練目標一致
Seq-to-Seq LM是上述2種目標的組合,參考下圖4
左上角藍框內矩陣為全白格,與雙向的情況一致,表示Segment1 (S1) 內的token可以相互attend
右下角粉框內矩陣為上三角陣,與從左往右的單向情況一致,表示Segment2 (S2) 的token只能attend到其自身左側的token信息
Seq-to-Seq LM的設計,是將S1看作source,S2看作target,其中target與source可能是引申、推導等關系。因此在S1上做NLU式的雙向完整的理解,S2則是NLG式的單向的生成,符合Seq-to-Seq的應用需求。
4種目標的訓練可以在一套模型參數上同時進行,只需要調整不同的attention mask即可。文章總結了Unified 1.0的3點優勢:
一個Transformer模型結構和參數可以適用于不同的訓練目標
不同的訓練目標下的參數共享,可以得到更具普適性的文本表征
Seq-to-Seq目標的訓練,可以很好地適用于NLG的任務
在Unified 1.0中,Seq-to-Seq LM展示了該團隊用統一的encoder來同時編碼AE和AR模型的嘗試。而2019年語言模型領域的更新變化,也讓微軟的這支團隊看到了更優的解決方案的可能性。
3? UniLM 2.0
在微軟發表UniLM 1.0之后沒多久,由Google Brain和CMU聯合研制的XLNet[5]發布。XLNet利用不同的factorization order,使目標token下文的token得以先被編碼,從而實現了一種能夠attend到全序列信息的自回歸AR語言模型。具體的實現也是通過設計包含次序信息的attention mask來達到的。
圖5 XLNet中,factorization order(3-2-4-1)可能和輸入的sequence order(1-2-3-4)完全不同,前者代表的是預測順序,通過attention mask可以表示順序變化Factorization order直譯為因式分解順序,此處譯為解析順序或者預測順序更為貼切。它描述的是序列中token被預測的先后順序,這個順序可以和序列本身的sequence order完全不同。雖然常見的NLG任務遵循從左往右的序列順序依次解碼,但這并不意味著訓練編碼的順序也要求從左往右。XLNet就成功實現了下文token提前編碼的自回歸預訓練,且達到了不錯的效果。這里要介紹的UniLM 2.0[6]也利用了這一點。
UniLM 2.0相比于1.0的主要改進,在于它支持更多樣的factorization order且無需重復構建訓練實體。這一目標的實現,主要是借助文章提出的偽掩碼語言模型(Pseudo-Masked Language Models \ PMLM),參考下圖。
圖6 原始輸入序列為 ,其中均被掩蓋,圖中展示2種不同的流程用來預測這3個掩碼的內容圖中的例子是一個factorization order為{4,5 -> 2}的輸入序列:
將上述流程按2個階段展開:
AE \ AutoEncoding \ 自編碼
圖中左半部分,僅使用前一半輸入序列
序列的任意token間可以互相attend,[M]代表mask掩碼,訓練目標是一次給出序列中所有[M]的預測概率,與BERT訓練一致
具體的預測流程:
PAR \ Partially AutoRegressive \ 部分自回歸
圖中右半部分,使用全部輸入序列
使用[P]代表pseudo mask,直譯為偽掩碼,目的是為了與前一步驟中的[M]區別開。先同時預測和,再在已有, 的基礎上預測
具體的預測流程:
?
說明
partially AR之所以是「部分」,是因為模型支持一次預測出連續的掩碼。之前需要{4->5->2},現在支持{4,5->2},由token級別改進為span級別,是AR模型的一種拓展;
選用{4,5 -> 2}這樣的預測順序只是其中一種factorization order,亦可選用{2 -> 4,5}這樣的順序;
引入偽掩碼[P]是為了避免重復構建訓練實體,否則上面PAR步驟中的2步流程需要2次構建不同的樣本才能分別實現;
一個token在輸入序列中的真實位置并不重要,只要2個token有著相同的position embedding,模型會認為它們在文本中的位置一樣。
這里再解釋一下引入[P]偽掩碼的作用。
[P]其實和[M]的作用一致,只是作用的階段不同。AE階段預測[M]的內容,PAR階段預測[P]的內容,這是文章為了讓2個不同的訓練目標可以在一次輸入的情況下完成而設計的一種策略。如果這里還是按照UniLM 1.0,AR階段的訓練是從左往右單向的,那么只用[M]就足夠。UniLM 2.0為了實現不同的factorization order,允許下文的token先被預測,且不需要每步預測后再重新構建輸入序列,故引入[P]掩碼。
在構建好輸入序列之后,為了避免信息泄露,這里也是通過獨特設計的attention mask矩陣來保證的。文章的例子{4,5->2}所用的attention mask如下圖,大家可自行對照,這里不做展開。
圖7 Factorization order為{4,5->2}的attention mask矩陣。注意:這里的灰色塊代表允許attend,白色塊代表不允許attend,與UniLM 1.0的表示正好相反。雖然UniLM 2.0以一種不太直觀的形式準備了預訓練的輸入序列,但它卻向我們展示了在不同的factorization order的條件下,AR和AE訓練目標在一個單一encoder中的統一實現。而與此同時,又有一些預訓練LM開始回歸最初的Encoder-Decoder的結構,比如谷歌的T5和微軟的MASS,也讓我們看到了預訓練語言模型的更多的可能性。新的預訓練語言模型不斷涌現,我們也會持續跟進,為大家帶來更多新穎模型的解讀。
參考資料
[1]
Transformer \?Attention Is All You Need (2017)
[2]GPT?\?Improving Language Understanding by Generative Pre-Training (2018)
[3]BERT \?BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding (2018)
[4]UniLM 1.0 \?Unified Language Model Pre-training for Natural Language Understanding and Generation (2019)
[5]XLNet \?Generalized Autoregressive Pretraining for Language Understanding (2019)
[6]UniLM 2.0 \?UNILMv2: Pseudo-Masked Language Models for Unified Language Model Pre-Training (2020)
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習在線手冊深度學習在線手冊AI基礎下載(pdf更新到25集)本站qq群1003271085,加入微信群請回復“加群”獲取一折本站知識星球優惠券,請回復“知識星球”喜歡文章,點個在看
總結
以上是生活随笔為你收集整理的微软统一预训练语言模型UniLM 2.0解读的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 软件开发者升职加薪的 8 项技能
- 下一篇: 【推荐系统】深入理解YouTube推荐系