神經(jīng)機(jī)器翻譯是最近提出的機(jī)器翻譯方法楼眷。與傳統(tǒng)的統(tǒng)計(jì)機(jī)器翻譯不同憋沿,神經(jīng)機(jī)器翻譯的目的是建立一個(gè)單一的神經(jīng)網(wǎng)絡(luò)逛揩,可以聯(lián)合調(diào)整跷跪,以最大限度地提高翻譯性能馋嗜。最近提出的用于神經(jīng)機(jī)器翻譯的模型通常屬于編碼器 - 解碼器族,并且將源語句編碼成固定長(zhǎng)度向量吵瞻,解碼器從該向量生成翻譯葛菇。在本文中甘磨,我們推測(cè)使用固定長(zhǎng)度向量是提高這種基本編碼器 - 解碼器架構(gòu)的性能的瓶頸。通過允許模型自動(dòng)(軟)搜索與預(yù)測(cè)目標(biāo)詞相關(guān)的部分源語句眯停,而不必明確地將這些部分形成為硬分段的方法解決這個(gè)瓶頸济舆。通過這種新的方法,我們?nèi)〉昧伺c現(xiàn)有的基于短語的系統(tǒng)在英語到法語翻譯任務(wù)的翻譯性能具有可比性的成績(jī)莺债。此外滋觉,定性分析揭示了模型發(fā)現(xiàn)的(軟)對(duì)齊對(duì)與我們的直覺吻合得很好。
1. 介紹
現(xiàn)有的大部分神經(jīng)機(jī)器翻譯模型都是基于編碼器-解碼器模型齐邦。編碼器神經(jīng)網(wǎng)絡(luò)將源語句讀取并編碼成固定長(zhǎng)度向量椎侠。解碼器然后從編碼向量輸出轉(zhuǎn)換。由用于語言對(duì)的編碼器和解碼器組成的整個(gè)編碼器 - 解碼器系統(tǒng)被聯(lián)合訓(xùn)練以最大化給定源句子的正確翻譯的概率措拇。
這種編碼器-解碼器方法一個(gè)潛在的問題就是神經(jīng)網(wǎng)絡(luò)必須具備能將有效信息壓縮成指定長(zhǎng)度向量的能力我纪。這對(duì)神經(jīng)網(wǎng)絡(luò)處理長(zhǎng)句子來說是一個(gè)挑戰(zhàn)。研究表明儡羔,隨著句子長(zhǎng)度的增加宣羊,這種基本的編碼器-解碼器模型的性能變差得越來越快。
為了解決這個(gè)問題汰蜘,我們?cè)谶@個(gè)編碼器-解碼器的模型上做了延伸仇冯,就是讓神經(jīng)網(wǎng)絡(luò)聯(lián)合學(xué)習(xí)對(duì)齊和翻譯。每當(dāng)該模型在翻譯中生成單詞時(shí)族操,它(軟)搜索源語句中集中最相關(guān)信息的一組位置苛坚。然后,模型基于與這些源位置和所有先前產(chǎn)生的目標(biāo)字相關(guān)聯(lián)的上下文向量來預(yù)測(cè)目標(biāo)字色难。
該方法與基本編碼器 - 解碼器的最重要的區(qū)別特征在于泼舱,它不試圖將整個(gè)輸入語句編碼為單個(gè)固定長(zhǎng)度向量。相反枷莉,它將輸入句子編碼為向量序列娇昙,并且在解碼翻譯時(shí)自適應(yīng)地選擇這些向量的子集。這使得神經(jīng)翻譯模型不必將源語句的所有信息壓縮成固定長(zhǎng)度的向量笤妙,而不管其長(zhǎng)度如何冒掌。我們認(rèn)為這個(gè)模型能更好的處理長(zhǎng)句子。
2. 背景
從概率的角度來看蹲盘,翻譯等價(jià)于找到最大化給定源句子x的條件概率的目標(biāo)句子y股毫,即arg maxy p(y | x)。在神經(jīng)機(jī)器翻譯中召衔,我們使用參數(shù)化模型來使用并行訓(xùn)練語料庫來最大化句子對(duì)的條件概率铃诬。一旦通過翻譯模型學(xué)習(xí)了條件分布,給定源句子,可以通過搜索使條件概率最大化的句子來生成相應(yīng)的翻譯趣席。
2.1 RNN 編碼器-解碼器
我們簡(jiǎn)要描述的底層框架兵志,稱為RNN編碼器 - 解碼器,是由Cho等人提出吩坝。在這個(gè)基礎(chǔ)上我們建立一個(gè)新的架構(gòu)毒姨,學(xué)習(xí)同時(shí)對(duì)齊和翻譯。
在編碼器 - 解碼器框架中钉寝,編碼器讀取輸入句子,即向量x =(x1闸迷,...嵌纲,xTx)的序列。最常見的方法是使用RNN, 如下:
ht=f(xt, ht?1)
c=q({h1,···,hTx}),
ht是在t時(shí)刻的hidden state, c是從hidden state生成的向量腥沽,f和q是一些非線性方程逮走。
這個(gè)解碼器通常訓(xùn)練為預(yù)測(cè)基于文本向量c和所有之前預(yù)測(cè)的詞y1~yt'-1的下一個(gè)詞yt‘。換句話來說今阳,這個(gè)解碼器通過將聯(lián)合概率分解為有序條件來定義翻譯y上的概率:
p(y) = 师溅??p(yt| {y1,···,yt?1},c) ???求和符號(hào)盾舌,底為t=1到T
3. 學(xué)習(xí)對(duì)齊與翻譯
在本節(jié)中墓臭,我們提出了一種用于神經(jīng)機(jī)器翻譯的新穎架構(gòu)。新架構(gòu)包括作為編碼器的雙向RNN和在解碼翻譯期間模擬通過源語句搜索的解碼器妖谴。
3.1 解碼器
在這個(gè)模型中窿锉,我們定義一個(gè)條件概率:
p(yi|y1, . . . , yi?1,x) =g(yi?1, si, ci)
si是RNN在t時(shí)刻的hidden state,
si=f(si?1,yi?1,ci).
應(yīng)當(dāng)注意膝舅,與現(xiàn)有的編碼器 - 解碼器不同的是嗡载,這里概率是基于每個(gè)目標(biāo)字yi的不同的上下文矢量ci為條件。
上下文矢量ci取決于編碼器對(duì)輸入語句進(jìn)行映射的注釋序列(h1仍稀,...洼滚,hTx)。每個(gè)注釋hi包含關(guān)于整個(gè)輸入序列的信息技潘,其中強(qiáng)烈關(guān)注輸入序列的第i個(gè)字周圍的部分遥巴。我們將在下一節(jié)詳細(xì)解釋注釋的計(jì)算方式。
然后崭篡,將上下文向量ci計(jì)算為這些注釋hi的加權(quán)和挪哄。
3.2 編碼器
在一般的RNN中,讀取一個(gè)輸入序列琉闪,從第一個(gè)到對(duì)后一個(gè)迹炼。然而,在我們的結(jié)構(gòu)中,我們希望annotation不僅可以總結(jié)出前面已經(jīng)翻譯過的句子斯入,并且還能處理接下來未翻譯的句子砂碉。所以,我們提出了雙向RNN結(jié)構(gòu)刻两。
一個(gè)雙向RNN由前向和反向RNN組成增蹭。前向RNN讀取正常的輸入序列,正向計(jì)算forward hidden states,反向RNN讀取相反的輸入序列磅摹,反向計(jì)算backward hidden states.