【論文筆記】UniLM - Unified Language Model Pre-training for Natural Language Understanding and Generation

摘要

UniLM由微軟研究院在bert的基礎(chǔ)上開發(fā)的新型預(yù)訓(xùn)練模型阳欲,可在自然語言理解和生成任務(wù)上進行微調(diào)眼姐,模型采用了三個任務(wù)進行預(yù)訓(xùn)練:單向诫惭、雙向檩奠、sequence to sequence預(yù)測桩了。采用共享的Transformer網(wǎng)絡(luò)和特殊的attention掩碼機制,結(jié)合了AR和AE語言模型的優(yōu)點埠戳,在抽象摘要井誉、生成式問題回答語言生成數(shù)據(jù)集的抽樣領(lǐng)域取得了最優(yōu)秀的成績。

1. 介紹

AR: Aotoregressive Lanuage Modeling整胃,又叫自回歸語言模型颗圣。它指的是,依據(jù)前面(或后面)出現(xiàn)的tokens來預(yù)測當(dāng)前時刻的token屁使,代表模型有ELMO在岂、GPT等。

img

AE:Autoencoding Language Modeling蛮寂,又叫自編碼語言蔽午。通過上下文信息來預(yù)測當(dāng)前被mask的token,代表有BERT 共郭,Word2Vec(CBOW)祠丝。

img

AR 語言模型:

  • 缺點:它只能利用單向語義而不能同時利用上下文信息。 ELMO 通過雙向都做AR 模型除嘹,然后進行拼接写半,但從結(jié)果來看,效果并不是太好尉咕。
  • 優(yōu)點: 對自然語言生成任務(wù)(NLG)友好叠蝇,天然符合生成式任務(wù)的生成過程。這也是為什么 GPT 能夠編故事的原因年缎。

AE 語言模型:

  • 缺點: 由于訓(xùn)練中采用了 [MASK] 標(biāo)記悔捶,導(dǎo)致預(yù)訓(xùn)練與微調(diào)階段不一致的問題。 此外對于生成式問題单芜, AE 模型也顯得捉襟見肘蜕该,這也是目前 BERT 為數(shù)不多實現(xiàn)大的突破的領(lǐng)域。

  • 優(yōu)點: 能夠很好的編碼上下文語義信息洲鸠, 在自然語言理解(NLU)相關(guān)的下游任務(wù)上表現(xiàn)突出堂淡。

語言模型詳解

  1. ELMo 學(xué)習(xí)兩個單向的語言模型,一個前向語言模型扒腕,從左到右讀取文本绢淀,一個后向語言模型,從右向左讀文本瘾腰,encode文本信息皆的。

  2. GPT 采用從左向右的Transformer來逐詞預(yù)測文本。

  3. Bert 使用雙向Transformer encoder蹋盆,將左右的文本信息都融合起來费薄,預(yù)測masked word。Bert在大量的自然語言理解任務(wù)上表現(xiàn)很優(yōu)越栖雾,但雙向的結(jié)構(gòu)使得它很難在自然語言生成的任務(wù)上應(yīng)用义锥。

詞向量經(jīng)典模型:從word2vec、glove岩灭、ELMo到BERT_xiayto的博客-CSDN ...
  1. UniLM 是一個多層的Transformer網(wǎng)絡(luò)拌倍,在大量文本上進行了聯(lián)合預(yù)訓(xùn)練,針對三種無監(jiān)督語言模型目標(biāo)進行優(yōu)化噪径。單向LM柱恤、雙向LM、sequence to sequence LM找爱。
image-20200722200845834
image-20200722200430548
  • UniLM與Bert對比:

    相同點:可以通過fine-tune來適應(yīng)各種下游任務(wù)

    不同點:Bert主要用于NLU任務(wù)梗顺。UniLM通過不同的self-attention masks機制,能夠為不同的語言模型來生成不同的文本信息车摄,從而應(yīng)用于NLU和NLG任務(wù)寺谤。

  • UniLM的三個優(yōu)點:

    1. 不同的LM模型使用共享的參數(shù)和架構(gòu)仑鸥,減輕訓(xùn)練和構(gòu)造多個LM模型的需求

    2)由于UniLM的共享參數(shù)在不同的LM目標(biāo)中進行了聯(lián)合優(yōu)化,所以學(xué)習(xí)到的文本表征具有更高的普適性变屁,減緩了單個LM模型的過擬合問題眼俊。

    3)在NLU任務(wù)的應(yīng)用外,UniLM能夠作為sequence to sequence模型使用粟关,從而應(yīng)用于NLG任務(wù)中疮胖,比如抽象摘要,問答生成。

2. 預(yù)訓(xùn)練

預(yù)訓(xùn)練過程為:給定輸入序列x=x_1,...,x_{|x|},UniLM為每一個token訓(xùn)練出一個融合上下文信息的向量表征专甩,即詞向量。

UniLM通過三個無監(jiān)督語言模型目標(biāo)優(yōu)化共享的Transformer network性昭,LM目標(biāo)分別為:單向LM,雙向LM县遣,sequence-to-sequence LM巩梢。UniLM通過特殊的self-attention機制來控制在訓(xùn)練過程中考慮的文本信息,這種self-attention機制通過mask來決定計算每個token
的向量表征時應(yīng)該考慮的context是哪些艺玲。

在雙向LM模型中括蝠,沒有任何mask,因為上下文信息都會被融入token中饭聚。在從左向右的單向LM模型中忌警,矩陣上半三角會被mask掉,因為token只考慮左邊的文本信息秒梳。在seq-to-seq模型中法绵,句子s1的矩陣部分沒有mask,s1因為s1融合上下文信息酪碘,句子s2矩陣的右上三角有mask朋譬,因為s2融合了s1的信息和左邊的文本信息。

當(dāng)UniLM預(yù)訓(xùn)練完成以后兴垦,便可通過fine-tuning來應(yīng)用到下游任務(wù)中徙赢。

image-20200722200845834

2.1. 輸入表征

模型輸入x為單詞序列,在單向LM中為文本片段探越,在雙向LM和seq-to-seq LM中為一對文本片段狡赐。

我們在輸入的開頭加上開始符號[SOS],每個片段的結(jié)尾加上結(jié)束符[EOS]钦幔,在NLU任務(wù)中枕屉,結(jié)束符用于標(biāo)志句子的邊界信息,在NLG任務(wù)重鲤氢,結(jié)束符還可以讓學(xué)到何時終止解碼步驟搀擂。

輸入的表征和Bert一致西潘,每個token的向量表征為相應(yīng)的token embedding,position embedding哨颂,sgment embedding的加和喷市。但UniLM在優(yōu)化不同的LM模型時,segment embedding會有所變化咆蒿。

image-20200722211324258
  • Token Embeddings 詞的向量表示

    token embedding 層是要將各個詞轉(zhuǎn)換成固定維度的向量东抹。在BERT中蚂子,每個詞會被轉(zhuǎn)換成768維的向量表示沃测。

  • Segment Embeddings 輔助BERT區(qū)別句子對中的兩個句子的向量表示

    BERT 能夠處理對輸入句子對的分類任務(wù)。這類任務(wù)就像判斷兩個文本是否是語義相似的食茎。句子對中的兩個句子被簡單的拼接在一起后送入到模型中蒂破。那BERT如何去區(qū)分一個句子對中的兩個句子呢?答案就是segment embeddings.

    Segment Embeddings 層只有兩種向量表示别渔。前一個向量是把EA賦給第一個句子中的各個token, 后一個向量是把EB賦給第二個句子中的各個token附迷。如果輸入僅僅只有一個句子,那么它的segment embedding就是全EA哎媚。

  • Position Embeddings 讓BERT學(xué)習(xí)到輸入的順序?qū)傩?/strong>

    加入位置信息喇伯,能讓模型理解相同單詞在不同句子中不同位置的信息,學(xué)習(xí)到不同的向量表示拨与。

    實現(xiàn)過程中稻据,Bert處理512個token的輸入,詞向量維度為768买喧,position embedding是(512捻悯,768)的lookup表,序列的每個位置的position embedding對應(yīng)表中相應(yīng)的行淤毛。

    因此今缚,如果有這樣兩個句子“Hello world” 和“Hi there”, “Hello” 和“Hi”會由完全相同的position embeddings,因為他們都是句子的第一個詞低淡。同理姓言,“world” 和“there”也會有相同的position embedding。

2.2. 骨干網(wǎng)絡(luò):多層Transformer

模型輸入向量:\{X_i\}_{i=1}^{|x|}, 首先被包裝為H^0=[x_1,...,x_{|x|}], 然后通過L層的transformer蔗蹋,在不同層融合上下文信息事期,每個Transformer塊使用多頭注意力融合上一層輸出的向量,編碼為H^l=[h_1^l,...,h_{|x|}^l]纸颜,H^l = Tranformer_l(H^{l-1}),l\in[1,L],

image-20200723102851540

上一層的輸出H^{l-1}\in R^{|x|\times d_h}通過三個參數(shù)矩陣W\in R^{d_h\times d_k}被線性的投影為queries兽泣,keys和values。

掩碼矩陣M決定一對token在attention中是否會考慮對方胁孙。

文章使用不同的掩碼矩陣M來控制生成一個token的表征時需要考慮的上下文信息唠倦。

2.3 預(yù)訓(xùn)練目標(biāo)

  1. 完形填空:對于三個LM模型都進行完形填空任務(wù)称鳞,模型在與訓(xùn)練過程中隨機選取輸入中的token,將他們替換成特殊字符[MASK]稠鼻,將這些[MASK]字符的輸出向量放入softmax分類器中來預(yù)測字符的值冈止。UniLM的參數(shù)通過最小化原始tokens和預(yù)測tokens的交叉熵?fù)p失函數(shù)來優(yōu)化。
  2. 下一句預(yù)測:針對雙向LM模型進行下一句預(yù)測任務(wù)候齿,操作和bert一致熙暴。目的是讓模型理解兩個句子之間的聯(lián)系。訓(xùn)練的輸入是句子A和B慌盯,B有一半的幾率是A的下一句周霉,輸入這兩個句子,模型預(yù)測B是不是A的下一句亚皂。預(yù)訓(xùn)練的時候可以達(dá)到97-98%的準(zhǔn)確度俱箱。

2.4 預(yù)訓(xùn)練設(shè)置

整體的訓(xùn)練目標(biāo)為各LM模型訓(xùn)練目標(biāo)的總和。在每個訓(xùn)練批次中灭必,1/3使用雙向LM目標(biāo)狞谱,1/3使用seq-to-seq LM目標(biāo),自左向右和自右向左的單向LM目標(biāo)都為1/6禁漓。

UniLM的模型構(gòu)架和Bert Large版本一樣跟衅,激活函數(shù)和GPT一樣用gelu。此外播歼,本模型采用24層transformer伶跷,隱層節(jié)點為1024,注意力頭數(shù)16荚恶,包含360M參數(shù)撩穿。

UniLM使用Bert Large進行初始化,再在英語wikipedia和BookCorpus上進行預(yù)訓(xùn)練谒撼。詞典大小為28,996食寡,輸入句子的最大長度為512。

輸入token被mask掉的概率為15%廓潜,其中10%用隨機token替換抵皱,10%保持用原始token,80%用[mask]替換辩蛋。此外呻畸,80%情況下mask一個token,20%情況下mask bigram或trigram悼院。

2.5 在下游NLU和NLG任務(wù)中微調(diào)

  • NLU任務(wù)

    使用雙向tranformer encoder進行微調(diào)伤为,文本分類任務(wù)中,使用[sos]的輸出向量,標(biāo)為h_1^L绞愚,輸入到隨機初始化的softmax分類器中叙甸,分類概率為softmax(h_1^LW^C)W^C\in R^{d_h \times C}是參數(shù)矩陣位衩,C是類別數(shù)目裆蒸。

  • NLG任務(wù)

    使用seq-to-seq模型,微調(diào)過程和預(yù)訓(xùn)練中使用self-attention masks相同糖驴。S1為源序列僚祷,S2為目標(biāo)序列,輸入為“[sos] s1 [eos] s2 [eso]”贮缕,模型通過隨機在s2中mask一定比例的token辙谜,學(xué)習(xí)去還原這些token。訓(xùn)練目標(biāo)為在給定上下文的時候最大化masked tokens的概率跷睦。在生成的過程中筷弦,若預(yù)測出了[eos]則代表生成結(jié)束肋演。

實驗

  • 抽象摘要

    image-20200723143437231
  • 問答

    image-20200723143447925
  • 問題生成抑诸、回復(fù)生成

    image-20200723143502064

參考文獻:paper閱讀:UniLM(Unified Language Model Pre-training for Natural Language Understanding and Generation)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市爹殊,隨后出現(xiàn)的幾起案子蜕乡,更是在濱河造成了極大的恐慌,老刑警劉巖梗夸,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件层玲,死亡現(xiàn)場離奇詭異,居然都是意外死亡反症,警方通過查閱死者的電腦和手機辛块,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來铅碍,“玉大人润绵,你說我怎么就攤上這事“福” “怎么了尘盼?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長烦绳。 經(jīng)常有香客問我卿捎,道長,這世上最難降的妖魔是什么径密? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任午阵,我火速辦了婚禮,結(jié)果婚禮上享扔,老公的妹妹穿的比我還像新娘底桂。我一直安慰自己括细,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布戚啥。 她就那樣靜靜地躺著奋单,像睡著了一般。 火紅的嫁衣襯著肌膚如雪猫十。 梳的紋絲不亂的頭發(fā)上览濒,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天,我揣著相機與錄音拖云,去河邊找鬼贷笛。 笑死,一個胖子當(dāng)著我的面吹牛宙项,可吹牛的內(nèi)容都是我干的乏苦。 我是一名探鬼主播,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼尤筐,長吁一口氣:“原來是場噩夢啊……” “哼汇荐!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起盆繁,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤掀淘,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后油昂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體革娄,經(jīng)...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年冕碟,在試婚紗的時候發(fā)現(xiàn)自己被綠了拦惋。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,488評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡安寺,死狀恐怖厕妖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情我衬,我是刑警寧澤叹放,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站挠羔,受9級特大地震影響井仰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜破加,卻給世界環(huán)境...
    茶點故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一俱恶、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦合是、人聲如沸了罪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽泊藕。三九已至,卻和暖如春难礼,著一層夾襖步出監(jiān)牢的瞬間娃圆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工蛾茉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留讼呢,地道東北人。 一個月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓谦炬,卻偏偏與公主長得像悦屏,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子键思,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,500評論 2 359