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

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

當(dāng)前機(jī)器翻譯模型通常采用自注意力機(jī)制進(jìn)行編碼,訓(xùn)練時(shí)直接將Ground Truth詞語用作上文,并行生成所有的目標(biāo)詞語,極大的提升了訓(xùn)練速度。

但測(cè)試的時(shí)候卻面臨以下難題:首先,模型得不到Ground Truth,從而只能用自己生成的詞作為上文,使得訓(xùn)練和測(cè)試的分布不一致,影響了翻譯質(zhì)量;其次,由于每個(gè)目標(biāo)詞語的生成依賴于其之前生成的詞,所以目標(biāo)詞語只能順序生成,不能并行,從而影響了解碼速度。本次分享將針對(duì)以上問題,介紹他們的解決方法。

具體分享內(nèi)容如下:

1. 改進(jìn)訓(xùn)練和測(cè)試的分布不一致問題:

采用計(jì)劃采樣的方法 (ACL 2019 best paper)

采用可導(dǎo)的序列級(jí)損失函數(shù)進(jìn)行貪心搜索解碼

2. 解碼速度提升:

基于Cube Pruning解碼算法

融入序列信息的非自回歸翻譯模型

背景

當(dāng)前,自然語言處理方向的生成任務(wù)主要包括:機(jī)器翻譯,人機(jī)對(duì)話,文章寫作,文章摘要等等。目前這些問題主要是通過序列到序列模型來解決的。序列到序列模型的主要架構(gòu)是一個(gè)帶有注意力機(jī)制的編碼器-解碼器架構(gòu)。這個(gè)架構(gòu)基于一個(gè)重要的假設(shè):即“源端的輸入和目的端的輸出之間是可以找到一個(gè)共同的語義空間。編碼器的任務(wù)就是對(duì)輸入進(jìn)行各種變換,映射到共同語義空間上的一個(gè)點(diǎn)。解碼器的任務(wù)是對(duì)共同語義空間的這個(gè)點(diǎn)進(jìn)行一些反操作,將其映射到目標(biāo)端空間,從而生成相應(yīng)的詞語。考慮到在每一步進(jìn)行翻譯的時(shí)候不需要關(guān)注所有的源端輸入,而是僅僅關(guān)注一部分,注意力機(jī)制主要目的就是將當(dāng)前步需要關(guān)注的部分找出來。

目前主流的序列到序列模型主要包括兩種: 一個(gè)是RNNSearch,一個(gè)是Transformer。

RNNSearch通過RNN來將源端的輸入編碼成一個(gè)表示,通常源端采用的是雙向RNN,這樣對(duì)于每一個(gè)源端Token的編碼表示都能考慮到其上下文信息。在目標(biāo)端同樣是使用一個(gè)RNN,它可以將翻譯的歷史信息給串起來,這樣在當(dāng)前步翻譯的時(shí)候就能考慮到上文的信息。

Google在2017年提出了Transformer結(jié)構(gòu),該結(jié)構(gòu)經(jīng)過無數(shù)人的驗(yàn)證,發(fā)現(xiàn)非常好用,所以Transformer就成為了當(dāng)前主流的序列到序列模型。Transformer主要的機(jī)制是:在生成源端表示的時(shí)候并沒有使用RNN,而是使用自注意力機(jī)制來生成每一個(gè)Token的表示。這樣做的好處是,在訓(xùn)練的時(shí)候可以并行,因?yàn)槊總(gè)詞都可以并行的和其它詞計(jì)算attention ( RNN則只能串行 )。同樣在解碼端的時(shí)候,也是使用的自注意力機(jī)制。

這種模型在訓(xùn)練的時(shí)候都是采用的TeacherForcing形式。模型在解碼當(dāng)前步的時(shí)候,通常會(huì)有三個(gè)輸入:解碼器當(dāng)前的狀態(tài),attention和上一步解碼的結(jié)果。在訓(xùn)練的過程中,我們通常使用上一步的真實(shí)輸出而非模型輸出作為當(dāng)前步解碼的結(jié)果,這就是所謂的Teacher Forcing。

在Inference的時(shí)候通常采用Beam-Search +順序生成的方式,在每一步都保存Top-K個(gè)最優(yōu)結(jié)果。

在介紹了訓(xùn)練和推斷之后,我們來看一下目前面臨的問題,因?yàn)樵谟?xùn)練的時(shí)候我們使用Teacher Forcing的方式,但是我們?cè)谕茢嗟臅r(shí)候并不知道上一步的GroundTruth是什么,所以,我們只能將上一步預(yù)測(cè)的結(jié)果來近似為Ground Truth。這樣,訓(xùn)練和推斷在生成分布的條件上就產(chǎn)生了差異(Ground Truth vs Predicted),這個(gè)問題被稱作為 Exposure Bias。

在訓(xùn)練的時(shí)候,我們還存在另一個(gè)問題。訓(xùn)練的時(shí)候由于我們使用的交叉熵?fù)p失函數(shù),該損失函數(shù)只對(duì)Ground Truth友好,對(duì)于非Ground Truth的結(jié)果一視同仁。但是對(duì)于翻譯任務(wù)來說,并不是只有一種翻譯方式,從slides中可以看到,Output1和Ground Truth表示的是同一個(gè)意思,但是Output2和Ground Truth表示的含義就是不同了,但是在訓(xùn)練的時(shí)候,交叉熵?fù)p失函數(shù)會(huì)將Output1和Output2一視同仁,這樣是不合理的。

在推斷階段解碼的時(shí)候同樣存在兩個(gè)問題,在每一個(gè)解碼step我們都要執(zhí)行n各預(yù)測(cè),每個(gè)預(yù)測(cè)都要得到整個(gè)詞表的一個(gè)分布,所以在每一個(gè)step都要生成n*|V|個(gè)詞語。而且每個(gè)時(shí)間步還必須串行,這大大影響了解碼速度。

1  2  3  4  5  下一頁>  
聲明: 本文由入駐維科號(hào)的作者撰寫,觀點(diǎn)僅代表作者本人,不代表OFweek立場(chǎng)。如有侵權(quá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)論過于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

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

暫無評(píng)論

暫無評(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)