4/25/2018 4:01:00 PM
神經機器翻譯的技術——編碼-解碼框架
今天樂文翻譯公司帶你了解下神經機器翻譯的技術之一編碼-解碼框架。
編碼-解碼框架如上圖所示其中<EOS> - W的左側為編碼器,它的右側為解碼器。A,B,C,<EOS>表示的源語言的輸入序列,X,Y,Z,<EOS>表示的是翻譯機器給出的目標語言輸出序列。<EOS>表示的是一句話的終結符。W為編碼器對輸入的語言序列A,B,C,<EOS>的編碼向量。圖中的每一個框表示的是一個時刻展開的RNN(Recurrent Neural Network或者LSTM)神經網絡。
這種編碼-解碼結構模擬了人類大腦翻譯的過程,就是先將聽到的語言存儲在腦子里,然后再根據腦子中的理解給出目標語言的輸出。在這里,W向量就模擬了大腦中存儲的讀取源語言對應的向量。
這種架構還將語言理解和語言模型聯合到了一起,最終實現了端到端的機器翻譯。另外,這種編碼-譯碼結構還極其具有靈活性,它可以應用到圖像標注、視頻、詞語等任務中。另外,這種架構還可以很好地結合外部語料,具有很好的可擴展性。
- 編碼器
這張圖展示了編碼器的詳細架構。在這里從下到上有三個層,第一層是詞向量嵌入,它可以根據輸入的單詞向量通過查找編碼表得到壓縮維度的單詞表征向量(第二層),之后輸入給第三層,這是RNN遞歸單元的狀態。
-
解碼器
接下來,在讓我們看解碼端。在這里最底層紫色的節點表示由編碼端計算出來的隱含層節點狀態,它就相當于是對輸入的源語言的編碼向量。之后,我們將這個信息輸入給解碼器的RNN單元,之后到第二層,解碼器會根據RNN單元計算概率向量。即對于目標語言單詞表上的每一個單詞的概率是多少。最后,在第三層,我們再根據這個計算得到的概率采樣生成目標語言。
然而,當我們回顧整個編碼-解碼過程就會發現,機器翻譯的本質就是先將源語言的句子編碼成一個向量,然后再將這個向量映射為目標語言,然而這種編碼是將句子壓縮成向量,顯然會損失很多信息。于是,我們便需要引入新的機制來解決這個問題。