成人av在线资源一区,亚洲av日韩av一区,欧美丰满熟妇乱XXXXX图片,狠狠做五月深爱婷婷伊人,桔子av一区二区三区,四虎国产精品永久在线网址,国产尤物精品人妻在线,中文字幕av一区二区三区欲色
    您正在使用IE低版瀏覽器,為了您的雷峰網賬號安全和更好的產品體驗,強烈建議使用更快更安全的瀏覽器
    此為臨時鏈接,僅用于文章預覽,將在時失效
    人工智能 正文
    發私信給陳村
    發送

    1

    回顧Google神經網絡機器翻譯上線歷程 | 深度

    本文作者: 陳村 2016-11-22 21:20
    導語:回顧下機器翻譯的發展歷程,以及Google深度神經網絡機器翻譯有什么厲害的地方?

    雷鋒網按:本文作者陳村,劍橋大學自然語言處理(NLP)組, 現為機器學習語義分析工程師。

    回顧Google神經網絡機器翻譯上線歷程 | 深度

    Google Translate作為久負盛名的機器翻譯產品,推出10年以來,支持103種語言,一直作為業界的標桿。

    而在前不久,Google官方對翻譯進行一次脫胎換骨的升級——將全產品線的翻譯算法換成了基于神經網絡的機器翻譯系統(Nueural Machine Translation,NMT)。從Google官方發表的博文[1]和技術報告[2]中,我們有機會一窺究竟,這個全新的系統到底有什么神奇的地方?筆者借這篇文章,幫大家梳理一下機器翻譯的發展歷程,以及Google這次新系統的一些亮點。

    | 機器翻譯的發展史

    機器翻譯,即把某一種源語言(比如英文)翻譯到最恰當的目標語言(比如中文)。

    還在幾年前,機器翻譯界的主流方法都是Phrased-Based Machine Translation (PBMT),Google翻譯使用的也是基于這個框架的算法。所謂Phrased-based,即翻譯的最小單位由任意連續的詞(Word)組合成為的詞組(Phrase),比如下圖中的“北風呼嘯”。

    PBMT是怎么把一句英文翻譯成中文的呢?

    • 首先,算法會把句子打散成一個個由詞語組成的詞組(中文需要進行額外的分詞),如圖中(1)所示;

    • 然后,預先訓練好的統計模型會對于每個詞組,找到另一種語言中最佳對應的詞組,如圖中(2)所示;

    • 最后,需要將這樣“硬生生”翻譯過來的目標語言詞組,通過重新排序,讓它看起來盡量通順以及符合目標語言的語法,如圖中(3)所示。

     回顧Google神經網絡機器翻譯上線歷程 | 深度

    圖片出處:Lopez, A. (2008). Statistical machine translation. ACM Computing Surveys, 40(3), 1–49. 

    傳統的PBMT的方法,一直被稱為NLP(Natural Language Processing,自然語言處理)領域的終極任務之一。因為整個翻譯過程中,需要依次調用其他各種更底層的NLP算法,比如中文分詞、詞性標注、句法結構等等,最終才能生成正確的翻譯。這樣像流水線一樣的翻譯方法,一環套一環,中間任意一個環節有了錯誤,這樣的錯誤會一直傳播下去(error propagation),導致最終的結果出錯。

    因此,即使單個系統準確率可以高達95%,但是整個翻譯流程走下來,最終累積的錯誤可能就不可接受了。

    深度學習這幾年火了之后,機器翻譯一直是深度學習在NLP領域里成果最為卓越的方向之一。深度神經網絡提倡的是end-to-end learning,即跳過中間各種子NLP步驟,用深層的網絡結構去直接學習擬合源語言到目標語言的概率。

    2014年,Cho et. al [3]和Sutskever et al. [4] 提出了Encoder-Decoder架構的神經網絡機器翻譯系統。如下圖所示:

    首先把源語言一個詞一個詞地輸入Encoder,Encoder利用訓練好的神經網絡參數,把整個輸入序列的信息存在一個隱層向量h中;h這個隱層,可以理解為包含了所有對輸入源語言的描述;然后再由Decoder,利用訓練好的神經網絡參數,從隱層h中讀取參數,再一個詞一個詞地輸出目標語言。

    回顧Google神經網絡機器翻譯上線歷程 | 深度

    via:3.bp.blogspot.com

    NMT這樣的過程直接學習源語言到目標語言,省去了訓練一大堆復雜NLP子系統的依賴,依靠大量的訓練數據(平行語聊庫,比如同一本書的中文和英文版本),直接讓深度神經網絡去學習擬合。熟悉深度學習的朋友可能會意識到,這樣的方法一個極大的優勢就是省去了很多人工特征選擇和調參的步驟。聽說前兩年,有個做神經網絡圖像處理的教授,在不太了解NLP的基礎上,硬生生地搭建了一套可以匹敵傳統PBMT的機器翻譯系統,后者可是十幾年來多少奮戰在第一線的NLP同志一磚一瓦壘起來的啊。而且,相比于傳統PBMT一個詞組一個詞組的獨立翻譯,NMT這樣end-to-end翻譯出來的語言更加自然流暢。

    2015年,Yoshua Bengio團隊進一步,加入了Attention的概念。稍微區別于上面描述的Encoder-Decoder方法,基于Attention的Decoder邏輯在從隱層h中讀取信息輸出的時候,會根據現在正在翻譯的是哪個詞,自動調整對隱層的讀入權重。即翻譯每個詞的時候,會更加有側重點,這樣也模擬了傳統翻譯中詞組對詞組的對應翻譯的過程。Attention模塊其實也就是一個小型神經網絡,嵌入在Encoder-decoder之間的,跟著整個神經網絡訓練的時候一起優化訓練出來的。

    Bengio團隊的這個工作也奠定了后序很多NMT商業系統的基礎,也包括Google這次發布的GNMT。

    | Google GNMT

    Google這次在算法上、尤其是工程上對學術界的NMT方法提出了多項改進,才促成了這次Google NMT系統的上線。

    學術上的NMT雖然取得了豐碩的成果,但在實際的產品中NMT的效果卻比不上PBMT。究其原因Google在技術報告[2]中總結了三點:

    1、訓練和預測的速度太慢。

    要獲得更好的模擬效果,就要用更深層的神經網絡來擬合參數(下面會提到,GNMT用了8層的Stack LSTM來做Encoder)。這么復雜的神經網絡在預測的時候就要耗費大量的資源,遠遠慢于PBMT的系統。并且在訓練的時候擬合這么大規模的預料,可能要很久很久才能訓練一次,這樣不利于快速迭代改進調整模型參數。

    2、NMT在處理不常見的詞語的時候比較薄弱。

    比如一些數字、或者專有名詞。在傳統PBMT系統中,可以簡單地把這些詞原封不動的copy到翻譯句子中;但是在NMT中,這樣的操作就無法有效的進行。

    3、有時候NMT無法對輸入源句子的所有部分進行翻譯,這樣會造成很奇怪的結果。

    Google NMT的主要神經網絡架構圖如下:

    回顧Google神經網絡機器翻譯上線歷程 | 深度

    仔細看,其實還是帶Attenion的Encoder-Decoder邏輯。Encoder是由8層LSTM組成,最下面兩層是一個雙向LSTM,可以從前到后以及從后往前理解一遍輸入的源語言輸入。中間的藍色模塊就是Attention模塊,負責對Encoder的邏輯進行加權平均輸出到Decoder層。Decoder模塊也是一個8層的LSTM,最終連接到Softmax層,一個詞一個詞輸出最終的目標語言詞語的概率分布。

    算法上,論文中還提到了一些創新點。包括引入Wordpiece來對單詞進行更細粒度的建模,來解決上面提到的不常見詞語的問題;以及在Decoding結束之后,搜索最佳輸出序列的時候,引入coverage penalty的概念,來鼓勵Decoder輸出更加完整的翻譯句子,以解決有時候NMT有時候無法完整的翻譯整句的情況。

    工程上,報告里面著重談到了幾個性能優化的重點:

    • 引入Risidual Connection

    8層的LSTM堆疊起來,大大增加了神經網絡的表達能力,在海量的數據下可以獲得更好的模型效果。不過這樣的堆疊會直接導致模型太龐大不可訓練,在梯度反向傳播的時候,很容易出現梯度彌散或梯度爆炸的問題。過去的研究證明[5],Residual Connection的方式,直接去學習殘差可能會帶來更好的效果,避免了深度網絡中反向傳播中出現的梯度反向傳播可能會發生的問題。在上面的Google NMT架構圖中,從倒數第三層開始都會引入Residual Connection。

    • 大量的并行優化

    與此同時,在工程上Google也進行了非常多的優化,來減少訓練和實時翻譯時候的延遲問題。比如訓練數據的時候,數據會分成n等份,交給不同的GPU去異步訓練,然后再匯總到統一的參數服務器;同時,Encoder和Decoder的不同層的LSTM會在不同的GPU上運行,因為更上一層的LSTM不必等到下一層的神經網絡完全計算完畢再開始工作;即使對于最后的Softmax輸出層,如果最后輸出詞的維度太大,也會劃分到不同的GPU上并行處理。可謂不放過絲毫并行的機會。

    底層基礎計算平臺的支持。Google NMT采用了自家的Tensorflow深度學習框架,并運行在Google專門為深度學習打造的TPU(Tensor Processing Unit)上,當年的AlphaGo也是由TPU提供支持。在對于模型參數的計算上,也大量應用了Quantized計算的技術:

    由于神經網絡參數涉及大量的耗時的浮點數運算,通過Quantization的方法,將模型參數由浮點數類型轉換到一個更低精度(比如8bit),雖然會有一些精度的損失,但是可以大大減少計算量以及最終訓練模型的體積。

    從軟件框架到定制硬件,相互配合,追求最極致的性能。在這篇報告里,有著長長的作者列表,最后赫然列著Google工程架構大神Jeffrey Dean的名字,他是當年一手創造了Map Reduce、Big Table等產品的Google奠基者之一。

    | 寫在后面

    Google這次的論文,基本框架仍然是帶Attention模塊的Encoder-Decoder。而且國內廠商,比如百度和搜狗,也發布了類似的神經網絡機器翻譯系統。百度早在去年,就發布“工業界第一款NMT系統”。不過,Google畢竟是機器翻譯界的標桿,這次披露的論文也揭示了很多他們為了大規模商業化做出的努力,因此在業界引起了不小的震動。

    注:[1]A Neural Network for Machine Translation, at Production Scale

    [2] Wu, Y., Schuster, M., Chen, Z., Le, Q. V., Norouzi, M., Macherey, W., et al. (2016, September 26). Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation.

    [3] Cho, K., van Merrienboer, B., Gulcehre, C., Bougares, F., Schwenk, H., and Bengio, Y. (2014a). Learning phrase representations using RNN encoder-decoder for statistical machine translation. In Proceedings of the Empiricial Methods in Natural Language Processing (EMNLP 2014).

    [4] Sutskever, I., Vinyals, O., and Le, Q. (2014). Sequence to sequence learning with neural networks. In Advances in Neural Information Processing Systems (NIPS 2014).

    [5] He, K., Zhang, X., Ren, S., & Sun, J. (1512). Deep residual learning for image recognition. arXiv preprint (2015).

    雷峰網原創文章,未經授權禁止轉載。詳情見轉載須知

    回顧Google神經網絡機器翻譯上線歷程 | 深度

    分享:
    相關文章

    專欄作者

    語義分析,創業,畢業于劍橋大學自然語言組
    當月熱門文章
    最新文章
    請填寫申請人資料
    姓名
    電話
    郵箱
    微信號
    作品鏈接
    個人簡介
    為了您的賬戶安全,請驗證郵箱
    您的郵箱還未驗證,完成可獲20積分喲!
    請驗證您的郵箱
    立即驗證
    完善賬號信息
    您的賬號已經綁定,現在您可以設置密碼以方便用郵箱登錄
    立即設置 以后再說