基于attention的神經(jīng)機器翻譯

近年來座柱,深度學(xué)習(xí)的研究越來越深入渠啊,在各個領(lǐng)域也都獲得了不少突破性的進展逻卖。基于注意力(attention)機制的神經(jīng)網(wǎng)絡(luò)成為了最近神經(jīng)網(wǎng)絡(luò)研究的一個熱點昭抒。

1 Attention研究進展

Attention機制最早是在視覺圖像領(lǐng)域提出來的,應(yīng)該是在九幾年思想就提出來了炼杖,但是真正火起來應(yīng)該算是google mind團隊的這篇論文《Recurrent Models of Visual Attention》[14]灭返,他們在RNN模型上使用了attention機制來進行圖像分類。隨后坤邪,Bahdanau等人在論文《Neural Machine Translation by Jointly Learning to Align and Translate》 [1]中熙含,使用類似attention的機制在機器翻譯任務(wù)上將翻譯和對齊同時進行,他們的工作算是是第一個提出attention機制應(yīng)用到NLP領(lǐng)域中艇纺。接著類似的基于attention機制的RNN模型擴展開始應(yīng)用到各種NLP任務(wù)中怎静。最近,如何在CNN中使用attention機制也成為了大家的研究熱點黔衡。

2 Recurrent Models of Visual Attention

在介紹NLP中的Attention之前蚓聘,我想大致說一下圖像中使用attention的思想。就具代表性的這篇論文《Recurrent Models of Visual Attention》 [14]盟劫,他們研究的動機其實也是受到人類注意力機制的啟發(fā)夜牡。人們在進行觀察圖像的時候,其實并不是一次就把整幅圖像的每個位置像素都看過侣签,大多是根據(jù)需求將注意力集中到圖像的特定部分塘装。而且人類會根據(jù)之前觀察的圖像學(xué)習(xí)到未來要觀察圖像注意力應(yīng)該集中的位置。下圖是這篇論文的核心模型示意圖影所。

該模型是在傳統(tǒng)的RNN上加入了attention機制(即紅圈圈出來的部分)蹦肴,通過attention去學(xué)習(xí)一幅圖像要處理的部分,每次當(dāng)前狀態(tài)猴娩,都會根據(jù)前一個狀態(tài)學(xué)習(xí)得到的要關(guān)注的位置l和當(dāng)前輸入的圖像阴幌,去處理注意力部分像素勺阐,而不是圖像的全部像素。這樣的好處就是更少的像素需要處理裂七,減少了任務(wù)的復(fù)雜度皆看。可以看到圖像中應(yīng)用attention和人類的注意力機制是很類似的背零,接下來我們看看在NLP中使用的attention腰吟。

3 Attention-based RNN in NLP

3.1 Neural Machine Translation by Jointly Learning to Align and Translate [1]

這篇論文算是在NLP中第一個使用attention機制的工作。他們把attention機制用到了神經(jīng)網(wǎng)絡(luò)機器翻譯(NMT)上徙瓶,NMT其實就是一個典型的sequence to sequence模型毛雇,也就是一個encoder to decoder模型,傳統(tǒng)的NMT使用兩個RNN侦镇,一個RNN對源語言進行編碼灵疮,將源語言編碼到一個固定維度的中間向量,然后在使用一個RNN進行解碼翻譯到目標(biāo)語言壳繁,傳統(tǒng)的模型如下圖:

這篇論文提出了基于attention機制的NMT震捣,模型大致如下圖:

圖中我并沒有把解碼器中的所有連線畫玩,只畫了前兩個詞闹炉,后面的詞其實都一樣蒿赢。可以看到基于attention的NMT在傳統(tǒng)的基礎(chǔ)上渣触,它把源語言端的每個詞學(xué)到的表達(傳統(tǒng)的只有最后一個詞后學(xué)到的表達)和當(dāng)前要預(yù)測翻譯的詞聯(lián)系了起來羡棵,這樣的聯(lián)系就是通過他們設(shè)計的attention進行的,在模型訓(xùn)練好后嗅钻,根據(jù)attention矩陣皂冰,我們就可以得到源語言和目標(biāo)語言的對齊矩陣了。具體論文的attention設(shè)計部分如下:

可以看到他們是使用一個感知機公式來將目標(biāo)語言和源語言的每個詞聯(lián)系了起來养篓,然后通過soft函數(shù)將其歸一化得到一個概率分布秃流,就是attention矩陣。

從結(jié)果來看相比傳統(tǒng)的NMT(RNNsearch是attention NMT柳弄,RNNenc是傳統(tǒng)NMT)效果提升了不少剔应,最大的特點還在于它可以可視化對齊,并且在長句的處理上更有優(yōu)勢语御。

3.2 Effective Approaches to Attention-based Neural Machine Translation [2]

這篇論文是繼上一篇論文后峻贮,一篇很具代表性的論文,他們的工作告訴了大家attention在RNN中可以如何進行擴展应闯,這篇論文對后續(xù)各種基于attention的模型在NLP應(yīng)用起到了很大的促進作用纤控。在論文中他們提出了兩種attention機制,一種是全局(global)機制碉纺,一種是局部(local)機制船万。

首先我們來看看global機制的attention刻撒,其實這和上一篇論文提出的attention的思路是一樣的,它都是對源語言對所有詞進行處理耿导,不同的是在計算attention矩陣值的時候声怔,他提出了幾種簡單的擴展版本。

在他們最后的實驗中g(shù)eneral的計算方法效果是最好的舱呻。

我們再來看一下他們提出的local版本醋火。主要思路是為了減少attention計算時的耗費,作者在計算attention時并不是去考慮源語言端的所有詞箱吕,而是根據(jù)一個預(yù)測函數(shù)芥驳,先預(yù)測當(dāng)前解碼時要對齊的源語言端的位置Pt,然后通過上下文窗口茬高,僅考慮窗口內(nèi)的詞兆旬。

里面給出了兩種預(yù)測方法,local-m和local-p怎栽,再計算最后的attention矩陣時丽猬,在原來的基礎(chǔ)上去乘了一個pt位置相關(guān)的高斯分布。作者的實驗結(jié)果是局部的比全局的attention效果好熏瞄。

這篇論文最大的貢獻我覺得是首先告訴了我們可以如何擴展attention的計算方式脚祟,還有就是局部的attention方法。

4 Attention-based CNN in NLP

隨后基于Attention的RNN模型開始在NLP中廣泛應(yīng)用巴刻,不僅僅是序列到序列模型,各種分類問題都可以使用這樣的模型蛉签。那么在深度學(xué)習(xí)中與RNN同樣流行的卷積神經(jīng)網(wǎng)絡(luò)CNN是否也可以使用attention機制呢胡陪?《ABCNN: Attention-Based Convolutional Neural Network for Modeling Sentence Pairs》 [13]這篇論文就提出了3中在CNN中使用attention的方法,是attention在CNN中較早的探索性工作

傳統(tǒng)的CNN在構(gòu)建句對模型時如上圖碍舍,通過每個單通道處理一個句子柠座,然后學(xué)習(xí)句子表達,最后一起輸入到分類器中片橡。這樣的模型在輸入分類器前句對間是沒有相互聯(lián)系的妈经,作者們就想通過設(shè)計attention機制將不同cnn通道的句對聯(lián)系起來。

第一種方法ABCNN0-1是在卷積前進行attention捧书,通過attention矩陣計算出相應(yīng)句對的attention feature map吹泡,然后連同原來的feature map一起輸入到卷積層。具體的計算方法如下经瓷。

第二種方法ABCNN-2是在池化時進行attention爆哑,通過attention對卷積后的表達重新加權(quán),然后再進行池化舆吮,原理如下圖揭朝。

第三種就是把前兩種方法一起用到CNN中队贱,如下圖

這篇論文提供了我們在CNN中使用attention的思路。現(xiàn)在也有不少使用基于attention的CNN工作潭袱,并取得了不錯的效果柱嫌。

5 總結(jié)

最后進行一下總結(jié)。Attention在NLP中其實我覺得可以看成是一種自動加權(quán)屯换,它可以把兩個你想要聯(lián)系起來的不同模塊编丘,通過加權(quán)的形式進行聯(lián)系。目前主流的計算公式有以下幾種:

通過設(shè)計一個函數(shù)將目標(biāo)模塊mt和源模塊ms聯(lián)系起來趟径,然后通過一個soft函數(shù)將其歸一化得到概率分布瘪吏。

目前Attention在NLP中已經(jīng)有廣泛的應(yīng)用。它有一個很大的優(yōu)點就是可以可視化attention矩陣來告訴大家神經(jīng)網(wǎng)絡(luò)在進行任務(wù)時關(guān)注了哪些部分蜗巧。

不過在NLP中的attention機制和人類的attention機制還是有所區(qū)別掌眠,它基本還是需要計算所有要處理的對象,并額外用一個矩陣去存儲其權(quán)重幕屹,其實增加了開銷蓝丙。而不是像人類一樣可以忽略不想關(guān)注的部分,只去處理關(guān)注的部分望拖。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末渺尘,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子说敏,更是在濱河造成了極大的恐慌鸥跟,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件盔沫,死亡現(xiàn)場離奇詭異医咨,居然都是意外死亡,警方通過查閱死者的電腦和手機架诞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進店門拟淮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人谴忧,你說我怎么就攤上這事很泊。” “怎么了沾谓?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵委造,是天一觀的道長。 經(jīng)常有香客問我均驶,道長争涌,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任辣恋,我火速辦了婚禮亮垫,結(jié)果婚禮上模软,老公的妹妹穿的比我還像新娘。我一直安慰自己饮潦,他們只是感情好燃异,可當(dāng)我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著继蜡,像睡著了一般回俐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上稀并,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天仅颇,我揣著相機與錄音,去河邊找鬼碘举。 笑死忘瓦,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的引颈。 我是一名探鬼主播耕皮,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蝙场!你這毒婦竟也來了凌停?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤售滤,失蹤者是張志新(化名)和其女友劉穎罚拟,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體完箩,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡赐俗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了嗜憔。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片秃励。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡氏仗,死狀恐怖吉捶,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情皆尔,我是刑警寧澤呐舔,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站慷蠕,受9級特大地震影響珊拼,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜流炕,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一澎现、第九天 我趴在偏房一處隱蔽的房頂上張望仅胞。 院中可真熱鬧,春花似錦剑辫、人聲如沸干旧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽椎眯。三九已至,卻和暖如春胳岂,著一層夾襖步出監(jiān)牢的瞬間编整,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工乳丰, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留掌测,地道東北人。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓成艘,卻偏偏與公主長得像赏半,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子淆两,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,947評論 2 355

推薦閱讀更多精彩內(nèi)容