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