基於深度self-attention的字符集語言模型(transformer)論文筆記

論文題目:Character-Level Language Modeling with Deeper Self-Attention

論文地址:https://arxiv.org/abs/1808.04444v1

摘要

      LSTM和其他RNN的變體在字符級別的語言建模方面取得了很好的成功。這些模型一般情況下都會使用反向傳播來進行訓練,並通常把這些模型的成功歸結與RNN結構的長時記憶能力。在本文中,我們將爲大家介紹一個深層(64層)的transformer模型。在2個常用的測試基準數據集上這個模型結構取得大大優於RNN變種的成績(1.13 bits per character on text8 and 1.06 on enwik8),成爲目前最爲領先的技術。在得到這個良好的結果過程中,我們證明了在中間網絡層和中間序列位置附加損失是非常重要的。

簡介

       自然語言文本的字符集建模存在很多挑戰。首先,模型必須“從頭開始”學習大量的詞彙。其次,自然文本很難處理數百或者數千長距離步長的序列問題(長時依賴)。第三,字符集序列要比單詞級序列長很多,因此需要更多的計算步驟。

        近年來的,高級的語言模型普遍遵循一個套路,使用相對較短的序列長度(例如限制爲200個字符)對小批量的文本序列訓練RNN模型。那麼怎麼捕獲上下文信息呢?我們按順序訓練數據批次,並將前以批次的隱藏狀態傳遞給當前批次。這個過程稱爲“truncated backpropagation through time” 按時間的反向傳播(TBTT),很顯然RNN的梯度計算不會每個批次更新一步。到目前已經出現了很多優化TBTT的算法。

        雖然這樣的結構取到了很好的成效,但是它增加了訓練的複雜性。但最近一些研究表明,用這樣的方式訓練模型實際上並沒有真的得到‘很強’的長期記憶能力。例如Khandelwal等人,發現基於單詞的LSTM語言模型只能有效地使用約200個上下文(即使提供了更多),並且該單詞順序僅在最後的~50個標記內有效。

        本文中,我們使用了一個非循環的神經網絡結構並在基於字符級的語言模型上取得了強有力的結果。具體來說,我們使用了一個基於transformer self attention層的深度網絡。這個模型從訓練語料的隨機位置訓練每個小批次的序列,取消了RNN的按時傳遞信息的方式,使用causal (backward-looking) attention的方式反向傳播。

        我們有個很重要的發現就是transformer很適合語言模型的建模,並且是達到了可以取代RNN的位置。我們推transformer的成功源於它能夠‘快速的’在任意距離上傳播信息。相比之下,RNN需要逐步學習來傳遞相關信息。我們還發現,對基礎transformer架構進行一定的修改可能會帶來一定的益處。但最重要的,我們添加了3個auxiliary losses,要求模型預測即將到來的字符

  1. 在序列中的位置。
  2. 隱藏層中的表示。
  3. 在目標位置預測未來的的多少個步驟。

這些損失加速了收斂,使得我們可以訓練更深層的網絡。

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