(UNILM)Unified Language Model Pre-training for Natural Language Understanding and Generation

版權(quán)聲明:本文為博主原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接和本聲明。
本文鏈接:https://blog.csdn.net/ljp1919/article/details/100125630

  1. 背景

機(jī)構(gòu):微軟
作者:Li Dong、Nan Yang
發(fā)布地方:arxiv
面向任務(wù):Natural Language Understanding and Generation
論文地址:https://arxiv.org/abs/1905.03197
論文代碼:暫未
0-1. 摘要

本文提出一個(gè)能夠同時(shí)處理自然語(yǔ)言理解和生成任務(wù)UNI?ed pre-trained Language Model (UNILM) 模型。UNILM模型的預(yù)訓(xùn)練是基于3個(gè)目標(biāo):?jiǎn)蜗騆M(包括從左到右和從右到左)、雙向LM和sequence-to-sequence LM。該模型采用一個(gè)共享參數(shù)的Transformer網(wǎng)絡(luò)的同時(shí)還使用了特定的self-attention masks用以控制預(yù)測(cè)時(shí)候所用到的上下文信息。在下游任務(wù)微調(diào)時(shí)候,可以將UNILM模型視為單向的encoder、雙向的encoder或者sequence-to-sequence模型,以適應(yīng)不同的下游任務(wù)(自然語(yǔ)言理解和生成任務(wù))。

在實(shí)驗(yàn)過(guò)程中,UNILM與BERT模型在在GLUE、SQuAD 2.0和CoQA數(shù)據(jù)集上進(jìn)行了綜合對(duì)比。本文模型在3項(xiàng)自然語(yǔ)言生成任務(wù)上刷新了記錄,其中包括CNN/DailyMail 摘要生成(ROUGE-L為40.63,提升了2.16)、CoQA的問(wèn)題生成(F1值為82.5,提升了37.1)、SQuAD的問(wèn)題生成(BLEU-4為22.88,提升了6.5)。

  1. 介紹

預(yù)訓(xùn)練語(yǔ)言模型在各個(gè)自然語(yǔ)言處理任務(wù)上的成果是有目共睹的,在這里就不多說(shuō)了。預(yù)訓(xùn)練語(yǔ)言模型之所以有效是因?yàn)樵诤A空Z(yǔ)料數(shù)據(jù)集上學(xué)習(xí)到能夠基于上下文的文本表征信息預(yù)測(cè)word tokens。在下游的任務(wù)中僅需要微調(diào)即可。

一般預(yù)訓(xùn)練的語(yǔ)言模型有以下4種預(yù)訓(xùn)練目標(biāo):
在這里插入圖片描述

ELMo是基于LSTM的兩個(gè)單向語(yǔ)言模型的拼接;GPT預(yù)測(cè)文本序列是基于Transformer從左到右逐個(gè)word預(yù)測(cè);BERT使用雙向的Transformer encoder,融合雙向的上下文信息,從而預(yù)測(cè)被masked掉的words。此外,BERT能夠確切地對(duì)一組文本對(duì)的關(guān)系進(jìn)行建模,這已經(jīng)被證明是對(duì)許多成對(duì)的自然語(yǔ)言理解任務(wù)(如自然語(yǔ)言推理)是有益的。盡管BERT在多個(gè)自然語(yǔ)言理解任務(wù)上提升顯著,但是其雙向的天然特性,使其在自然語(yǔ)言生成任務(wù)上困難重重。

為此本文所提出的的UNILM模型能夠同時(shí)處理自然語(yǔ)言理解任務(wù)也能夠處理自然語(yǔ)言生成任務(wù)。UNILM是一個(gè)深度的Transformer網(wǎng)絡(luò),其預(yù)訓(xùn)練過(guò)程采用3種無(wú)監(jiān)督的語(yǔ)言模型目標(biāo):雙向LM、單向LM和Sequence-to-Sequence LM,具體如Table 2所示:
在這里插入圖片描述
單向LM和雙向LM就不多說(shuō)了。Sequence-to-Sequence LM中第一個(gè)sequence稱(chēng)為source,第2個(gè)sequence稱(chēng)為target。target sequence的上下文是第1個(gè)sequence和其左邊的words組成。

本文提出的UNILM模型有以下3個(gè)優(yōu)點(diǎn):
(1)統(tǒng)一的預(yù)訓(xùn)練流程,使得僅僅使用一個(gè)Transformer語(yǔ)言模型即可。該Transformer模型在不同的LM(上述Table 2中的3個(gè)LM)上共享參數(shù),這就無(wú)需在多個(gè)LM上分別訓(xùn)練和配置。
(2)多個(gè)LM之間的參數(shù)共享使得學(xué)習(xí)到的文本表征具有更強(qiáng)的泛化能力。在不同的語(yǔ)言模型目標(biāo)上聯(lián)合優(yōu)化,使得上下文在不同方式中被使用,也減緩了在單一LM上的過(guò)擬合。
(3)除了可以應(yīng)用到自然語(yǔ)言理解任務(wù)上,本文模型還能夠作為一個(gè)sequence-to-sequence LM來(lái)處理自然語(yǔ)言生成任務(wù),如摘要生成和問(wèn)題生成。

UNILM的預(yù)訓(xùn)練是基于大量語(yǔ)料,其在不同任務(wù)上的微調(diào)在Table 2中已經(jīng)有所描述。
(1)UNILM作為一個(gè)雙向encoder:
與BERT在GLUE數(shù)據(jù)集、SQuAD 2.0和CoQA的抽取式問(wèn)答對(duì)比, 此時(shí)的UNILM作為一個(gè)雙向的encoder。
(2)UNILM作為一個(gè)sequence-to-sequence模型:
在摘要生成(CNN/DailyMail)、問(wèn)題生成(SQuAD)和生成式問(wèn)答(CoQA)中UNILM作為一個(gè)sequence-to-sequence模型.

  1. UNILM模型

給定輸入sequence x=x1?x∣x∣

x=x1??x∣x∣?, 通過(guò)多層的Transformer網(wǎng)絡(luò)對(duì)每個(gè)token得到一個(gè)帶有上下文信息的向量表征。輸入tokens的表征聯(lián)合word embedding、位置embedding和text segment。再將輸入向量輸入到多層Transformer網(wǎng)絡(luò)中,利用其中的self-attention機(jī)制聯(lián)合整個(gè)輸入sequence計(jì)算得到文本的表征。

如圖Figure 1所示,統(tǒng)一的語(yǔ)言模型預(yù)訓(xùn)練在多個(gè)無(wú)監(jiān)督語(yǔ)言模型目標(biāo)(單向LM、雙向LM和Sequence-to-Sequence)中共享Transformer網(wǎng)絡(luò)參數(shù)。為了待預(yù)測(cè)token的上下文范圍,本文在self-attention中使用了不同的masks。換句話說(shuō),本文使用mask方式來(lái)控制待預(yù)測(cè)token所考慮到的上下文。
在這里插入圖片描述
2-1. 輸入表征

對(duì)于輸入的詞序列x

x,在起始位置添加一個(gè)預(yù)定義的[SOS] token作為標(biāo)志符。[SOS] token對(duì)應(yīng)的輸出向量可以作為整個(gè)輸入的表征。此外,在每個(gè)segment的末尾添加一個(gè)預(yù)定義的標(biāo)志符[EOS]。這個(gè)[EOS] token用來(lái)表示segments之間的邊界。其作用不僅僅是自然語(yǔ)言理解任務(wù)中的句子邊界,還作為自然語(yǔ)言生成任務(wù)中生成word的停止符。

輸入表征與BERT相同,文本通過(guò)WordPiece被tokenized為subword。例如,單詞"forecasted"被分割為"forecast"和"##ed",其中"##"表明該部分是屬于某個(gè)word。每個(gè)輸入的token,其向量表征是token embedding、position embedding和segment embedding三者之和。本文使用絕對(duì)位置embedding。segment embedding是為了區(qū)分一對(duì)文本中的不同segment。第1個(gè)segment和第2個(gè)segment分別有不同的segment embedding,即為了區(qū)分句子對(duì)中的2個(gè)句子。由于不同LM目標(biāo)使用不同的segment embeddings,所以可以作為L(zhǎng)M辨識(shí)器。
2-2. 主干網(wǎng)絡(luò)-Transformer

給定輸入向量{xi}∣x∣i=1
{xi?}i=1∣x∣?,先將整理為Unexpected text node: '?'H0=[x1?,?,x∣x∣?]。再將其輸入到一個(gè)L層的Transformer網(wǎng)絡(luò)中對(duì)輸入進(jìn)行encode:
Hl= Transformer l(Hl?1)(1)Hl= Transformer l?(Hl?1)(1)
其中l(wèi)∈[1,L]l∈[1,L],Unexpected text node: '?'HL=[h1L?,?,hx]L?]。其中hLihiL?表示輸入xi

xi?的上下文表征。

Self-attention Masks:
在每個(gè)Transformer Block中,有多頭self-attention以聚合前蹭的輸出向量。對(duì)于第l?th
l?th層的Transformer,其中一個(gè)self-attention head AlAl?的計(jì)算如下:
QMijAl==Hl?1WQl,K=Hl?1WKl={0, allow to attend ?∞, prevent from attending softmax(QK?dk??√+M)(Hl?1Vl)QMij?Al?=?=Hl?1WlQ?,K=Hl?1WlK?={0, allow to attend ?∞,? prevent from attending ?softmax(dk?
?QK??+M)(Hl?1Vl?)?
其中前層的輸出Hl?1∈R∣x∣×dhHl?1∈R∣x∣×dh?是到queries、keys和values的線性投影,其投影參數(shù)分別是WQl,WKl,Vl∈Rdh×dkWlQ?,WlK?,Vl?∈Rdh?×dk?。mask矩陣M∈R∣x∣×∣x∣M∈R∣x∣×∣x∣控制著tokens之間是否存在被attended。不同的mask 矩陣M

M控制attent到不同的上下文,具體如FIgure 1所示,在雙向LM中,mask矩陣的值為0,表示所有的tokens之間都能夠相互注意到。
2-3. 預(yù)訓(xùn)練目標(biāo)

在對(duì)輸入進(jìn)行mask的時(shí)候,是選取一個(gè)WordPiece tokens隨機(jī)mask,所謂的mask操作是用預(yù)定義的token [MASK]對(duì)其進(jìn)行替換。再將輸入到Transformer網(wǎng)絡(luò)中計(jì)算得到輸出向量,再將輸出向量輸入到softmax分類(lèi)器中以預(yù)測(cè)被mask掉的token。UNILM模型的參數(shù)是通過(guò)最小化預(yù)測(cè)的tokens和原始真實(shí)tokens之間的交叉熵?fù)p失學(xué)習(xí)到的。
2-3-1. 單向LM

單向LM包括從左到右和從右到左的LM。在單向LM的預(yù)訓(xùn)練過(guò)程中,輸入僅僅使用單個(gè)segment。以從左都右的LM為例,每個(gè)token都是基于其左邊的上文及其自身的encode結(jié)果。為預(yù)測(cè)x1x2[MASK]x4
x1?x2?[MASK]x4?,只有x1、x2x1?、x2?及其自身[MASK]會(huì)被使用到。其具體實(shí)現(xiàn)是通過(guò)三角矩陣形式的self-attention mask M

M。從Figure 1可以看出,上三角矩陣為深灰色,值為無(wú)窮大(表示阻塞,token之間沒(méi)有行方向的token注意不到列方向的token),其他位置為淺灰色,值為0(表示可以注意到早期,即左邊的token)。
2-3-2. 雙向LM

BERT就是雙向LM,不詳細(xì)展開(kāi)。
2-3-3. Sequence-to-Sequence LM

sequence-to-sequence LM的輸入分為2個(gè)segments,如Figure 1所示,第一個(gè)segment(即source segment)在整個(gè)segment內(nèi)部能夠attend到任何的tokens,第2個(gè)segment(target segment)中的tokens只能attend到target segment中上文tokens及其自身,還有source segment。Figure 1中的sequence-to-sequence LM的self-attention mask可以看出,左邊的mask 矩陣設(shè)置為全0,對(duì)應(yīng)的source segment,即所有的token之間是可以相互注意到的。右上角被設(shè)置為無(wú)窮大,使得source segment看不到target segment;往下的右上角值設(shè)置為無(wú)窮大,其他值為0是實(shí)現(xiàn)target segment只能注意到上文,忽略其下文。
2-3-4. 下一句的預(yù)測(cè)

和BERT一樣,可以看BERT原始論文。
2-4. 預(yù)訓(xùn)練設(shè)置

預(yù)訓(xùn)練目標(biāo)函數(shù)是多個(gè)語(yǔ)言模型的平均likelihood 的求和。在每個(gè)訓(xùn)練batch中,1/3的時(shí)間使用雙向LM目標(biāo),1/3的時(shí)間使用sequence-to-sequence LM作為目標(biāo),從左到右和從右到左的LM目標(biāo)各自占1/6。另外,對(duì)于雙向LM樣本,也向其增加下一句預(yù)測(cè)的mean likelihood。
其他的參數(shù)設(shè)置和配置參考原文,在此就不多介紹了。
2-5. 下游任務(wù)微調(diào)

沒(méi)有啥特殊的地方,中規(guī)中矩,參考原文即可。

  1. 實(shí)驗(yàn)

主要在自然語(yǔ)言理解任務(wù)(GLUE、抽取式問(wèn)答)和自然語(yǔ)言生成任務(wù)(摘要生成、問(wèn)題生成和生成式問(wèn)答)進(jìn)行實(shí)驗(yàn)。

摘要生成:
在這里插入圖片描述
增加了抽取式摘要作為輔助任務(wù),根據(jù)first token預(yù)測(cè)input sentence是否出現(xiàn)在抽取式數(shù)據(jù)中。

問(wèn)答(閱讀理解):
在抽取式任務(wù)SQuAD和CoQA上都超越了BERT;在生成式問(wèn)答上表現(xiàn)尤其好,比2018年的一個(gè)PGNet提升了40個(gè)點(diǎn)。
在SQuAD數(shù)據(jù)集:
在這里插入圖片描述
在CoQA數(shù)據(jù)集上:
在這里插入圖片描述
問(wèn)題生成:
利用生成的問(wèn)題,把SQuAD結(jié)果提升了4個(gè)點(diǎn)。
在這里插入圖片描述
生成的問(wèn)題,還有助于提升問(wèn)答:
在這里插入圖片描述
GLUE:在大部分任務(wù)上>=BERT,最終提升了0.3個(gè)點(diǎn)。
實(shí)驗(yàn)細(xì)節(jié)和結(jié)果詳情請(qǐng)參考原文。

  1. 總結(jié)和未來(lái)

本文聯(lián)合多個(gè)語(yǔ)言模型的訓(xùn)練目標(biāo)提出一個(gè)統(tǒng)一的預(yù)訓(xùn)練模型。這點(diǎn)與MASS的目標(biāo)一樣,都是想統(tǒng)一BERT和生成式模型。在統(tǒng)一了單向、雙向和sequence-to-sequence語(yǔ)言模型之后,可以直接在下游中微調(diào)自然語(yǔ)言理解和生成式任務(wù)。實(shí)驗(yàn)結(jié)果也證明本文模型的有效性且在部分生成式任務(wù)中表現(xiàn)優(yōu)越,一枝獨(dú)秀。

未來(lái):
(1)通過(guò)更大epoch、更大模型、更多數(shù)據(jù)來(lái)繼續(xù)提升模型性能。后續(xù)也會(huì)進(jìn)一步做消融研究,以了解模型的能力及多個(gè)語(yǔ)言模型的貢獻(xiàn)程度。
(2)擴(kuò)展統(tǒng)一的預(yù)訓(xùn)練模型,比如使其支持跨語(yǔ)言任務(wù),如機(jī)器翻譯。
(3)在自然語(yǔ)言理解和生成任務(wù)上進(jìn)行多任務(wù)的微調(diào)學(xué)習(xí),對(duì)MT-DNN進(jìn)行拓展。
————————————————
版權(quán)聲明:本文為CSDN博主「JasonLiu1919」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/ljp1919/article/details/100125630

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容