[读论文]-Mask-Predict: Parallel Decoding of Conditional Masked Language Models阅读报告-机器翻译
1 Introduction
? ? ?大多數(shù)機(jī)器翻譯系統(tǒng)使用順序譯碼的策略,即單詞是一個(gè)一個(gè)預(yù)測(cè)的。本文展示了一個(gè)并行譯碼的模型,該模型在恒定譯碼迭代次數(shù)下得到翻譯結(jié)果。本文提出的條件掩碼語言模型(CMLMS),其中解碼器的輸入是一個(gè)完全被mask的句子,并行的預(yù)測(cè)所有的單詞,并在恒定次數(shù)的屏蔽-預(yù)測(cè)循環(huán)之后結(jié)束。這種整體策略使模型可以在豐富的雙向上下文中反復(fù)重新考慮單詞的選擇,并且它僅在幾個(gè)周期內(nèi)就可以產(chǎn)生高質(zhì)量的翻譯。Mask?predict反復(fù)掩蓋并重新預(yù)測(cè)模型對(duì)當(dāng)前轉(zhuǎn)換最不滿意的單詞子集。
2 Conditional Masked Language Models
? ? ?本文提出的條件掩碼語言模型(CMLM),P (y|X,Yobs),給定源文本X和部分的目標(biāo)文本Yobs,來預(yù)測(cè)剩下的目標(biāo)文本Ymask,N是目標(biāo)端文本的長度N = |Ymask|+|Yobs|。
Y:目標(biāo)語句
X:源語句
Yobs,Ymask:將目標(biāo)語句劃分為兩類
CMLM根據(jù)X與Yobs?預(yù)測(cè)Ymask。
3 Architecture
? ? ?論文采用標(biāo)準(zhǔn)的transformer的模型,不同之處在于decode端的self-attention不再使用attention mask,防止看到預(yù)測(cè)單詞之后的詞。
Encoder:基于自注意機(jī)制對(duì)原文本進(jìn)行編碼。
Decoder:目標(biāo)語言的譯碼器,具有面向編碼器輸出的自注意機(jī)制,以及另外一組面向目標(biāo)文本的自注意力機(jī)制。作者通過刪除自注意mask機(jī)制來改進(jìn)標(biāo)準(zhǔn)解碼器。
4 Training Objective
? ? ?訓(xùn)練的時(shí)候,先對(duì)目標(biāo)語句隨機(jī)的選擇Ymask,被mask的token的數(shù)量遵循正態(tài)分布,之后選中的token被一個(gè)特殊的mask token來代替。作者利用交叉熵來優(yōu)化模型。盡管譯碼器的輸出是整個(gè)目標(biāo)語句,但只計(jì)算遮蓋位置的loss。
5 Predicting Target Sequence Length
? ? ?在非自回歸機(jī)器翻譯中,通常將整個(gè)編碼器的輸出作為一個(gè)目標(biāo)語句長度,來得到目標(biāo)語句的長度。本文中作者,直接將LENGTH作為一個(gè)輸入token輸入編碼器,利用編碼器來預(yù)測(cè)目標(biāo)語句的長度,即編碼器的一個(gè)輸出為目標(biāo)序列的長度N,并利用交叉熵?fù)p失來訓(xùn)練。
6 Decoding with Mask-Predict
? ? ?使用Mask-Predict解碼
? ? ?主要可以分為兩步:
- Mask:
第t次迭代,遮住的單詞數(shù)n,T為預(yù)先設(shè)定的迭代次數(shù)。第0次迭代,遮住target端所有token;隨著迭代次數(shù)的增加,逐步減少遮蓋的單詞數(shù)。pi是當(dāng)前迭代次數(shù)的預(yù)測(cè)概率。
- Predict:
給定源文本X和部分的目標(biāo)文本Yobs,,來預(yù)測(cè)mask的目標(biāo)文本Ymask,并更新概率,沒有被mask的token?Yobs,,概率不變。
以上兩個(gè)步驟迭代進(jìn)行,下邊是本文提出的一個(gè)例子:
?第0步,遮蓋整個(gè)target端所有tokens,獲得target端全部輸出,可以看到有很多重復(fù)的單詞,整個(gè)句子語法也不合理。
第1步,根據(jù)第0步得到的概率,從12個(gè)單詞中選出8個(gè)低概率的單詞(標(biāo)黃的部分),使用CMLM重新預(yù)測(cè)。此時(shí)的結(jié)果比第一步更加準(zhǔn)確合理。
第2步,根據(jù)第1步得到的概率(被重新預(yù)測(cè)的8個(gè)單詞的概率需要更新),從12個(gè)單詞中選出4個(gè)低概率的單詞,再使用CMLM重新預(yù)測(cè)。值得注意的是第1步?jīng)]有被重新預(yù)測(cè)的詞也可能被選中。
預(yù)測(cè)target端文本的長度,獲取encoder部分 [LENGTH] token處預(yù)測(cè)到的長度分布之后,選在top l個(gè)長度作為候選,并行decode,然后選擇概率值對(duì)大的序列作為最終輸出:
7 實(shí)驗(yàn)結(jié)果
在機(jī)器翻譯上的結(jié)果:
- 論文提出的方法(CMLM with Mask-Predict) 超過了其他的非自回歸的方法。
- 相比自回歸的方法,結(jié)果差了 0.5-1.2 BLEU, 但是速度加快了。
- 在中英(兩種語言相差比較大)翻譯的數(shù)據(jù)集上結(jié)果也比較好
速度與效果的trade-off:
- 犧牲2個(gè)BLEU的情況下,可以提升3倍多的速度(T=4, l=2)。
- 達(dá)到相當(dāng)?shù)男Ч?#xff08;27.03 vs 27.74),速度提升30%。
模型簡化測(cè)試:
分別從以下四方面進(jìn)行:
? ? 1)分析decoder是否必須迭代多次
decoder迭代多次主要是為了改善非自回歸方法共有的token repetitions問題。隨著token重復(fù)率的減少,bleu也有所上升。
2)分析長句是否需要迭代更多的次數(shù):
長句迭代多次有更好的效果。
3)分析使用更多的長度候選是否能改善效果:
并不能。
4)分析知識(shí)蒸餾是否必要:
是必要的。
注:知識(shí)蒸餾是指:訓(xùn)練非自回歸模型時(shí),訓(xùn)練集不使用原始訓(xùn)練集中的target端數(shù)據(jù),而使用teacher模型預(yù)測(cè)的target結(jié)果。
8 實(shí)驗(yàn)總結(jié)
總結(jié)
本文作者針對(duì)在機(jī)器翻譯任務(wù)上自回歸模型在輸出和生成的序列長度成正比,效率低的問題,提出的條件掩碼模型上,該模型通過固定次數(shù)的迭代來生成高質(zhì)量的句子,并與其他非自回歸seq2seq模型相比,效果達(dá)到最好;并且本文用了知識(shí)蒸餾的teacher網(wǎng)絡(luò),使用了強(qiáng)模型,這也使得論文的結(jié)果強(qiáng)于一般模型。
不足
改進(jìn)
或許可以嘗試在此模型基礎(chǔ)上利用prompt去改進(jìn)。
總結(jié)
以上是生活随笔為你收集整理的[读论文]-Mask-Predict: Parallel Decoding of Conditional Masked Language Models阅读报告-机器翻译的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: node-red教程3.3 file控件
- 下一篇: linux 监听终端输入法,xinit