訂閱
糾錯(cuò)
加入自媒體

中科院計(jì)算所副研究員馮洋:神經(jīng)機(jī)器翻譯的訓(xùn)練改進(jìn)和解碼提速

2. 非自回歸解碼

最后介紹一下基于非自回歸的解碼方法,傳統(tǒng)的解碼方法是順序生成的。如果能夠使得解碼的時(shí)候并行的方式生成,這速度將會(huì)大大的提升。

傳統(tǒng)的非自回歸模型的做法是,在Transformer Encoder端頭部加一個(gè)Fertility預(yù)測(cè),用來(lái)預(yù)測(cè)每個(gè)源端Token能翻譯成一個(gè)目標(biāo)端的Token,然后根據(jù)預(yù)測(cè)的結(jié)果,將源端的Token拷貝到Decoder的輸入,如果一個(gè)源端Token能夠翻譯兩個(gè)目標(biāo)Token,那就拷貝兩次,如果源端Token不會(huì)翻譯成目標(biāo)端Token,那就不拷貝。由于每一步輸出的譯文是沒(méi)有給到下一步的,所以是可以并行的。對(duì)于Fertility的訓(xùn)練是采用某種對(duì)齊模型,通過(guò)計(jì)算源端和目標(biāo)端的對(duì)齊關(guān)系,然后就可以得到源端和目標(biāo)端的對(duì)齊結(jié)果,就可以采用監(jiān)督的方式來(lái)訓(xùn)練Fertility分支。

該方法有一個(gè)問(wèn)題,就是在翻譯當(dāng)前步的時(shí)候沒(méi)有考慮上一步的翻譯信息。這樣就可能導(dǎo)致翻譯結(jié)果的流暢度不夠好。我們的方法就是在該方法的基礎(chǔ)上添加了序列上的信息。這樣模型既能并行執(zhí)行,又能考慮的到前后的序列關(guān)系。

我們的工作分為兩個(gè)方面,一個(gè)是在訓(xùn)練上添加序列信息,一個(gè)是在模型上面同樣也添加序列信息。序列訓(xùn)練采用的是Reinforce的方法,Reinforce的方法非常難以訓(xùn)練,這是因?yàn)槠浞讲罘浅4螅讲畲蟮脑蚴菑?qiáng)化學(xué)習(xí)episode(一條軌跡從開(kāi)始到結(jié)束)的搜索空間非常大,我們每次只是采樣出一個(gè)episode,然后根據(jù)這個(gè)episode進(jìn)行計(jì)算,通過(guò)大數(shù)定律,我們可以假設(shè)這最終得到的是一個(gè)梯度的無(wú)偏估計(jì)。但是在實(shí)際情況下,抖動(dòng)是非常大的。

將Reinforce算法應(yīng)用到我們這個(gè)場(chǎng)景,首先看第一個(gè)公式,由于目標(biāo)端詞的概率是獨(dú)立的,所以就可以寫(xiě)成連乘的形式,第二個(gè)公式就是傳統(tǒng)的Reinforce公式,就是翻譯的reward。是通過(guò)前向后向算法計(jì)算出來(lái)的當(dāng)前步的reward。

上面的slides介紹的是計(jì)算reward時(shí)候的不同,接下來(lái)看sampling機(jī)制的區(qū)別。根據(jù)生成前后詞的獨(dú)立性,每一步我們并不是采樣出一個(gè)詞,而是采樣出K+1個(gè)詞。這樣的話就可以看做我們一次更新的過(guò)程中考慮到更多的episode,而不是僅用一個(gè)episode就去訓(xùn)練了。具體的做法是,每一步,我們先取Top-K,計(jì)算一下?lián)p失函數(shù)的值,然后從剩下的Token中再采樣出來(lái)一個(gè)。我們將這兩部分的loss合起來(lái),是為了保證無(wú)偏估計(jì)。為前k個(gè)翻譯的概率的和。

另外一個(gè)方法就是模型上的改進(jìn),在非自回歸層的上面加上自回歸層。具體的做法是,模型分為 Bottom Layer,F(xiàn)usion Layer,Top Layer。Bottom Layer就是之前介紹的非自回歸模型,F(xiàn)usion Layer的作用是將非自回歸模型的輸出和其Embedding整合起來(lái),Top-Layer和Transformer 的解碼器基本一致。

實(shí)驗(yàn)結(jié)果:AR(Transformer),NAT(非自回歸的方法),IRNAT(迭代的非自回歸方法),最后是我們提出的方法,第一種是在訓(xùn)練的過(guò)程中引入序列信息,第二是在模型上進(jìn)行改進(jìn)。作為對(duì)比的數(shù)據(jù)集有三個(gè),前兩個(gè)數(shù)據(jù)集比較小。主要關(guān)注第三個(gè)數(shù)據(jù)集。可以看出,使用NAT來(lái)代替AR模型的話,效果會(huì)降6個(gè)點(diǎn)左右,迭代的方法會(huì)帶來(lái)1到2個(gè)點(diǎn)的提升。我們提出的reinforce方法和傳統(tǒng)的reinforce方法相比,有0.6個(gè)點(diǎn)的提升。加上回歸層的模型已經(jīng)接近Transformer的效果了。關(guān)于速度的提升,如果僅訓(xùn)練的時(shí)候采用序列信息,速度可以提升10倍。如果是NAT加上自回歸層的方法,速度也可以提高4倍左右。

這里有一些翻譯實(shí)例,可以看出 NAT-base的方法流暢性不夠好,重復(fù)很多“more more …”,因?yàn)闆](méi)有考慮序列信息,所以導(dǎo)致結(jié)果的流暢度不行。使用我們提出的reinforce方法,能夠一定程度上的緩解流暢度的問(wèn)題,但是問(wèn)題還是存在。通過(guò)使用NAT+AR的方法,能夠更好的緩解流暢度的問(wèn)題。

<上一頁(yè)  1  2  3  4  5  
聲明: 本文由入駐維科號(hào)的作者撰寫(xiě),觀點(diǎn)僅代表作者本人,不代表OFweek立場(chǎng)。如有侵權(quán)或其他問(wèn)題,請(qǐng)聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字

您提交的評(píng)論過(guò)于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無(wú)評(píng)論

暫無(wú)評(píng)論

    掃碼關(guān)注公眾號(hào)
    OFweek人工智能網(wǎng)
    獲取更多精彩內(nèi)容
    文章糾錯(cuò)
    x
    *文字標(biāo)題:
    *糾錯(cuò)內(nèi)容:
    聯(lián)系郵箱:
    *驗(yàn) 證 碼:

    粵公網(wǎng)安備 44030502002758號(hào)