Seq2Seq

本文為轉(zhuǎn)載,原文鏈接:CS224n筆記[7]:整理了12小時(shí),只為讓你20分鐘搞懂Seq2seq - 蟈蟈的文章 - 知乎
https://zhuanlan.zhihu.com/p/147310766
今天主要介紹機(jī)器翻譯的簡(jiǎn)單發(fā)展歷史和方法寸认,由此引入seq2seq框架,我們會(huì)一起深入討論seq2seq框架中的各種細(xì)節(jié),并配合精美的結(jié)構(gòu)圖画拾、流程圖輔助大家理解。

本文約5000字菜职,閱讀約20分鐘目錄:

  • 機(jī)器翻譯
    • 傳統(tǒng)機(jī)器翻譯青抛,SMT
    • 神經(jīng)機(jī)器翻譯,NMT
  • Seq2seq
    • Seq2seq結(jié)構(gòu)詳解
    • 為什么訓(xùn)練和預(yù)測(cè)時(shí)的Decoder不一樣酬核?
    • Seq2seq的損失函數(shù)
    • Decoding和Beam Search總結(jié) NMT的優(yōu)缺點(diǎn)機(jī)器翻譯的評(píng)價(jià)指標(biāo)
  • 總結(jié)
    • NMT優(yōu)缺點(diǎn)
    • 機(jī)器翻譯的評(píng)價(jià)指標(biāo)

一蜜另、機(jī)器翻譯

傳統(tǒng)機(jī)器翻譯

早期的(1950s)機(jī)器翻譯的思路十分簡(jiǎn)單,通過(guò)設(shè)置大量的翻譯規(guī)則嫡意,構(gòu)建一個(gè)大型的雙語(yǔ)對(duì)照表举瑰,來(lái)將源語(yǔ)言翻譯成目標(biāo)語(yǔ)言。這個(gè)固然簡(jiǎn)單蔬螟,也自然效果很一般此迅。因此我們不展開(kāi)描述。
后來(lái)(1990s-2010s)我們有了更為先進(jìn)復(fù)雜的機(jī)器翻譯技術(shù)——「統(tǒng)計(jì)機(jī)器翻譯」(Statistical Machine Translation, SMT)旧巾。

SMT的主要思想就是從大量的數(shù)據(jù)中學(xué)習(xí)一個(gè)概率模型P(y|x)耸序,其中x是源語(yǔ)言(source language),y是目標(biāo)語(yǔ)言(target language)菠齿,即x翻譯成y的概率有多大佑吝。在翻譯時(shí),我們只需要通過(guò)求argmax_yP(y|x)就行了绳匀,即找到概率最大的那個(gè)y芋忿,就是x的最佳翻譯了炸客。

這里由于我們是要找出使得上式最大的y,因此只跟x相關(guān)的分母可以被省去戈钢。跟上面這個(gè)公式的變換痹仙,我們發(fā)現(xiàn)SMT真的跟語(yǔ)言模型是有關(guān)的:P(y)就是求y這個(gè)句子的概率,這就是一個(gè)「語(yǔ)言模型」(LM)殉了。而后者P(x|y)則被稱(chēng)為「翻譯模型」(TM)开仰。LM可以通過(guò)目標(biāo)語(yǔ)言的語(yǔ)料進(jìn)行訓(xùn)練,TM則需要通過(guò)「平行語(yǔ)料」(parallel corpus薪铜,即源和目標(biāo)兩種語(yǔ)言的互相對(duì)照的語(yǔ)料众弓,比如“羅塞塔石碑”,上面刻有一份古埃及的詔書(shū)的三個(gè)語(yǔ)言的版本)進(jìn)行訓(xùn)練隔箍。

有人(我)就奇怪了谓娃,原本的P(y|x)不就是一個(gè)翻譯模型嗎?經(jīng)過(guò)這么一分解蜒滩,不僅還有一個(gè)翻譯模型滨达,還多了一個(gè)語(yǔ)言模型!這不是越搞越復(fù)雜嗎俯艰?其實(shí)不是這樣的捡遍,翻譯模型和語(yǔ)言模型,各自有所偏重竹握。翻譯模型通過(guò)大量的平行語(yǔ)料画株,學(xué)習(xí)到的主要是兩種語(yǔ)言之間的對(duì)應(yīng)關(guān)系,而語(yǔ)言模型則側(cè)重于學(xué)習(xí)一種語(yǔ)言內(nèi)部的語(yǔ)法結(jié)構(gòu)涩搓,不同詞匯是怎么流暢地組合成句子的污秆。原本的公式只有一個(gè)翻譯模型,會(huì)導(dǎo)致我們訓(xùn)練出來(lái)的模型在翻譯結(jié)果的語(yǔ)言通暢性方面很差昧甘。因此,我們經(jīng)過(guò)公式變換战得,將一個(gè)TM任務(wù)轉(zhuǎn)化成TM+LM兩種任務(wù)充边,可以模型學(xué)習(xí)的結(jié)果更好。

對(duì)于TM的學(xué)習(xí)常侦,一般我們會(huì)進(jìn)一步進(jìn)行分解浇冰,考慮兩種語(yǔ)言之間的各種對(duì)齊方式(alignment),即在原有的翻譯模型上聋亡,引入一個(gè)隱變量a肘习,得到P(x,a|y),可以理解為給定句子y坡倔,按照對(duì)齊方式a翻譯成x的概率漂佩。

具體什么是對(duì)齊方式alignment呢脖含?它的意思就是在兩種語(yǔ)言A和B之間,A的詞是跟B的詞怎么對(duì)應(yīng)的投蝉。很明顯养葵,這種對(duì)應(yīng)關(guān)系可以是一對(duì)一、一對(duì)多瘩缆、多對(duì)一关拒、多對(duì)多的。比方下圖:


這里例子展示了一個(gè)法語(yǔ)句子和英語(yǔ)句子詞語(yǔ)對(duì)齊關(guān)系庸娱,其中法語(yǔ)詞entarte着绊,英文翻譯是“hit me with a pie”,英文中根本沒(méi)有一個(gè)詞可以直接表示這個(gè)含義熟尉。中英文中這樣的例子更加常見(jiàn)了畔柔,有些英文單詞可以用一個(gè)漢字對(duì)應(yīng),但也有很多單詞需要兩個(gè)甚至多個(gè)漢字對(duì)應(yīng)臣樱。另外靶擦,同一個(gè)詞,在不同的語(yǔ)境下雇毫,對(duì)齊的詞和數(shù)量都有可能不同玄捕,比如“牛”可以對(duì)應(yīng)“cow”也可以對(duì)應(yīng)“awesome”棚放,“cool”可以對(duì)應(yīng)“酷”也可以對(duì)應(yīng)“涼快”枚粘。因此,對(duì)齊飘蚯,alignment馍迄,是一個(gè)十分復(fù)雜的東西,學(xué)習(xí)P(x,a|y)也是很麻煩局骤,這里我也不太了解攀圈,就不細(xì)講了。

在學(xué)習(xí)了LM和TM這兩個(gè)模型之后峦甩,是不是就完事兒了呢赘来?當(dāng)然沒(méi)有,別忘了公式里還有一個(gè)argmax凯傲,我們要找出最佳的翻譯是什么犬辰。根據(jù)LM和TM尋找最佳y的過(guò)程,就稱(chēng)為“decoding”冰单,即解碼幌缝。


一個(gè)最直接的方法就是,遍歷所有可能的y诫欠,選擇概率最大的那個(gè)涵卵,當(dāng)然就是最佳的翻譯浴栽。明顯,這種方式帶來(lái)的開(kāi)銷(xiāo)是我們無(wú)法忍受的缘厢。如果學(xué)習(xí)過(guò)CRF或者HMM吃度,我們應(yīng)該知道對(duì)于這種解碼的過(guò)程,我們一般使用動(dòng)態(tài)規(guī)劃贴硫、啟發(fā)式搜索的方法來(lái)處理椿每。在SMT中具體怎么解碼,我們這里也暫時(shí)不做深入的研究英遭。

統(tǒng)計(jì)機(jī)器翻譯——SMT间护,在深度學(xué)習(xí)時(shí)代之前,風(fēng)光無(wú)限挖诸,一直是機(jī)器翻譯的巔峰技術(shù)汁尺。但是,SMT的門(mén)檻也是很高的多律,那些表現(xiàn)優(yōu)異的SMT模型痴突,通常都是極其復(fù)雜的,里面涉及到大量的特征工程狼荞,海量的專(zhuān)家知識(shí)辽装,無(wú)數(shù)的資源積累,繁多的功能模塊相味,還需要龐大的人力去維護(hù)拾积。這也是我根本不想去深入了解這個(gè)技術(shù)的原因。幸好丰涉,在深度學(xué)習(xí)時(shí)代拓巧,我們有了更好的方法:神經(jīng)機(jī)器翻譯(Neural Machine Translation,NMT)一死。

神經(jīng)機(jī)器翻譯(NMT)

深度學(xué)習(xí)的“可恨之處”在于肛度,它把那些需要大量人力的工作都吃掉了,導(dǎo)致行業(yè)專(zhuān)家和搬磚工人門(mén)紛紛下崗摘符。NMT就是這樣贤斜,企圖就是用一個(gè)簡(jiǎn)潔的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),就把機(jī)器翻譯這么大的一個(gè)工程給包下來(lái)逛裤。 我畫(huà)了一個(gè)形象生動(dòng)的圖來(lái)示意SMT和NMT的區(qū)別:



NMT使用的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),是一種被稱(chēng)為sequence-to-sequence的結(jié)構(gòu)猴抹,即seq2seq带族。它還有另外一個(gè)常見(jiàn)的名字:Encoder-Decoder結(jié)構(gòu)。這種結(jié)構(gòu)一般都是由兩個(gè)RNN組成蟀给。下面我畫(huà)了一個(gè)抽象的示意圖:



從這個(gè)抽象示意圖上看蝙砌,seq2seq的結(jié)構(gòu)的Encoder部分讀取輸入文本阳堕,在機(jī)器翻譯中即源語(yǔ)言文本,通過(guò)Encoder編碼成一個(gè)表示向量择克,即context vector恬总,然后交給Decoder來(lái)進(jìn)行解碼,翻譯成目標(biāo)語(yǔ)言肚邢。在訓(xùn)練和預(yù)測(cè)時(shí)壹堰,我們都可以使用這樣的結(jié)構(gòu),沒(méi)有其他的花里胡哨的東西骡湖,因此總體上看起來(lái)比SMT要簡(jiǎn)潔明了得多贱纠。

上面這張圖還是太抽象了,下面讓我們深入seq2seq結(jié)構(gòu)的內(nèi)部响蕴,看看我們?nèi)绾问褂眠@個(gè)結(jié)構(gòu)來(lái)進(jìn)行訓(xùn)練和預(yù)測(cè)谆焊。

二、seq2seq

這里說(shuō)個(gè)題外話浦夷,seq2seq我之前一直讀/sek-tu:-sek/辖试,后來(lái)聽(tīng)了網(wǎng)課,發(fā)現(xiàn)正確的讀法應(yīng)該是/si:k-tu:-si:k/劈狐,畢竟sequence的讀音是/si:kw?ns/罐孝。讀正確的讀音,也讓我們討論技術(shù)的時(shí)候也更有底氣不是懈息?

seq2seq結(jié)構(gòu)詳解

我們把前面那張抽象圖展開(kāi)肾档,可以看到內(nèi)部的結(jié)構(gòu)是這樣的:


這張圖,展示了在「訓(xùn)練時(shí)」辫继,seq2seq內(nèi)部的詳細(xì)結(jié)構(gòu)怒见。
在Encoder端,我們將source文本的詞序列先經(jīng)過(guò)embedding層轉(zhuǎn)化成向量姑宽,然后輸入到一個(gè)RNN結(jié)構(gòu)(可以是普通RNN遣耍,LSTM,GRU等等)中炮车。另外舵变,這里的RNN也可以是多層、雙向的瘦穆。經(jīng)過(guò)了RNN的一系列計(jì)算纪隙,最終隱層的輸入,就作為源文本整體的一個(gè)表示向量扛或,稱(chēng)為「context vector」绵咱。

Decoder端的操作就稍微復(fù)雜一些了。首先熙兔,Decoder的輸入是什么呢悲伶?Decoder的輸入艾恼,訓(xùn)練和測(cè)試時(shí)是不一樣的! 「在訓(xùn)練時(shí)麸锉,我們使用真實(shí)的目標(biāo)文本钠绍,即“標(biāo)準(zhǔn)答案”作為輸入」(注意第一步使用一個(gè)特殊的<start>字符,表示句子的開(kāi)頭)花沉。每一步根據(jù)當(dāng)前正確的輸出詞柳爽、上一步的隱狀態(tài)來(lái)預(yù)測(cè)下一步的輸出詞。

下圖則展示了在「預(yù)測(cè)時(shí)」主穗,seq2seq的內(nèi)部結(jié)構(gòu):


預(yù)測(cè)時(shí)泻拦,Encoder端沒(méi)什么變化,在Decoder端忽媒,由于此時(shí)沒(méi)有所謂的“真實(shí)輸出”或“標(biāo)準(zhǔn)答案”了争拐,所以只能「自產(chǎn)自銷(xiāo):每一步的預(yù)測(cè)結(jié)果,都送給下一步作為輸入」晦雨,直至輸出<end>就結(jié)束架曹。如果你對(duì)我之前寫(xiě)的筆記很熟悉的話,會(huì)發(fā)現(xiàn)闹瞧,「這時(shí)的Decoder就是一個(gè)語(yǔ)言模型」绑雄。由于這個(gè)語(yǔ)言模型是根據(jù)context vector來(lái)進(jìn)行文本的生成的,因此這種類(lèi)型的語(yǔ)言模型奥邮,被稱(chēng)為“條件語(yǔ)言模型”:Conditional LM万牺。正因?yàn)槿绱耍谟?xùn)練過(guò)程中洽腺,我們可以使用一些預(yù)訓(xùn)練好的語(yǔ)言模型來(lái)對(duì)Decoder的參數(shù)進(jìn)行初始化脚粟,從而加快迭代過(guò)程。

為什么訓(xùn)練和預(yù)測(cè)時(shí)的Decoder不一樣蘸朋?
很多人可能跟我一樣核无,對(duì)此感到疑惑:為什么在訓(xùn)練的時(shí)候,不能直接使用這種語(yǔ)言模型的模式藕坯,使用上一步的預(yù)測(cè)來(lái)作為下一步的輸入呢团南?


我們稱(chēng)這兩種模式,根據(jù)標(biāo)準(zhǔn)答案來(lái)decode的方式為「teacher forcing」炼彪,而根據(jù)上一步的輸出作為下一步輸入的decode方式為「free running」吐根。
其實(shí),free running的模式真的不能在訓(xùn)練時(shí)使用嗎辐马?——當(dāng)然是可以的佑惠!從理論上沒(méi)有任何的問(wèn)題,又不是不能跑齐疙。但是膜楷,在實(shí)踐中人們發(fā)現(xiàn),這樣訓(xùn)練太南了贞奋。因?yàn)闆](méi)有任何的引導(dǎo)赌厅,一開(kāi)始會(huì)完全是瞎預(yù)測(cè),正所謂“一步錯(cuò)轿塔,步步錯(cuò)”特愿,而且越錯(cuò)越離譜,這樣會(huì)導(dǎo)致訓(xùn)練時(shí)的累積損失太大(「誤差爆炸」問(wèn)題勾缭,exposure bias)揍障,訓(xùn)練起來(lái)就很費(fèi)勁。這個(gè)時(shí)候俩由,如果我們能夠在每一步的預(yù)測(cè)時(shí)毒嫡,讓老師來(lái)指導(dǎo)一下,即提示一下上一個(gè)詞的正確答案幻梯,decoder就可以快速步入正軌兜畸,訓(xùn)練過(guò)程也可以更快收斂。因此大家把這種方法稱(chēng)為teacher forcing碘梢。所以咬摇,這種操作的目的就是為了使得訓(xùn)練過(guò)程更容易。

這就好比我們考駕照時(shí)煞躬,很多教練為了讓我們快速通關(guān)肛鹏,會(huì)給我們?cè)趫?chǎng)地上畫(huà)上各種標(biāo)記,告訴我們你看到某個(gè)標(biāo)記就執(zhí)行某個(gè)動(dòng)作(說(shuō)白了就是作弊手段)恩沛。這種方法很有效在扰,我們?cè)诰氒?chē)的時(shí)候,死記住這些作弊技巧复唤,很容易在訓(xùn)練場(chǎng)順利倒車(chē)健田、側(cè)方停車(chē)。但這種方法在我們上考場(chǎng)的時(shí)候就會(huì)暴露出問(wèn)題了——考場(chǎng)上可沒(méi)人給你做標(biāo)記佛纫!因此很多人明明在下面自己練車(chē)的時(shí)候很順妓局,以上考場(chǎng)就掛了。這也是teacher forcing方法的一個(gè)弊端:預(yù)測(cè)時(shí)我們沒(méi)有老師給你做標(biāo)記了呈宇!純靠自己很可能掛掉好爬。

所以,更好的辦法甥啄,更常用的辦法存炮,是老師只給適量的引導(dǎo),學(xué)生也積極學(xué)習(xí)。即我們?cè)O(shè)置一個(gè)概率p穆桂,每一步宫盔,以概率p靠自己上一步的輸入來(lái)預(yù)測(cè),以概率1-p根據(jù)老師的提示來(lái)預(yù)測(cè)享完,這種方法稱(chēng)為「計(jì)劃采樣」(scheduled sampling)

這是種什么感覺(jué)呢灼芭?就拿我們來(lái)刷LeetCode來(lái)說(shuō)吧,完全不看答案的話般又,對(duì)于我來(lái)說(shuō)的話就太難了彼绷。。茴迁。做題的進(jìn)度會(huì)灰常慢寄悯,如果我完全看答案寫(xiě),那也沒(méi)啥意義堕义,過(guò)幾天就忘了猜旬,所以最好的方式就是自己也思考,遇到太難的時(shí)候就看看答案胳螟,這樣我們又能保證進(jìn)度昔馋,又能有學(xué)習(xí)效果。另外有一個(gè)小細(xì)節(jié):在seq2seq的訓(xùn)練過(guò)程中糖耸,decoder即使遇到了<end>標(biāo)識(shí)也不會(huì)結(jié)束秘遏,因?yàn)橛?xùn)練的時(shí)候并不是一個(gè)生成的過(guò)程 ,我們需要等到“標(biāo)準(zhǔn)答案”都輸入完才結(jié)束嘉竟。

seq2seq的損失函數(shù)

前面我們?cè)敿?xì)介紹了seq2seq的內(nèi)部的結(jié)構(gòu)邦危,明白了內(nèi)部結(jié)構(gòu),想知道是怎么訓(xùn)練的就很容易了舍扰。在上面的圖中倦蚪,我們看到decoder的每一步產(chǎn)生隱狀態(tài)后,會(huì)通過(guò)一個(gè)projection層映射到對(duì)應(yīng)的詞边苹。那怎么去計(jì)算每一步的損失呢陵且?實(shí)際上,這個(gè)projection層个束,通常是一個(gè)softmax神經(jīng)網(wǎng)絡(luò)層慕购,假設(shè)詞匯量是V,則會(huì)輸出一個(gè)V維度的向量茬底,每一維代表是某個(gè)詞的概率沪悲。映射的過(guò)程就是把最大概率的那個(gè)詞找出來(lái)作為預(yù)測(cè)出的詞

在計(jì)算損失的時(shí)候阱表,我們使用交叉熵作為損失函數(shù)殿如,所以我們要找出這個(gè)V維向量中贡珊,正確預(yù)測(cè)對(duì)應(yīng)的詞的那一維的概率大小\hat p,則這一步的損失就是它的負(fù)導(dǎo)數(shù)-log(\hat p)涉馁,將每一步的損失求和门岔,即得到總體的損失函數(shù):

其中T代表Decoder有多少步,[EOS]代表‘end of sentence’這個(gè)特殊標(biāo)記谨胞,本來(lái)想打<end>跟前面保持一致的固歪,因?yàn)長(zhǎng)aTeX里面顯示的問(wèn)題,我替換了一下胯努。

Decoding 和 Beam search

前面畫(huà)的幾個(gè)圖展示的預(yù)測(cè)過(guò)程,其實(shí)就是最簡(jiǎn)單的decoding方式——「Greedy Decoding」逢防,即每一步叶沛,都預(yù)測(cè)出概率最大的那個(gè)詞,然后輸入給下一步忘朝。


這種Greedy的方式灰署,簡(jiǎn)單快速,但是既然叫“貪心”局嘁,肯定會(huì)有問(wèn)題溉箕,那就是「每一步最優(yōu),不一定全局最優(yōu)」悦昵,這種方式很可能“撿了芝麻肴茄,丟了西瓜”。
改進(jìn)的方法但指,就是使用「Beam Search」方法:每一步寡痰,多選幾個(gè)作為候選,最后綜合考慮棋凳,選出最優(yōu)的組合拦坠。
下面我們來(lái)具體看看Beam Search的操作步驟:

  • 首先,我們需要設(shè)定一個(gè)候選集的大小beam size=k剩岳;
  • 每一步的開(kāi)始贞滨,我們從每個(gè)當(dāng)前輸入對(duì)應(yīng)的所有可能輸出,計(jì)算每一條路的“序列得分”拍棕;
  • 保留“序列得分”最大的k個(gè)作為下一步的輸入晓铆;
  • 不斷重復(fù)上述過(guò)程,直至結(jié)束莫湘,選擇“序列得分”最大的那個(gè)序列作為最終結(jié)果尤蒿。
    這里的重點(diǎn)就在于這個(gè)“序列得分”的計(jì)算。

我們使用如下的score函數(shù)來(lái)定義"序列得分":



再多描述不如一張圖直觀幅垮,我用下圖描繪一個(gè)極簡(jiǎn)的案例(只有3個(gè)詞的語(yǔ)料腰池,k=2):

本來(lái)想貼CS224N上的圖,發(fā)現(xiàn)上面省去了一些細(xì)節(jié)容易造成誤解。在每一步示弓,我們都會(huì)去對(duì)所有的可能輸出讳侨,計(jì)算一次score,假設(shè)beam size為k奏属,詞匯量為V跨跨,那么每一步就需要分出k×V個(gè)分支并逐一計(jì)算score。所以在圖中我們可以看到除了第一步囱皿,后面每一步都是分出來(lái)2×3=6支勇婴。然后綜合這k×V個(gè)score的結(jié)果,只選擇其中最大的k個(gè)保留嘱腥。

最后還有一個(gè)問(wèn)題:由于會(huì)有多個(gè)分支耕渴,所以很有可能我們會(huì)遇到多個(gè)<end>標(biāo)識(shí),由于分支較多齿兔,如果等每一個(gè)分支都遇到<end>才停的話橱脸,可能耗時(shí)太久,因此一般我們會(huì)設(shè)定一些規(guī)則分苇,比如已經(jīng)走了T步添诉,或者已經(jīng)積累了N條已完成的句子,就終止beam search過(guò)程医寿。

在search結(jié)束之后栏赴,我們需要對(duì)已完成的N個(gè)序列做一個(gè)抉擇,挑選出最好的那個(gè)糟红,那不就是通過(guò)前面定義的score函數(shù)來(lái)比較嗎艾帐?確實(shí)可以,但是如果直接使用score來(lái)挑選的話盆偿,會(huì)導(dǎo)致那些很短的句子更容易被選出柒爸。因?yàn)閟core函數(shù)的每一項(xiàng)都是負(fù)的,序列越長(zhǎng)事扭,score往往就越小捎稚。因此我們可以使用長(zhǎng)度來(lái)對(duì)score函數(shù)進(jìn)行細(xì)微的調(diào)整:對(duì)每個(gè)序列的得分,除以序列的長(zhǎng)度求橄。根據(jù)調(diào)整后的結(jié)果來(lái)選擇best one今野。

Beam Search的使用,往往可以得到比Greedy Search更好的結(jié)果罐农,道理很容易理解条霜,高手下棋想三步,深思熟慮才能走得遠(yuǎn)涵亏。

NMT的優(yōu)缺點(diǎn)宰睡、評(píng)價(jià)方式

上面我們花了大量時(shí)間基本介紹清楚了神經(jīng)機(jī)器翻譯以及seq2seq的結(jié)構(gòu)細(xì)節(jié)蒲凶。最后我們對(duì)NMT稍作總結(jié),并補(bǔ)充一些小細(xì)節(jié)拆内。

NMT的優(yōu)缺點(diǎn)

NMT相比于SMT旋圆,最大的優(yōu)點(diǎn)當(dāng)然就如前面所說(shuō)的——簡(jiǎn)潔。我們不需要什么人工的特征工程麸恍,不需要各種復(fù)雜的前后組件灵巧,就是一個(gè)端到端的神經(jīng)網(wǎng)絡(luò),整個(gè)結(jié)構(gòu)一起進(jìn)行優(yōu)化抹沪。

另外刻肄,由于使用了深度學(xué)習(xí)的方法,我們可以引入很多語(yǔ)義特征采够,比如利用文本的相似度肄方,利用文本內(nèi)隱含的多層次特征,這些都是統(tǒng)計(jì)學(xué)方法沒(méi)有的蹬癌。

但是,沒(méi)有什么東西是絕對(duì)好或絕對(duì)差的虹茶,NMT也有其不足逝薪。它的不足也是跟深度學(xué)習(xí)的黑箱本質(zhì)息息相關(guān)。NMT的解釋性差蝴罪,難以調(diào)試董济,難以控制,我們誰(shuí)也不敢保證遇到一個(gè)新的文本它會(huì)翻譯出什么奇怪的玩意兒要门,所以NMT在重要場(chǎng)合使用是有明顯風(fēng)險(xiǎn)的虏肾。

NMT的評(píng)價(jià)

機(jī)器翻譯的效果如何評(píng)價(jià)呢?——「BLEU」指標(biāo)欢搜。
BLEU封豪,全稱(chēng)是Bilingual Evaluation Understudy,它的主要思想是基于N-gram等特征來(lái)比較人工翻譯和機(jī)器翻譯結(jié)果的相似程度炒瘟。詳情我不贅述吹埠,畢竟寫(xiě)這篇文章時(shí)我也還沒(méi)有自己動(dòng)手去做一個(gè)NMT。等之后做這一塊的時(shí)候我再詳細(xì)討論吧疮装。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末缘琅,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子廓推,更是在濱河造成了極大的恐慌刷袍,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件樊展,死亡現(xiàn)場(chǎng)離奇詭異呻纹,居然都是意外死亡堆生,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)居暖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)顽频,“玉大人,你說(shuō)我怎么就攤上這事太闺∨淳埃” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵省骂,是天一觀的道長(zhǎng)蟀淮。 經(jīng)常有香客問(wèn)我,道長(zhǎng)钞澳,這世上最難降的妖魔是什么怠惶? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮轧粟,結(jié)果婚禮上策治,老公的妹妹穿的比我還像新娘。我一直安慰自己兰吟,他們只是感情好通惫,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著混蔼,像睡著了一般履腋。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上惭嚣,一...
    開(kāi)封第一講書(shū)人閱讀 50,050評(píng)論 1 291
  • 那天遵湖,我揣著相機(jī)與錄音,去河邊找鬼晚吞。 笑死延旧,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的载矿。 我是一名探鬼主播垄潮,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼闷盔!你這毒婦竟也來(lái)了弯洗?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤逢勾,失蹤者是張志新(化名)和其女友劉穎牡整,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體溺拱,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了变过。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡泥从,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出沪摄,到底是詐尸還是另有隱情躯嫉,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布杨拐,位于F島的核電站祈餐,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏哄陶。R本人自食惡果不足惜帆阳,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望屋吨。 院中可真熱鬧蜒谤,春花似錦、人聲如沸至扰。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)渊胸。三九已至,卻和暖如春台妆,著一層夾襖步出監(jiān)牢的瞬間翎猛,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工接剩, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留切厘,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓懊缺,卻偏偏與公主長(zhǎng)得像疫稿,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子鹃两,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容