XLNet震驚了NLP領(lǐng)域,這種語(yǔ)言建模的新方法在20個(gè)NLP任務(wù)上的表現(xiàn)優(yōu)于強(qiáng)大的BERT,并且在18個(gè)任務(wù)中獲得了最先進(jìn)的結(jié)果。
XLNet可能會(huì)改變語(yǔ)言建模,這就是為什么它是任何NLP從業(yè)者的重要補(bǔ)充。在本文中,我們將討論XLNet背后的原理,它使它比BERT更好。為了更好地理解它,我們還將研究它之前的相關(guān)技術(shù)。
語(yǔ)言建模簡(jiǎn)介
在2018年,隨著語(yǔ)言建模任務(wù)處于研究的中心,NLP領(lǐng)域取得了重大的進(jìn)步。
語(yǔ)言建模是在給定所有先前的單詞的情況下,預(yù)測(cè)句子中的下一個(gè)單詞的任務(wù)。語(yǔ)言模型現(xiàn)在已經(jīng)成為NLP管道的重要組成部分,因?yàn)樗鼈優(yōu)楦鞣N下游任務(wù)提供了支撐。語(yǔ)言模型捕獲幾乎普遍有用的輸入文本的一些特性。
早期的語(yǔ)言模型ULMFiT和ELMo,兩者都是基于LSTM的語(yǔ)言模型。事實(shí)上,ULMFiT和ELMo都取得了巨大的成功,在眾多任務(wù)中取得了最先進(jìn)的成果。但我們將看到XLNet如何實(shí)現(xiàn)前所未有的成果。
用于語(yǔ)言建模的自回歸模型(AR)
XLNet是一種通用的自回歸預(yù)訓(xùn)練模型。自回歸模型僅僅是一種前饋模型,它根據(jù)給定上下文的一組單詞預(yù)測(cè)下一個(gè)詞。但是在這里,上下文單詞被限制在兩個(gè)方向,前向或后向。
可以按順序運(yùn)行自回歸模型以生成新序列!從x1,x2,…,xk開始,預(yù)測(cè)xk+1。然后使用x2,x3,…,xk+1來(lái)預(yù)測(cè)xk+2,依此類推。GPT和GPT-2都是自回歸語(yǔ)言模型。所以,它們?cè)谖谋旧芍凶儸F(xiàn)不錯(cuò)。
自回歸語(yǔ)言模型的問(wèn)題在于它只能使用前向上下文或后向上下文,這意味著它不能同時(shí)使用前向和后向上下文,從而限制其對(duì)上下文和預(yù)測(cè)的理解。
自動(dòng)編碼器(AE)語(yǔ)言建模
與AR語(yǔ)言模型不同,BERT使用自動(dòng)編碼器(AE)語(yǔ)言模型。AE語(yǔ)言模型旨在從損壞的輸入重建原始數(shù)據(jù)。
在BERT中,通過(guò)添加[MASK]來(lái)破壞預(yù)訓(xùn)練輸入數(shù)據(jù)。例如,'Goa has the most beautiful beaches in India'將成為‘Goa has the most beautiful [MASK] in India’,該模型的目標(biāo)是根據(jù)上下文詞預(yù)測(cè)[MASK]詞。自動(dòng)編碼器語(yǔ)言模型的優(yōu)點(diǎn)是,它可以看到前向和后向的上下文。但是,由于在輸入數(shù)據(jù)中添加[MASK]引入了微調(diào)模型的差異。
BERT有什么問(wèn)題?
雖然通過(guò)使用AE語(yǔ)言建模BERT幾乎在所有NLP任務(wù)中都實(shí)現(xiàn)了SOTA,但它的實(shí)現(xiàn)仍然存在一些漏洞。BERT模型有兩個(gè)主要缺點(diǎn):
1.由于掩蔽導(dǎo)致的微調(diào)差異
訓(xùn)練BERT以預(yù)測(cè)用特殊[MASK]標(biāo)記替換的標(biāo)記。問(wèn)題是在下游任務(wù)中微調(diào)BERT時(shí),[MASK]標(biāo)記永遠(yuǎn)不會(huì)出現(xiàn)。在大多數(shù)情況下,BERT只是將非掩碼標(biāo)記復(fù)制到輸出中。
那么,它真的會(huì)學(xué)會(huì)為非掩碼標(biāo)記生成有意義的表示嗎?它也不清楚如果輸入句中沒(méi)有[MASK]標(biāo)記會(huì)發(fā)生什么。
2.預(yù)測(cè)的標(biāo)記彼此獨(dú)立
BERT假設(shè)在給定未掩蔽的的標(biāo)記的情況下,預(yù)測(cè)的(掩蔽的)標(biāo)記彼此獨(dú)立。為了理解這一點(diǎn),我們來(lái)看一個(gè)例子。
Whenever she goes to the[MASK][MASK]she buys a lot of[MASK].
這可以填寫為:
Whenever she goes to theshopping center, she buys a lot ofclothes.
或者
Whenever she goes to thecinema hallshe buys a lot ofpopcorn.
而句子:
Whenever she goes to thecinema hallshe buys a lot ofclothes.
是無(wú)效的。BERT并行預(yù)測(cè)所有掩蔽的的位置,這意味著在訓(xùn)練期間,它沒(méi)有學(xué)會(huì)處理同時(shí)預(yù)測(cè)的掩蔽的標(biāo)記之間的依賴關(guān)系。換句話說(shuō),它不會(huì)學(xué)習(xí)到預(yù)測(cè)之間的依賴關(guān)系。它預(yù)測(cè)標(biāo)記彼此之間互相獨(dú)立。這可能是一個(gè)問(wèn)題的原因是這減少了BERT一次學(xué)習(xí)的依賴關(guān)系的數(shù)量,使得學(xué)習(xí)信號(hào)比它原本可能的更弱。
XLNet:排列語(yǔ)言建模
BERT在所有傳統(tǒng)語(yǔ)言模型中脫穎而出的原因在于它能夠捕獲雙向上下文。同樣,它的主要缺陷是在預(yù)訓(xùn)練引入[MASK]標(biāo)記和并行獨(dú)立預(yù)測(cè)。
如果我們以某種方式構(gòu)建一個(gè)包含雙向上下文的模型,同時(shí)避免[MASK]標(biāo)記和并行獨(dú)立預(yù)測(cè),那么該模型肯定會(huì)勝過(guò)BERT并取得最先進(jìn)的結(jié)果。
這基本上就是XLNet所實(shí)現(xiàn)的目標(biāo)。
XLNet通過(guò)使用稱為“排列語(yǔ)言建?!钡恼Z(yǔ)言建模變體來(lái)實(shí)現(xiàn)這一點(diǎn)。訓(xùn)練排列語(yǔ)言模型以預(yù)測(cè)在給定上下文后的一個(gè)標(biāo)記,就像傳統(tǒng)語(yǔ)言模型一樣,但是不是以連續(xù)順序預(yù)測(cè)標(biāo)記,而是以某種隨機(jī)順序預(yù)測(cè)標(biāo)記。為清楚起見(jiàn),我們以下面的句子為例:
“Sometimes you have to be your own hero.”
傳統(tǒng)的語(yǔ)言模型按照下面的順序預(yù)測(cè)標(biāo)記:
“Sometimes”, “you”, “have”, “to”, “be”, “your”, “own”, “hero”
其中每個(gè)標(biāo)記使用所有前面的標(biāo)記作為上下文。
在排列語(yǔ)言建模中,預(yù)測(cè)的順序不一定是從左到右。例如,它可能是:
“own”, “Sometimes”, “to”, “be”, “your”, “hero”, “you”, “have”
其中“Sometimes”會(huì)以看到“own為條件,而“to” 則以看到“own”和“Sometimes”等為條件。
注意如何使用排列語(yǔ)言建模強(qiáng)制模型建模雙向依賴關(guān)系。期望上,模型應(yīng)該學(xué)習(xí)建模所有輸入組合之間的依賴關(guān)系,而傳統(tǒng)語(yǔ)言模型只能在一個(gè)方向上學(xué)習(xí)依賴關(guān)系。
XLNet使用Transformer XL
除了使用排列語(yǔ)言建模之外,XLNet還使用了Transformer XL,它可以進(jìn)一步改善其結(jié)果。
Transformer XL模型背后的主要思想:
相對(duì)位置嵌入
循環(huán)機(jī)制
在對(duì)當(dāng)前段進(jìn)行排列語(yǔ)言建模時(shí),緩存并凍結(jié)來(lái)自前一段的隱藏狀態(tài)。由于來(lái)自前一段的所有單詞都用作輸入,因此不需要知道前一段的排列順序。
雙流自注意力(Two-Stream Self-Attention)
對(duì)于使用Transformer模型的語(yǔ)言模型,當(dāng)預(yù)測(cè)位置i處的標(biāo)記時(shí),該詞的整個(gè)嵌入被掩蔽,包括位置嵌入。這意味著模型與它所預(yù)測(cè)的標(biāo)記位置有關(guān)的知識(shí)隔絕。
這可能是有問(wèn)題的,特別是對(duì)于句子開頭的位置,其與句子中的其他位置具有顯著不同的分布。為了解決這個(gè)問(wèn)題,作者引入了第二組表示,其中包含位置信息,但僅為了預(yù)訓(xùn)練而屏蔽了實(shí)際的標(biāo)記。第二組表示稱為query stream。訓(xùn)練該模型以使用來(lái)自query stream的信息來(lái)預(yù)測(cè)句子中的每個(gè)標(biāo)記。
包括位置嵌入和詞嵌入的原始表示集稱為content stream。這組表示用于在預(yù)訓(xùn)練期間合并與特定單詞相關(guān)的所有信息。content stream用作query stream的輸入。這個(gè)模式稱為“雙流自注意力”。
對(duì)于每個(gè)單詞,query stream使用ontent stream,該ontent stream對(duì)直到當(dāng)前單詞的單詞的所有可用上下文信息進(jìn)行編碼。例如,我們?cè)谙旅娴木渥又蓄A(yù)測(cè) “calm” 一詞:
其中位于排列前面的詞是 “and”和“papers”。content stream將編碼單詞“and”和“papers”的信息,query stream將編碼 “calm”的位置信息,以及結(jié)合來(lái)自content stream的信息,用于預(yù)測(cè)單詞 “calm”。
總結(jié)
XLNet必將成為研究中討論的話題。這表明NLP中的語(yǔ)言建模和遷移學(xué)習(xí)還有很多需要探索的地方。
-
語(yǔ)言建模
+關(guān)注
關(guān)注
0文章
5瀏覽量
6272 -
nlp
+關(guān)注
關(guān)注
1文章
489瀏覽量
22064
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論