姓名:劉成龍 ?學(xué)號(hào):16020199016
轉(zhuǎn)載自:https://www.jiqizhixin.com/articles/2018-11-02-10掩完,有刪節(jié)披坏。
【嵌牛導(dǎo)讀】:個(gè)賊簡(jiǎn)單的神經(jīng)機(jī)器翻譯架構(gòu)
【嵌牛鼻子】:?NMT? ?LSTM
【嵌牛提問(wèn)】:你還在Attention嗎纠拔?
【嵌牛正文】:
自從編碼器解碼器架構(gòu)崛起以來(lái)越走,主流的神經(jīng)機(jī)器翻譯(NMT)模型都使用這種架構(gòu)涂乌,因?yàn)樗试S原文序列長(zhǎng)度和譯文序列長(zhǎng)度不一樣。而自 Bahdanau 等研究者在 14 年提出基于注意力的 NMT 模型后傅寡,基于編碼器解碼器架構(gòu)的 NMT 模型差不多都會(huì)加上注意力機(jī)制放妈。尤其是在 2017 年谷歌發(fā)表論文「Attention is all your need」后北救,注意力機(jī)制更是坐上了寶座,這篇論文相當(dāng)于進(jìn)一步形式化表達(dá)了注意力機(jī)制芜抒,并提出了只使用 Multi-head Attention 的翻譯模型 Transformer珍策。
隨后 Transformer 在神經(jīng)機(jī)器翻譯領(lǐng)域一發(fā)不可收拾,目前大多數(shù)主流的機(jī)器翻譯系統(tǒng)都使用這種完全基于注意力機(jī)制的架構(gòu)宅倒。此外攘宙,Transformer 在很多 NLP 任務(wù)上都有非常好的表現(xiàn),例如?BERT?預(yù)訓(xùn)練模型唉堪、計(jì)算句子間的相似性以及問(wèn)答系統(tǒng)等模聋〖缑瘢總的而言唠亚,Transformer 可以視為一種「全連接」網(wǎng)絡(luò),它會(huì)關(guān)注句子間所有詞的相互關(guān)系持痰,這樣相當(dāng)于無(wú)視了詞的空間距離灶搜,因此能建模詞與詞之間的長(zhǎng)期依賴關(guān)系。
但是最近 Ofir Press 等研究者表示也許我們可以不要注意力機(jī)制工窍,也不要編碼器解碼器架構(gòu)割卖,神經(jīng)機(jī)器翻譯的效果甚至?xí)谩K麄冊(cè)谡撐闹锌偨Y(jié)到幾乎所有流行的 NMT 模型都有下面兩個(gè)屬性:
解碼器在原文的隱藏向量上執(zhí)行一個(gè)注意力機(jī)制患雏。
編碼器和解碼器是兩種不同的模塊鹏溯,且在解碼器開始運(yùn)算前編碼器需要先編碼原文語(yǔ)句的信息。
在這篇文章中淹仑,我們介紹了 Ofir Press 等研究者的探索丙挽,他們嘗試在不使用上面兩種機(jī)制的情況下測(cè)試 NMT 模型的性能到底有多好。它們先從 Bahdanau 等人在 2014 年的研究出發(fā)移除注意力機(jī)制匀借,并且將編碼器和解碼器統(tǒng)一為一個(gè)「賊簡(jiǎn)單」的完整模型颜阐,它的輕量程度甚至和一般的語(yǔ)言模型差不多。
簡(jiǎn)化模型的后果就是翻譯的速度「異诚爬撸」迅速凳怨,基本上只要在讀取第一個(gè)詞后就能馬上提供對(duì)應(yīng)的譯文,并且在讀取完最后一個(gè)原文詞后就能完成整句的翻譯是鬼。
具體而言肤舞,這種即時(shí)翻譯(eager translation)模型使用恒定的記憶量,因?yàn)樵诿恳粋€(gè)時(shí)間步上均蜜,它只會(huì)使用前一個(gè)時(shí)間步而不是前面所有時(shí)間步的隱藏狀態(tài)李剖。他們的方法不是將整個(gè)原文句子塞入單個(gè)隱藏向量,而是將原文句子的前綴向量和前一時(shí)間步的翻譯結(jié)果填充到一個(gè)動(dòng)態(tài)的記憶向量兆龙,并即時(shí)預(yù)測(cè)對(duì)應(yīng)的譯文(目標(biāo) Token)杖爽。這一過(guò)程會(huì)重復(fù)進(jìn)行敲董,且每次會(huì)讀取一個(gè)原文詞。
如下展示了即時(shí)翻譯模型的主要結(jié)構(gòu)慰安,因?yàn)樗鼘⒕幋a器解碼器架構(gòu)統(tǒng)一為類似語(yǔ)言模型的結(jié)構(gòu)腋寨,所以為了處理原文序列和譯文序列序列的長(zhǎng)度不相等情況,他們會(huì)采用 ε 作為一種占位符補(bǔ)全譯文長(zhǎng)度化焕,并在全部翻譯完后刪除所有ε萄窜。但是如果原文序列不夠長(zhǎng)而譯文序列很長(zhǎng)呢?那么就需要給原文末尾也要加上ε了撒桨。
圖 1:即時(shí)翻譯模型將句子「The white dog」翻譯為西班牙語(yǔ)查刻。原文(譯文)token 用藍(lán)色(紅色)字體表示。ε是 padding token凤类,在后處理中要移除穗泵。上圖展示了兩層?LSTM?的即時(shí)翻譯模型。
在實(shí)踐中谜疤,即時(shí)翻譯所要求的大多數(shù)修正都會(huì)影響到預(yù)處理過(guò)程佃延,所以總而言之它需要大量的數(shù)據(jù)預(yù)處理過(guò)程,包括詞對(duì)齊等夷磕。在 Ofir Press 等人的試驗(yàn)中履肃,他們證明了這種極簡(jiǎn)的即時(shí)翻譯模型與基于注意力的機(jī)器翻譯模型(Bahdanau et al., 2014)效果相當(dāng),它在長(zhǎng)序列翻譯任務(wù)上比基于注意力的要更優(yōu)秀坐桩,但在短序列上效果更差尺棋。
論文:You May Not Need Attention
論文地址:https://arxiv.org/pdf/1810.13409.pdf
項(xiàng)目地址:https://github.com/ofirpress/YouMayNotNeedAttention
摘要:在神經(jīng)機(jī)器翻譯即 NMT 中,如果沒(méi)有注意力機(jī)制和分離的編碼器-解碼器結(jié)構(gòu)绵跷,我們能得到多好的結(jié)果膘螟?為了回答這個(gè)問(wèn)題,我們引入了一個(gè)循環(huán)神經(jīng)翻譯模型抖坪,它沒(méi)有使用注意力機(jī)制萍鲸,并且也沒(méi)有分離的編碼器-解碼器結(jié)構(gòu)。我們的即時(shí)翻譯(eager translation)模型具有低延遲擦俐,能在讀取第一個(gè)源 token 的時(shí)候?qū)懗瞿繕?biāo) token脊阴,并在解碼過(guò)程中只需要常量的內(nèi)存。該模型的性能和 Bahdanau 等人在 2014 年提出的基于注意力機(jī)制的模型相當(dāng)蚯瞧,并在長(zhǎng)句子翻譯中表現(xiàn)得更好嘿期。
即時(shí)翻譯模型的訓(xùn)練需要先對(duì)訓(xùn)練集進(jìn)行預(yù)處理。首先我們需要推斷源/目標(biāo)句對(duì)之間的對(duì)應(yīng)關(guān)系埋合,假定一個(gè)目標(biāo)詞對(duì)應(yīng)(至多)一個(gè)源詞备徐,正如 Brown et al. (1993) 所做的。然后我們要讓源/目標(biāo)句 (s_i , t_j ) 對(duì)進(jìn)行位移處理甚颂,使得對(duì)于所有 (s_i , t_j ), i ≤ j蜜猾。
為此秀菱,我們首先使用現(xiàn)成的對(duì)齊模型 (fast align; Dyer et al., 2013),然后插入最少數(shù)量的 ε token 到目標(biāo)句中蹭睡,如圖 2 所示衍菱。這些 ε token 在訓(xùn)練和推斷中會(huì)用到,但在生成翻譯的后處理步驟中會(huì)移除肩豁。當(dāng)句子對(duì)長(zhǎng)度不同時(shí)脊串,也會(huì)插入ε token 使它們變得相同。
圖 2:源(藍(lán))和目標(biāo)(紅)序列在預(yù)處理前(a)和后(b)的對(duì)齊狀態(tài)清钥。
實(shí)驗(yàn)結(jié)果
在英到法(EN→FR)和英到德(EN→DE)翻譯任務(wù)上琼锋,我們都是在 WMT 2014 數(shù)據(jù)集上訓(xùn)練的,使用 newstest2013 作為驗(yàn)證數(shù)據(jù)集祟昭,并在 newstest2014 上測(cè)試缕坎。
我們使用 4 個(gè)有 1000 個(gè)單元的?LSTM?層作為我們的即時(shí)模型,并且嵌入向量的大小是 500从橘。模型在訓(xùn)練中對(duì)?LSTM?和嵌入使用 dropout?正則化念赶,使用 Merity et al. (2017) 的方法础钠。
作為參考模型恰力,我們使用 Bahdanau et al. (2014) 實(shí)現(xiàn)的 OpenNMT (Klein et al., 2017)。我們使用的模型的編碼器具有兩個(gè)?LSTM?層旗吁,解碼器也是踩萎,都有 1000 個(gè)單元,嵌入大小為 500很钓。這意味著參考模型和即時(shí)模型的參數(shù)數(shù)量相近香府。
即時(shí)模型的實(shí)驗(yàn)結(jié)果如表 2 所示。在法到英和英到法翻譯任務(wù)中码倦,該模型的 BLEU 分?jǐn)?shù)至多比參考模型少 0.8%企孩。在更難的德到英和英到德翻譯任務(wù)中,該模型的 BLEU 分?jǐn)?shù)至多比參考模型少 4.8%袁稽。
表 2:在測(cè)試數(shù)據(jù)集上的參考模型和即時(shí)模型的 BLEU 分?jǐn)?shù)(初始的ε padding token 依此為從 0 到 5)勿璃。
表 3 中,當(dāng)句子長(zhǎng)度足夠大時(shí)推汽,在法到英和德到英翻譯任務(wù)中补疑,我們的模型擊敗了參考模型,表明即時(shí)模型在較短序列上表現(xiàn)較差歹撒,在較長(zhǎng)序列上表現(xiàn)較好莲组,而長(zhǎng)序列翻譯已知對(duì)于基于注意力機(jī)制的模型是較困難的(Koehn and Knowles, 2017)。表 5 展示了全部 4 個(gè)任務(wù)中長(zhǎng)序列翻譯結(jié)果的更多細(xì)節(jié)暖夭。
表 3:在法到英和德到英翻譯任務(wù)測(cè)試中锹杈,參考模型和即時(shí)模型的 BLEU 分?jǐn)?shù)隨句子長(zhǎng)度的變化撵孤。
表 5:在所有 4 個(gè)任務(wù)上,BLEU 分?jǐn)?shù)隨句子長(zhǎng)度的變化竭望。
討論
在 Reddit 上早直,網(wǎng)友們對(duì)該模型提出了質(zhì)疑:認(rèn)為即時(shí)模型的預(yù)處理過(guò)程實(shí)際上是作為注意力機(jī)制的替代品,而沒(méi)有使模型更簡(jiǎn)單市框,并且注意力機(jī)制具有更加優(yōu)雅和普適的優(yōu)勢(shì)霞扬。「你可能不需要注意力枫振,如果你有詞對(duì)齊……」
對(duì)此喻圃,作者的回答是:注意力模型需要在內(nèi)存中存儲(chǔ)所有源句 token 的編碼,而即時(shí)模型不需要粪滤。在內(nèi)存不足的條件下很有用斧拍,這也是這類模型相對(duì)于注意力模型的優(yōu)勢(shì)之一。
當(dāng)前在 Reddit 頁(yè)面上已經(jīng)有了數(shù)十條評(píng)論杖小,更多討論可以參見(jiàn)原網(wǎng)頁(yè)肆汹。
Reddit 地址:https://www.reddit.com/r/MachineLearning/comments/9t88jj/r_you_may_not_need_attention_summary_pytorch_code/