文獻(xiàn)鏈接及詳解見 文獻(xiàn)閱讀(1)-UniLMv2
1. 背景
BERT的出現(xiàn)將NLU問題的SOTA向前提升了很大的一步哩治,然而茬斧,由于BERT屬于Autoencoding語言模型秀仲,需要通過上下文信息來預(yù)測被mask掉的token臀防,在生成模型中會面臨訓(xùn)練過程與預(yù)測過程不一致的問題代虾。因此,BERT并沒有在NLG問題中取得那么好的效果燃异。
UniLMv1用一種elegent的方式將BERT應(yīng)用在NLG任務(wù)中吴裤,并且在使用同一個(gè)model的情況下,僅通過mask矩陣控制輸入就進(jìn)行了不同語言模型的訓(xùn)練日裙。對NLU任務(wù)就是直接使用BERT祭衩,而對seq2seq任務(wù)則是把BERT的"S1 [EOS] S2"當(dāng)成 encoder-decoder結(jié)構(gòu)。UniLMv1可以說結(jié)合了Autoencoding和Autoregressive兩種模型的優(yōu)點(diǎn)阅签,在NLU和NLG任務(wù)中都取得了SOTA的結(jié)果掐暮。
然而,雖然在形式上UniLMv1通過mask矩陣用BERT模擬了Autoregressive模型政钟,但Autoregressive中的一個(gè)核心精髓并沒有體現(xiàn)出來路克,也就是一個(gè)詞預(yù)測的概率和之前預(yù)測出的概率相關(guān)。
更深入的解釋這句話养交,BERT中的掩碼[Mask]之間是相互獨(dú)立的精算。比如“意大利面醬中除了牛肉還需要用到洋蔥和西芹”,如果我們把“洋蔥”和“西芹”mask掉碎连,利用BERT去預(yù)測這兩個(gè)詞灰羽,是分別預(yù)測“洋蔥”和“西芹”。而事實(shí)上,在預(yù)測出“洋蔥”之后廉嚼,“西芹”的概率理應(yīng)受到“洋蔥”的影響玫镐,這在生成任務(wù)中是很自然的,但BERT并沒有很好的體現(xiàn)這一點(diǎn)怠噪。那么本質(zhì)上仍是BERT的UniLMv1自然也不能體現(xiàn)這個(gè)特點(diǎn)恐似。
從另一方面出發(fā),如果我們使用GPT等傳統(tǒng)的Autoregressive模型傍念,他的分解序列都是單向的(GPT的雙向也只是從左到右和從右到左各來一次LSTM矫夷,沒有體現(xiàn)出BERT中“天涯若比鄰”的優(yōu)勢),不能很好的利用全局信息憋槐。因此有了后來的XLNet双藕,把一個(gè)序列的所有tokens做一次全排列,綜合考量所有分解順序阳仔,每種分解序列都做一個(gè)Autoregressive忧陪,這樣實(shí)際上全局信息還是被捕獲到了。
而UniLMv2驳概,則是在BERT的架構(gòu)下赤嚼,結(jié)合了XLNet序列分解的想法旷赖,在UniLMv1中消除了[Mask]之間的獨(dú)立性顺又,又保留了不同語言模型共享參數(shù)的統(tǒng)一訓(xùn)練模式,從而取得了比UniLMv1更好的效果等孵。
2. 實(shí)現(xiàn)思路
2.1 掩碼塊和分解序列
類似于XLNet稚照,把masked positions做一次全排列。例如俯萌,mask掉第二果录,第四和第五個(gè)tokens,那么全排列有六種咐熙。
當(dāng)序列是時(shí)弱恒,掩碼概率是
事實(shí)上,相鄰tokens間往往會有較強(qiáng)的關(guān)系棋恼,為了避免模型過多的只學(xué)到local關(guān)系而忽視global關(guān)系返弹,UniLMv2采取了Partially Autoregressive,將一個(gè)或幾個(gè)相鄰tokens封裝入一個(gè)span爪飘,對于整個(gè)個(gè)序列的所有spans义起,相當(dāng)于還是Autoregressive,但每個(gè)span中的tokens不相互attention师崎,這樣避免了總是focus在local shortcuts上默终。
還是剛才的序列,把4, 5封裝在一個(gè)span里,序列變?yōu)?img class="math-inline" src="https://math.jianshu.com/math?formula=2%20%5Cto%204%2C5" alt="2 \to 4,5" mathimg="1">齐蔽,掩碼概率變成了
2.2 偽掩碼預(yù)訓(xùn)練模型
這一部分的描述在原文中比較清晰两疚,可以參考我的文獻(xiàn)閱讀筆記 文獻(xiàn)閱讀(1)-UniLMv2
UniLMv2和UniLMv1一脈相承的點(diǎn)是都用mask矩陣來優(yōu)雅地控制輸入進(jìn)行訓(xùn)練,但UniLMv2中肴熏,mask矩陣的設(shè)計(jì)要更加復(fù)雜鬼雀,我們來看一個(gè)mask矩陣的樣例:
self-attention公式為:
在公式中可以看出mask矩陣的第項(xiàng)表示 output 能不能看到 input 的信息(能就是0,不能就是)蛙吏。
把矩陣行列調(diào)整一下順序更有助于我們理解(行是output源哩,列是input):
也就是論文中的:
從中我們可以總結(jié)出如下幾個(gè)原則:
1. 掩碼 [M] 和未被mask的原碼(這里是)能看到的信息:
- 所有的掩碼 [M] 和所有未被mask的原碼()。
(這其實(shí)就是Autoencoder鸦做,也就是BERT的訓(xùn)練方式励烦。事實(shí)上左上角是個(gè)矩陣,也就是說mask矩陣不起任何作用泼诱,可以直接拿掉坛掠,就變成了Autoencoder)
2. 被mask掉的原碼()能看到的信息:
- 所有的掩碼 [M],所有未被mask的原碼(左半邊7治筒,8屉栓,9行)。
- 它們自身耸袜。
- 分解序列中前序序列的原碼友多。這里分解序列是,因此可以看到但看不到堤框,只能看到他們自己域滥。(這體現(xiàn)出了序列分解Autoregressive的思想)
3. 偽掩碼 [P] 能看到的信息:
- 所有的掩碼 [M]和所有未被mask的原碼(左半邊11,12蜈抓,13行)启绰。
- 它們自身。
- 前序序列的原碼沟使,比如這里(的偽掩碼)能看到委可。
這樣的設(shè)計(jì)同時(shí)結(jié)合了Autoencoder和 Partially Autoregressive,AE就是矩陣腊嗡。
而PAR着倾,按照如上的原則,我們看一下偽掩碼 [P] 都能看到什么:
而這正是PAR的設(shè)計(jì):
另外叽唱,值得注意的是屈呕,偽掩碼實(shí)際上起到的是占位符的作用,因此可以看到原碼時(shí)棺亭,則對應(yīng)的 [P] 不能被看到虎眨。比如不能看到,不能看到(不能看到不是因?yàn)檎嘉唬琼樞蛏媳旧砭涂床坏剑┧宰6?img class="math-inline" src="https://math.jianshu.com/math?formula=P_2" alt="P_2" mathimg="1">因?yàn)榭吹搅?img class="math-inline" src="https://math.jianshu.com/math?formula=X_4%2CX_5" alt="X_4,X_5" mathimg="1">就看不到岳守。因此,最終呈現(xiàn)上偽掩碼只能被同一span內(nèi)的偽掩碼看到碌冶。
這樣的設(shè)計(jì)原則湿痢,除了同時(shí)體現(xiàn)出AE和PAR(也就是本文說的對兩種LM參數(shù)共享,一次forward就把兩個(gè)LM都訓(xùn)練了扑庞,計(jì)算效率高)以外譬重,還有一個(gè)很重要的點(diǎn),就是防止信息泄露
信息泄露分為兩種:
1. 直接泄露:
所有的掩碼罐氨,如果直接看到其所對應(yīng)原碼臀规,quiz的設(shè)計(jì)就失去意義了,訓(xùn)練時(shí)只需要把權(quán)重堆在這個(gè)通路上就行了栅隐,一定會過擬合塔嬉。
上述原則可以觀察到,無論是 [M] 還是 [P]租悄,都無法看到其所對應(yīng)的原碼谨究,這樣就避免了直接泄露。
2. 間接泄露:
因?yàn)閙odel的結(jié)構(gòu)是多層attention泣棋,因此如果存在這樣一條路徑(兩層attention造成的)胶哲,的偽掩碼間接接觸了它的原碼,也會造成過擬合的問題外傅。
觀察上面的規(guī)則纪吮,我們先除去AE部分的和(因?yàn)橛稍瓌t1俩檬,這一部分只能看到這一部分自己萎胰,形成了閉環(huán),而閉環(huán)內(nèi)顯然是不存在直接泄露的棚辽,通路中一旦鏈到了這個(gè)閉環(huán)技竟,也就無法泄露,因此可以去除掉)
我們先看及其偽掩碼屈藐。只能看到榔组,而永遠(yuǎn)只能看到。另一個(gè)角度联逻,只能被以及看到搓扯,而的閉環(huán)顯然是看不到這些的。
和也是一樣包归,只能看到它自己和锨推,而只能看到它們自己,因此永遠(yuǎn)看不到。事實(shí)上换可,只能被它自己看到椎椰。
通過上述分析我們可以看出,被mask掉的原碼只能被它們自己沾鳄,以及后序的原碼和偽掩碼看到慨飘。而由原則3,偽掩碼只能看到它們自己和前序的原碼译荞,前序原碼又只能看到更前序的原碼瓤的,永遠(yuǎn)看不到后序的原碼和偽掩碼,因此不存在這樣一條通路的存在吞歼,也就杜絕了間接泄露堤瘤。
2.3 預(yù)訓(xùn)練
類似UniLMv1,在同時(shí)訓(xùn)練Autoencoding模型和Partially Autoregressive時(shí)共享參數(shù)浆熔,使訓(xùn)練出的model能夠結(jié)合兩種語言模型的優(yōu)點(diǎn)本辐。而誤差函數(shù)則是兩種語言模型誤差的和。
3.結(jié)論
在許多NLG和NLU的baseline上取得了SOTA医增,證明了模型的有效性慎皱。對PMLM進(jìn)行的消融研究表明了兩種語言模型在預(yù)訓(xùn)練時(shí)是互補(bǔ)的。