Transfomer XL翻譯

翻譯:***
審覈:yphacker
原論文
論文代碼

摘要

Transformers 具有學習longer-term dependency的潛力,但在語言模型設置中受到固定長度的上下文的限制。我們提出了一種新的 Transformers-XL,它可以在不破壞時間一致性的情況下,使學習 dependency超出固定長度的限制。它包括一種分段recurrence機制和一種新的位置編碼方案。我們的方法不僅能夠捕獲longer-term的 dependency關係,而且還解決了上下文fragmentation問題。因此,TransformerXL學習的 dependency比RNNs長80%,比vanilla Transformers長450%,在短序列和長序列上都獲得更好的性能,在評估期間比vanilla Transformers快1800多倍。值得注意的是,我們將enwiki8上的bpc/perplexity的最新結果提高到0.99,text8提高到1.08,WikiText-103提高到18.3,Billion Word提高到21.8,Penn Treebank提高到54.5(無微調)。當只在WikiText-103上進行訓練時,Transformer XL設法生成具有數千個標記的合理連貫、新穎的文本文章。我們的代碼、預訓練模型和超參數在Tensorflow和PyTorch1中都可用。

1.簡介

語言模型是需要模型longer-term dependency關係的重要問題之一,成功的應用包括無監督的預訓練(Dai and Le,2015;Peters et al.,2018;Radfordtal.,2018;Devlinetal.,2018)。然而,要使神經網絡具有對序列數據進行longer-term dependency模型的能力,一直是一個挑戰。遞歸神經網絡(RNN),特別是長短期記憶(LSTM)網絡(Hochreiter和Schmidhuber,1997),已經成爲語言模型的標準解決方案,並在多個基準上獲得了很好的結果。儘管RNN具有廣泛的適應性,但由於梯度消失和爆炸,很難進行優化(Hochreiter等人,2001),在LSTMs中引入選通和梯度剪裁技術(Graves,2013)可能不足以完全解決這個問題。根據經驗,先前的研究發現,LSTM語言模型平均使用200個上下文單詞(Khandelwal等人,2018年),表明還有進一步改進的空間。

另一方面,在注意機制中烘焙的長距離詞對之間的直接連接可能會簡化優化,並使longer-term dependency的學習成爲可能(Bahdanau等人,2014;Vaswani等人,2017)。最近,Al-Rfou等人。(2018)設計了一組輔助損耗,用於訓練用於字符級語言模型的Transformer 網絡,其性能大大優於LSTMs。儘管取得了成功,但在Al-Rfou等人的LM培訓。(2018)在幾百個字符的獨立固定長度段上執行,沒有跨段的任何信息流。由於固定的上下文長度,模型無法捕獲超出預定義上下文長度的任何longer-term dependency項。此外,固定長度的段是通過選擇一個連續的符號塊而創建的,而不考慮句子或任何其他語義邊界。因此,該模型缺乏必要的上下文信息來很好地預測前幾個符號,從而導致效率低下的優化和性能低下。我們把這個問題稱爲上下文fragmentation。

爲了解決上述定長上下文的侷限性,我們提出了一種稱爲Transformer XL(意思是超長)的新架構,我們在arXiv:1901.02860v3[cs.LG]2009年6月2日的self-attention網絡中引入了recurrence的概念。特別是,我們不再從頭開始計算每個新段的隱藏state,而是重用以前段中獲得的隱藏state。重用的隱藏state用作當前段的內存,從而在段之間建立一個循環連接。因此,模型非常longer-term的 dependency成爲可能,因爲信息可以通過 recurrence 連接傳播。同時,從上一個片段傳遞信息也可以解決上下文fragmentation的問題。更重要的是,我們展示了使用相對位置編碼而不是絕對位置編碼的必要性,以便在不造成時間混亂的情況下實現state重用。因此,作爲一個額外的技術貢獻,我們引入了一個簡單但更有效的相對位置編碼公式,該公式將attention長度開擴到比訓練期間觀察到的更長的時間。

2.相關工作

在過去幾年中,語言建模領域取得了許多重大進展,包括但不限於設計新的架構以更好地編碼上下文(Bengioet al.,2003;Mikolov et al.,2010;Merity et al.,2016;al Rfou et al.,2018),改進正則化和優化算法(Gal and Ghahramani,2016),加快Softmax計算(Grave等人,2016a),豐富distribution family產量(Yang等人,2017)。

爲了在語言模型中捕獲long-range上下文,一行工作直接將更廣泛上下文的表示作爲附加輸入輸入輸入到網絡中。現有的工作包括手動定義上下文表示的工作(Mikolov和Zweig,2012;Ji等人,2015;Wang和Cho,2015)以及 dependency從數據中學習到的文檔級主題的其他工作(Dienget al.,2016;Wang等人,2017)。

更廣泛地說,在通用序列模型中,如何捕獲longer-term dependency關係一直是一個longer-term的研究問題。從這個角度來看,由於LSTM的普遍適應性,人們在消除消失梯度問題上付出了很多努力,包括更好的初始化(Leetal.,2015)、額外的丟失信號(Trinhetal.,2018)、增強的存儲結構(Keetal。,以及其他修改RNN內部架構以簡化優化的方法(Wu等人,2016;Li等人,2018)。與之不同的是,我們的工作基於Transformer架構,並表明語言模型作爲一個真實的任務受益於學習longer-term dependency的能力。

3.模型

給定一個標記x=(x1;:::;x t)的語料庫,語言模型的任務是估計joint概率P(x),它通常被auto-regressively 分解爲P(x)=qtp(xtjx<t)。通過因子分解,問題歸結爲估計每個條件因子。在這項工作中,我們堅持使用標準的neural方法來建模條件概率。具體地說,使用可訓練neural網絡將上下文x<t編碼成一個固定大小的隱藏state,然後與單詞嵌入相乘得到logits。然後將logit輸入到Softmax函數中,生成下一個token上的分類概率分佈。

3.1 普通的Transformer模型

爲了應用Transformer或self-attention tomlanguage建模,核心問題是如何訓練Transformer將任意長的上下文有效地編碼成固定大小的表示,一個簡單的解決方案是使用一個無條件的unconditional Transformer 來處理整個上下文序列,類似於一個feed-forward neural 網絡,但是在實際應用中,由於資源有限,這通常是不可行的。

在這裏插入圖片描述

圖1:分段長度爲4的vanilla模型的圖解。

一種可行但粗糙的近似方法是將整個語料庫分割成可接受大小的人的較短片段,並且只在每個片段中訓練模型,而忽略以前片段中的所有上下文信息。這是Al-Rfou等人採用的想法。(2018年)。我們稱之爲vanilla模型,可以在圖1a中看到。在這種訓練規範下,信息不會在向前或向後的過程中跨段流動。使用固定長度上下文有兩個關鍵限制。首先,最大可能的 dependency項長度由段長度上界,在字符級語言模型中,段長度是幾百(Al-Rfou等人,2018)。因此,雖然與RNNs相比,消失梯度問題對self-attention機制的影響較小,但vanilla模型並不能充分發揮這一優化優勢。第二,儘管可以使用填充來尊重句子或其他語義邊界,但實際上,由於效率的提高,將長文本簡單地分塊成固定長度的片段一直是標準做法(Peters等人,2018;Devlin等人,2018;al-Rfou等人,2018)。然而,簡單地將一個序列分塊成固定長度的片段將導致第1節中討論的上下文fragmentation問題。

在評估過程中,在每個步驟中,vanilla模型也會消耗與訓練相同長度的一個片段,但只在最後一個位置進行一次預測。然後,在下一步中,段只向右移動一個位置,新的段必須從頭開始處理。如圖1b所示,此過程確保每次預測都利用訓練期間儘可能長的暴露上下文,並且還緩解訓練中遇到的上下文fragmentation問題,這個評估程序非常昂貴。我們將證明我們提出的架構能夠顯著提高評估速度。

3.2 Segment-Level重複使用的情況

爲了解決使用固定長度上下文的侷限性,我們建議在Transformer架構中引入vanilla機制。在訓練過程中,爲前一段計算的隱藏state序列是固定的,並被緩存,以便在模型處理下一個新段時作爲擴展上下文重用,如圖所示。2a.儘管梯度仍然保持在一個段內,但是這個額外的輸入允許網絡利用歷史中的信息,從而能夠使模型longer-term dependency關係並避免上下文fragmentation。形式上,讓長度L的兩個連續段分別爲sτ=[xτ;1;···;xτ;L]和sτ+1=[xτ+1;1;···;xτ+1;L]。用nτ2rl×d表示爲τ-th段sτ產生的第n層隱藏state序列,其中d是隱藏維數,然後(示意性地)爲sτ+1段產生的第n層隱藏state如下:

在這裏插入圖片描述

其中,函數SG(·)表示停止梯度,符號hu·hv表示兩個隱藏序列沿長度維度的串聯,W表示模型參數。與標準Transformer相比,關鍵區別在於,鍵knτ+1和值vτn+1取決於擴展上下文hen-1τ+1,因此hn-1τ從上一段緩存。我們通過圖2a中的綠色路徑強調這一特殊設計。

在這裏插入圖片描述

圖2:具有4段長度的Transformer-XL模型的圖示。

當這種recurrence機制應用於一個語料庫的每兩個連續的片段時,它實質上在隱藏state下創建了一個segment-level 的 recurrence。因此,所使用的有效上下文可以遠遠超過兩個片段,但是注意,hnτ+1和hnτ-1之間的recurrent dependency使每個片段向下移動一層,這不同於傳統RNN LMs中的same-layer recurrence。因此,最大可能的 dependency長度線性增長w.r.t.層的數量和段的長度,即O(N×L),如圖2b中陰影區域所示。這類似於之前版本的BPTT(Mikolov等人,2010),一種爲訓練rnnlm而開發的技術。但是,與之前版本的BPTT不同,我們的方法緩存的是按順序排列的隱藏state,而不是最後一個state,應該與第3.3節中描述的相對位置編碼技術一起應用。

除了實現超長上下文和解決fragmentation問題外,recurrence方案帶來的另一個好處是評估速度大大加快。具體來說,在評估過程中,可以重複使用前面部分的表示,而不是像vanilla模型那樣從頭開始計算。在我們在enwiki8上的實驗中,Transformer XL在評估過程中比vanilla模型快1800多倍(見第4節)。

最後,請注意,recurrence方案不需要僅限於前一段。理論上,我們可以在GPU內存允許的情況下緩存儘可能多的先前段,並在處理當前段時將它們全部作爲額外上下文重用。因此,我們可以緩存跨越(可能)多個段的預訓練長度爲M的舊隱藏state,並將其稱爲內存mnτ2 RM×d,這是由於與內存增強nerve網絡的清晰連接(graves et al.,2014;Weston etal.,2014)。在我們的實驗中,我們在訓練過程中將M設置爲分段長度,並在評估過程中多次增加。

3.3 相對位置編碼

以便重複使用隱藏的state。也就是說,在重複使用state時,如何保持位置信息的一致性?回想一下,在標準Transformer中,序列順序信息由一組位置編碼提供,表示爲U 2 RLmax×d,其中第i行Ui對應於段內的第i絕對位置,Lmax規定了模型的最大可能長度。然後,Transformer的實際輸入是單詞嵌入和位置編碼的元素相加。如果我們簡單地將這種位置編碼應用於我們的recurrence機制,隱藏state序列將通過
hτ+1=fhτEsτ+1+U1:Lhτ=fhτ1Esτ+U1:L hτ+1=f(hτ;Esτ+1+U1:L)hτ=f(hτ-1;Esτ+U1:L);

式中,Esτ2rl×d是sτ的字嵌入序列,f表示變換函數。請注意,Esτ和Esτ+1都與相同的位置編碼U1:L相關聯。因此,對於任何j=1;:::;L,模型都沒有信息來區分xτ;j和xτ+1;j之間的位置差,從而完全導致性能的損失。

爲了避免這種失效的state,基本思想是隻對隱藏state下的相對位置信息進行編碼。從概念上講,位置編碼爲模型提供了一個時間線索或關於信息應該如何收集的“bias”,即,在哪裏參與。出於同樣的目的,我們可以將相同的信息注入到每一層的attention score中,而不是靜態地將bias加入到初始嵌入中。更重要的是,用一種相對的方式來定義時間bias更爲直觀和普遍。例如,當一個查詢向量qτ;i在關鍵向量kτ;≤i上參與時,不需要知道每個關鍵向量的絕對位置來識別片段的時間順序。相反,只需知道每個鍵向量kτ;j與其自身qτ;i,即i-j之間的相對距離就足夠了。實際上,可以創建一組相對位置編碼R 2 RLmax×d,其中第i行Ri表示兩個位置之間i的相對距離。通過將相對距離動態地加入到attention score中,查詢向量可以很容易地區分xτ;j和xτ+1;j的不同距離表示,使得state重複使用機制成爲可能。同時,我們不會丟失任何時間信息,因爲絕對位置可以從相對距離的recurrence找到。

此前,相對位置編碼的思想已經在machine translation(Shawetal.,2018)和music generation(Huangetal.,2018)的背景下進行了探索。這裏,我們提供了一種不同的推導,得出了一種新的相對位置編碼形式,它不僅與絕對位置編碼有一對一的對應關係,而且與絕對位置編碼也有一對一的對應關係在empirically上有更好的概括(見第4節)。首先,在標準Transformer(Vaswani等人,2017)中,按照只 dependency相對位置信息的思想,將查詢qi和同一段內的密鑰向量kj之間的attention score進行分解,我們建議的四個reparameterize如下

在這裏插入圖片描述

根據只 dependency相對位置信息的思想,我們建議四個reparameterize如下

在這裏插入圖片描述

  • 我們所做的第一個改變是將用於計算(b)和(d)項中的密鑰向量的絕對位置嵌入Uj的所有外觀替換爲其相對對應的Ri-j。這基本上反映了只有相對距離纔對attend有影響。注意,R是一個正弦編碼矩陣(Vaswani等人,2017),沒有可學習的參數。

  • 其次,我們引入一個可訓練的參數U 2 Rd來替換 query U>i Wq>(c)。在這種情況下,由於query向量對於所有query位置都是相同的,因此建議不管query位置如何,對不同單詞的 attentive bias 都應該保持不變。通過類似的推理,在術語(d)中添加一個可訓練的參數v2rd來代替U>i Wq>。

  • 最後,我們故意將兩個權重矩陣Wk;E和Wk;R分開,分別生成基於內容的密鑰向量和基於位置的密鑰向量。

在新的parameterization 下,每個term 都有一個直觀的含義:term(a)表示基於內容的尋址,term(b)bias捕獲 dependency內容的位置 ,term(c)bias控制全局內容,和(d)bias編碼全局位置。

相比之下,Shaw等人(2018)中的公式只有(a)和(b)項,去掉了(c)和(d)兩個bias項。此外,Shaw等人(2018年)將multiplication WkR合併爲單個可訓練矩陣R^,從而放棄了原始的sinusoid位置編碼中內置的inductive bias(Vaswani等人,2017年)。相比之下,我們的相對位置嵌入R適應sinusoid公式。作爲inductive bias的一個優點,在一定長度的存儲器上訓練的模型在評估過程中可以自動地推廣到更長的存儲器。

將recurrence機制與我們提出的相對位置嵌入相結合,我們最終得到了Transformer XL架構。爲了完整起見,我們總結了一個N層Transformer XL的計算過程。對於n=1;::;n:

在這裏插入圖片描述

h0τ:=Esτ定義爲單詞嵌入序列。此外,值得一提的是,計算a的簡單方法需要計算所有對(i;j)的Wk;R n Ri-j,其代價是序列長度的二次w.R.t。然而,注意到i-j的值只在0到序列長度之間變化,我們在附錄B中給出了一個簡單的計算過程,它降低了將序列長度線性化的成本。

4.實驗

4.1主要成果

我們將Transformer XL應用於單詞級和字符級語言模型的各種數據集,以與當前系統的狀態進行比較,包括WikiText-103(Merityetal.,2016)、enwik8(LLC,2009)、text8(LLC,2009)、One Billion Word (Chelba et al.,2013)和Penn Treebank(Mikolov and Zweig,2012)。

在這裏插入圖片描述

圖1:WikiText-103上最新結果的比較。表示當代作品。

在這裏插入圖片描述

圖2:enwik8的最新結果對比。

WikiText-103是目前最大的具有longer-term dependency的單詞級語言模型基礎。它包含來自28K篇文章的103M個訓練 token,每篇文章的平均長度爲3.6K個 token,這允許測試longer-term dependency模型的能力。在訓練中我們將attention 長度設置爲384,在評估中設置爲1600。我們採用了自適應softmax和representations輸入(Baevski和Auli,2018;Grave等人,2016a)。如圖1所示,Transformer XL將先前的state-of-theart(SoTA)perplexity狀態從20.5減少到18.3,這表明Transformer XL架構的優越性。

數據集enwik8包含100M字節未處理的Wikipedia文本。我們將我們的體系結構與圖2中先前的結果進行了比較。在模型大小約束下,12層Transformer XL實現了一個新的SoTA結果,其性能優於來自Al-Rfou等人的12層vanilla Transformer。(2018)到0.05,而Transformer variants比傳統的RNN-based模型有很大的差距。值得注意的是,我們的12層架構實現了與Al-Rfou等人的64層網絡相同的結果。(2018年),僅使用參數預算的17%。爲了驗證增大模型尺寸是否能獲得更好的性能,我們對18層和24層Transformer-XLs進行了模型尺寸增大的訓練。訓練時的注意長度爲784,評估時的注意長度爲3800,我們得到了一個新的SoTA結果,並且我們的方法在 widely-studied的特徵水平基準上首次突破了1.0。不同於Al-Rfou等人。(2018年),Transformer XL不需要任何輔助損耗,因此所有的好處都歸功於更好的架構。

在這裏插入圖片描述

圖3:text8與最新結果的比較

在這裏插入圖片描述

圖4:與One Billion Word的最新結果的比較。表示當代作品。

與enwik8類似但不同的是,text8包含100個經過處理的Wikipedia字符,這些字符是通過降低文本大小寫並刪除除26個字母a到z以外的任何字符和空格創建的。由於兩者的相似性,我們只需將enwik8上的最佳模型和相同的hyper parameters調整爲text8,而無需進一步調整。圖3總結了與以往方法的比較。同樣,Transformer XL以一個清晰的邊距實現了新的SoTA結果。

在這裏插入圖片描述

圖5:與Penn Treebank最新結果的比較。y表示使用two-step微調。

One Billion Word 單詞不會保留任何longer-term的 dependency,因爲句子被重新了。因此,該數據集主要測試僅對短期 dependency模型的能力。Transformer XL與其它方法的比較如圖4所示。雖然Transformer XL主要是爲了更好地捕獲longer-term dependency而設計的,但是它以顯著地成績將單一模型SoTA從23.7改進到21.8。具體來說,Transformer XL明顯優於使用vanilla Transformers的當代方法(Baevski和Auli,2018),這表明Transformer XL的優勢可以推廣到模型短序列。

我們還在圖5中報告單詞級Penn Treebank的結果。與AWD-LSTM(Merity等人,2017)類似,我們對Transformer XL應用了variational dropout和 weight average 。通過proper regularization,Transformer XL在沒有two-step調整的模型之間獲得了新的SoTA結果。Penn Treebank只有100萬個訓練token,這意味着Transformer XL甚至在小數據集上也具有很好的通用性。

4.2 Ablation研究

我們進行了兩組ablation研究,以檢驗兩種在Transformer XL中使用的技術的效果:recurrence機制和新的位置編碼方案。

第一項研究是在WikiText-103上進行的,它需要對長期 dependency模型,結果見圖6。在比較的編碼方案中,Shaw等人。(2018)是相對的,而Vaswani等人。(2017)和Al-Rfou等人。(2018)是絕對的。“Full”和“half”損失是指將cross entropy損失應用於該段的所有或最近的半個位置。我們發現絕對編碼只適用於half損失,因爲half損失排除了訓練期間attention長度很短的位置,以便更好地泛化。圖6顯示了recurrence機制和我們的編碼方案對於獲得最佳性能以及在評估期間推廣到更長的attention序列都是必要的。雖然訓練過程中的反向傳播長度只有128,但使用這兩種技術,測試時的attention長度可以增加到640。在151M參數的標準設置中,隨着attention長度的增加,perplexity 降低。

由於recurrence機制需要額外的內存,因此我們還比較了Transformer XL與相同GPU內存約束下的同一代。如附錄A中的表10所示,儘管使用較短的反向傳播長度,Transformer XL仍然優於同一代。

第二項研究的目標是從捕獲更長的上下文長度中分離出解決上下文fragmentation問題的效果。爲了實現這一目標,我們特意選擇了一個不需要長期 dependency的數據集,這樣,從建立recurrence開始的任何改進都可以歸因於解決上下文fragmentation。具體來說,我們在One Billion Word的數據集上執行這個控制實驗,這隻會從移除上下文fragmentation中受益。我們訓練了一個20層Transformer XL和∼0.3B參數爲400K步。如表7所示,即使不需要long-term dependency,使用segment-level recurrence也能顯著提高性能,這與我們之前關於recurrence機制解決上下文 fragmentation問題的討論是一致的。此外,我們的相對位置編碼也優於Shaw等人。(2018)關於短序列。

4.3 Relative Effective Context Length

在這裏插入圖片描述

圖6:WikiText-103的Ablation研究。對於前兩個模塊,我們使用一個稍小的模型(128M參數)。y表示相應的行減少到與中的Transformer 網絡相同的設置(Al-Rfou et Al.,2018),只是我們的實驗中沒有實現兩個輔助損耗。“PPL init”是指使用與訓練相同的長度,“PPL best”是指使用最佳長度所獲得的perplexity。“Attn Len”是評價過程中爲達到相應結果(PPL-best)而儘可能短的attention長度。在評估期間增加attention長度僅在使用我們的位置編碼時提高性能。“Transformer XL(151M)”設置使用標準參數預算作爲先前的工作(Merity等人,2018),在評估期間增加attention長度時我們觀察到類似的效果。

在這裏插入圖片描述

表7:One Billion Word的Ablation研究,一個沒有long-term dependency的數據集。

在這裏插入圖片描述

圖8:Relative effective context length (RECL)比較。RECL和r的定義見正文。在計算RECL時,前三個模型和後四個模型作爲兩個模型組進行比較(RECL是根據模型組而不是單個模型計算的)。每個組都有相同的budget參數。

在這裏插入圖片描述

圖9:評估期間運行時間的減慢。評估基於一個GPU上的每個token時間。

Khandelwal等人。(2018)提出了一種評估序列模型Effective Context Length(ECL)的方法。ECL是增加上下文範圍將導致增益超過閾值的最長長度。然而,ECL忽略了這樣一個事實,即當一個模型僅使用較短的上下文就已經達到較低的 perplexity時,很難得到改進,因此它不適合在多個模型之間進行公平比較。我們提出了一種新的度量方法,稱爲 Relative Effective Context Length(RECL)。RECL是在一個模型組而不是單個模型上定義的,長上下文的增益是通過相對於最佳短上下文模型的相對改進來衡量的。因此,模型組共享相同的一代以實現公平比較。RECL還有一個參數r,這意味着限制top-r 示例的比較。如圖8所示,Transformer XL在r=0:1的情況下,成功地建立了平均900字長的 dependency模型。Transformer xl的重合度分別比recurrence網絡和Transformer 長80%和450%。recurrence機制和我們的位置編碼都有助於延長RECL。這進一步證實了我們的論點,即Transformer XL能夠對長期 dependency模型。

4.4 Generated Text

只在中等大小的WikiText-103上訓練,Transformer XL已經能夠用數千個標記生成相對一致的文章,而無需手動挑選,儘管有一些小缺陷。示例見附錄E。

4.5評估速度

最後,我們將模型的評估速度與vanilla Transformer模型進行了比較(AlRfou等人,2018)。如圖9所示,由於採用了狀態重用方案,在評估期間,變Transformer XL的速度提高了1874倍。

5. 結論

Transformer XL獲得了很強的perplexity結果,比RNNs和Transformer建立了longer-term的依賴模型,在評估過程中獲得了顯著的加速,並且能夠生成連貫的文本文章。我們展望了Transformer XL在文本生成、unsupervised 特徵學習、圖像和語音模型等領域的有趣應用。

感謝

ZD和YY部分由國家科學基金會(NSF)在IIS-1546329撥款項下和DOE科學辦公室在ASCR-KJ040201撥款項下提供支持。ZY和RS部分由海軍研究辦公室撥款N000141812861、NSF撥款IIS1763562、Nvidia獎學金和Siebel獎學金資助。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章