語言建模需要對長期依賴性進行建模,它成功應用了無監督的預訓練方法 (Peters et al., 2018; Devlin et al., 2018)。但要讓神經網路對序列資料的長期依賴性建模一直都是一項挑戰。
近期,Al-Rfou 等人(2018)設計了一組輔助損失來訓練深度 Transformer 網路進行字元級語言建模,其結果遠超 LSTM。雖然已經取得成功,但是 Al-Rfou 等人(2018)的 LM 是在長度固定的幾百個字元片段上獨立訓練的,沒有任何跨片段的資訊流。由於上下文的長度是固定的,因此模型無法捕獲任何超過預定義上下文長度的長期依賴性。此外,長度固定的片段都是在不考慮句子或其它語義邊界的情況下通過選擇連續的符號塊來建立的。因此,模型缺乏必要的上下文資訊來很好地預測前幾個符號,這就導致模型的優化效率和效能低下。我們將這個問題稱為上下文碎片化。
為了解決上文提到的上下文固定長度的限制,本文提出了一種叫做 Transformer-XL(超長)的新架構。我們將迴圈概念引入了深度自注意力網路。我們不再從頭計算每個新片段的隱藏狀態,而是重複使用從之前的片段中獲得的隱藏狀態。我們把重複使用的隱藏狀態作為當前片段的記憶體,這就在片段之間建立了迴圈連線。因此,對超長期依賴性建模成為了可能,因為資訊可以通過迴圈連線來傳播。同時,從之前的片段傳遞資訊也可以解決上下文碎片化的問題。更重要的是,我們展示了使用相對位置而不是用絕對位置進行編碼的必要性,因為這樣做可以在不造成時間混亂的情況下實現狀態的重複使用。因此,作為額外的技術貢獻,我們引入了簡單但有效的相對位置編碼公式,它可以泛化至比在訓練過程中觀察到的長度更長的注意力長度。
Transformer-XL 對從單詞級到字符集的五個語言資料集上建模,都獲得了很好的結果。Transformer-XL 提升了當前最佳(SoTA)的結果,它在 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。TransformerXL 在賓州樹庫資料集上在沒有經過微調的情況下也得到了 54.5 的困惑度,在同等配置下這是當前最佳的結果。
我們用了兩種方法來定量研究 Transformer-XL 的有效長度和基線。和 Khandelwat 等人(2018)所做的研究相似,我們在測試時逐漸增加註意力長度,直到觀察不到顯著改善(相對增益小於 0.1%)為止。在這個配置下,我們的最佳模型在 WikeText-103 和 enwiki8 中用的注意力長度分別是 1600 和 3800。此外,我們還設計了一個叫做 Relative Effective Context Length (RECL) 的指標,該指標可以公平比較增加上下文長度對不同模型帶來的收益。在這個配置下,Transformer-XL 在 WikiText-103 中學到 900 個詞的 RECL,而迴圈網路和 Transformer 分別只學到了 500 和 128 個詞。
論文:TRANSFORMER-XL: ATTENTIVE LANGUAGE MODELS BEYOND A FIXED-LENGTH CONTEXT
論文地址:https://arxiv.org/abs/1901.02860
摘要:Transformer 網路具有學習更長期依賴性的潛力,但這種潛力往往會受到語言建模中上下文長度固定的限制。因此,我們提出了一種叫做 Transformer-XL 的新神經架構來解決這一問題,它可以在不破壞時間一致性的情況下,讓 Transformer 超越固定長度學習依賴性。具體來說,它是由片段級的迴圈機制和全新的位置編碼策略組成的。我們的方法不僅可以捕獲更長的依賴關係,還可以解決上下文碎片化的問題。Transformer-XL 學習到的依賴性比 RNN 學習到的長 80%,比標準 Transformer 學到的長 450%,無論在長序列還是短序列中都得到了更好的結果,而且在評估時比標準 Transformer 快 1800+ 倍。此外,我們還提升了 bpc 和困惑度的當前最佳結果,在 enwiki8 上 bpc 從 1.06 提升至 0.99,在 text8 上從 1.13 提升至 1.08,在 WikiText-103 上困惑度從 20.5 提升到 18.3,在 One Billion Word 上從 23.7 提升到 21.8,在賓州樹庫(不經過微調的情況下)上從 55.3 提升到 54.5。我們的程式碼、預訓練模型以及超引數在 TensorFlow 和 PyTorch 中都可以使用。
3 模型
用 Transformer 或自注意力機制進行語言建模的核心問題在於,如何將 Transformer 訓練為可以把任意長度的上下文有效編碼為長度固定的表徵。在給定無限記憶體和計算資源的情況下,一種簡單的方法是用無條件的 Transformer 解碼器處理整個上下文序列,這和前饋神經網路相似。但在實踐中資源都是有限的,因此這種方法不可行。
為了解決使用固定長度上下文的侷限性,我們在 Transformer 架構中引入了迴圈機制。在訓練過程中,為之前的片段計算的隱藏狀態序列是固定的,將其快取起來,並在模型處理後面的新片段時作為擴充套件上下文重複使用,如圖 2a 所示。
儘管在上一小節中提出的想法極具吸引力,但為了重複使用隱藏狀態,我們還有一個尚未解決的重要技術問題。那就是,當我們重複使用隱藏狀態時,要如何保證位置資訊的一致性呢?
解決這個問題的基本思想是隻編碼隱藏狀態中的相對位置資訊。對相對位置進行編碼的想法已經在機器翻譯(Shaw et al.,2018)和音樂生成(Huang et al.,2018)中探索過。我們在此進行了不同的推導,得到了相對位置編碼的新形式,它不僅與絕對位置編碼有一對一的對應關係,而且從經驗上講它的泛化效果更好。
4 實驗