學界|谷歌的機器翻譯模型 Transformer,現在可以用來做任何事了

選自GoogleAI

作者:Mostafa Dehghani 等

機器之心編譯

去年,谷歌發佈了機器學習模型 Transformer,該模型在機器翻譯及其他語言理解任務上的表現遠遠超越了以往算法。今天,谷歌發佈該模型最新版本——Universal Transformer,彌補了在大規模語言理解任務上具有競爭力的實際序列模型與計算通用模型之間的差距,其 BLEU 值比去年的 Transformer 提高了 0.9。在多項有難度的語言理解任務上,Universal Transformer 的泛化效果明顯更好,且它在 bAbI 語言推理任務和很有挑戰性的 LAMBADA 語言建模任務上達到了新的當前最優性能。

去年,谷歌發佈了一種新的機器學習模型 Transformer(參見:機器翻譯新突破:谷歌實現完全基於 attention 的翻譯架構),該模型在機器翻譯及其他語言理解任務上的表現遠遠超越了現有算法。在 Transformer 之前,多數基於神經網絡的機器翻譯方法依賴於循環神經網絡(RNN),後者利用循環(即每一步的輸出饋入下一步)進行順序操作(例如,逐詞地翻譯句子)。儘管 RNN 在建模序列方面非常強大,但其序列性意味著該網絡在訓練時非常緩慢,因為長句需要的訓練步驟更多,其循環結構也加大了訓練難度。

與基於 RNN 的方法相比,Transformer 不需要循環,而是並行處理序列中的所有單詞或符號,同時利用自注意力機制將上下文與較遠的單詞結合起來。通過並行處理所有單詞,並讓每個單詞在多個處理步驟中注意到句子中的其他單詞,Transformer 的訓練速度比 RNN 快很多,而且其翻譯結果也比 RNN 好得多。然而,在更小、更加結構化的語言理解任務或簡單的算法任務中(如拷貝一個字符串(如將輸入「abc」轉換為「abcabc」)),Transformer 則表現欠佳。相比之下,在這些任務中表現良好的模型(如神經 GPU 和神經圖靈機)在大型語言理解任務(如翻譯)中表現不好。

谷歌研究人員在《Universal Transformers》一文中使用一種新型高效的時間並行循環(parallel-in-time recurrence)方式(可在更廣泛任務上產生更強大的結果)把標準 Transformer 擴展為計算通用(圖靈完備)模型。研究者將該模型建立在 Transformer 的並行結構上,以保持其快速的訓練速度。但是他們用單一、時間並行循環的變換函數的多次應用代替了 Transformer 中不同變換函數的固定堆疊(即,相同的學習變換函數在多個處理步驟中被並行應用於所有符號,其中每個步驟的輸出饋入下一個)。關鍵在於,RNN 逐個符號(從左到右)處理序列,而 Universal Transformer 同時處理所有符號(像 Transformer 一樣),然後使用自注意力機制在循環處理步驟(步驟數量可變)上,對每個符號的解釋進行改進。這種時間並行循環機制比 RNN 中使用的順序循環(serial recurrence)更快,也使得 Universal Transformer 比標準前饋 Transformer 更強大。

学界|谷歌的机器翻译模型 Transformer,现在可以用来做任何事了

Universal Transformer 模型使用自注意力機制結合不同位置的信息,應用循環變換函數,以並行化方式重複為序列的每個位置細化一系列向量表徵(如圖自 h_1 到 h_m)。箭頭表示操作間的依賴關係。

在每一步中,信息利用自注意力從每個符號(例如句中單詞)傳遞到其他符號,就像在原始 Transformer 中一樣。但是,現在這種轉換的次數(即循環步的數量)可以提前手動設置(比如設置為固定數字或輸入長度),也可以通過 Universal Transformer 本身進行動態設定。為了實現後者,谷歌研究人員在每個位置都添加了一個自適應計算機制,它可以分配更多處理步驟給較模糊或需要更多計算的符號。

用一個直觀的例子來說明這是如何起作用的,比如這句話「I arrived at the bank after crossing the river」。在這個案例中,與沒有歧義的「I」或「river」相比,推斷「bank」一詞最可能的含義需要用到更多的語境信息。當我們用標準 Transformer 對這個句子進行編碼時,我們需要把同樣的計算量無條件地應用於每個單詞。然而,Universal Transformer 的自適應機制允許模型僅在更模糊的單詞上花費更多計算,例如,使用更多步驟來整合消除單詞「bank」歧義所需的額外語境信息,而在沒那麼模糊的單詞上則花費較少的步驟。

起初,讓 Universal Transformer 僅重複應用單一學習函數來處理輸入似乎是有限制性的,尤其是與應用不同函數的固定序列的標準 Transformer 相比。但是,學習如何重複應用單一函數意味著應用的數量(處理步驟)現在是可變的,而這是一個很重要的區別。如上所述,除了允許 Universal Transformer 對更模糊的符號應用更多的計算之外,它還允許模型根據輸入的整體大小來調整函數應用的數量(更長的序列需要更多的步驟),或者基於訓練期間學習到的其它特性來動態地決定將函數應用到輸入的任何給定部分的頻率。這使得 Universal Transformer 在理論上更加強大,因為它可以有效地學習對輸入的不同部分應用不同的變換。而這是標準 Transformer 無法做到的,因為它由只應用一次的學習變換塊(learned Transformation block)的固定堆疊組成。

儘管 Universal Transformer 在理論上更加強大,但研究人員仍關心實驗性能。實驗結果證明,Universal Transformer 確實能夠從樣本中學習如何複製和反轉字符串,以及如何比 Transformer 或 RNN 更好地執行整數加法(儘管不如神經 GPU 效果好)。此外,在多項有難度的語言理解任務上,Universal Transformer 的泛化效果明顯更好,且它在 bAbI 語言推理任務和很有挑戰性的 LAMBADA 語言建模任務上達到了新的當前最優性能。但或許最令人感興趣的是,Universal Transformer 在與基礎 Transformer 使用相同數量參數、訓練數據以相同方式進行訓練時,其翻譯質量比後者提高了 0.9 個 BLEU 值。在去年 Transformer 發佈時,它的性能比之前的模型提高了 2.0 個 BLEU 值,而 Universal Transformer 的相對改進量是去年的近 50%。

因此,Universal Transformer 彌補了在大規模語言理解任務(如機器翻譯)上具有競爭力的實際序列模型與計算通用模型(如神經圖靈機或神經 GPU)之間的差距,計算通用模型可使用梯度下降來訓練,用於執行隨機算法任務。谷歌很高興看到時間並行序列模型的近期進展,以及處理深度中計算能力和循環的增加,谷歌希望 Universal Transformer 可以幫助研究人員構建更加強大、更能高效利用數據的算法,泛化性能超越當前最優算法。

論文:Universal Transformers

学界|谷歌的机器翻译模型 Transformer,现在可以用来做任何事了
  • 論文鏈接:https://arxiv.org/pdf/1807.03819.pdf

  • Universal Transformer 代碼:https://github.com/tensorflow/tensor2tensor/blob/master/tensor2tensor/models/research/universal_transformer.py

摘要:自注意力前饋序列模型已被證明在序列建模任務上效果顯著,這些任務包括機器翻譯 [31]、圖像生成 [30] 和 constituency parsing [18],從而提供了可以替代循環神經網絡(RNN)的令人信服的方案,儘管 RNN 至今仍是許多序列建模問題事實上的標準架構。然而,儘管取得了這些成功,像 Transformer [31] 這樣的前饋序列模型卻無法泛化至很多循環模型可以輕鬆處理的任務上(例如,在字符串或公式長度超過訓練時模型觀察到的類型時,複製字符串甚至簡單的邏輯推斷 [28])。此外,與 RNN 相比,Transformer 模型在計算上不通用,這限制了其理論表達能力。本論文提出了 Universal Transformer,它可以解決這些實踐和理論缺陷。我們展示了它可以在多項任務中實現性能提升。Universal Transformer 不像 RNN 那樣使用對句中單個符號的循環,而是使用每個循環步驟重複修改句子中所有符號的表徵。為了結合句子不同部分的信息,該模型在每個循環步中都使用了自注意力機制。假設有充足的記憶,則其循環會使 Universal Transformer 成為計算通用模型。我們進一步使用自適應計算時間(adaptive computation time,ACT)機制,使模型動態調整句子中每個位置的表徵被修改的次數。除了節省計算量以外,ACT 還能夠提高模型的準確率。我們的實驗結果表明,在許多算法任務及大量大規模語言理解任務中,Universal Transformer 的泛化性能大大增強,在機器翻譯中的表現超越了基礎 Transformer 及 LSTM,在 bAbI 語言推理及富有挑戰性的 LAMBADA 語言建模任務中達到了新的當前最優性能。

學界|谷歌的機器翻譯模型 Transformer,現在可以用來做任何事了

參考鏈接:https://ai.googleblog.com/2018/08/moving-beyond-translation-with.html.

✄------------------------------------------------

加入機器之心(全職記者 / 實習生):[email protected]

投稿或尋求報道:content@jiqizhixin.com

廣告 & 商務合作:[email protected]


分享到:


相關文章: