CMU、谷歌大腦的研究者最新提出萬(wàn)用NLP模型Transformer的升級(jí)版——Transformer-XL。這個(gè)新架構(gòu)在5個(gè)數(shù)據(jù)集上都獲得了強(qiáng)大的結(jié)果,在評(píng)估中甚至比原始Transformer快1800+倍。研究人員公開(kāi)了代碼、預(yù)訓(xùn)練模型和超參數(shù)。
Transformer是谷歌在2017年提出的一個(gè)革新性的NLP框架,相信大家對(duì)那篇經(jīng)典論文吸睛的標(biāo)題仍印象深刻:Attention Is All You Need。
自那以來(lái),業(yè)內(nèi)人士表示,在機(jī)器翻譯領(lǐng)域,Transformer 已經(jīng)幾乎全面取代 RNN。總之 Transformer 確實(shí)是一個(gè)非常有效且應(yīng)用廣泛的結(jié)構(gòu),應(yīng)該可以算是自 seq2seq 之后又一次 “革命”。
最近,CMU的Zihang Dai,Yiming Yang,Jaime Carbonell,Ruslan Salakhutdinov,以及谷歌的Zhilin Yang(楊值麟),William W. Cohen和Quoc V. Le等人提出了Transformer的升級(jí)版——Transformer-XL。這篇論文最初投給ICLR 2019,最新放在arXiv的版本更新了更好的結(jié)果,并公開(kāi)了代碼、預(yù)訓(xùn)練模型和超參數(shù)。
論文地址:
https://arxiv.org/pdf/1901.02860.pdf
Transformer網(wǎng)絡(luò)具有學(xué)習(xí)較長(zhǎng)期依賴關(guān)系的潛力,但是在語(yǔ)言建模的設(shè)置中受到固定長(zhǎng)度上下文(fixed-length context)的限制。
作為一種解決方案,這篇論文提出一種新的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)——Transformer-XL,它使Transformer能夠在不破壞時(shí)間一致性的情況下學(xué)習(xí)固定長(zhǎng)度以外的依賴性。
具體來(lái)說(shuō),Transformer-XL由一個(gè)segment-level的遞歸機(jī)制和一種新的位置編碼方案組成。這一方法不僅能夠捕獲長(zhǎng)期依賴關(guān)系,而且解決了上下文碎片的問(wèn)題。
實(shí)驗(yàn)結(jié)果表明, Transformer-XL學(xué)習(xí)的依賴關(guān)系比RNN長(zhǎng)80%,比vanilla Transformer長(zhǎng)450%,在短序列和長(zhǎng)序列上都獲得了更好的性能,并且在評(píng)估中比vanilla Transformer快1800+倍。
此外,Transformer-XL在5個(gè)數(shù)據(jù)集上都獲得了強(qiáng)大的結(jié)果。研究人員在enwiki8上將bpc/perplexity的最新 state-of-the-art(SoTA)結(jié)果從1.06提高到0.99,在text8上從1.13提高到1.08,在WikiText-103上從20.5提高到18.3,在One Billion Word, 上從23.7提高到21.8,在Penn Treebank上從55.3提高到54.5。
他們公布了代碼、預(yù)訓(xùn)練模型和超參數(shù),在Tensorflow和PyTorch中都可用。
Transformer-XL模型架構(gòu)
為了解決前面提到的固定長(zhǎng)度上下文的限制,Transformer-XL這個(gè)新架構(gòu)(其中XL表示extra long)將遞歸(recurrence)的概念引入到self-attention網(wǎng)絡(luò)中。
具體來(lái)說(shuō),我們不再?gòu)念^開(kāi)始計(jì)算每個(gè)新的段(segment)的隱藏狀態(tài),而是重用(reuse)在前一段中獲得的隱藏狀態(tài)。被重用的隱藏狀態(tài)用作當(dāng)前段的memory,這就在段之間建立一個(gè)循環(huán)連接。
因此,建模非常長(zhǎng)期的依賴關(guān)系成為可能,因?yàn)?a target="_blank">信息可以通過(guò)循環(huán)連接傳播。同時(shí),從上一段傳遞信息也可以解決上下文碎片(context fragmentation)的問(wèn)題。
更重要的是,我們展示了使用相對(duì)位置編碼而不是絕對(duì)位置編碼的必要性,以便在不造成時(shí)間混亂的情況下實(shí)現(xiàn)狀態(tài)重用。因此,我們提出了一個(gè)簡(jiǎn)單但更有效的相對(duì)位置編碼公式,該公式可以推廣到比訓(xùn)練中觀察到的更長(zhǎng)的attention lengths。
原始Transformer模型
為了將Transformer或self-attention應(yīng)用到語(yǔ)言建模中,核心問(wèn)題是如何訓(xùn)練Transformer有效地將任意長(zhǎng)的上下文編碼為固定大小的表示。給定無(wú)限內(nèi)存和計(jì)算,一個(gè)簡(jiǎn)單的解決方案是使用無(wú)條件Transformer解碼器處理整個(gè)上下文序列,類似于前饋神經(jīng)網(wǎng)絡(luò)。然而,在實(shí)踐中,由于資源有限,這通常是不可行的。
圖1:一個(gè)segment長(zhǎng)度為4的vanilla model的圖示
一種可行但比較粗略的近似方法是將整個(gè)語(yǔ)料庫(kù)分割成可管理大小的更短的片段,只在每個(gè)片段中訓(xùn)練模型,忽略來(lái)自前一段的所有上下文信息。這是Al-Rfou et al(2018)提出的想法,我們稱之為原始模型(vanilla model),它的圖示如圖1a。
在評(píng)估過(guò)程中,vanilla 模型在每個(gè)步驟都消耗與訓(xùn)練期間相同長(zhǎng)度的一個(gè)segment,但是在最后一個(gè)位置只是進(jìn)行一次預(yù)測(cè)。然后,在下一步中,這個(gè)segment只向右移動(dòng)一個(gè)位置,新的segment必須從頭開(kāi)始處理。
如圖1b所示,該過(guò)程保證了每個(gè)預(yù)測(cè)在訓(xùn)練過(guò)程中利用的上下文盡可能長(zhǎng),同時(shí)也緩解了訓(xùn)練過(guò)程中遇到的上下文碎片問(wèn)題。然而,這個(gè)評(píng)估過(guò)程成本是非常高的。
接下來(lái),我們將展示我們所提出的架構(gòu)能夠大大提高評(píng)估速度。
Transformer-XL
為了解決固定長(zhǎng)度上下文的局限性,我們建議在Transformer架構(gòu)中引入一種遞歸機(jī)制(recurrence mechanism)。
在訓(xùn)練過(guò)程中,對(duì)上一個(gè)segment計(jì)算的隱藏狀態(tài)序列進(jìn)行修復(fù),并在模型處理下一個(gè)新的segment時(shí)將其緩存為可重用的擴(kuò)展上下文,如圖2a所示。
圖2:一個(gè)segment長(zhǎng)度為4的Transformer-XL模型
這種遞歸機(jī)制應(yīng)用于整個(gè)語(yǔ)料庫(kù)的每?jī)蓚€(gè)連續(xù)的segment,它本質(zhì)上是在隱藏狀態(tài)中創(chuàng)建一個(gè)segment-level 的遞歸。因此,所使用的有效上下文可以遠(yuǎn)遠(yuǎn)超出兩個(gè)segments。
除了實(shí)現(xiàn)超長(zhǎng)的上下文和解決碎片問(wèn)題外,這種遞歸方案的另一個(gè)好處是顯著加快了評(píng)估速度。
具體地說(shuō),在評(píng)估期間,可以重用前面部分的表示,而不是像普通模型那樣從頭開(kāi)始計(jì)算。在enwiki8數(shù)據(jù)集的實(shí)驗(yàn)中,Transformer-XL在評(píng)估過(guò)程比普通模型快1800倍以上。
實(shí)驗(yàn)和結(jié)果
我們將Transformer-XL應(yīng)用于單詞級(jí)和字符級(jí)語(yǔ)言建模的各種數(shù)據(jù)集,與state-of-the-art 的系統(tǒng)進(jìn)行了比較,包括WikiText-103 (Merity et al., 2016), enwiki8 (LLC, 2009), text8 (LLC, 2009), One Billion Word (Chelba et al., 2013), 以及 Penn Treebank (Mikolov & Zweig, 2012).
實(shí)驗(yàn)結(jié)果表明, Transformer-XL學(xué)習(xí)的依賴關(guān)系比RNN長(zhǎng)80%,比vanilla Transformer長(zhǎng)450%,在短序列和長(zhǎng)序列上都獲得了更好的性能,并且在評(píng)估中比vanilla Transformer快1800+倍。
表1:在WikiText-103上與SoTA結(jié)果的比較
表2:在enwiki8上與SoTA結(jié)果的比較
表3:在text8上與SoTA結(jié)果的比較
表4:在One Billion Word上與SoTA結(jié)果的比較
表5:在Penn Treebank上與SoTA結(jié)果的比較
Transformer-XL在5個(gè)數(shù)據(jù)集上都獲得了強(qiáng)大的結(jié)果。研究人員在enwiki8上將bpc/perplexity的最新 state-of-the-art(SoTA)結(jié)果從1.06提高到0.99,在text8上從1.13提高到1.08,在WikiText-103上從20.5提高到18.3,在One Billion Word上從23.7提高到21.8,在Penn Treebank上從55.3提高到54.5。
評(píng)估速度
最后,我們將模型的評(píng)估速度與vanilla Transformer模型進(jìn)行了比較。
如表9所示,與Al-Rfou et al. (2018).的架構(gòu)相比,由于state reuse方案,Transformer-XL的評(píng)估速度加快了高達(dá)1874倍。
表9:評(píng)估時(shí)間比較
結(jié)論
我們提出了一種新的架構(gòu),Transformer-XL,這是一個(gè)超出了固定長(zhǎng)度的上下文限制的self-attention的語(yǔ)言建模架構(gòu)。
我們的主要技術(shù)貢獻(xiàn)包括在一個(gè)純粹的 self-attentive 模型中引入遞歸的概念,并推導(dǎo)出一種新的位置編碼方案。這兩種技術(shù)形成了一套完整的解決方案,因?yàn)樗鼈冎械娜魏我环N單獨(dú)都不能解決固定長(zhǎng)度上下文的問(wèn)題。
Transformer-XL是第一個(gè)在字符級(jí)和單詞級(jí)語(yǔ)言建模方面都取得了比RNN更好結(jié)果的self-attention模型。Transformer-XL還能夠建模比RNN和Transformer更長(zhǎng)期的依賴關(guān)系,并且與vanilla Transformers相比在評(píng)估過(guò)程中取得了顯著的加速。
-
解碼器
+關(guān)注
關(guān)注
9文章
1129瀏覽量
40638 -
谷歌
+關(guān)注
關(guān)注
27文章
6128瀏覽量
104956 -
神經(jīng)網(wǎng)絡(luò)
+關(guān)注
關(guān)注
42文章
4734瀏覽量
100420
原文標(biāo)題:谷歌、CMU重磅論文:Transformer升級(jí)版,評(píng)估速度提升超1800倍!
文章出處:【微信號(hào):AI_era,微信公眾號(hào):新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論