【機器翻譯】機器翻譯入門

機器翻譯入門,傳統的以及微軟劉鐵巖團隊提出的Dual learning,相關內容轉載以下。聲明:一些內容轉載並整合。html

 

 

第一部分:轉載自http://www.javashuo.com/article/p-tirrieah-by.html;做者:xingoonginx

咱們先來看看機器翻譯是怎麼被玩壞的吧!git

PS: 這個梗真的不是我黑誰!我也是從PPT上面看到的,以爲這個例子很不錯.....程序員

話說回來,在機器翻譯的領域,有不少難點。好比,語言的複雜程度,上下文的關聯等等。想一想看,一樣是漢語,山東大漢和陝西小哥以及東北姑娘說出來的都是不同的;再想一想漢語中的博大精深,一樣一段話,上下文不一樣表達的含義也是不同的;再複雜點,涉及到兩種語言的切換,就更恐怖了。github

目前業內主要的實現手段有基於規則的、基於實例的、基於統計的以及基於神經網絡的,看着感受濛濛噠,咱們來具體的瞭解下吧:web

基於規則的機器翻譯

基於規則的機器翻譯,是最古老也是見效最快的一種翻譯方式。算法

根據翻譯的方式能夠分爲:swift

  • 直接基於詞的翻譯
  • 結構轉換的翻譯
  • 中間語的翻譯

從字面上理解,基於詞的翻譯就是直接把詞進行翻譯,可是也不是這麼簡單,會經過一些詞性的變換、專業詞彙的變換、位置的調整等一些規則,進行修飾。markdown

能夠看到翻譯的質量不好,可是基於這種詞規則的翻譯,基本上能夠輔助咱們作一些翻譯的工做;並且這種翻譯也帶來了機器翻譯的0到1的飛躍網絡

那麼基於結構轉換 其實就是不只僅考慮單個詞,而是考慮到短語的級別。好比根據端與do chicken有可能被翻譯成烹飪雞,那麼整句話就好多了咱們烹飪雞好嗎

最後一種就是基於中間語的翻譯,好比過去在金本位的年代,各國都有本身的貨幣。中國使用中國的貨幣,美國使用美國的貨幣,那麼貨幣之間怎麼等價呢?就能夠兌換成黃金來衡量價值。這樣就能夠進行跨幣種的買賣了..翻譯也是如此,假若由兩種語言沒法直譯,那麼也能夠先翻譯成中間語,而後經過中間語進行兩種語言的翻譯。

基於統計的機器翻譯

基於統計的機器翻譯明顯要比基於規則的高級的多,由於引入了一些數學的方法,整體上顯得更加專業。那麼咱們看看它是怎麼作的吧!

首先,咱們有一段英文想要把它翻譯成漢語:

we do chicken right

會根據每一個詞或者短語,羅列它可能出現的翻譯結果:

咱們/作/雞/右 咱們/作/雞/好嗎 咱們/幹/雞/怎麼樣 ...

這樣的結果有不少種...

而後咱們須要一個大量的語料庫,即有大量的文章...這些文章會提供 每一種翻譯結果出現的機率,機率的計算方式多是使用隱馬爾可夫模型,即本身算相鄰詞的機率,這個原理在《數學之美》中有介紹,感興趣的能夠去看看。

最終挑選機率最高的翻譯結果做爲最終的輸出。

總結來講大體的流程是:

所以能夠看到,這種翻譯方式依賴大量的語料庫,所以大多數使用這種方式並且效果比較好的都是那種搜索引擎公司,好比Google和Baidu,他們依賴爬蟲技術有互聯網中大量的文本資料,基於這些文本資料能夠獲取大量的語料來源,從而爲本身的翻譯提供大量的依據數據。

基於實例的機器翻譯

這種翻譯也比較常見,通俗點說就是抽取句子的模式,當你輸入一句話想要翻譯的時候,會搜索相相似的語句,而後替換不同的詞彙翻譯。舉個例子:

I gave zhangsan a pen I gave lisi an apple

就能夠抽取他們類似的部分,直接替換不同的地方的詞彙就行。這種翻譯其實效果不太好,並且太偏領域背景...

基於神經網絡的機器翻譯

在深度學習火起來後,這種方式愈來愈受關注。咱們先來了解下什麼是神經網絡:

基本的意思就是咱們會有不少的輸入,這些輸入通過一些中間處理,獲得輸出。獲得的輸出又能夠做爲下一個計算過程的輸入...這樣就組成了神經網絡。

在機器翻譯中主要使用的是循環神經網絡,即上一次的輸出能夠做爲此次的輸入繼續參與計算。這樣有什麼目的呢?

就是在翻譯的過程當中,雖然是以句子爲單位進行翻譯的,可是每一句話都會對下一句話的翻譯產生影響,這樣就作出了上下文的感受....好比do chicken單純的翻譯有不少中翻譯的結果。可是若是前面出現過廚師等這類的詞句,那麼這個單詞就能夠更傾向翻譯成烹飪雞

這種操做模式,在問答系統中也會遇到...以後會有所介紹.

總結

總結的來講,若是想要快速搭建一個機器翻譯的系統,能夠先從基於規則開始,添加一些領域背景的知識,就能達到一個比較快速的效果。而基於統計的方法從數據獲取的成本和模型的訓練來講,成本都很高...

針對機器翻譯是否能代替人工翻譯,知乎上面也有很多討論,我這個門外漢也以爲,暫時不太可能,不過機器翻譯做爲人工翻譯的一種輔助手段仍是很必要的。好比那些非專業的翻譯人士,如寫論文的研究生、看前沿技術的程序員小朋友,這種機器翻譯能夠做爲一種頗有效的閱讀輔助的手段,由於大部分的時候,都是直接把某一段英文粘貼到翻譯的輸入框,而後按照翻譯出來的結果,本身再組織理解...(我想大部分人都是這麼用的吧~ 原諒我英語差)

那麼機器翻譯的掃盲就暫時介紹到這裏了,以後會再研究下情感分析相關的內容...

參考

--------------------------------------------------分界線------------------------------------------------------------------

第二部分:轉載自http://www.cnblogs.com/zhbzz2007;做者:zhbzz2007

 

 

本文主要是翻譯及整理MSRA 劉鐵巖團隊在NIPS 2016 會議上發表的論文「Dual Learning for Machine Translation」。對於論文中的算法思想可能尚未理解透徹,還請諸位大牛多多指教。

 

1 簡介

最早進的機器翻譯系統,包括基於短語的統計機器翻譯方法、最近出現的基於神經網絡的翻譯方法,嚴重依賴於對齊的平行訓練語料。然而,實際收集這些平行語料數據的代價很是大,所以語料的規模也每每有限,這將會限制相關的研究和應用。

咱們知道在互聯網中存在海量的單語數據,很天然的想到,可否利用它們去提高機器翻譯系統的效果呢?實際上,基於這個想法,研究人員已經提出了許多不一樣的方法,這裏能夠粗略的分爲兩類。第一類,目標語言的單語語料被用於訓練語言模型,而後集成到翻譯模型(從平行雙語語料中訓練出)中,最終提高翻譯質量。第二類,經過使用翻譯模型(從對齊的平行語料中訓練)從單語數據中生成僞雙語句對,而後在後續的訓練過程當中,這些僞雙語句對被用於擴充訓練數據。儘管上述方法可以在必定程度上提高翻譯系統的效果,可是它們依然存在必定的侷限性。第一類的方法只使用了單語數據來訓練語言模型,並無解決平行訓練數據不足這個問題。儘管第二類方法能夠擴充平行訓練數據,可是並不能保證僞雙語句對的質量。

在這篇文章中,劉鐵巖團隊提出了一種Dual-Learning(對偶學習)機制,能夠有效地利用單語數據(源語言與目標語言)。經過使用他們提出的機制,單語數據與平行雙語數據扮演着類似的角色,在訓練過程當中,能夠顯著下降對平行雙語數據的要求。對偶學習機制應用在機器翻譯中,能夠想象成兩個agent(機器)在玩通訊遊戲,以下圖所示,

  1. 第一個機器,只理解語言A,經過噪聲信道,發送一條信息(是語言A)給第二個機器,噪聲信道經過翻譯模型會將語言A轉換成語言B;
  2. 第二個機器,只理解語言B,接收到翻譯過來的信息(是語言B)。它檢查這條信息,並通知第一個機器(第二個機器可能沒法確認這個翻譯的正確性,由於它不知道原始的消息)。而後,它經過另外一個噪聲信道(使用另一個翻譯模型,將接收到的消息從語言B轉換爲語言A)將接收到的信息發送給第一個機器。
  3. 從第二個機器接收到信息後,第一個機器會檢查它,並通知第二個機器它接收到的信息是否包含它原來的信息。經過這個反饋,兩個機器就能夠知道這兩個通訊信道(也就是兩個翻譯模型)表現是否良好以及可否提升它們的效果。
  4. 這個遊戲也能夠從第二個機器開始,那麼原始的消息就是語言B,這兩個機器將會通過一個對稱化的過程,經過反饋從而提升兩個信道(翻譯模型)的效果。

從上面的描述中,很容易發現,儘管兩個機器可能沒有對齊的雙語語料,它們依然能夠得到兩個翻譯模型的翻譯質量方面的反饋,而後基於反饋持續提高模型的效果。這個遊戲能夠玩任意輪,兩個翻譯模型經過強化過程(例如,經過策略梯度方法)獲得持續改善。經過這種方式,他們開發了一個通用的學習框架,經過對偶學習遊戲,這個框架可用於訓練機器翻譯模型。

對偶學習機制很一些不一樣的特色。首先,咱們經過強化學習從未標註數據中訓練翻譯模型。這個工做顯著下降了對對齊雙語數據的要求,它打開了一個新的窗口,能夠從頭開始(甚至不使用任何平行數據)學習一個翻譯模型。實驗結果顯示,這個方法頗有前景。

其次,顯示出深度強化學習(DRL)在複雜真實世界中的應用,而不只僅是在遊戲這個領域。在最近幾年,深度強化學習吸引了不少科研人員的注意力。可是,大部分應用仍是集中在視頻或者棋盤遊戲,將深度強化學習應用到更加複雜的應用(規則沒有事先定義好,而且沒有明確的獎勵信號),依然存在很大挑戰。對偶學習提供了一種頗有前景的方式,能夠在真實世界應用中,例如,機器翻譯,抽取出強化學習須要的獎勵信號。

2 相關背景

對偶學習框架能夠應用到基於短語的統計機器翻譯和神經機器翻譯中。在這篇文章中,咱們主要聚焦在後者--神經機器翻譯,由於它做爲一個端到端的系統,很簡單,不須要人工設計精巧的工程。

神經機器翻譯系統一般是經過基於編碼-解碼框架的循環神經網絡(RNN)來實現。這個框架從源語言句子 x=x1,x2,...,xTx x=x1,x2,...,xTx 到目標語言 y=y1,y2,...,yTyy=y1,y2,...,yTy 學習了一個機率映射 P(y|x),其中,xi 和 yt 分別是句子x的第i個詞和句子y的第t個詞。

更具體一些,神經機器翻譯的編碼器讀取源語言句子 x ,而後基於RNN生成 TxTx 個狀態,

hi=f(hi1,xi)      (1)hi=f(hi−1,xi)      (1)

hihi 是時刻t的隱狀態,函數f是循環單元,例如Long Short-Term Memory(LSTM)單元或者Grated Recurrent Unit(GRU)。而後,神經網絡的解碼器計算每一個目標詞 ytyt 的條件機率,對於 ytyt ,已知它先前的詞 y<ty<t 和源語言句子,例如, 基於機率鏈式法則, 使用 P(yt|y<t,x)P(yt|y<t,x) 來肯定 P(y|x)P(y|x) 。P(yt|y<t,x)P(yt|y<t,x) 以下列所示,

P(yt|y<t,x)exp(yt;rt,ct)      (2)P(yt|y<t,x)∝exp(yt;rt,ct)      (2)

rt=g(rt1,yt1,ct)      (3)rt=g(rt−1,yt−1,ct)      (3)

ct=q(rt1,h1,...,hTx)      (4)ct=q(rt−1,h1,...,hTx)      (4)

其中, rtrt 是解碼器RNN在時刻t的隱狀態,類似地,也是經過LSTM或者GRU進行計算; ctct 根據編碼器的隱狀態定義了生成詞 ytyt 的上下文信息。 ctct 能夠是句子 x 的全局信息,例如 c1=c2=...=cTy=hTxc1=c2=...=cTy=hTx , 或者是局部信息,局部信息經過注意力機制實現,例如 ct=Txi=1αihi,αi=exp{a(hi,rt1)}jexp{a(hj,rt1)}ct=∑i=1Txαihi,αi=exp{a(hi,rt−1)}∑jexp{a(hj,rt−1)} , 其中, a(.,.)a(.,.) 是一個前饋神經網絡。

咱們將神經網絡中待優化的全部參數定義爲 ΘΘ ,將用於訓練的源語言-目標語言數據集定義爲 D ,而後要學習的目標函數就是尋找最優的參數 ΘΘ∗ 。

Θ=argmaxΘ(x,y)DTyt=1logP(yt|y<t,x;Θ)      (5)Θ∗=argmaxΘ∑(x,y)∈D∑t=1TylogP(yt|y<t,x;Θ)      (5)

3 對偶學習在機器翻譯中的應用

在這章中,咱們將會介紹對偶學習機制在神經機器翻譯中的應用。注意到翻譯任務常常是兩個方向,咱們首先設計一個有兩個機器人的遊戲,包含前向翻譯步驟和反向翻譯步驟,即便只使用單語數據,也能夠給兩個對偶翻譯模型提供質量反饋。而後咱們提出了對偶學習算法,稱之爲對偶神經機器翻譯(簡稱dual-NMT),在遊戲中,基於反饋回來的質量,提高兩個翻譯模型。

有兩個單語語料 DADA 和 DBDB ,分別包含語言A和語言B的句子。須要注意的是,這兩個語料並不須要互相對齊,甚至互相之間一點關係都沒有。假設,咱們右兩個弱翻譯模型,能夠將句子從語言A翻譯到語言B,反之亦然。咱們的目標是使用單語語料而非平行語料來提升兩個模型的準確率。從任何一個單語數據的句子開始,咱們首先將其翻譯爲另外一種語言,而後再將其翻譯回原始語言。經過評估這兩個翻譯結果,咱們將會了解到兩個翻譯模型的質量,並根據此來提高它們。這個過程能夠迭代不少輪直到翻譯模型收斂。

假設語料 DADA 有 NANA 個句子, DBDB 有 NBNB 個句子。定義 P(.|s;ΘAB)P(.|s;ΘAB) 和 P(.|s;ΘBA)P(.|s;ΘBA) 爲兩個神經翻譯模型,這裏 ΘABΘAB 和 ΘBAΘBA是它們的參數(正如第2章中所描述)。

假設咱們已經有兩個訓練好的語言模型 LMA(.)LMA(.) 和 LMB(.)LMB(.) (很容易得到,由於它們只須要單語數據),每一個語言模型獲取一個句子做爲輸入,而後輸出一個實數值,用於表示這個句子是它所屬語言天然句子的自信度。這裏,語言模型既可使用其餘資源,也能夠僅僅使用單語數據 DADA 和 DBDB。

若是遊戲是從 DADA 中的句子 s 開始 ,定義 smidsmid 做爲中間翻譯輸出。這個中間步驟有一箇中間的獎勵 r1=LMB(smid)r1=LMB(smid) , 表示輸出句子在語言 B 中的天然程度。已知中間翻譯輸出 smidsmid ,咱們使用從 smidsmid 還原過來的 s 的對數機率做爲通訊的獎勵(咱們將會交替使用重構和通訊)。數學上定義, 獎勵 r2=logP(s|smid;ΘBA)r2=logP(s|smid;ΘBA) 。

咱們簡單採用語言模型獎勵和通訊獎勵的線性組合做爲總體獎勵,例如, r=αr1+(1α)r2r=αr1+(1−α)r2 , 這裏 αα 是超參數。因爲遊戲的獎勵能夠視爲s , smidsmid 以及翻譯模型 ΘABΘAB 和 ΘBAΘBA 的函數,所以,咱們能夠經過策略梯度方法來優化翻譯模型中的參數,從而達到獎勵最大化,這個方法在強化學習中應用很普遍。

咱們基於翻譯模型 P(.|s;ΘBA)P(.|s;ΘBA) 採樣出 smidsmid 。而後咱們計算指望獎勵 E[r]E[r] 關於參數 ΘABΘAB 和 ΘBAΘBA 的梯度。根據策略梯度定理,很容易獲得,

ΘBAE[r]=E[(1α)ΘBAlogP(s|smid;ΘBA)]     (6)▽ΘBAE[r]=E[(1−α)▽ΘBAlogP(s|smid;ΘBA)]     (6)

ΘABE[r]=E[rΘABlogP(smid|s;ΘAB)]     (7)▽ΘABE[r]=E[r▽ΘABlogP(smid|s;ΘAB)]     (7)

這裏指望替換掉 smidsmid 。

基於公式(6)和公式(7),咱們能夠採用任何的採樣方法來估計指望的梯度。考慮到隨機採樣將會帶來很是大的方差,而且會致使機器翻譯中出現不合理的結果,針對梯度計算,咱們使用束搜索來獲取更加有意義的結果(更加合理的中間翻譯輸出),例如,咱們貪婪地產生top-K個高几率的中間翻譯輸出,而後使用束搜索的平均值來近似真實的梯度。若是遊戲是在 DBDB 中的句子 s 開始,梯度的計算就是一個對稱,在此,咱們忽略掉它。

遊戲能夠重複不少輪。在每一輪中,一個句子從 DADA 中採樣,另外一個句子是從 DBDB 中採樣,咱們基於遊戲(分別從兩個句子開始)來更新這兩個翻譯模型。具體的細節在算法1中給出。

4 相關實驗

咱們作了一系列實驗來測試提出的對偶學習機制在機器翻譯上的效果。

4.1 實驗設置

咱們使用兩個基準系統和對偶機器翻譯方法進行對比,1)標準神經機器翻譯(簡稱NMT),2)最近提出的基於NMT的方法,經過單語語料生成僞雙語句對用於輔助訓練(簡稱pseudo-NMT)。咱們的全部實驗都是使用Theano實現的輔助NMT系統來完成。

咱們評估這些算法在一對翻譯任務上的效果,包括英語翻譯爲法語(En->Fr)和法語到英語(Fr->En)。具體地,咱們使用相同的雙語語料,語料來源於WMT14,共有1200萬句對。而後將newstest2012和newstest2013做爲開發數據集,newstest2014做爲測試數據集。WMT14 提供的「News Crawl:articles from 2012」做爲單語數據。

咱們使用GRU網絡並遵循論文1(D. Bahdanau, K. Cho, and Y. Bengio. Neural machine translation by jointly learning to align
and translate. ICLR, 2015.)中的實踐來設置實驗參數。對於每種語言,咱們用平行語料中最頻繁的3萬個詞構造詞彙表,將包含至少一個OOV單詞的句子刪除。每一個詞被映射到620維的連續向量空間,循環單元的維度是1000。咱們將訓練集中超過50個詞的句子刪除。batch的大小爲80,每20個batch被預取,並按照句子長度排序。

對於基準的NMT模型,咱們徹底按照論文1提出的設置。對於基準的pseudo-NMT模型,咱們使用訓練好的NMT模型從單語數據中生成僞雙語句對,刪除超過50個詞的句子,將生成的數據與原始平行訓練數據融合在一塊兒,而後訓練這個模型,並用於測試。每一個基準系統經過AdaDelta算法在K40m GPU進行訓練,直到它們的效果在開發集上再也不提高爲止。

對偶神經機器翻譯(簡稱dual-NMT)模型須要每種語言的語言模型。咱們對於每種語言,使用相應的單語語料,訓練了基於RNN的語言模型。實驗中,語言模型就固定了,而後收到信息的對數似然做爲通訊信道(例如,翻譯模型)的獎勵。

在玩遊戲時,咱們使用暖啓動翻譯模型(已經從雙語語料中訓練出來的)來初始化信道,而後觀察dual-NMT模型可否有效提高模型翻譯準確率。在咱們的實驗中,爲了從雙語數據訓練的初始模型平滑過渡到徹底從單語數據訓練的模型,咱們採用瞭如下軟着陸策略。在每次對偶學習過程的開始,對於每一個mini batch,咱們使用單語數據一半的句子和雙語數據(從數據中採樣出來的用於訓練初始模型)中一半的句子。目標就是基於單語數據最大化獎勵(在第3部分定義的)的加權之和以及基於雙語數據的似然度(在第2部分定義)。隨着訓練過程的持續,咱們逐漸在mini batch中增長單語數據的比例,直到徹底不使用雙語數據。這裏,咱們在實驗中測試了兩個測試:

  • 第一個設置(參考Large),咱們在軟着陸階段,使用所有的1200萬雙語句對。也就是,暖啓動模型是基於所有雙語數據進行學習的;
  • 第二個設置(參考Small),咱們在1200萬雙語句對中隨機採樣了10%的數據,並在軟着陸階段使用它;

對於每一個設置,咱們都是訓練對偶機器翻譯算法一週。咱們在中間翻譯過程當中設置束搜索大小爲2。實驗中的全部超參數經過交叉驗證來設置。咱們使用BLEU做爲評估標準,由moses提供的 腳本工具 進行計算。遵循常規的實踐,在測試階段,如同先前許多的工做,咱們對於全部的算法均使用大小爲12的束搜索。

4.2 實驗結果分析

咱們在這部分分析實驗結果。回憶以前提到的兩個基線系統,英語->法語和法語->英語是分別訓練的,可是,dual-NMT系統一塊兒訓練這兩個基線系統。咱們在表1中總結了全部系統的效果,在源語言句子的各個長度上的BLEU分值曲線在圖1中畫出。

從表1中,咱們能夠看到dual-NMT系統在全部的設置中均超過了基線系統。在從英語翻譯爲法語的任務上,dual-NMT系統分別在第一種/第二種暖啓動方式超過基線NMT系統大約2.1/3.4個百分點,超過pseudo-NMT大約1.7/3.1個百分點。在從法語翻譯爲英語的任務上,提高更加顯著,dual-NMT系統在第一個/第二個暖啓動方式上分別超過NMT大約2.3/5.2個百分點,超過pseudo-NMT大約2.1/4.3個百分點。使人驚訝的是,在只有10%的雙語數據上法語翻譯爲英語的任務中,相比使用100%的常規NMT系統,dual-NMT取得了可比的翻譯正確率。這些結果顯示了dual-NMT算法的有效性。另外,咱們也觀察到以下結果:

  • 儘管pseudo-NMT的效果超過NMT,它的提高並不顯著。咱們認爲,多是從單語數據中生成的僞雙語句對質量很差,這個限制了pseudo-NMT的效果提高。須要注意的就是須要仔細選擇和過濾生成的僞雙語句對,以便pseudo-NMT能夠取得更好的效果;
  • 當平行雙語數據較少時,dual-NMT能夠有更大的提高。這個顯示了對偶學習機器能夠很好的利用單語數據。所以,咱們認爲dual-NMT在較少的有標籤平行數據和更大的單語句對上更有用。dual-NMT打開了一個新的窗口,能夠從頭開始學習一個翻譯模型。

咱們在源語言句子的各個長度上的BLEU分值曲線在圖1中畫出。從這個圖中,咱們能夠看出dual-NMT算法在全部的長度上超過了基準系統。

咱們對dual-NMT算法作了一些更深刻的研究,如表2所示。咱們研究了各個算法的重構後的效果:對於測試集的每一個句子,咱們將它翻譯到第4次並返回,而後使用BLEU分值來檢查返回的翻譯句子。咱們使用束搜索生成全部的翻譯結果。很容易地從表2中觀察到,dual-NMT的重構後的BLEU分數比NMT和pseudo-NMT更高。實際上,在從大規模平行數據上訓練的暖啓動模型上,dual-NMT超出NMT大約11.9/9.6,在10%數據上訓練的暖啓動模型上,dual-NMT超出NMT大約20.7/17.8。

咱們在表3上列出了幾個例句,用於對比使用對偶學習以前和以後模型的重構結果。很明顯,在對偶學習以後,重構的效果在兩個方向(英語->法語->英語,法語->英語->法語)上都有很大提高。

總之,全部的結果均顯示出對偶學習機器頗有前景而且能夠更好地利用單語數據。

5 擴展

在這部分,咱們討論對偶學習機制可能的擴展。

首先,儘管在咱們在這篇文章中集中在機器翻譯任務上,可是對偶學習的基本思想具備通用的應用性:只要兩個任務具有對偶形式,咱們就能夠利用強化學習算法將對偶機學習機制應用到從未標註數據中同時學習兩個任務。實際上,許多人工智能任務自然的是對偶形式,例如,語音識別和語音合成,圖像抓取和圖像合成,問題回答和問題生成,搜索(匹配查詢詞與文檔的類似度)和關鍵詞抽取(從文檔中抽取關鍵字/查詢詞)等等。對於更多的對偶任務,而不只僅是機器翻譯,設計和測試對偶學習算法將會頗有意義。

第二,儘管咱們將對偶學習集中在兩個任務上,可是咱們的技術並不只僅侷限在兩個任務。實際上,咱們主要的想法是造成一個閉環,目的是咱們經過比較原始輸入數據和最終輸出數據,可以提取出反饋信號。所以,若是有多於兩個相關的任務能夠造成閉環,咱們能夠應用這個技術來提高每一個任務在無標籤數據的效果。例如,對於英語句子 x ,咱們能夠先將它翻譯爲中文句子 y ,而後將 y 翻譯爲法語句子 z ,最終再將 z 翻譯爲英文句子 xx′ 。句子 x 和 xx′ 的類似度能夠表示閉環中三個翻譯模型的有效性,咱們基於閉環中的反饋信號能夠再次使用策略梯度方法來更新和提高這些模型。咱們更願意將這種通用的對偶學習命名爲閉環學習,而且在將來會測試它的有效性。

6 展望

咱們計劃在後續探索以下的方向,第一,在實驗中,咱們使用了雙語數據用於暖啓動dual-NMT的訓練。更加激動的方向就是從頭學習,例如,直接從兩種語言的單語數據(可能須要詞彙詞典)開始學習。第二,dual-NMT是基於NMT系統的,咱們基本的想法也能夠用於基於短語的統計機器翻譯系統中,咱們將會探索這個方向。第三,咱們僅僅考慮一對語言,咱們將會進行擴展,使用單語數據,聯合訓練至少3種語言的翻譯模型。

7 從控制系統的角度思考對偶學習

在第5章中,提到了對偶學習能夠視爲一個閉環學習。閉環學習的概念來源於反饋控制系統。反饋控制系統,輸入信號通過控制器、執行器,獲得輸出信號,而後再將輸出信號採集回來,輸入信號減去採集回來的輸出信號,獲得偏差,根據偏差來調節控制器,使得輸出可以跟隨輸入信號。

對偶神經機器翻譯系統能夠視爲一個反饋控制系統,這裏以中文翻譯爲英文,再將英文翻譯爲中文爲例。

  • 經過中->英翻譯模型將中文翻譯爲英文,就是將輸入信號經過控制器、執行器,轉換爲輸出信號,也就是英文;
  • 經過英->中翻譯模型將英文翻譯爲中文,就是將輸出信號經過信號採集器返回給輸入端,轉換爲與輸入信號同等量綱的信號,也即中文;
  • 經過指標,比較原始中文與翻譯過來的中文的類似性,來評估兩個翻譯模型的效果,也就是計算輸入信號與採集回來的信號之間的偏差,從而經過控制器的調節,調整輸出信號的變化;

循環迭代,直到輸出信號可以跟隨輸入信號。

在控制系統的設計中,須要考慮三個指標:

  • 穩定性
  • 準確性
  • 快速性

分別將這三個指標對應到對偶機器翻譯系統中,

  • 穩定性就是對偶機器翻譯系統中兩個翻譯模型的穩定性,若是翻譯系統存在漏翻譯、翻譯質量低等問題,可否在迭代過程當中逐漸改善?若是不能獲得改善,將會致使翻譯質量會愈來愈低,而非愈來愈好,這個系統就會逐漸的變差,也就是這個系統是不穩定的。
  • 準確性,也就是對偶機器翻譯系統最終穩定時,翻譯質量能達到多少?
  • 快速性,若是對偶翻譯系統須要達到一個指望的準確度,須要多少時間能達到?另外,若是要超越NMT基線系統,須要多少時間?

所以,咱們能夠發現,對偶機器翻譯系統是反饋控制系統的一個特例,對偶機器翻譯系統在設計時,同反饋控制系統同樣,須要考慮穩定性、準確性和快速性三個指標。很期待對偶學習以及其在機器翻譯領域的發展。

8 Reference

Di He, Yingce Xia, Tao Qin, Liwei Wang, Nenghai Yu, Tie-Yan Liu, and Wei-Ying Ma , Dual Learning for Machine Translation , NIPS 2016.

演講 | 微軟亞洲研究院劉鐵巖:對偶學習推進人工智能的新浪潮

研究|對偶學習:一種新的機器學習範式

相關文章
相關標籤/搜索