近年來,神經機器翻譯的突飛猛進讓越來越多的人類翻譯感到壓力山大,瑟瑟發抖,那么如此強大的機器翻譯架構內部的運行機制究竟是怎樣的?本文用一系列動圖帶你看個明白。
過去幾十年來,統計機器翻譯一直是占據主導地位的機器翻譯模型[9],直到神經機器翻譯(NMT)誕生。神經機器翻譯(NMT)是近幾年來新興的機器翻譯模式,該模式試圖構建和訓練能夠讀取輸入文本,并輸出翻譯結果的單個大型神經網絡。
NMT的最初來自Kalchbrenner和Blunsom(2013)等人的提議。今天更為人所知的框架是從Sutskever等人提出的seq2seq框架。本文就將重點介紹seq2seq框架以及如何構建基于seq2seq框架的注意力機制。
總體來說,注意力層的部署可以分為4步(其實是5步)
第0步:準備隱藏狀態。
首先準備第一個解碼器隱藏狀態(紅色)和所有可用的編碼器隱藏狀態(綠色)。在我們的例子中有4個編碼器隱藏狀態和當前解碼器隱藏狀態。
步驟1:獲取每個編碼器隱藏狀態的分數
通過評分函數(也稱為比對評分函數或比對模型)獲得評分(標量)。在該示例中,得分函數是解碼器和編碼器隱藏狀態之間的點積。
步驟2:通過softmax圖層運行所有分數。
我們將得分放到softmax函數層,使softmax處理后的得分(標量)之和為1。這些得分代表注意力的分布。
步驟3:將每個編碼器隱藏狀態乘以其softmax得分。
通過將每個編碼器隱藏狀態與其對應的softmax得分(標量)相乘,獲得對齊向量或注釋向量。這就是對齊的機制。
步驟4:總結對齊向量。
對齊向量的總結可以生成上下文向量。上下文向量反映的是前一步的對齊向量的聚合信息。
步驟5:將上下文向量送到解碼器。
具體傳送方式取決于翻譯系統的架構設計。我們將在下文示例中看到不同的架構如何利用解碼器的上下文向量。
下面來看看幾種seq2seq模型的運行機制,為便于理解,我們采用比較直觀的描述(對于每種模型,均以德-英翻譯為例)。
seq2seq
翻譯會從頭至尾把德語文本閱讀一遍,讀完開始逐詞翻譯成英語,如果句子過長,他可能會忘了文章開始時都讀過哪些內容。
一個簡單的seq2seq模型就是這樣了,至于面向注意力層的逐級計算,是下面要講的seq2seq+注意力模型,下面是這個模型的直觀表述。
seq2seq+ 注意力
翻譯一遍閱讀德文文本,一邊從頭至尾地記錄關鍵詞,然后開始翻譯成英語。每翻譯一個德語詞匯,都要用一次記下來的關鍵詞。
該機制下會為每個單詞分配一個得分,根據分數高低投入不同的注意力。然后根據Softmax函數處理過的分數,使用編碼器隱藏狀態的加權和來聚合編碼器隱藏狀態,獲得上下文向量。注意力層的實現可以分為4個步驟。
注意力機制的運行究竟是怎樣的?
答案是:反向傳播,沒想到吧。反向傳播將盡一切努力確保產出成果接近實際情況。通過改變RNN中的權重和得分函數(如果有的話)來實現這一目標。這些權重將影響編碼器隱藏狀態和解碼器隱藏狀態,進而影響注意力得分。
帶雙向編碼器的seq2seq+注意力
這一機制相當于有兩名翻譯。翻譯A一邊閱讀德語文本,一邊記錄關鍵詞。翻譯B(比A更高級的翻譯,可以從后往前倒著閱讀然后進行翻譯)也在逐詞閱讀同樣的德語文本,同時記下關鍵詞。
這兩個翻譯會定期討論到目前為止閱讀的每一個詞。一旦閱讀完畢,翻譯B會負責根據討論結果和選擇的綜合關鍵詞,將德語的句子逐字翻譯成英語。
翻譯A就是前向RNN,翻譯B就是后向RNN。
采用雙層堆疊編碼器的seq2seq+注意力
翻譯A一邊閱讀德語文本,一邊記錄關鍵詞。翻譯B(比A更高級的翻譯,可以從后往前倒著閱讀然后進行翻譯)也在逐詞閱讀同樣的德語文本,同時記下關鍵詞。注意,初級翻譯A必須把閱讀到的每個單詞向翻譯B報告。閱讀完成后,兩位翻譯都會根據他們所選擇的綜合關鍵詞,逐字逐句地將句子翻譯成英語。
谷歌的神經機器翻譯:帶8個堆疊編碼器的seq2seq(+雙向+剩余連接)+注意力
相當于翻譯A、B、...到H一共8位翻譯,從下到上排成一列。每位翻譯都閱讀相同的德語文本。每閱讀一個單詞,翻譯A會與翻譯B分享發現,翻譯B對發現內容進行改進,并與翻譯C分享,以此類推重復這個過程,直到翻譯H為止。此外,在閱讀德語文本時,翻譯H會根據自己的知識和收到的信息記錄下相關的關鍵詞。
在每個翻譯都閱讀過英文文本之后,命令翻譯A開始翻譯第一個單詞。首先,翻譯A試圖回憶起,然后他與譯者B分享他的答案,譯者B改進答案并與譯者C分享,以此類推重復這一過程,直到翻譯H。然后,翻譯H根據記錄的關鍵詞寫出第一個翻譯。重復這個過程,直到翻譯完成為止。
-
編碼器
+關注
關注
45文章
3638瀏覽量
134426 -
神經網絡
+關注
關注
42文章
4771瀏覽量
100715 -
機器翻譯
+關注
關注
0文章
139瀏覽量
14880
原文標題:五張動圖,看清神經機器翻譯里的Attention!
文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論