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