你可能不再需要Attention:這是一個賊簡單的神經機器翻譯架構
自從注意力機制與編碼器解碼器架構在 NMT 模型中佔統治地位後,就很少有研究者質疑它們的威力。而最近華盛頓大學的研究者移除了這兩種結構,並採用一種類似語言模型的極簡 NMT 架構。因為崇尚LSTM無所不能且模型結構賊簡單,他們的模型甚至能做到即時翻譯。
自從編碼器解碼器架構崛起以來,主流的 神經機器翻譯 (NMT)模型都使用這種架構,因為它允許原文序列長度和譯文序列長度不一樣。而自 Bahdanau 等研究者在 14 年提出基於注意力的 NMT 模型後,基於編碼器解碼器架構的 NMT 模型差不多都會加上注意力機制。尤其是在 2017 年谷歌發表論文「Attention is all your need」後,注意力機制更是坐上了寶座,這篇論文相當於進一步形式化表達了注意力機制,並提出了只使用 Multi-head Attention 的翻譯模型 Transformer。
隨後 Transformer 在 神經機器翻譯 領域一發不可收拾,目前大多數主流的機器翻譯系統都使用這種完全基於注意力機制的架構。此外,Transformer 在很多 NLP 任務上都有非常好的表現,例如BERT預訓練模型、計算句子間的相似性以及問答系統等。總的而言,Transformer 可以視為一種「全連線」網路,它會關注句子間所有詞的相互關係,這樣相當於無視了詞的空間距離,因此能建模詞與詞之間的長期依賴關係。
但是最近 Ofir Press 等研究者表示也許我們可以不要注意力機制,也不要編碼器解碼器架構, 神經機器翻譯 的效果甚至會更好。他們在論文中總結到幾乎所有流行的 NMT 模型都有下面兩個屬性:
-
解碼器在原文的隱藏向量上執行一個注意力機制。
-
編碼器和解碼器是兩種不同的模組,且在解碼器開始運算前編碼器需要先編碼原文語句的資訊。
在這篇文章中,我們介紹了 Ofir Press 等研究者的探索,他們嘗試在不使用上面兩種機制的情況下測試 NMT 模型的效能到底有多好。它們先從 Bahdanau 等人在 2014 年的研究出發移除注意力機制,並且將編碼器和解碼器統一為一個「賊簡單」的完整模型,它的輕量程度甚至和一般的語言模型差不多。
簡化模型的後果就是翻譯的速度「異常」迅速,基本上只要在讀取第一個詞後就能馬上提供對應的譯文,並且在讀取完最後一個原文詞後就能完成整句的翻譯。
具體而言,這種即時翻譯(eager translation)模型使用恆定的記憶量,因為在每一個時間步上,它只會使用前一個時間步而不是前面所有時間步的隱藏狀態。他們的方法不是將整個原文句子塞入單個隱藏向量,而是將原文句子的字首向量和前一時間步的翻譯結果填充到一個動態的記憶向量,並即時預測對應的譯文(目標 Token)。這一過程會重複進行,且每次會讀取一個原文詞。
如下展示了即時翻譯模型的主要結構,因為它將編碼器解碼器架構統一為類似語言模型的結構,所以為了處理原文序列和譯文序列序列的長度不相等情況,他們會採用 ε 作為一種佔位符補全譯文長度,並在全部翻譯完後刪除所有ε。但是如果原文序列不夠長而譯文序列很長呢?那麼就需要給原文末尾也要加上ε了。
圖 1:即時翻譯模型將句子「The white dog」翻譯為西班牙語。原文(譯文)token 用藍色(紅色)字體表示。ε是 padding token,在後處理中要移除。上圖展示了兩層LSTM的即時翻譯模型。
在實踐中,即時翻譯所要求的大多數修正都會影響到預處理過程,所以總而言之它需要大量的資料預處理過程,包括詞對齊等。在 Ofir Press 等人的試驗中,他們證明了這種極簡的即時翻譯模型與基於注意力的機器翻譯模型(Bahdanau et al., 2014)效果相當,它在長序列翻譯任務上比基於注意力的要更優秀,但在短序列上效果更差。
論文:You May Not Need Attention
-
論文地址:https://arxiv.org/pdf/1810.13409.pdf
-
專案地址:https://github.com/ofirpress/YouMayNotNeedAttention
摘要:在 神經機器翻譯 即 NMT 中,如果沒有注意力機制和分離的編碼器-解碼器結構,我們能得到多好的結果?為了回答這個問題,我們引入了一個迴圈神經翻譯模型,它沒有使用注意力機制,並且也沒有分離的編碼器-解碼器結構。我們的即時翻譯(eager translation)模型具有低延遲,能在讀取第一個源 token 的時候寫出目標 token,並在解碼過程中只需要常量的記憶體。該模型的效能和 Bahdanau 等人在 2014 年提出的基於注意力機制的模型相當,並在長句子翻譯中表現得更好。
即時翻譯模型的訓練需要先對訓練集進行預處理。首先我們需要推斷源/目標句對之間的對應關係,假定一個目標詞對應(至多)一個源詞,正如 Brown et al. (1993) 所做的。然後我們要讓源/目標句 (s_i , t_j ) 對進行位移處理,使得對於所有 (s_i , t_j ), i ≤ j。
為此,我們首先使用現成的對齊模型 (fast align; Dyer et al., 2013),然後插入最少數量的 ε token 到目標句中,如圖 2 所示。這些 ε token 在訓練和推斷中會用到,但在生成翻譯的後處理步驟中會移除。當句子對長度不同時,也會插入ε token 使它們變得相同。
圖 2:源(藍)和目標(紅)序列在預處理前(a)和後(b)的對齊狀態。
實驗結果
在英到法(EN→FR)和英到德(EN→DE)翻譯任務上,我們都是在 WMT 2014 資料集上訓練的,使用 newstest2013 作為驗證資料集,並在 newstest2014 上測試。
我們使用 4 個有 1000 個單元的LSTM層作為我們的即時模型,並且嵌入向量的大小是 500。模型在訓練中對LSTM和嵌入使用 dropout正則化,使用 Merity et al. (2017) 的方法。
作為參考模型,我們使用 Bahdanau et al. (2014) 實現的 OpenNMT (Klein et al., 2017)。我們使用的模型的編碼器具有兩個LSTM層,解碼器也是,都有 1000 個單元,嵌入大小為 500。這意味著參考模型和即時模型的引數數量相近。
即時模型的實驗結果如表 2 所示。在法到英和英到法翻譯任務中,該模型的 BLEU 分數至多比參考模型少 0.8%。在更難的德到英和英到德翻譯任務中,該模型的 BLEU 分數至多比參考模型少 4.8%。
表 2:在測試資料集上的參考模型和即時模型的 BLEU 分數(初始的ε padding token 依此為從 0 到 5)。
表 3 中,當句子長度足夠大時,在法到英和德到英翻譯任務中,我們的模型擊敗了參考模型,表明即時模型在較短序列上表現較差,在較長序列上表現較好,而長序列翻譯已知對於基於注意力機制的模型是較困難的(Koehn and Knowles, 2017)。表 5 展示了全部 4 個任務中長序列翻譯結果的更多細節。
表 3:在法到英和德到英翻譯任務測試中,參考模型和即時模型的 BLEU 分數隨句子長度的變化。
表 5:在所有 4 個任務上,BLEU 分數隨句子長度的變化。
討論
在 Reddit 上,網友們對該模型提出了質疑:認為即時模型的預處理過程實際上是作為注意力機制的替代品,而沒有使模型更簡單,並且注意力機制具有更加優雅和普適的優勢。「你可能不需要注意力,如果你有詞對齊……」
對此,作者的回答是:注意力模型需要在記憶體中儲存所有源句 token 的編碼,而即時模型不需要。在記憶體不足的條件下很有用,這也是這類模型相對於注意力模型的優勢之一。
當前在 Reddit 頁面上已經有了數十條評論,更多討論可以參見原網頁。
Reddit 地址:https://www.reddit.com/r/MachineLearning/comments/9t88jj/r_you_may_not_need_attention_summary_pytorch_code/