神經網絡機器翻譯(NMT)是seq2seq模型的典型應用,從2014年提出開始,其性能就接近於傳統的基於詞組的機器翻譯方法,隨後,研究人員不斷改進seq2seq模型,包括引入注意力模型、使用外部記憶機制、使用半監督學習和修改訓練準則等方法,在短短2年時間內使得NMT的性能超過了傳統的基於詞組的機器翻譯方法。在27號谷歌宣布推出谷歌神經網絡機器翻譯系統,實現了NMT的首個商業化部署,使得NMT真正從高校實驗室走向了實際應用。本期Paperweekly的主題是神經網絡機器翻譯下的字符級方法,主要用來解決NMT中的out-of-vocabulary詞問題,分別是:
1、A Character-Level Decoder without Explicit Segmentation for Neural Machine Translation,2016
2、Achieving Open Vocabulary Neural Machine Translation with Hybrid Word-Character Models,2016
3、Character-based Neural Machine Translation,Costa-Jussa, 2016
4、Character-based Neural Machine Translation,Ling, 2016
5、Neural Machine Translation of Rare Words with Subword Units,2016
A Character-Level Decoder without Explicit Segmentation for Neural Machine Translation
作者Junyoung Chung, Kyunghyun Cho, Yoshua Bengio
單位Universite de Montreal
關鍵詞Segmentation, Character-level, Bi-scale recurrent network
文章來源ACL 2016
問題能否在不需要分詞的前提下直接在字符級進行神經機器翻譯。
模型在講模型之前,本文花了大量篇幅論證為何需要在不分詞的前提下進行字符級翻譯,首先作者總結了詞級翻譯的缺點。
詞級翻譯的缺點包括:
1、任何一個語言都沒有完美的分詞算法,完美的分詞算法應該能夠將任意句子劃分為lexemes和morphemes組成的序列
2、導致的問題就是在詞典中經常充斥著許多共享一個lexeme但有著不同morphology的詞,比如run,runs,ran,running可能都存在於詞典中,每個詞都對應一個詞向量,但是它們明顯共享相同的lexeme——run
3、存在unknown word問題和rare word問題,rare word問題是指某些詞典中詞在訓練集中出現次數過少,導致無法訓練得到很好的詞向量;unknown word問題是指不在詞典中的詞被標記為UNK(OOV詞)
接著作者指出使用字符集翻譯可以解決上述問題:
1、使用LSTM或GRU可以解決長時依賴問題
2、使用字符級建模可以避免許多詞態變形詞出現在詞典中
然而上述字符級方法依然需要進行分詞,然後對每個詞的字符序列進行編碼,因此引出了本文的motivation,即是否能直接在不分詞的字符序列上進行翻譯。
本文使用的模型同樣是經典的seq2seq模型,其創新點主要在decoder端,引入了一種新的網絡結構biscale RNN,來捕獲字符和詞兩個timescale上的信息。具體來說,主要分為faster層和slower層,faster層的gated激活值取決於上一步的faster和slower層的激活值,faster層要想影響slower層,則必須要是faster層處理完當前數據,並且進行重置。換句話說,slower層無法接受faster層輸入,直到faster層處理完其數據,因此比faster層要慢,而這樣的層次結構也對應字符和詞在timescale上的關係。下圖為網絡結構示意圖。
在4種語言翻譯任務上的實驗顯示完全可以在不分詞的情況下進行字符級翻譯,性能優於state-of-the-art的非神經翻譯系統
相關工作Sennrich ACL2016提出使用BPE算法對subword建模。Kim AAAI2016中提出直接對字符進行encode,Costa-jussa ICLR2016中將該模型用在了NMT任務中。Ling ICLR2016的工作中使用Bi-RNN來編碼字符序列。以上工作基於字符級展開,但它們都依賴於知道如何將字符分為詞,即分詞。本文研究能否在不分詞的情況下進行字符級翻譯。
簡評本文是Bengio組工作,Bi-scale RNN受啟發於該組之前提出的GF-RNN,本文創新點主要是提出了一種新的RNN結構,可以在字符和詞兩個timescales上進行處理,輸出字符序列不需要進行分詞。不足是未考慮encoder端是否也可以直接使用未分詞的字符序列,而是僅僅使用了分詞後的BPE序列。
Achieving Open Vocabulary Neural Machine Translation with Hybrid Word-Character Models作者Minh-Thang Luong and Christopher D. Manning
單位Stanford University
關鍵詞OOV, hybrid word-character models, NMT
文章來源ACL 2016
問題機器翻譯裡面的OOV問題, 如何處理UNK
模型提出了一種混合word-character的NMT模型.在訓練難度和複雜度不是很高的情況下,同時解決源語言和目標語言的OOV問題.
這個圖表達了模型的整體思路. 大多數情況下,模型在word-level進行translation. 當出現<unk>的時候,則會啟用character-level的模型. 對source <unk>, 由character-level模型來得到它的representation; 對target <unk> , 用character-level模型來產生word.
1、整體上採用他們組以前提出的基於global attention的encoder-decoder模型. RNN採用的是deep LSTM.
2、源語言端和目標語言端的character-level模型都是基於character的deep LSTM. 對源語言端來說, 它的character-level模型是context independent的. 隱層狀態全部初始化為0, 因此在訓練時可以預先計算mini-batch裡的每一個rare word的representation. 而對於目標語言端來說, 它的character-level模型是context dependent的.它的第一層的hidden state要根據當前context來初始化, 其它部分都初始化為0.訓練時, 在目標語言的decoder階段, 首先用word-level的decoder產生句子, 這時句子裡包含了一些<unk>. 接著對這些<unk>, 用character-level模型以batch mode來產生rare word.
3、對於目標語言端character-level模型的初始化問題, 作者提出了兩種方法來表示當前的context. 一種叫做same-path, 用預測<unk>的softmax層之前的ht來表達. 但是因為ht是用來預測<unk>的, 所以所有ht的值都會比較相似,這樣很難用來產生不同的目標rare word. 因此作者提出了第二種表達叫做separate-path, 用ht』來表達context. ht』不用預測<unk>, 是專門作為context在character-level的輸入的. 它的計算方法和ht』相同,只是用了一個不一樣的矩陣.
4、模型訓練的目標函數是cross-entropy loss, 同時考慮了word level和character level的loss.
相關工作NMT的模型分為word-level和character-level的. 對於word-level模型,要解決OOV問題, 之前的工作提出了unk replacement(Luong et al. 2015b), 使用大字典並在softmax時進行採樣(Jean et al. 2015), 對unk進行Huffman編碼(Chitnis et al. 2015)等方法. 而對於character-level的模型, 本身可以處理OOV詞, 但是訓練難度和複雜度會增加.
簡評本文的創新之處在於提出了混合word-character model的NMT模型. 這個混合模型結合了二者的優點, 在保證模型複雜度較低的同時,實現了很好的效果.因為加入了character, 特別適合單詞有豐富變形的語言.
Character-based Neural Machine Translation作者Marta R. Costa-jussa and Jose A. R. Fonollosa
單位TALP Research Center, Universitat Politecnica de Catalunya, Barcelona
關鍵詞NMT,character-based word embeddings,CNN
文章來源ICLR2016
問題本文提出使用character-based word embeddings的NMT,可以在一定程度上克服機器翻譯中OOV問題。
模型如上圖所示,這篇論文使用的基本模型架構是一個帶attention機制的seq2seq的encoder-decoder的架構,使用的神經網絡單元是GRU。encoder把源句子轉化成一個向量(雙向),使用attention的機制來捕獲context信息,decoder把context解碼成目標句子。網絡的輸入仍然使用word embedding,但是作者在獲取word embedding的時候使用的方法不同。本文是基於詞中的character來生成word embedding的,具體方法如下圖所示。
上圖中,最底層是一個character-based embedding組成的序列,對應的是每個詞中的字母。然後這個序列被送入一個由不同長度的一維卷積過濾器組成的集合中進行處理,不同的長度對應單詞中不同數量的字母(從1到7)。對於每個卷積過濾器,只取最大的值作為輸出。然後把每個卷積過濾器輸出的最大值連接起來組成一個向量。最後這個向量再通過兩層Highway layer的處理作為最終的word embeddings。這個方法的詳細信息可以參考Kim的論文Character-Aware Neural Language Models(2016)。
資源1、本文數據集[German-English WMT data] (http://www.statmt.org/wmt15/translation-task.html)
2、建立對比模型使用的軟體包DL4MT
相關工作1、2003年,基於短語的統計機器翻譯模型。Statistical Phrase-Based Translation
2、2013年,基於神經網絡的機器翻譯模型。Recurrent continuous translation models
3、2014年,seq2seq的神經網絡模型用於機器翻譯。Sequence to sequence learning with neural networks
本文作者將基於character來產生word embedding的方法應用於機器翻譯,可以在一定程度上克服OOV的問題。同時,由於利用了單詞內部的信息,這篇論文提出的方法對於詞形變化豐富的語言的翻譯也產生了更好的效果。但是,作者只是在source side使用了上述方法,對於target side,仍然面臨詞典大小的限制。
Character-based Neural Machine Translation作者Wang Ling, Isabel Trancoso, Chris Dyer, Alan W Black
單位1、LF Spoken Systems Lab,Instituto Superior Tecnico Lisbon, Portugal
2、Language Technologies Institute, Carnegie Mellon University Pittsburga, PA 15213, USA
關鍵詞NMT, Character-Based
文章來源ICLR 2016
問題嘗試在字符級別上應用神經機器學習方法
模型在帶注意力機制的神經機器學習模型的前後端增加字符到詞(C2W)和詞向量到字符(V2C)的模塊。
圖中,小矩形是一個雙向LSTM,雙向LSTM的前向和後向的最終狀態以及bias之和為詞的向量表示。
這個模塊主要由三個步驟組成:
1、將字符轉換為向量表示。
2、將字符向量和之前模型產生注意力向量的a和目標詞在前向LSTM中產生的向量表示做拼接並輸入到LSTM。
3、將得到的向量輸入到softmax層得到結果。
相關工作1、Neural machine translation by jointly learning to align and translate.
簡評這篇文章在基於注意力機制的機器翻譯模型上增加了兩個模塊。由於是基於字符集別的模型,該模型自然可以學得一些語言中的前後綴在翻譯中的關係。此外,基於字符級別的模型在翻譯未知詞時有靈活性。可是,文中也提到,該模型為能夠準確的翻譯未知詞。並且該文也沒有明確表明該模型和其他模型相比具有哪些明顯的優勢。從實際上來說,該模型在V2C部分的訓練速度慢是一個很大的弱點,因此若僅根據文章的表述,該模型的實際應用價值應該有限。
Rico Sennrich and Barry Haddow and Alexandra Birch
單位School of Informatics, University of Edinburgh
關鍵詞NMT, Rare Words, Subword Units, BPE
文章來源ACL 2016
問題NMT中的OOV(集外詞)和罕見詞(Rare Words)問題通常用back-off 詞典的方式來解決,本文嘗試用一種更簡單有效的方式(Subword Units)來表示開放詞表。
模型本文從命名實體、同根詞、外來語、組合詞(罕見詞有相當大比例是上述幾種)的翻譯策略中得到啟發,認為把這些罕見詞拆分為「子詞單元」(subword units)的組合,可以有效的緩解NMT的OOV和罕見詞翻譯的問題。
子詞單元的拆分策略,則是借鑑了一種數據壓縮算法:Byte Pair Encoding(BPE)(Gage,1994)算法。該算法的操作過程和示例如Figure1所示。
不同於(Chitnis and DeNero,2015)提出的霍夫曼編碼,這裡的壓縮算法不是針對於詞做變長編碼,而是對於子詞來操作。這樣,即使是訓練語料裡未見過的新詞,也可以通過子詞的拼接來生成翻譯。
本文還探討了BPE的兩種編碼方式:一種是源語言詞彙和目標語言詞彙分別編碼,另一種是雙語詞彙聯合編碼。前者的優勢是讓詞表和文本的表示更緊湊,後者則可以儘可能保證原文和譯文的子詞切分方式統一。從實驗結果來看,在音譯或簡單複製較多的情形下(比如英德)翻譯,聯合編碼的效果更佳。
實驗結果分別在WMT15英德和英俄的任務上得到1.1和1.3個BLEU值的提升。
本文提出的子詞拆分算法代碼在 https://github.com/rsennrich/subword-nmt
實驗所用的NMT系統為Groundhog: github.com/sebastien-j/LV_groundhog
實驗數據來自WMT 2015
OOV的處理一直是機器翻譯研究的重點。
基於字符的翻譯在短語SMT模型中就已被提出,並在緊密相關的語種對上驗證是成功的(Vilar et al., 2007; Tiedemann,2009; Neubig et al., 2012)。 此外還有各種形態素切分方法應用於短語模型,(Nießen and Ney,2000; Koehn and Knight, 2003; Virpioja et al.,2007; Stallard et al., 2012)。
對於NMT,也有很多基於字符或形態素的方法用於生成定長連續詞向量(Luong et al., 2013; Botha and Blunsom, 2014; Ling et al., 2015a; Kim et al., 2015)。與本文類似的一項工作 (Ling et al., 2015b)發現在基於詞的方法上沒有明顯提升。其與本文的一個區別在於,attention機制仍然在詞層級進行操作,而本文在子詞層級上。
這篇文章的創新點在於提出了一種介乎字符和單詞之間,也不同於字符n-gram的文本表示單元,並借鑑BPE壓縮算法,在詞表大小和文本長度兩個方面取得一個較為平衡的狀態。應用在非同源/近源的語言對(如英漢)是否可以有類似的效果,尚待研究。在NMT模型的優化上,也還有探討的空間。
本文的實驗評價方法值得學習,單看BLEU值並不覺得有驚豔之處,但加上CHR F3和(對所有詞、罕見詞和集外詞分別統計的)unigram F1這兩個評價指標,尤其是Figure2和3畫出來的效果,還是讓人比較信服的。
OOV詞對於翻譯性能和實用性的影響非常巨大,如何處理OOV詞並達到open vocabulary一直是NMT的主要研究方向。傳統方法基於單詞級別來處理該問題,比如使用UNK替換、擴大詞典規模等方法,往往治標不治本。因此最近一些研究者提出基於字符的NMT模型,取得了不錯的成績,字符級方法的主要優勢包括不受語言的形態變化、能預測出詞典中未出現的單詞並降低詞典大小等。值得一提的是,基於字符的模型不僅局限於NMT上,任何生成模型都面臨OOV詞問題,因此是否能夠將字符級方法用在其他NLP任務,比如閱讀理解或文本摘要上,讓我們拭目以待。以上為本期Paperweekly的主要內容,感謝EdwardHux、Mygod9、Jaylee1992、Susie和AllenCai五位同學的整理。