1. XLNet和Bert
首先講講我對(duì)XLNet和Bert比,有什么異同?有什么模型方面的改進(jìn)?的理解
1.1 自回歸語(yǔ)言模型
第一次聽(tīng)到自回歸語(yǔ)言模型(Autoregressive LM)這個(gè)詞。我們知道一般的語(yǔ)言模型都是從左到右計(jì)算某個(gè)詞出現(xiàn)的概率,但是當(dāng)我們做完型填空或者閱讀理解這一類NLP任務(wù)的時(shí)候詞的上下文信息都是需要考慮的,而這個(gè)時(shí)候只考慮了該詞的上文信息而沒(méi)有考慮到下文信息。所以,反向的語(yǔ)言模型出現(xiàn)了,就是從右到左計(jì)算某個(gè)詞出現(xiàn)的概率,這一類語(yǔ)言模型稱之為自回歸語(yǔ)言模型。像堅(jiān)持只用單向Transformer的GPT就是典型的自回歸語(yǔ)言模型,也有像ELMo那種拼接兩個(gè)上文和下文LSTM的變形自回歸語(yǔ)言模型。
1.2 自編碼語(yǔ)言模型
自編碼語(yǔ)言模型(Autoencoder LM)這個(gè)名詞毫無(wú)疑問(wèn)也是第一次聽(tīng)到。區(qū)別于上一節(jié)所述,自回歸語(yǔ)言模型是根據(jù)上文或者下文來(lái)預(yù)測(cè)后一個(gè)單詞。那不妨換個(gè)思路,我把句子中隨機(jī)一個(gè)單詞用[mask]替換掉,是不是就能同時(shí)根據(jù)該單詞的上下文來(lái)預(yù)測(cè)該單詞。我們都知道Bert在預(yù)訓(xùn)練階段使用[mask]標(biāo)記對(duì)句子中15%的單詞進(jìn)行隨機(jī)屏蔽,然后根據(jù)被mask單詞的上下文來(lái)預(yù)測(cè)該單詞,這就是自編碼語(yǔ)言模型的典型應(yīng)用。
1.3 兩種模型的優(yōu)缺點(diǎn)對(duì)比
自回歸語(yǔ)言模型沒(méi)能自然的同時(shí)獲取單詞的上下文信息(ELMo把兩個(gè)方向的LSTM做concat是一個(gè)很好的嘗試,但是效果并不是太好),而自編碼語(yǔ)言模型能很自然的把上下文信息融合到模型中(Bert中的每個(gè)Transformer都能看到整句話的所有單詞,等價(jià)于雙向語(yǔ)言模型),但自編碼語(yǔ)言模型也有其缺點(diǎn),就是在Fine-tune階段,模型是看不到[mask]標(biāo)記的,所以這就會(huì)帶來(lái)一定的誤差。XLNet將二者的上述優(yōu)缺點(diǎn)做了一個(gè)完美的結(jié)合,在自回歸語(yǔ)言模型中自然地引入上下文信息,并且解決自編碼語(yǔ)言模型兩階段保持一致的問(wèn)題。
2. XLNet是怎么做的
XLNet的思路采用的是自回歸語(yǔ)言模型,根據(jù)上文來(lái)預(yù)測(cè)下一個(gè)單詞,但是在上文中添加了下文信息,這樣就既解決了[mask]帶來(lái)的兩階段不一致問(wèn)題和無(wú)法同時(shí)引入上下文信息的問(wèn)題。改進(jìn)之后,取了個(gè)新名字:Permutation Language Model。舉個(gè)例子:輸入句子為x1->x2->x3->x4,假設(shè)我們要預(yù)測(cè)的單詞是x3,那我們需要在x3的上文x1和x2的位置看到x4的信息,這樣才能解決同時(shí)引入上下文的問(wèn)題。那就可以這么做了:隨機(jī)排列組合x(chóng)1、x2、x3、x4的順序,并從中隨機(jī)選擇一部分作為新的句子輸入。比如選擇了x2->x4->x3->x1,那這個(gè)時(shí)候預(yù)測(cè)x3的時(shí)候是不是就能看到上文x2和下文x4的信息了呢,這就是XLNet的基本思路。就是通過(guò)排列組合的方式將一部分下文單詞放到上文單詞的位置,但實(shí)際形式還是一個(gè)從左到右預(yù)測(cè)的自回歸語(yǔ)言模型。
但是我們?cè)贔ine-tune的時(shí)候總不能也隨機(jī)組合輸入的句子吧,那這和加了[mask]有啥區(qū)別呢?別急,繼續(xù)往下看。XLNet在輸入階段并沒(méi)有改變輸入順序,隨機(jī)打亂輸入句子的順序這個(gè)過(guò)程是在Transformer中通過(guò)Attention mask實(shí)現(xiàn)的,就是隨機(jī)掩蓋掉序列中的一些單詞,并將未掩蓋掉的單詞作為預(yù)測(cè)單詞的上文。拿原文中的一個(gè)圖舉例:
右圖的紅色矩陣就是Attention Mask矩陣,1->2->3->4的輸入序列在Attention Mask的作用下變成了3->2->4->1,Attention Mask也分為兩種,一種是能看見(jiàn)自身的Content stream和Query stream。對(duì)于1來(lái)說(shuō)3,2,4就是1的上文,所以第一行全是紅色;對(duì)于2來(lái)說(shuō)上文就只有3,所以對(duì)應(yīng)位置為紅色;對(duì)于3來(lái)說(shuō)沒(méi)有上文,所以全為白色...以此類推。那這樣就實(shí)現(xiàn)了在輸入側(cè)不改變單詞順序,在Transformer內(nèi)部實(shí)現(xiàn)了輸入的隨機(jī)排列了。
-
語(yǔ)言模型
+關(guān)注
關(guān)注
0文章
520瀏覽量
10268 -
nlp
+關(guān)注
關(guān)注
1文章
488瀏覽量
22033
原文標(biāo)題:講講我理解的XLNet
文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語(yǔ)言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論