0
本文作者: 高云河 | 2017-07-10 10:45 |
Attention模型是近些年來(lái)自然語(yǔ)言處理領(lǐng)域重要的進(jìn)展之一。注意力模型是從認(rèn)知心理學(xué)中人腦注意力模型中引入的概念,在人觀察世界時(shí),對(duì)不同對(duì)象的關(guān)注程度是不同的,比如你在看書(shū)仔細(xì)品味文章中的一句話時(shí),雖然你能看到整頁(yè)的文字,但是注意力的焦點(diǎn)集中在這個(gè)句子上,其他文字雖然還在你的眼中,但是實(shí)際分配到的注意力是很少的。自然語(yǔ)言處理中也是同理,輸入文本的不同部分對(duì)輸出的貢獻(xiàn)是不同的,即需要分配的注意力權(quán)重不同。使用注意力模型能夠得到更好的生成結(jié)果。
由于標(biāo)準(zhǔn)的基于內(nèi)容的attention機(jī)制主要應(yīng)用在sequence-to-sequence模型中,由于該方法需要在每個(gè)時(shí)間狀態(tài)下大量比較編碼器和解碼器的狀態(tài),因此需要大量計(jì)算資源。Google Brain的研究者Denny Britz, Melody Y. Guan和Minh-Thang Luong提出了固定尺寸記憶表示的高效注意力模型,能夠?qū)⒎g任務(wù)推理速度提高20%。
以下為雷鋒網(wǎng)(公眾號(hào):雷鋒網(wǎng))AI科技評(píng)論據(jù)論文內(nèi)容進(jìn)行的部分編譯。
Sequence-to-sequence模型在許多任務(wù)得到了最好的效果,例如神經(jīng)機(jī)器翻譯(Neural Machine Translation,NMT),文本概括(text summarization),語(yǔ)音識(shí)別,圖像配字幕,以及對(duì)話建模等。
最流行的attention方法基于編碼器-解碼器架構(gòu),包含兩個(gè)循環(huán)神經(jīng)網(wǎng)絡(luò)和attention機(jī)制使得目標(biāo)與源符號(hào)對(duì)齊。在這種結(jié)構(gòu)中使用的典型attention機(jī)制計(jì)算在每個(gè)解碼步驟中基于解碼器當(dāng)前的狀態(tài)計(jì)算新的attention上下文。更直觀的說(shuō)法是,這對(duì)應(yīng)于每個(gè)單個(gè)目標(biāo)符號(hào)輸出之后查看源序列。
受人類(lèi)是如何處理句子的啟發(fā),研究者認(rèn)為在每個(gè)步驟中可能沒(méi)有必要回顧整個(gè)原始源序列。因此,研究者提出了一種替代attention機(jī)制,可以使得計(jì)算時(shí)間復(fù)雜度的降低。該方法在讀取源數(shù)據(jù)時(shí),預(yù)測(cè)K attention上下文向量。并學(xué)習(xí)在每個(gè)解碼步驟中使用這些向量的加權(quán)平均值。因此,一旦編碼了源序列,就避免回頭看。結(jié)果顯示,這可以加速推理。同時(shí),在玩具數(shù)據(jù)集和WMT翻譯數(shù)據(jù)集上,該方法達(dá)到了與標(biāo)準(zhǔn)attention機(jī)制相若的性能。結(jié)果還顯示,隨著序列變長(zhǎng),該機(jī)制能夠?qū)崿F(xiàn)更多的加速。最后,通過(guò)可視化attention分?jǐn)?shù),研究人員驗(yàn)證了該技術(shù)能夠?qū)W習(xí)有意義的對(duì)比,并且不同的attention上下文向量專(zhuān)注于源的不同部分。
上圖為該方法與標(biāo)準(zhǔn)注意力模型的結(jié)構(gòu)對(duì)比。在編碼階段預(yù)測(cè)K個(gè)attention向量,在解碼階段線性組合這些預(yù)測(cè)。在上圖中K=3。可以將基于記憶的注意力模型解釋為“預(yù)測(cè)”編碼期間由標(biāo)準(zhǔn)attention機(jī)制產(chǎn)生的一組注意上下文。如上圖,K=3,在這種情況下,在編碼階段預(yù)測(cè)所有3種attention上下文,并在解碼過(guò)程中學(xué)習(xí)選擇合適的attention上下文,進(jìn)行線性組合。這中方法比基于解碼器編碼內(nèi)同的諸葛計(jì)算上下文更加節(jié)省計(jì)算量。
玩具數(shù)據(jù)集結(jié)果:
由于計(jì)算時(shí)間復(fù)雜度的下降,該方法能夠得到更高的性能表現(xiàn),尤其是對(duì)于那些較長(zhǎng)的序列,或者那些能夠被緊湊表示為一個(gè)固定尺寸記憶矩陣的任務(wù)。為了研究速度和性能之間的權(quán)衡,研究者比較了該方法和標(biāo)準(zhǔn)模型在具有和不具有attention的情況下在Sequence Copy Task上的表現(xiàn)。
下表展示了該模型在不同序列長(zhǎng)度和K的情況下的BLEU分?jǐn)?shù)。較大的K可以計(jì)算復(fù)雜的源表示,值為1的K限制了源表示為單個(gè)向量??梢钥吹剑阅芤恢彪S著K的增加而增加,這取決于數(shù)據(jù)長(zhǎng)度,更長(zhǎng)的序列需要更復(fù)雜的表示。無(wú)論是否具有位置編碼,結(jié)果在玩具數(shù)據(jù)集上幾乎相同。盡管表示能力較低,但該方法仍與標(biāo)準(zhǔn)attention機(jī)制模型一樣能夠擬合數(shù)據(jù)。兩者都以顯著的差距擊敗non-attention基線。最后一列表明了該方法能夠極大的加速推理過(guò)程,隨著序列長(zhǎng)度變長(zhǎng),推理速度的差距越來(lái)越大。
下圖左側(cè)展示了序列長(zhǎng)度為200的學(xué)習(xí)曲線??梢钥吹終=1不能擬合數(shù)據(jù)分布,而K∈{32,64}幾乎與基于attention的模型一樣快。越大的K能夠?qū)е赂斓氖諗克俣龋^小的K的性能與non-attention基線相似。右圖展示了在softmax和sigmoid之間改變編碼器和解碼器評(píng)分函數(shù)的效果。所有組合都可以擬合數(shù)據(jù),但有些收斂速度比其他更快。
機(jī)器翻譯數(shù)據(jù)集結(jié)果:
接下來(lái),研究者測(cè)試了基于記憶的attention方法能否擬合復(fù)雜的真實(shí)數(shù)據(jù)集。研究人員使用了WMT’15的4個(gè)大型機(jī)器翻譯數(shù)據(jù)集:English-Czech, EnglishGerman, English-Finish, 和English-Turkish。
上表展示了該模型即使在擁有16K詞匯的大型復(fù)雜數(shù)據(jù)集上仍有更快的解碼速度。該時(shí)間實(shí)在整個(gè)驗(yàn)證集上測(cè)量的解碼時(shí)間,沒(méi)有包括模型設(shè)置和數(shù)據(jù)讀取的時(shí)間,為運(yùn)行10次的平均時(shí)間。數(shù)據(jù)中平均序列長(zhǎng)度為35,對(duì)于其他有更長(zhǎng)序列長(zhǎng)度的任務(wù),該方法應(yīng)該會(huì)有更顯著的速度提升。
左:en-fi的訓(xùn)練曲線 右:en-tr的訓(xùn)練曲線
上圖展示了在編碼器和解碼器中使用sigmoid和softmax函數(shù)的效果。Softmax/softmax的性能表現(xiàn)最差,其他的組合表現(xiàn)幾乎相當(dāng)。
可視化Attention:
上圖為在序列長(zhǎng)度為100的玩具數(shù)據(jù)集中對(duì)每個(gè)樣本進(jìn)行解碼的每個(gè)步驟中的attention分?jǐn)?shù)。(y軸:源符號(hào); x軸:目標(biāo)符號(hào))
上圖為在序列長(zhǎng)度為11的樣本上的K=4的解碼的每個(gè)步驟的attention分?jǐn)?shù),(y軸:源; x軸:目標(biāo))
上圖為在使用sigmoid評(píng)分函數(shù)和K=32的模型下,對(duì)每個(gè)步驟進(jìn)行解碼的en-de WMT翻譯任務(wù)的attention分?jǐn)?shù)。左側(cè)子圖分別顯示每個(gè)單獨(dú)的attention向量,右側(cè)子圖顯示attention的完整組合。
想要深入了解該方法的請(qǐng)閱讀原論文:https://arxiv.org/abs/1707.00110,雷鋒網(wǎng)編譯
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。