一種基于詞尾預(yù)測的提高英俄翻譯質(zhì)量的方法
原創(chuàng)【51CTO.com原創(chuàng)稿件】神經(jīng)網(wǎng)絡(luò)翻譯模型受限于其可以使用的詞表大小,經(jīng)常會(huì)遇到詞表無法覆蓋源端和目標(biāo)端單詞的情況,特別是當(dāng)處理形態(tài)豐富的語言(例如俄語、西班牙語等)的時(shí)候,詞表對(duì)全部語料的覆蓋度往往不夠,這就導(dǎo)致很多“未登錄詞”的產(chǎn)生,嚴(yán)重影響翻譯質(zhì)量。
已有的工作主要關(guān)注在如何調(diào)整翻譯粒度以及擴(kuò)展詞表大小兩個(gè)維度上,這些工作可以減少“未登錄詞”的產(chǎn)生,但是語言本身的形態(tài)問題并沒有被真正研究和專門解決過。
我們的工作提出了一種創(chuàng)新的方法,不僅能夠通過控制翻譯粒度來減少數(shù)據(jù)稀疏,進(jìn)而減少“未登錄詞”,還可以通過一個(gè)有效的詞尾預(yù)測機(jī)制,大大降低目標(biāo)端俄語譯文的形態(tài)錯(cuò)誤,提高英俄翻譯質(zhì)量。通過和多個(gè)比較有影響力的已有工作(基于subword和character的方法)對(duì)比,在5000萬量級(jí)的超大規(guī)模的數(shù)據(jù)集上,我們的方法可以成功的在基于RNN和Transformer兩種主流的神經(jīng)網(wǎng)絡(luò)翻譯模型上得到穩(wěn)定的提升。
研究背景
近年來,神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯(Neural Machine Translation, NMT)在很多語種和場景上表現(xiàn)出了明顯優(yōu)于統(tǒng)計(jì)機(jī)器翻譯(Statistic Machine Translation, SMT)的效果。神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯將源語言句子編碼(encode)到一個(gè)隱狀態(tài)(hidden state),再從這個(gè)隱狀態(tài)開始解碼(decode),逐個(gè)生成目標(biāo)語言的譯文詞。NMT系統(tǒng)會(huì)在目標(biāo)端設(shè)置一個(gè)固定大小的詞表,解碼階段的每一步中,會(huì)從這個(gè)固定大小的詞表中預(yù)測產(chǎn)生一個(gè)詞,作為當(dāng)前步驟的譯文詞。受限于計(jì)算機(jī)的硬件資源限制,這個(gè)詞表往往不會(huì)設(shè)的很大(一般是3萬-5萬)。并且,隨著詞表的增大,預(yù)測的難度也會(huì)相應(yīng)的增加。基于詞(word)的NMT系統(tǒng)經(jīng)常會(huì)遭遇“未登錄詞”(Out of vocabulary, OOV)的問題,特別是目標(biāo)端是一個(gè)形態(tài)豐富(Morphologically Rich)的語言時(shí),這個(gè)問題會(huì)更加嚴(yán)重。以“英-俄”翻譯為例,俄語是一種形態(tài)非常豐富的語言,一個(gè)3-5萬的詞表往往不能覆蓋俄語端的所有詞,會(huì)有很多OOV產(chǎn)生。OOV的出現(xiàn)對(duì)翻譯質(zhì)量的影響是比較大的。
針對(duì)這個(gè)問題,有很多方法嘗試解決。其中一些方法會(huì)從翻譯粒度的角度出發(fā)(translation granularity),另外還有一些方法嘗試有效的擴(kuò)展目標(biāo)端詞表大小。這些方法雖然能有效的將少OOV,但是這些方法并沒有對(duì)目標(biāo)端語言的形態(tài)(morphology)進(jìn)行專門的建模。
對(duì)于俄語這種形態(tài)豐富的語言,詞干(stem)的個(gè)數(shù)會(huì)比詞的個(gè)數(shù)少很多,因此很自然的,我們會(huì)想到要對(duì)詞干和詞尾(suffix)分別進(jìn)行建模。我們?cè)O(shè)計(jì)實(shí)現(xiàn)了一種方法,在解碼時(shí)每一個(gè)解碼步驟(decoding step)中,分別預(yù)測詞干和詞尾。訓(xùn)練階段,目標(biāo)語言端會(huì)使用兩個(gè)序列,分別是詞干序列和詞尾序列。詞干序列和詞尾序列的生成過程如下圖所示:
(詞干序列和詞尾序列的生成,“N”表示詞干和詞本身相同,即這個(gè)詞沒有詞尾)
通過這種方式,數(shù)據(jù)稀疏問題會(huì)得到緩解,因?yàn)樵~干的種類會(huì)顯著小于詞的種類,而詞尾的種類只有幾百種。
相關(guān)工作
基于子詞(subword)的和基于字符(character)的這兩種方法,從調(diào)整翻譯粒度的角度出發(fā)來幫助緩解目標(biāo)端形態(tài)豐富語言的翻譯問題。一種基于子詞的方法利用BPE(Byte Pari Encoding)算法來生成一個(gè)詞匯表。語料中經(jīng)常出現(xiàn)的詞會(huì)被保留在詞匯表中,其他的不太常見的詞則會(huì)被拆分成一些子詞。由于少數(shù)量的子詞就可以拼成全部不常見的詞,因此NMT的詞表中只保留常見詞和這些子詞就可以了。還有一種基于字符的NMT系統(tǒng),源端句子和目標(biāo)端句子都會(huì)表示為字符的序列,這種系統(tǒng)對(duì)源端形態(tài)豐富的語言可以處理的比較好,并且通過在源端引入卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network, CNN),遠(yuǎn)距離的依賴也可以被建模。上述兩種方式雖然可以緩解數(shù)據(jù)稀疏,但是并沒有專門對(duì)語言的形態(tài)進(jìn)行建模,子詞和字符并不是一個(gè)完整的語言學(xué)單元(unit)。
還有一些研究工作是從如何有效的擴(kuò)大目標(biāo)端詞匯表出發(fā)的,例如在目標(biāo)端設(shè)置一個(gè)很大的詞匯表,但是每次訓(xùn)練的過程中,只在一個(gè)子表上進(jìn)行預(yù)測,這個(gè)子表中包含了所有可能出現(xiàn)的譯文詞。這種方法雖然可以解決未登錄詞的問題,但是數(shù)據(jù)稀疏問題仍然存在,因?yàn)榈皖l的詞是未被充分訓(xùn)練的。
神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯
本文在兩種主要的神經(jīng)網(wǎng)絡(luò)翻譯系統(tǒng)上驗(yàn)證了“基于詞尾預(yù)測”的方法的有效性,分別是基于遞歸神經(jīng)網(wǎng)絡(luò)的機(jī)器翻譯(Recurrent Neural Network Based, RNN-based)和谷歌在17年提出的***的神經(jīng)網(wǎng)絡(luò)翻譯模型(Transformer),詳細(xì)介紹可以查看相應(yīng)論文。RNN-based神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯如下圖:
(“Neural Machine Translation by Jointly Learning to Align and Translate”, Bahdanau et al., 2015)
Transformer的結(jié)構(gòu)如下圖:
(“Attention Is All You Need”, Ashish Vaswani et al., 2017)
俄語的詞干和詞尾
俄語是一種形態(tài)豐富的語言,單復(fù)數(shù)(number)、格(case)、陰陽性(gender)都會(huì)影響詞的形態(tài)。以名詞“ball”為例,“ball”是一個(gè)中性詞,因此不會(huì)隨陰陽性的變化而變化,但當(dāng)單復(fù)數(shù)、格變化時(shí),會(huì)產(chǎn)生如下多種形態(tài):
一個(gè)俄語詞可以分為兩部分,即詞干和詞尾,詞尾的變化是俄語形態(tài)變化的體現(xiàn),詞尾可以體現(xiàn)俄語的單復(fù)數(shù)、格、陰陽性等信息。利用一個(gè)基于規(guī)則的俄語詞干獲取工具,可以得到一個(gè)俄語句子中每一個(gè)詞的詞干和詞尾。
詞尾預(yù)測網(wǎng)絡(luò)
在NMT的解碼階段,每一個(gè)解碼步驟分別預(yù)測詞干和詞尾。詞干的生成和NMT原有的網(wǎng)絡(luò)結(jié)構(gòu)一致。額外的,利用當(dāng)前step生成的詞干、當(dāng)前decoder端的hidden state和源端的source context信息,通過一個(gè)前饋神經(jīng)網(wǎng)絡(luò)(Feedforward neural network)生成當(dāng)前step的詞尾。網(wǎng)絡(luò)結(jié)構(gòu)如下圖:
***,將生成的詞干和詞尾拼接在一起,就是當(dāng)前step的譯文單詞。
實(shí)驗(yàn)
我們?cè)赗NN和Transformer上都進(jìn)行了實(shí)驗(yàn),在WMT-2017英俄新聞翻譯任務(wù)的部分訓(xùn)練語料(約530萬)上,效果如下圖:
其中,Subword是使用基于子詞方法作為baseline,F(xiàn)ully Character-based是使用基于字符的NMT系統(tǒng)作為baseline。“Suffix Prediction”是我們的系統(tǒng)。
另外,我們還在電子商務(wù)領(lǐng)域的數(shù)據(jù)上,使用超大規(guī)模的語料(5000萬),證明了該方法的有效性,實(shí)驗(yàn)結(jié)果如圖:
測試集包括商品的標(biāo)題(Title)、詳情(Description)和用戶評(píng)論(Comment)內(nèi)容,示例如下:
一些翻譯結(jié)果的例子:
***個(gè)例子中,標(biāo)號(hào)為1和2的俄語詞的形態(tài)代表著這個(gè)詞是一個(gè)反身動(dòng)詞(reflexive verb),反身動(dòng)詞的直接賓語和主語是同一個(gè)事物,換句話說,反身動(dòng)詞的施事者和受事者是同一個(gè)事物。從源端句子中可以看出,“return”的施事者是購買商品的人,受事者是某個(gè)要退還的商品,因此1和2的譯文詞是錯(cuò)誤的。3的譯文詞是正確的,它的詞尾代表著它是一個(gè)不定式動(dòng)詞(infinitive verb),這個(gè)不定式動(dòng)詞是可以有賓語的。在第二個(gè)例子中,標(biāo)號(hào)1和2代表復(fù)數(shù)形式,4代表單數(shù)。第三個(gè)例子中,3代表過去時(shí),1和2代表現(xiàn)在時(shí)。上面的例子中,相比于基于子詞和基于字符的模型,我們的模型可以產(chǎn)生更正確的俄語形態(tài)。
總結(jié)
我們提出了一種簡單、有效的方法來提高目標(biāo)端是形態(tài)豐富語言(例如“英-俄”)的NMT系統(tǒng)的翻譯質(zhì)量。在解碼階段的每一個(gè)步驟中,首先生成詞干,然后生成詞尾。我們?cè)趦煞NNMT模型(RNN-based NMT和Transformer)上,和基于子詞(subword)和字符(character)的方法進(jìn)行了對(duì)比,證明了方法的有效性。我們使用了大規(guī)模(530萬)和超大規(guī)模(5000萬)的語料,在新聞和電子商務(wù)兩個(gè)領(lǐng)域上進(jìn)一步這種方法可以帶來穩(wěn)定的提升。在我們的工作中,詞尾在NMT中***被專門的建模。
團(tuán)隊(duì):iDst-NLP-翻譯平臺(tái)
作者:宋楷/Kai Song(阿里巴巴), 張?jiān)?Yue Zhang(新加坡科技設(shè)計(jì)大學(xué)), 張民/Min Zhang (蘇州大學(xué)), 駱衛(wèi)華/Weihua Luo(阿里巴巴)
會(huì)議:AAAI-18
【51CTO原創(chuàng)稿件,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文作者和出處為51CTO.com】