transform-xl翻譯

剛畢業於三本末流學校,四級未過,由於工作需要,便來來翻譯一下論文,可能有很多差錯,歡迎指正。

1.介紹

語言建模是需要對長期依賴關係建模的重要問題之一,它具有成功的應用程序,如無監督的訓練(Peters et al., 2018; Devlin et al.,2018)。然而,如何使神經網絡具備在序列數據中建模長期依賴關係的能力,一直是一個挑戰。遞歸神經網絡(RNNs),尤其是LSTM(Hochreiter & Schmidhuber, 1997),已經成爲語言建模的標準解決方案,並在多個基準上取得了很好的效果。儘管具有廣泛的使用,RNNs由於梯度消失和梯度爆炸問題導致難以優化(Hochreiter et al., 2001),在LSTMs中引入控制門和提督裁剪技術(Graves,
2013; Pascanu et al., 2012)也許不能有效的解決這個問題。根據經驗先前的工作經驗,LSTM語言模型平均使用200個上下文詞彙(Khandelwal et al.,2018),這表明了有進一步改進的餘地。

另一方面,注意力機制中的長距離詞對之間的直接聯繫可以簡化優化,並使學習長期依賴關係成爲可能(Bahdanau et al.,2014; Vaswani et al., 2017).。最近,Al-Rfou et al. (2018)設計了一套輔助損失用於訓練深層transformer networks 用於字符級語言建模,它的表現遠遠超過了LSTM。儘管在Al-Rfou et al. (2018)的訓練取得成功,但是是在幾百個字符的分隔固定長度段上執行的,在segments之間沒有任何信息流通。由於固定上下文長度,模型不能捕獲任何長期依賴超過????。此外,固定長度的segments是在相關句子或者其它語義邊界的情況下選擇一些連續的字符來創建的。因此,模型預測前幾個字符缺乏必要的上下文信息,導致模型優化沒有效率和不好的執行效果。我們將這個上下文問題稱爲上下文碎片。

爲了解決上述固定長度上下文的侷限性,我們提出了一種新的體系結構,Transformer-XL (meaning extra long).我們在把這個概念引入深層的自我注意力網絡。特別是,我們不再從零開始計算每個新段的隱藏狀態,而是重用在以前的段中獲得的隱藏狀態。重用的隱藏狀態用作當前段的內存,在這些段之間建立一個循環連接。因此,更長期的依賴關係建模成爲可能,因爲信息可以通過循環連接傳播。同時,從前一段傳遞信息也可以解決上下文分割的問題。更重要的是,我們展示了使用相對位置編碼而不是絕對編碼的必要性,以便在不引起時間混亂的情況下啓用狀態重用。因此,作爲一項額外的技術貢獻,我們引入了一種簡單但更有效的相對位置編碼公式,它可以概括到比訓練中觀察到的更長的注意長度。

2.相關工作

3.模型

給一個預料庫x = (x1; : : : ; xT ),這個language model是估計聯合概率P(x),它通常被自動分解爲

通過這個分解的公式,我們可以看出這個問題歸結爲對每個條件概率的求解。在本論文中,我們堅持用標準的神經元來建模求條件概率。具體而言,一個可訓練的神經網絡將上下文x<t編碼爲固定大小的隱藏狀態,它與單詞Embedding相乘獲得標籤,然後將這個標籤輸入到softmax函數,求出下一個詞類別概率。

3.1 VANILLA TRANSFORMER LANGUAGE MODELS

爲了將transform或self-attention應用於語言建模,核心問題是如何訓練一個Transformer,能夠有效地將任意長的上下文編碼成固定大小的表示。給定無限的內存和計算條件,一個簡單的解決方案是使用一個無條件的Transformer decorder來處理整個上下文序列,類似於前饋神經網絡。然而,在實際資源有限的情況下,這通常是不可行的。

一個可行但粗略的近似方法是將整個語料庫分割成較短的可管理大小的片段,並且只在每個片段中對模型進行訓練,而忽略了來自前幾個片段的所有上下文信息。這個想法被Al-Rfou et al. (2018).採用。我們可以稱它爲Vanilla模型並且在圖片1(a)中將它可視化。在這種訓練模式下,無論向前或向後傳遞,信息都不會跨段流動。使用固定長度上下文有兩個關鍵限制:首先,最大可能的長期依賴長度是以segment長度爲上限的,在字符級別的建幾百個模型。因此,雖然self-attention機制與Rnns相比,受消失梯度問題的影響較小,但是Vanilla model沒有充分利用這個優勢。其次,雖然可以使用填充句子或者其它語義邊界,在實踐中,由於效率的提高,簡單地將長文本塊成固定長度序列已成爲標準做法(Peterset al., 2018; Devlin et al., 2018; Al-Rfou et al., 2018).。但是,如果簡單地將序列分塊到固定長度的序列中,就會導致在部分中討論的上下文碎片問題。

在評估中,在每一步,vanilla model也同樣用一個與訓練長度相同的的segment,僅僅只在最後一個位置做了一個預測。然後,在下一個步驟中,segment只向右移動一個位置,而新segment必須從頭開始處理。如圖1b展示,這個過程確保在訓練過程中,每個預測使用最長暴露的上下文,並且緩解在訓練過程中遇到的上下文碎片問題。然而這種評價過程代價是很大的。我們將展示我們提出的體系結構能夠大大提高評估速度。

3.2 SEGMENT-LEVEL RECURRENCE WITH STATE REUSE

爲了解決使用固定長度的上下文的侷限性,我們建議引入在transformer體系結構中引入一種循環機制。在訓練期間,爲前面的segment計算的隱藏狀態序列是固定的並被緩存的,以便在模型處理下一個新segment時作爲擴展上下文重用,如圖2a所示.雖然梯度仍然保持在segment內,但是這個額外的輸入允許網絡利用歷史上的信息,從而能夠建模更長期的依賴關係和避免上下文碎片。在形式上,這兩個連續segment的長度L是,用表示第四segment產生的第n層隱狀態序列,其中d是隱藏層維度。

然後,segment的 第n層隱藏狀態生成過程如下:

這裏的SG(·)函數代表stop-gradient,表示沿着長度維度連接兩個隱層序列,W爲模型的參數。與標準的Transformer相比,關鍵的區別在於Key 和value 是以擴展上下文緩存前面segment信息。我們通過圖中2a的綠色路徑來強調這個特殊的設計。這種遞歸機制應用於語料庫的每兩個連續segment,本質上是在隱藏狀態下創建分段級遞歸。因此,所使用的有效語境可以遠遠超過兩個部分。但是,注意這個循環依賴在之間,每一段向下移動一層,這與傳統的RNN-LMs從相同的層循環不同。因此最大可能的依賴長度在層數和segment長度上呈線性增長w.r.t,,在圖2b中展示。這類似於截斷的BPTT(Mikolov et al., 2010),一種訓練RNN-LMs的技巧。然而,我們的方法是不同於RNN-LMs,它是緩存隱狀態的序列來代替RNN-LMs中只保留最後一個隱狀態的,它被一起應用於相關位置編碼技術通過3.3部分來闡述。

除了解決超長上下文記憶和上下文碎片問題之外,提出循環這個方案的另一個好處是大大加快了評估速。尤其是在評估期間,來自前面的segment的表示可以重用,而不是像vanilla model那樣從頭開始計算。在enwiki8實驗中,Transformer-XL是Vanilla model的1800+倍。

最後,請注意,遞歸方案不需要僅限於前一段。理論上,我們可以在GPU內存允許的範圍內緩存儘可能多的以前segment,並在處理當前segment時將它們作爲額外的上下文重用。因此,由於與內存增強神經網絡(Graves et al.,2014;Weston et al., 2014)的明確連接,我們可以緩存一個預先定義長度-M的舊隱藏狀態跨越(可能)多個segment的,並將它們稱爲內存 

在我們的實驗中,我們訓練的時候,設置M等於segment長度,並且在評估過程中將其增加了多次。

3.3 RELATIVE POSITIONAL ENCODINGS

雖然我們發現上一小節中提出的想法非常有吸引力,但是爲了重用隱藏的狀態,我們還沒有解決一個關鍵的技術挑戰。也就是說,當我們重用狀態時,如何保持位置信息的一致性?回想一下,在標準的Transformer中,序列順序的信息由一組位置編碼提供。符號爲,這裏第i行Ui是對應segment中第i個的絕對位置,Lmax規定要建模的最大可能長度。然後,Transformer的真正輸入是按元素添加word embedding和positional encodings。如果我們簡單地將這種位置編碼與上面介紹的遞歸機制相適應的話,隱藏的狀態序列將按照下圖展示計算:

 

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