Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context

                                長度可以不一樣的語言模型   (就是依賴下一層和下一層的前一段)

https://arxiv.org/pdf/1901.02860.pdf

transformer 框架有學習長期依賴的潛能,但是 受限於語言模型設置的固定長度。作爲一種解決方法,我們提出一種新穎的網絡結構 Transformer-XL,它能使 Transformer 在不打亂輸入文本的時間序列(文本順序)的情況下,學習不止固定長度的長期依賴 。具體的,它包含了 語句級別的循環機制和一種新穎的位置編碼方案。我們的方法不僅能捕獲長期依賴,而且能夠解決上下文分裂的問題。因此,Transformer-xl 在學習長期依賴 比rnn長80%, 比 vanilla Transformer長450%,在長短序列獲得了好的性能並且 在評價階段比 vanilla Transformer 快1800倍。此外,我們提高了 。。。。我們的代碼,預訓練模型和超參數tensorflow 和pytorch版都能找到。

語言模型是 重要的問題 需要 給長期依賴建立模型,併成功應用比如無監督預訓練。然而,配置 有能力給序列化數據建立長期模型 的神經網絡 已經是一個挑戰。Rnn,特別是lstm網絡,已經是 語言建模的一種標準方法並在多個基準上取得了很好的結果。儘管RNN具有廣泛的適應性,但由於梯度消失和爆炸,RNN很難優化,引進LSTM的gate和梯度截斷技術可能不足以完全解決這一問題。根據經驗,先前的研究發現,LSTM語言模型平均使用200個上下文詞,這表明還有進一步改進的空間。另一方面,在注意力機制中遠距離單詞對的直連,可能會更容易優化並能夠學習長期依賴 。最近,Al-Rfou爲訓練字符級語言模型 設計了一套備用損失  來 訓練深度transformer 網絡 。雖然 用 Al-Rfou訓練的語言模型 來訓練 (把幾百個字符 分割成固定長度的片段),但是在片段上沒有任何信息流。由於固定的上下文長度,模型不能捕獲超出預定義上下長度的任何長期依賴。此外,通過選擇連續的符號塊而不考慮句子或任何其他語義邊界 創建固定長度片段。因此,該模型缺乏必要的上下文信息,無法很好地預測前幾個符號,導致優化不足和性能低下。我們把這個問題認爲上下文碎片。

爲了解決之前提到的固定長度上下文的限制,我們提出一種新的結構 叫transformer-xl(意思是超長)。我們將循環的觀念引入到深層self-attention網絡。特別是,我們重用了前面片段獲得的隱藏狀態,而不是從頭開始爲每一個新的片段計算隱藏狀態。重用的隱藏狀態爲現在的片段作爲記憶,這在片段之間構建了循環聯繫 。因此,長期依賴的模型變成了可能,因爲信息能夠通過循環聯繫傳播。同時,之前片段的信息也能解決上下文碎片化問題。更重要的是,我們展示了 使用相對位置編碼而不是絕對位置編碼的必要性,爲了在不造成時序混亂的情況下實現狀態重用。因此,作爲一種額外的技術貢獻,我們引進一種簡單但是十分有效的相對位置編碼公式,該公式能推廣到  比訓練時看到的 更長的注意力長度。

Transformer-xl從詞級別到字符級別的語言模型 在五個數據集上獲得了非常好的結果 。Transformer-xl提高了之前最先進的結果 在 enwiki8上 bpc 從1.06到0.99,在text8 上bpc 從1.13到1.08,在wikitext-103上困惑度從20.5到18.3,在One Billion Word困惑度從23.7變化到21.8。在小數據集上,Transformer-xl在Penn Treebank數據集上 沒有微調 的困惑度是54.5,在考慮可比設置時,這是最先進的結果。

我們使用兩種方法來量化研究 tranformer-xl和 基線  的有效長度。與Khandelwal et al 類似,我們在測試時間逐漸增加注意力長度,直到不能觀察到顯著的提高(%0.1的相對增加)。我們在wikitext-103和enwiki8最好的模型的注意力長度分別是1600和3800。此外,我們設計了一種測量方法叫 相對有效上下文長度(recl),旨在對不同模型增加上下文長度 帶來的收益進行公平比較。在上下文長度,transformer-xl 在wikitext-103的recl是900,循環網絡和transformer的上下文長度僅僅是500和128.

2相對工作

在過去的幾年,語言建模領域取得了許多重大進展,包括但不限於設計新穎的結構更好的encoder上下文,提高正則化和優化算法;Press&Wolf 加速了softmax 計算並豐富了 輸出分佈族。

爲了捕獲語言模型的長範圍的上下文,直接將更廣泛的上下文表示作爲附加輸入 輸入到網絡中。目前的工作 從 手動自定上下文向量 到  依賴 從數據當中學到的文檔級的話題。

更廣泛地說,在通用序列建模中,如何捕獲長期依賴性一直是一個長期存在的研究問題。從這個角度來看,自LSTM的自普遍適應以來,人們一直致力於消除消失梯度問題,包括更好的初始化、額外的丟失信號、增強記憶結構和其他修改RNN內部結構以簡化優化。與之不同的是,我們的工作是基於Transformer體系結構的,並且表明語言建模作爲一個現實世界的任務  有益於學習長期依賴的能力。

3 模型

假設一個 詞集 x = (x1, . . . , xT ),語言模型的任務是 來估計聯合概率 P(x) ,P(x)通常 被自動迴歸分解成 P(x) =  Ⅱt P(xt | x<t)。

通過因式分解,問題 簡化爲估計每個條件因子。在這項工作中,我們堅持使用標準的神經方法來建模條件概率。特別的,一個訓練的神經網絡需要去把 X<t 編碼成一個 固定大小的隱藏狀態,用它乘以 詞向量獲得 logits.然後將 logits 輸入到softmax函數當中,產生一個 關於下一個詞 的 類別可能性(就是具體判斷下一個詞是什麼)

3.1 普通的transformer框架 

爲了 把transformer 或self-attention引用到語言模型上,中心問題是如何 訓練一個transformer 來有效的 把一個任意長度的上下文 編碼 成一個 固定長度的向量。假設給無限的 內存和計算力,一個簡單的方案就是 把整個上下文序列 作爲一個 絕對的transformer 解碼器 ,類似於前饋神經網絡。然而,這個在實際中通常是行不通。

圖1 

一個可行但粗糙的近似方法是將整個語料庫分割成易處理大小的較短片段,僅僅用 每個片段來訓練模型,忽略以前段中的所有上下文信息。這個想法 被Al-Rfou採納。我們稱他爲 通用模型,直觀的圖如Fig1.a。在這種訓練模式下,信息在向前或向後的傳遞過程中都不會跨段流動。使用固定長度上下文有兩個關鍵限制。首先,最長的可能依賴長度是由分段的長度限制,這是字符級語言建模上的幾百個長度。因此,雖然self-attention 機制 相對於Rnns 受到梯度消失的影響更小,但是 通用模型 不能充分利用這種優化優勢。第二,雖然可以用padding來關注 句子或者其他語義邊界,但是實際上爲了效率 標準做法是 將長文本簡單地分成固定長度的段。然而簡單的 將長文本簡單地分成固定長度的段將會導致 section1討論的上下文碎片問題。

在評估過程中,在每個步驟中,Vanilla模型也會消耗 和訓練階段相同長度的 segment,但只在最後一個位置做預測。然後,在下一步中,該段只向右移動一個位置,新段必須從頭開始處理。如圖1b所示,此過程確保預測每個 使用 在訓練過程中暴露的 儘可能長的上下文,這也減輕了訓練過程中遇到的上下文碎片問題。然而,這種評估程序非常昂貴。我們將展示我們提出的架構能夠大幅度提高評價速度。

3.2 segment-level 循環,狀態重用

爲了解決使用固定長度上下文的侷限性,我們建議在Transformer架構中引入一種遞歸機制。在訓練過程中,爲前一段計算的隱藏狀態序列是固定的,並 緩存 以在模型處理下一個新段時作爲擴展上下文重用,如Fig,2a所示。儘管梯度仍然保留在一個段中,但是這種額外的輸入允許網絡利用 之前的信息,從而能夠建模長期依賴關係並避免上下文碎片化。形式上,讓長度L的兩個連續段分別爲sτ=[xτ,1,···,xτ,l]和sτ+1=[xτ+1,1,···,xτ+1,l]。用 來表示第n層第i 段 序列的隱藏狀態,d是隱藏維度。然後,生成段sτ+1的第n層隱藏狀態(示意圖),如下所示:

#           

其中,函數sg(·)代表停止梯度,符號表示沿兩個隱藏序列在長度維度 上串聯,w·表示模型參數。與標準transformer相比,關鍵的區別在於和值取決於擴展上下文,因此上一段 的被緩存。我們通過圖Fig.2a中的綠色路徑強調這種特殊設計。

這種循環機制應用於語料庫的每兩個連續片段,它本質上是在隱藏狀態方面創建segment循環。因此,利用的有效上下文可以遠遠超出兩個部分。然而,注意,之間的循環依賴 每段向下移動一層,這與傳統RNN LMS中的相同層循環不同。因此,最長的可能依賴長度 隨着 層數和 segment長度 線性增長,也就是O(N*L),如Fig2b陰影區顯示的。

這類似於截斷的BPTT(Mikolov等人,2010),一種技術訓練RNN LMS而開發。但是,與截斷的BPTT不同,我們的方法緩存一系列隱藏狀態,而不是最後一個狀態,並且它應該與Section 3.3節中描述的相對位置編碼技術一起應用。

除了實現超長的上下文和解決碎片化,循環機制帶來的另一個好處是評估速度顯著加快。具體來說,在評估過程中,可以重複使用前面部分的表示,而不是像普通模型那樣從頭開始計算。在我們在enwiki8上的實驗中,Transformer XL的速度是評估期間普通模型的1800倍以上(見第4節)。

最後,請注意,循環機制不需要僅限於前一個段,理論上,只要GPU內存允許,我們可以緩存儘可能多的前一個段,

在處理當前段時 將它們全部重用爲額外的上下文。

我們可以緩存一個預先定義的長度爲m的、儘可能跨越多個段的隱藏狀態,由於與記憶增強神經網絡有明確的聯繫,它們稱爲

m nτ∈rm×d,。在我們的實驗中,在訓練期間 我們將m設置爲段的長度,並在評估期間將其增加多倍。

3.3相對位置編碼 

雖然我們發現上一小節中提出的想法非常有吸引力,但爲了重用隱藏狀態,我們還沒有解決一個關鍵的技術挑戰。也就是說,當我們重用狀態時,如何保持位置信息的一致性?

回想一下,在Transformer-xl中,順序信息由一組位置編碼提供,

用符號  表示,其中i-th (第i行 )對應於一句話(就是 一個segmnet)中第i個 絕對位置,是 要建模的最大可能長度(就是 最長的那句話的長度)。真正的輸入到Transfromer 的是 wordembedding和 postion embedding  字方向的和。我們簡單地將這種位置編碼與上面介紹的遞歸機制相適應,隱藏狀態序列將按照下圖計算 :

代表 序列的詞向量,f表示 轉變函數。注意,這兩個都和 相同的位置編碼 有關。因此,模型沒有信息去區分 (第 r段的 第 j個字 和第r+1段的第 j個字)的位置信息 對於任何 j=1...L,導致了完全的性能損失。

爲了避免這種失敗的模型,基本思想是隻對隱藏狀態下的相對位置信息進行編碼。從概念上講,位置編碼爲模型提供了時間了線索or bias (偏見),關於應該如何收集信息,即去哪裏學習。出於同樣的目的, 不是 在初始 embedding 中靜態地加入偏差,而是可以將相同的信息注入到每個層的注意力得分中。更重要的是,以相對的方式定義時間偏差更爲直觀和通用。

例如,當向量和(相互作用時 ,我理解的就是 第r 段的 第i個字 和 第i個位置之前的字 相互作用時),不需要知道每個key 向量的絕對位置  就可以確定 segment的時間順序。它足以知道每個與他自己 之間的相對距離,即i−j。實際上,我們可以創建一組相對位置編碼,其中第i行表示兩個位置的相對距離i。(這段我的理解是 創建一個 seq *seq的矩陣 ,比如第一行表示 seg的第一個字 和seg其他字的相對位置信息)。通過動態地將相對距離注入注意力得分中,q vector 可以從他們的不同距離  很容易地區分 ,使得狀態循環機制可行。同時,我們不會丟失任何時間信息,因爲絕對位置可以從相對距離遞歸恢復。

在此之前,在機器翻譯和音樂生成的背景下,已經探討了相對位置編碼的idea。在這裏,我們提供了一個不同的推導,得出了一種新的相對位置編碼形式,它不僅與絕對位置編碼有一對一的對應關係,而且在經驗上具有更好的泛化(見Seciton 4)。首先,在標準 Transformer中,同一segment 的  的注意力 得分可以 分解爲

根據只依賴相對位置信息的思想,我們建議 按照如下  重新構建 這四個術語 :

第一個變化是 我們把 b 和d 中   計算 k vectors時的 絕對位置embedding 全部用 

替換 。這從本質上反映了優越性  ,就是隻有相對距離纔對 在那裏相互作用 才重要。注意,R是一個 不可學習參數,是正弦編碼矩陣。

第二,我們引入了一個可訓練參數 來替換 C中的 。在這種情況下,由於所有q 位置q vector都是相同的,因此建議不管q 位置如何,對不同單詞的關注偏差都應該保持不變。同理,在d中 用可訓練參數 

來替換 

最後,爲了 生成基於內容的  k vectors 和基於位置的 q vectors,我們故意將兩個權重矩陣分開。

它表明,不管q的位置如何,對不同單詞的關注偏差應該保持不變。

在新的參數下,每個術語有直接的意義:a 表示基於內容的 addressing,b 捕獲了與內容相關的位置偏差,術語(c)控制全局

內容偏差,(d)表示 全局位置偏差。

 的公式 僅有術語a和b,沒有c和d兩個偏執。此外,把 乘法合併成了一個可訓練矩陣,它丟失了  以 原正弦位置的 構建的  偏差(意思就是  正弦編碼距正構建了 d ,d是偏差 就是 丟失了d).

相比之下,我們的相對位置embedding R 改變 正弦曲線公式。作爲歸納偏差的一個好處,一個在某個特定長度的 上訓練的模型 ,在評估過程中可以 自動地通用 至原來的幾倍。

將遞推機制與我們提出的相對位置embedding 相結合,最終得到Transformer-XL結構。爲了完整性,

我們將單注意頭 n層Transformer-xl的計算過程總結如下:

定義爲 序列的詞向量。此外,值得一提的 是 計算A一種蠢的方式是 爲 all pairs(i,j) 的計算 

,這個 消耗 是序列長度的二次方。然而,注意,值i-j是從 0變化到到 seq length,我們在附錄B裏展示了 一種簡單的計算方法,這會是 cost 和 序列長度是線性相關的

4.實驗

4.1主要結果 

我們將Transformer-xl 在多種數據集上 建立word-level 和character-level的語言模型,以便與最先進的系統進行比較,

包括  WikiText-103 (Merity et al.,2016), enwiki8 (LLC, 2009), text8 (LLC, 2009), One Billion Word (Chelba et al., 2013), and PennTreebank (Mikolov & Zweig, 2012).

wikitext-103是目前最大的 具有長期依賴性的單詞級語言建模基準。它包含來自28K篇文章的103M訓練詞,每篇文章平均長度爲3.6K個詞,這可以測試  長期依賴模型 的能力。我們在訓練期間將注意力長度設置爲384,在評估期間將注意力長度設置爲1600。我們採用自適應SoftMax和input representations 。如表1所示,Transformer-XL將以前的Sota困惑度 從20.5減少到18.3,這展示了 transformer-XL架構的優越性。

數據集enwiki8包含100M 未處理的wikipedia文本。我們將我們的架構與Table2中以前的結果進行了比較。在模型大小限制下,12層變Transformer-XL獲得了一個最先進的結果,比al-rfou等人的12層普通 Transformer高出0.05,而這兩種Transformer 變體比傳統的基於RNN的模型有較大的 增加 。值得注意的是,我們的12層架構實現了與通用 Transformer 64層網絡相同的結果,但僅使用17%的參數預算。爲了觀察增大模型大小 是否能獲得更好的性能,我們對18層和24層Transformer-XLS訓練。在訓練時注意力集中度爲784,評估時注意力集中度爲3800,我們獲得了一個新的SOTA結果,我們的方法是在廣泛研究字符級 基準 的基礎上首次突破1.0。與Al Rfou不同,transformer-XL不需要任何輔助損失,因此所有的好處都歸功於一個更好的體系結構。

text8與Enwiki8相似但不同的是,text8包含100M 處理過的wikipedia字符,這100M字符 是通過降低文本大小寫並刪除26個字母a到z 以及空格 以外的任何字符  創建。由於相似性,我們只需將Enwiki8上的最佳模型和相同的超參數  應用在text8上,而無需進一步調整。與以前方法的比較總結在Table3。同樣,Transformer XL以明顯的優勢實現了新的SOTA結果。

One Billion Word 並沒有保留任何長期的依賴關係,因爲句子已經被打亂了。因此,這個數據集主要測試 短期依賴建模的能力 。

Transformer-XL與其他方法的比較見Table4。雖然Transformer XL主要是爲了更好地捕獲長期依賴性,但它顯著地將單模型SOTA從23.7提高到21.8。具體來說,Transformer XL超過 同時代 使用通用Transformers的方法,表明Transformer-XL的優點可推廣到對短序列的建模。

我們也在Table5中報告了word-level 的penn treebank的結果。與AWD-LSTM類似,我們將變分輟學和加權平均應用於變壓器XL。通過適當的正則化,Transformer XL在沒有兩步微調的模型中獲得了一個新的SOTA結果。Penn Treebank只有1百萬個訓練標記,這意味着Transformer XL即使在小數據集上也能很好地推廣。

。。。。。這個就不翻譯了 主要就是看這個模型的優越性,很容易看  

5總結

我們提出了一種新的架構Transformer XL,對 不止固定長度的上下文 使用 self-attention 架構進行語言建模。我們的主要技術貢

我們的主要技術貢獻包括在一個純粹的self-attention 模型中引入遞歸的概念,並提出一種新的位置編碼方案。這兩種技術形成了一套完整的解決方案,因爲它們中的任何一種都不能解決定長上下文的問題。Transformer XL是第一個在字符級和詞級別的 語言模型 上都比RNN取得顯著效果的 self-attention模型。Transformer XL還能夠 比RNN和Transformer  建模更長期的依賴關係,並且與普通 Transformers 相比,在評估過程中實現了實質性的加速。

 

 

 

 

 

論文 臨近新年,大家新年快樂 

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