NLP中注意力機(jī)制綜述

感謝參考原文-http://bjbsair.com/2020-03-27/tech-info/7118.html

自然語言處理中注意力機(jī)制綜述

目錄

1.寫在前面

2.Seq2Seq 模型

3.NLP中注意力機(jī)制起源

4.NLP中的注意力機(jī)制

5.Hierarchical Attention

6.Self-Attention

7.Memory-based Attention

8.Soft/Hard Attention

9.Global/Local Attention

10.評(píng)價(jià)指標(biāo)

11.寫在后面

12.參考文獻(xiàn)

寫在前面

近些年來脓诡,注意力機(jī)制一直頻繁的出現(xiàn)在目之所及的文獻(xiàn)或者博文中粤铭,可見在nlp中算得上是個(gè)相當(dāng)流行的概念皿渗,事實(shí)也證明其在nlp領(lǐng)域散發(fā)出不小得作用底哗。這幾年的頂會(huì)paper就能看出這一點(diǎn)师抄。本文深入淺出地介紹了近些年的自然語言中的注意力機(jī)制包括從起源、變體到評(píng)價(jià)指標(biāo)方面愤兵。

據(jù)Lilian Weng博主[1]總結(jié)以及一些資料顯示铁蹈,Attention機(jī)制最早應(yīng)該是在視覺圖像領(lǐng)域提出來的赐俗,這方面的工作應(yīng)該很多拉队,歷史也比較悠久。人類的視覺注意力雖然存在很多不同的模型阻逮,但它們都基本上歸結(jié)為給予需要重點(diǎn)關(guān)注的目標(biāo)區(qū)域(注意力焦點(diǎn))更重要的注意力粱快,同時(shí)給予周圍的圖像低的注意力,然后隨著時(shí)間的推移調(diào)整焦點(diǎn)叔扼。

而直到Bahdanau等人[3]發(fā)表了論文《Neural Machine Translation by Jointly Learning to Align and Translate》事哭,該論文使用類似attention的機(jī)制在機(jī)器翻譯任務(wù)上將翻譯和對(duì)齊同時(shí)進(jìn)行,這個(gè)工作目前是最被認(rèn)可為是第一個(gè)提出attention機(jī)制應(yīng)用到NLP領(lǐng)域中的工作瓜富,值得一提的是鳍咱,該論文2015年被ICLR錄用,截至現(xiàn)在与柑,谷歌引用量為5596谤辜,可見后續(xù)nlp在這一塊的研究火爆程度。

注意力機(jī)制首先從人類直覺中得到价捧,在nlp領(lǐng)域的機(jī)器翻譯任務(wù)上首先取得不錯(cuò)的效果丑念。簡(jiǎn)而言之,深度學(xué)習(xí)中的注意力可以廣義地解釋為重要性權(quán)重的向量:為了預(yù)測(cè)一個(gè)元素结蟋,例如句子中的單詞脯倚,使用注意力向量來估計(jì)它與其他元素的相關(guān)程度有多強(qiáng),并將其值的總和作為目標(biāo)的近似值椎眯。既然注意力機(jī)制最早在nlp領(lǐng)域應(yīng)用于機(jī)器翻譯任務(wù)挠将,那在這個(gè)之前又是怎么做的呢?

傳統(tǒng)的基于短語的翻譯系統(tǒng)通過將源句分成多個(gè)塊然后逐個(gè)詞地翻譯它們來完成它們的任務(wù)编整,這導(dǎo)致了翻譯輸出的不流暢舔稀。不妨先來想想我們?nèi)祟愂侨绾畏g的?我們首先會(huì)閱讀整個(gè)待翻譯的句子掌测,然后結(jié)合上下文理解其含義内贮,最后產(chǎn)生翻譯。

從某種程度上來說汞斧,神經(jīng)機(jī)器翻譯(NMT)的提出正是想去模仿這一過程夜郁。而在NMT的翻譯模型中經(jīng)典的做法是由編碼器 - 解碼器架構(gòu)制定(encoder-decoder),用作encoder和decoder常用的是循環(huán)神經(jīng)網(wǎng)絡(luò)粘勒。這類模型大概過程是首先將源句子的輸入序列送入到編碼器中竞端,提取最后隱藏狀態(tài)的表示并用于解碼器的輸入,然后一個(gè)接一個(gè)地生成目標(biāo)單詞庙睡,這個(gè)過程廣義上可以理解為不斷地將前一個(gè)時(shí)刻 t-1 的輸出作為后一個(gè)時(shí)刻 t 的輸入事富,循環(huán)解碼技俐,直到輸出停止符為止。

通過這種方式统台,NMT解決了傳統(tǒng)的基于短語的方法中的局部翻譯問題:它可以捕獲語言中的長(zhǎng)距離依賴性雕擂,并提供更流暢的翻譯。

但是這樣做也存在很多缺點(diǎn)贱勃,譬如井赌,RNN是健忘的,這意味著前面的信息在經(jīng)過多個(gè)時(shí)間步驟傳播后會(huì)被逐漸消弱乃至消失贵扰。其次仇穗,在解碼期間沒有進(jìn)行對(duì)齊操作,因此在解碼每個(gè)元素的過程中拔鹰,焦點(diǎn)分散在整個(gè)序列中仪缸。對(duì)于前面那個(gè)問題,LSTM列肢、GRU在一定程度能夠緩解恰画。而后者正是Bahdanau等人重視的問題。

Seq2Seq模型

在介紹注意力模型之前瓷马,不得不先學(xué)習(xí)一波Encoder-Decoder框架拴还,雖然說注意力模型可以看作一種通用的思想,本身并不依賴于特定框架(比如文章[15]:Learning Sentence Representation with Guidance of Human Attention)欧聘,但是目前大多數(shù)注意力模型都伴隨在Encoder-Decoder框架下片林。

Seq2seq模型最早由bengio等人[17]論文《Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation》。隨后Sutskever等人[16]在文章《Sequence to Sequence Learning with Neural Networks》中提出改進(jìn)模型即為目前常說的Seq2Seq模型怀骤。

從廣義上講费封,它的目的是將輸入序列(源序列)轉(zhuǎn)換為新的輸出序列(目標(biāo)序列),這種方式不會(huì)受限于兩個(gè)序列的長(zhǎng)度蒋伦,換句話說弓摘,兩個(gè)序列的長(zhǎng)度可以任意。以nlp領(lǐng)域來說痕届,序列可以是句子韧献、段落、篇章等研叫,所以我們也可以把它看作處理由一個(gè)句子(段落或篇章)生成另外一個(gè)句子(段落或篇章)的通用處理模型锤窑。

對(duì)于句子對(duì),我們期望輸入句子Source嚷炉,期待通過Encoder-Decoder框架來生成目標(biāo)句子Target渊啰。Source和Target可以是同一種語言,也可以是兩種不同的語言申屹,若是不同語言虽抄,就可以處理翻譯問題了走搁。若是相同語言独柑,輸入序列Source長(zhǎng)度為篇章迈窟,而目標(biāo)序列Target為小段落則可以處理文本摘要問題 (目標(biāo)序列Target為句子則可以處理標(biāo)題生成問題)等等等。

seq2seq模型通常具有編碼器 - 解碼器架構(gòu):

  • 編碼器encoder: 編碼器處理輸入序列并將序列信息壓縮成固定長(zhǎng)度的上下文向量(語義編碼/語義向量context)忌栅。期望這個(gè)向量能夠比較好的表示輸入序列的信息车酣。

  • 解碼器decoder: 利用上下文向量初始化解碼器以得到變換后的目標(biāo)序列輸出。早期工作僅使用編碼器的最后狀態(tài)作為解碼器的輸入索绪。

  • 編碼器和解碼器都是循環(huán)神經(jīng)網(wǎng)絡(luò)湖员,比較常見的是使用LSTM或GRU。

自然語言處理中注意力機(jī)制綜述

編碼器 - 解碼器模型

NLP中注意力機(jī)制的起源

前面談到在Seq2Seq結(jié)構(gòu)中瑞驱,encoder把所有的輸入序列都編碼成一個(gè)統(tǒng)一的語義向量context娘摔,然后再由decoder解碼。而context自然也就成了限制模型性能的瓶頸唤反。

譬如機(jī)器翻譯問題凳寺,當(dāng)要翻譯的句子較長(zhǎng)時(shí),一個(gè)context可能存不下那么多信息彤侍。除此之外肠缨,只用編碼器的最后一個(gè)隱藏層狀態(tài),感覺上都不是很合理盏阶。

實(shí)際上當(dāng)我們翻譯一個(gè)句子的時(shí)候晒奕,譬如:Source: 機(jī)器學(xué)習(xí)-->Target: machine learning。當(dāng)decoder要生成"machine"的時(shí)候名斟,應(yīng)該更關(guān)注"機(jī)器"脑慧,而生成"learning"的時(shí)候,應(yīng)該給予"學(xué)習(xí)"更大的權(quán)重砰盐。所以如果要改進(jìn)Seq2Seq結(jié)構(gòu)闷袒,一個(gè)不錯(cuò)的想法自然就是利用encoder所有隱藏層狀態(tài)解決context限制問題。

Bahdanau等人[3]把a(bǔ)ttention機(jī)制用到了神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯(NMT)上楞卡。傳統(tǒng)的encoder-decoder模型通過encoder將Source序列編碼到一個(gè)固定維度的中間語義向量context霜运,然后再使用decoder進(jìn)行解碼翻譯到目標(biāo)語言序列。前面談到了這種做法的局限性蒋腮,而且淘捡,Bahdanau等人[3]在其文章的摘要中也說到這個(gè)context可能是提高這種基本編碼器 - 解碼器架構(gòu)性能的瓶頸,那Bahdanau等人又是如何嘗試緩解這個(gè)問題的呢池摧? 別急焦除,讓我們來一探究竟。

作者為了緩解中間向量context很難將Source序列所有重要信息壓縮進(jìn)來的問題作彤,特別是對(duì)于那些很長(zhǎng)的句子膘魄。提出在機(jī)器翻譯任務(wù)上在 encoder–decoder 做出了如下擴(kuò)展:將翻譯和對(duì)齊聯(lián)合學(xué)習(xí)乌逐。這個(gè)操作在生成Target序列的每個(gè)詞時(shí),用到的中間語義向量context是Source序列通過encoder的隱藏層的加權(quán)和创葡,而傳統(tǒng)的做法是只用encoder最后一個(gè)時(shí)刻輸出

自然語言處理中注意力機(jī)制綜述

作為context浙踢,這樣就能保證在解碼不同詞的時(shí)候,Source序列對(duì)現(xiàn)在解碼詞的貢獻(xiàn)是不一樣的灿渴。

想想前面那個(gè)例子:Source: 機(jī)器學(xué)習(xí)-->Target: machine learning (假如中文按照字切分)洛波。decoder在解碼"machine"時(shí),"機(jī)"和"器"提供的權(quán)重要更大一些骚露,同樣蹬挤,在解碼"learning"時(shí),"學(xué)"和"習(xí)"提供的權(quán)重相應(yīng)的會(huì)更大一些棘幸,這在直覺也和人類翻譯也是一致的焰扳。

通過這種attention的設(shè)計(jì),作者將Source序列的每個(gè)詞(通過encoder的隱藏層輸出)和Target序列 (當(dāng)前要翻譯的詞) 的每個(gè)詞巧妙的建立了聯(lián)系误续。想一想吨悍,翻譯每個(gè)詞的時(shí)候,都有一個(gè)語義向量女嘲,而這個(gè)語義向量是Source序列每個(gè)詞通過encoder之后的隱藏層的加權(quán)和畜份。 由此可以得到一個(gè)Source序列和Target序列的對(duì)齊矩陣,通過可視化這個(gè)矩陣欣尼,可以看出在翻譯一個(gè)詞的時(shí)候翁狐,Source序列的每個(gè)詞對(duì)當(dāng)前要翻譯詞的重要性分布咳焚,這在直覺上也能給人一種可解釋性的感覺。

論文中的圖也能很好的看出這一點(diǎn):

自然語言處理中注意力機(jī)制綜述

生成第t個(gè)目標(biāo)詞

自然語言處理中注意力機(jī)制綜述

更形象一點(diǎn)可以看這個(gè)圖:

自然語言處理中注意力機(jī)制綜述
自然語言處理中注意力機(jī)制綜述

現(xiàn)在讓我們從公式層面來看看這個(gè)東東 (加粗變量表示它們是向量,這篇文章中的其他地方也一樣)损俭。 假設(shè)我們有一個(gè)長(zhǎng)度為n的源序列x畜挥,并嘗試輸出長(zhǎng)度為m的目標(biāo)序列y:

自然語言處理中注意力機(jī)制綜述

作者采樣bidirectional RNN作為encoder(實(shí)際上這里可以有很多選擇)蕉毯,具有前向隱藏狀態(tài)

自然語言處理中注意力機(jī)制綜述

和后向隱藏狀態(tài)

自然語言處理中注意力機(jī)制綜述

呆万。為了獲得詞的上下文信息,作者采用簡(jiǎn)單串聯(lián)方式將前向和后向表示拼接作為encoder的隱藏層狀態(tài)磺送,公式如下:

自然語言處理中注意力機(jī)制綜述

對(duì)于目標(biāo)(輸出)序列的每個(gè)詞(假設(shè)位置為t)驻子,decoder網(wǎng)絡(luò)的隱藏層狀態(tài):

自然語言處理中注意力機(jī)制綜述

其中

自然語言處理中注意力機(jī)制綜述

,語義向量

自然語言處理中注意力機(jī)制綜述

是源(輸入)序列的隱藏狀態(tài)的加權(quán)和估灿,權(quán)重為對(duì)齊分?jǐn)?shù):

自然語言處理中注意力機(jī)制綜述

(注意:這里的score函數(shù)為原文的a函數(shù)崇呵,原文的描述為:

自然語言處理中注意力機(jī)制綜述

is an alignment model)

對(duì)齊模型基于

自然語言處理中注意力機(jī)制綜述

(在i時(shí)刻的輸入)和

自然語言處理中注意力機(jī)制綜述

(在t時(shí)刻的輸出)的匹配程度分配分?jǐn)?shù)

自然語言處理中注意力機(jī)制綜述

自然語言處理中注意力機(jī)制綜述

是定義每個(gè)目標(biāo)(輸出)單詞應(yīng)該考慮給每個(gè)源(輸入)隱藏狀態(tài)的多大的權(quán)重(這恰恰反映了對(duì)此時(shí)解碼的目標(biāo)單詞的貢獻(xiàn)重要性)馅袁。

在Bahdanau[3]的論文中域慷,作者采用的對(duì)齊模型為前饋神經(jīng)網(wǎng)絡(luò),該網(wǎng)絡(luò)與所提出的系統(tǒng)的所有其他組件共同訓(xùn)練。因此犹褒,score函數(shù)采用以下形式抵窒,tanh用作非線性激活函數(shù),公式如下:

自然語言處理中注意力機(jī)制綜述

其中

自然語言處理中注意力機(jī)制綜述

叠骑,

自然語言處理中注意力機(jī)制綜述

和都是在對(duì)齊模型中學(xué)習(xí)的權(quán)重矩陣李皇。對(duì)齊分?jǐn)?shù)矩陣是一個(gè)很好的可解釋性的東東,可以明確顯示源詞和目標(biāo)詞之間的相關(guān)性座云。

自然語言處理中注意力機(jī)制綜述

對(duì)齊矩陣?yán)?/p>

而decoder每個(gè)詞的條件概率為:

自然語言處理中注意力機(jī)制綜述

g為非線性的疙赠,可能是多層的輸出

自然語言處理中注意力機(jī)制綜述

概率的函數(shù),

自然語言處理中注意力機(jī)制綜述

是RNN的隱藏狀態(tài),

自然語言處理中注意力機(jī)制綜述

為語義向量朦拖。

NLP中的注意力機(jī)制

隨著注意力機(jī)制的廣泛應(yīng)用,在某種程度上緩解了源序列和目標(biāo)序列由于距離限制而難以建模依賴關(guān)系的問題⊙嵯危現(xiàn)在已經(jīng)涌現(xiàn)出了一大批基于基本形式的注意力的不同變體來處理更復(fù)雜的任務(wù)璧帝。讓我們一起來看看其在不同NLP問題中的注意力機(jī)制。

其實(shí)我們可能已經(jīng)意識(shí)到了富寿,對(duì)齊模型的設(shè)計(jì)不是唯一的睬隶,確實(shí),在某種意義上說页徐,根據(jù)不同的任務(wù)設(shè)計(jì)適應(yīng)于特定任務(wù)的對(duì)齊模型可以看作設(shè)計(jì)出了新的attention變體苏潜,讓我們?cè)倩剡^頭來看看這個(gè)對(duì)齊模型(函數(shù)):

自然語言處理中注意力機(jī)制綜述

。再來看看幾個(gè)代表性的work变勇。

  • Citation[5]等人提出Content-base attention恤左,其對(duì)齊函數(shù)模型設(shè)計(jì)為:
自然語言處理中注意力機(jī)制綜述
  • Bahdanau[3]等人的Additive(*),其設(shè)計(jì)為:
自然語言處理中注意力機(jī)制綜述
  • Luong[4]等人文獻(xiàn)包含了幾種方式:
  • 以及Luong[4]等人還嘗試過location-based function: 這種方法的對(duì)齊分?jǐn)?shù)僅從目標(biāo)隱藏狀態(tài)學(xué)習(xí)得到搀绣。
  • Vaswani[6]等人的Scaled Dot-Product(^):細(xì)心的童鞋可能早就發(fā)現(xiàn)了這東東和點(diǎn)積注意力很像飞袋,只是加了個(gè)scale factor。當(dāng)輸入較大時(shí)链患,softmax函數(shù)可能具有極小的梯度巧鸭,難以有效學(xué)習(xí),所以作者加入比例因子麻捻。
  • Cheng[7]等人的Self-Attention(&)可以關(guān)聯(lián)相同輸入序列的不同位置纲仍。 從理論上講,Self-Attention可以采用上面的任何 score functions贸毕。在一些文章中也稱為“intra-attention” 郑叠。

Hu[7]對(duì)此分了個(gè)類:

自然語言處理中注意力機(jī)制綜述

前面談到的一些Basic Attention給人的感覺能夠從序列中根據(jù)權(quán)重分布提取重要元素。而Multi-dimensional Attention能夠捕獲不同表示空間中的term之間的多個(gè)交互崖咨,這一點(diǎn)簡(jiǎn)單的實(shí)現(xiàn)可以通過直接將多個(gè)單維表示堆疊在一起構(gòu)建锻拘。Wang[8]等人提出了coupled multi-layer attentions,該模型屬于多層注意力網(wǎng)絡(luò)模型。作者稱署拟,通過這種多層方式婉宰,該模型可以進(jìn)一步利用術(shù)語之間的間接關(guān)系,以獲得更精確的信息推穷。

Hierarchical Attention

再來看看Hierarchical Attention心包,Yang[9]等人提出了Hierarchical Attention Networks,看下面的圖可能會(huì)更直觀:

自然語言處理中注意力機(jī)制綜述

Hierarchical Attention Networks

這種結(jié)構(gòu)能夠反映文檔的層次結(jié)構(gòu)馒铃。模型在單詞和句子級(jí)別分別設(shè)計(jì)了兩個(gè)不同級(jí)別的注意力機(jī)制蟹腾,這樣做能夠在構(gòu)建文檔表示時(shí)區(qū)別地對(duì)待這些內(nèi)容。Hierarchical attention可以相應(yīng)地構(gòu)建分層注意力区宇,自下而上(即娃殖,詞級(jí)到句子級(jí))或自上而下(詞級(jí)到字符級(jí)),以提取全局和本地的重要信息议谷。自下而上的方法上面剛談完炉爆。那么自上而下又是如何做的呢?讓我們看看Ji[10]等人的模型:

自然語言處理中注意力機(jī)制綜述

Nested Attention Hybrid Model

和機(jī)器翻譯類似卧晓,作者依舊采用encoder-decoder架構(gòu)芬首,然后用word-level attention對(duì)全局語法和流暢性糾錯(cuò),設(shè)計(jì)character-level attention對(duì)本地拼寫錯(cuò)誤糾正逼裆。

Self-Attention

那Self-Attention又是指什么呢郁稍?

Self-Attention(自注意力),也稱為intra-attention(內(nèi)部注意力)胜宇,是關(guān)聯(lián)單個(gè)序列的不同位置的注意力機(jī)制耀怜,以便計(jì)算序列的交互表示。它已被證明在很多領(lǐng)域十分有效比如機(jī)器閱讀掸屡,文本摘要或圖像描述生成封寞。

比如Cheng[11]等人在機(jī)器閱讀里面利用了自注意力。當(dāng)前單詞為紅色仅财,藍(lán)色陰影的大小表示激活程度狈究,自注意力機(jī)制使得能夠?qū)W習(xí)當(dāng)前單詞和句子前一部分詞之間的相關(guān)性。

自然語言處理中注意力機(jī)制綜述

當(dāng)前單詞為紅色盏求,藍(lán)色陰影的大小表示激活程度

比如Xu[12]等人利用自注意力在圖像描述生成任務(wù)抖锥。注意力權(quán)重的可視化清楚地表明了模型關(guān)注的圖像的哪些區(qū)域以便輸出某個(gè)單詞。

自然語言處理中注意力機(jī)制綜述

我們假設(shè)序列元素為

自然語言處理中注意力機(jī)制綜述

碎罚,其匹配向量為

自然語言處理中注意力機(jī)制綜述

磅废。讓我們?cè)賮砘仡櫹虑懊嬲f的基本注意力的對(duì)齊函數(shù),attention score通過

自然語言處理中注意力機(jī)制綜述

計(jì)算得到荆烈,由于是通過將外部u與每個(gè)元素

自然語言處理中注意力機(jī)制綜述

匹配來計(jì)算注意力拯勉,所以這種形式可以看作是外部注意力竟趾。當(dāng)我們把外部u替換成序列本身(或部分本身),這種形式就可以看作為內(nèi)部注意力(internal attention)宫峦。

我們根據(jù)文章[7]中的例子來看看這個(gè)過程岔帽,例如句子:"Volleyball match is in progress between ladies"。句子中其它單詞都依賴著"match"导绷,理想情況下犀勒,我們希望使用自注意力來自動(dòng)捕獲這種內(nèi)在依賴。換句話說妥曲,自注意力可以解釋為贾费,每個(gè)單詞

自然語言處理中注意力機(jī)制綜述

去和V序列中的內(nèi)部模式

自然語言處理中注意力機(jī)制綜述

匹配,匹配函數(shù)

自然語言處理中注意力機(jī)制綜述

檐盟。

自然語言處理中注意力機(jī)制綜述

很自然的選擇為V中其它單詞

自然語言處理中注意力機(jī)制綜述

褂萧,這樣遍可以計(jì)算成對(duì)注意力得分。為了完全捕捉序列中單詞之間的復(fù)雜相互作用遵堵,我們可以進(jìn)一步擴(kuò)展它以計(jì)算序列中每對(duì)單詞之間的注意力箱玷。這種方式讓每個(gè)單詞和序列中其它單詞交互了關(guān)系。

自然語言處理中注意力機(jī)制綜述

另一方面陌宿,自注意力還可以自適應(yīng)方式學(xué)習(xí)復(fù)雜的上下文單詞表示。譬如經(jīng)典文章[14]:A structured self-attentive sentence embedding波丰。這篇文章提出了一種通過引入自關(guān)注力機(jī)制來提取可解釋句子嵌入的新模型壳坪。 使用二維矩陣而不是向量來代表嵌入,矩陣的每一行都在句子的不同部分掰烟,想深入了解的可以去看看這篇文章爽蝴,另外,文章的公式感覺真的很漂亮纫骑。

值得一提還有2017年谷歌提出的Transformer[6]蝎亚,這是一種新穎的基于注意力的機(jī)器翻譯架構(gòu),也是一個(gè)混合神經(jīng)網(wǎng)絡(luò)先馆,具有前饋層和自注意層发框。論文的題目挺霸氣:Attention is All you Need,毫無疑問煤墙,它是2017年最具影響力和最有趣的論文之一梅惯。那這篇文章的Transformer的廬山真面目到底是這樣的呢?

這篇文章為提出許多改進(jìn)仿野,在完全拋棄了RNN的情況下進(jìn)行seq2seq建模铣减。接下來一起來詳細(xì)看看吧。

Key, Value and Query

眾所周知脚作,在NLP任務(wù)中葫哗,通常的處理方法是先分詞,然后每個(gè)詞轉(zhuǎn)化為對(duì)應(yīng)的詞向量。接著一般最常見的有二類操作劣针,第一類是接RNN(變體LSTM校镐、GRU、SRU等)酿秸,但是這一類方法沒有擺脫時(shí)序這個(gè)局限灭翔,也就是說無法并行,也導(dǎo)致了在大數(shù)據(jù)集上的速度效率問題辣苏。第二類是接CNN肝箱,CNN方便并行,而且容易捕捉到一些全局的結(jié)構(gòu)信息稀蟋。很長(zhǎng)一段時(shí)間都是以上二種的抉擇以及改造煌张,直到谷歌提供了第三類思路:純靠注意力,也就是現(xiàn)在要講的這個(gè)東東退客。

將輸入序列編碼表示視為一組鍵值對(duì)(K骏融,V)以及查詢 Q,因?yàn)槲恼耓6]取K=V=Q萌狂,所以也自然稱為Self Attention档玻。

自然語言處理中注意力機(jī)制綜述

K, V像是key-value的關(guān)系從而是一一對(duì)應(yīng)的,那么上式的意思就是通過Q中每個(gè)元素query茫藏,與K中各個(gè)元素求內(nèi)積然后softmax的方式误趴,來得到Q中元素與V中元素的相似度,然后加權(quán)求和务傲,得到一個(gè)新的向量凉当。其中因子為了使得內(nèi)積不至于太大。以上公式在文中也稱為點(diǎn)積注意力(scaled dot-product attention):輸出是值的加權(quán)和售葡,其中分配給每個(gè)值的權(quán)重由查詢的點(diǎn)積與所有鍵確定看杭。

而Transformer主要由多頭自注意力(Multi-Head Self-Attention)單元組成。那么Multi-Head Self-Attention又是什么呢挟伙?以下為論文中的圖:

自然語言處理中注意力機(jī)制綜述

Multi-head scaled dot-product attention mechanism

Multi-Head Self-Attention不是僅僅計(jì)算一次注意力楼雹,而是多次并行地通過縮放的點(diǎn)積注意力。 獨(dú)立的注意力輸出被簡(jiǎn)單地連接并線性地轉(zhuǎn)換成預(yù)期的維度像寒。論文[6]表示烘豹,多頭注意力允許模型共同關(guān)注來自不同位置的不同表示子空間的信息。 只有一個(gè)注意力的頭诺祸,平均值就會(huì)抑制這一點(diǎn)携悯。

自然語言處理中注意力機(jī)制綜述
自然語言處理中注意力機(jī)制綜述

是需要學(xué)習(xí)的參數(shù)矩陣。既然為seq2seq模式筷笨,自然也包括encoder和decoder憔鬼,那這篇文章又是如何構(gòu)建這些的呢龟劲?莫急,請(qǐng)繼續(xù)往下看轴或。

Encoder

自然語言處理中注意力機(jī)制綜述

The transformer's encoder

編碼器生成基于自注意力的表示昌跌,其能夠從可能無限大的上下文中定位特定信息。值得一提的是照雁,上面的結(jié)構(gòu)文章堆了六個(gè)蚕愤。

  • 每層都有一個(gè)多頭自注意力層
  • 每層都有一個(gè)簡(jiǎn)單的全連接的前饋網(wǎng)絡(luò)
  • 每個(gè)子層采用殘差連接和層規(guī)范化。 所有子層輸出相同維度dmodel = 512饺蚊。

Decoder

自然語言處理中注意力機(jī)制綜述

The transformer's decoder.

解碼器能夠從編碼表示中檢索萍诱。上面的結(jié)構(gòu)也堆了六個(gè)。

  • 每層有兩個(gè)多頭注意機(jī)制子層污呼。
  • 每層有一個(gè)完全連接的前饋網(wǎng)絡(luò)子層裕坊。
  • 與編碼器類似,每個(gè)子層采用殘差連接和層規(guī)范化燕酷。

與encoder不同的是籍凝,第一個(gè)多頭注意子層被設(shè)計(jì)成防止關(guān)注后續(xù)位置,因?yàn)槲覀儾幌M陬A(yù)測(cè)當(dāng)前位置時(shí)查看目標(biāo)序列的未來苗缩。最后來看一看整體架構(gòu):

自然語言處理中注意力機(jī)制綜述

The full model architecture of the transformer.

Memory-based Attention

那Memory-based Attention又是什么呢饵蒂?我們先換種方式來看前面的注意力,假設(shè)有一系列的鍵值對(duì)

自然語言處理中注意力機(jī)制綜述

存在內(nèi)存中和查詢向量q酱讶,這樣便能重寫為以下過程:

自然語言處理中注意力機(jī)制綜述

這種解釋是把注意力作為使用查詢q的尋址過程苹享,這個(gè)過程基于注意力分?jǐn)?shù)從memory中讀取內(nèi)容。聰明的童鞋肯定已經(jīng)發(fā)現(xiàn)了浴麻,如果我們假設(shè)

自然語言處理中注意力機(jī)制綜述

,這不就是前面談到的基礎(chǔ)注意力么囤攀?然而软免,由于結(jié)合了額外的函數(shù),可以實(shí)現(xiàn)可重用性和增加靈活性焚挠,所以Memory-based attention mechanism可以設(shè)計(jì)得更加強(qiáng)大膏萧。

那為什么又要這樣做呢?在nlp的一些任務(wù)上比如問答匹配任務(wù)蝌衔,答案往往與問題間接相關(guān)榛泛,因此基本的注意力技術(shù)就顯得很無力了。那處理這一任務(wù)該如何做才好呢噩斟?這個(gè)時(shí)候就體現(xiàn)了Memory-based attention mechanism的強(qiáng)大了曹锨,譬如Sukhbaatar[19]等人通過迭代內(nèi)存更新(也稱為多跳)來模擬時(shí)間推理過程,以逐步引導(dǎo)注意到答案的正確位置:

自然語言處理中注意力機(jī)制綜述

在每次迭代中剃允,使用新內(nèi)容更新查詢沛简,并且使用更新的查詢來檢索相關(guān)內(nèi)容齐鲤。一種簡(jiǎn)單的更新方法為相加

自然語言處理中注意力機(jī)制綜述

。那么還有其它更新方法么椒楣?

當(dāng)然有给郊,直覺敏感的童鞋肯定想到了,光是這一點(diǎn)捧灰,就可以根據(jù)特定任務(wù)去設(shè)計(jì)淆九,比如Kuma[13]等人的工作履婉。這種方式的靈活度也體現(xiàn)在key和value可以自由的被設(shè)計(jì)流济,比如我們可以自由地將先驗(yàn)知識(shí)結(jié)合到key和value嵌入中,以允許它們分別更好地捕獲相關(guān)信息章姓∨《叮看到這里是不是覺得文章灌水其實(shí)也不是什么難事了煤搜。

Soft/Hard Attention

最后想再談?wù)凷oft/Hard Attention,是因?yàn)樵诤芏嗟胤蕉伎吹搅诉@個(gè)名詞唧席。

據(jù)我所知擦盾,這個(gè)概念由《Show, Attend and Tell: Neural Image Caption Generation with Visual Attention》提出,這是對(duì)attention另一種分類淌哟。SoftAttention本質(zhì)上和Bahdanau等人[3]很相似迹卢,其權(quán)重取值在0到1之間,而Hard Attention取值為0或者1徒仓。

Global/Local Attention

Luong等人[4]提出了Global Attention和Local Attention腐碱。Global Attention本質(zhì)上和Bahdanau等人[3]很相似。Global方法顧名思義就是會(huì)關(guān)注源句子序列的所有詞掉弛,具體地說症见,在計(jì)算語義向量時(shí),會(huì)考慮編碼器所有的隱藏狀態(tài)殃饿。而在Local Attention中谋作,計(jì)算語義向量時(shí)只關(guān)注每個(gè)目標(biāo)詞的一部分編碼器隱藏狀態(tài)。由于Global方法必須計(jì)算源句子序列所有隱藏狀態(tài)乎芳,當(dāng)句子長(zhǎng)度過長(zhǎng)會(huì)使得計(jì)算代價(jià)昂貴并使得翻譯變得不太實(shí)際遵蚜,比如在翻譯段落和文檔的時(shí)候。

自然語言處理中注意力機(jī)制綜述

評(píng)價(jià)指標(biāo)

在看一些帶有attention的paper時(shí)奈惑,常常會(huì)伴隨著為了說明自己文章attention是work的實(shí)驗(yàn)吭净,但實(shí)際上嘗試提供嚴(yán)格數(shù)學(xué)證明的文章極少。

Hu[7]把Attention的評(píng)價(jià)方式分為兩類肴甸,Quantitative(定量指標(biāo))和Qualitative(定性指標(biāo))寂殉。定量指標(biāo)顧名思義就是對(duì)attention的貢獻(xiàn)就行量化,這一方面一般會(huì)結(jié)合下游任務(wù)雷滋,最常見的當(dāng)屬機(jī)器翻譯不撑,我們都知道機(jī)器翻譯的最流行評(píng)價(jià)指標(biāo)之一是BLEU文兢,我們可以在翻譯任務(wù)設(shè)計(jì)attention和不加attention進(jìn)行對(duì)比,對(duì)比的指標(biāo)就是BLEU焕檬,設(shè)置我們可以設(shè)計(jì)多種不同的attention進(jìn)行對(duì)比姆坚。

定性指標(biāo)評(píng)價(jià)是目前應(yīng)用最廣泛的評(píng)價(jià)技術(shù),因?yàn)樗?jiǎn)單易行实愚,便于可視化兼呵。具體做法一般都是為整個(gè)句子構(gòu)建一個(gè)熱力圖,其熱力圖強(qiáng)度與每個(gè)單詞接收到的標(biāo)準(zhǔn)化注意力得分成正比腊敲。也就是說击喂,詞的貢獻(xiàn)越大,顏色越深碰辅。其實(shí)這在直覺上也是能夠接收的懂昂,因?yàn)?strong>往往相關(guān)任務(wù)的關(guān)鍵詞的attention權(quán)值肯定要比其它詞重要。比如Hu[7]文中的圖:

自然語言處理中注意力機(jī)制綜述

寫在后面

自然語言處理中注意力機(jī)制綜述

本文參考了眾多文獻(xiàn)没宾,對(duì)近些年的自然語言中的注意力機(jī)制從起源凌彬、變體到評(píng)價(jià)方面都進(jìn)行了簡(jiǎn)要介紹,但是要明白的是循衰,實(shí)際上注意力機(jī)制在nlp上的研究特別多铲敛,為此,我僅僅對(duì)18会钝、19年的文獻(xiàn)進(jìn)行了簡(jiǎn)單的調(diào)研(AAAI伐蒋、IJCAI、ACL迁酸、EMNLP先鱼、NAACL等頂會(huì)),就至少有一百篇之多奸鬓,足見attention還是很潮的型型,所以我也把鏈接放到了我的github上。方便查閱全蝶。以后慢慢補(bǔ)充~~

地址:

https://github.com/yuquanle/Attention-Mechanisms-paper/blob/master/Attention-mechanisms-paper.md

隨便貼個(gè)圖:

自然語言處理中注意力機(jī)制綜述
自然語言處理中注意力機(jī)制綜述

參考文獻(xiàn)

[1] Attention? Attention!.

[2] Neural Machine Translation (seq2seq) Tutorial.

[3] Neural Machine Translation by Jointly Learning to Align and Translate. Dzmitry Bahdanau, Kyunghyun Cho, and Yoshua Bengio. ICLR, 2015.

[4] Effective approaches to attention-based neural machine translation. Minh-Thang Luong, Hieu Pham, and Christopher D Manning. EMNLP, 2015.

[5] Neural Turing Machines. Alex Graves, Greg Wayne and Ivo Danihelka. 2014.

[6] Attention Is All You Need. Ashish Vaswani, et al. NIPS, 2017.

[7] An Introductory Survey on Attention Mechanisms in NLP Problems. Dichao Hu, 2018.

[8] Coupled Multi-Layer Attentions for Co-Extraction of Aspect and Opinion. Terms Wenya Wang,Sinno Jialin Pan, Daniel Dahlmeier and Xiaokui Xiao. AAAI, 2017.

[9] Hierarchical attention networks for document classification. Zichao Yang et al. ACL, 2016.

[10] A Nested Attention Neural Hybrid Model for Grammatical Error Correction. Jianshu Ji et al. 2017.

[11] Long Short-Term Memory-Networks for Machine Reading. Jianpeng Cheng, Li Dong and Mirella Lapata. EMNLP, 2016.

[12] Show, Attend and Tell: Neural Image Caption Generation with Visual Attention. Kelvin Xu et al. JMLR, 2015.

[13] Ask me anything: Dynamic memory networks for natural language processing. Zhouhan Lin al. JMLR, 2016.

[14] A structured self-attentive sentence embedding. Zhouhan Lin al. ICLR, 2017.

[15] Learning Sentence Representation with Guidance of Human Attention. Shaonan Wang , Jiajun Zhang, Chengqing Zong. IJCAI, 2017.

[16] Sequence to Sequence Learning with Neural Networks. Ilya Sutskever et al. 2014.

[17] Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation. Kyunghyun Cho, Yoshua Bengio et al. EMNLP, 2014.

[18] End-To-End Memory Networks Sainbayar Sukhbaatar et al. NIPS, 2015.

[19] 《Attention is All You Need》淺讀(簡(jiǎn)介+代碼)

The End感謝參考原文-http://bjbsair.com/2020-03-27/tech-info/7118/

自然語言處理中注意力機(jī)制綜述

目錄

1.寫在前面

2.Seq2Seq 模型

3.NLP中注意力機(jī)制起源

4.NLP中的注意力機(jī)制

5.Hierarchical Attention

6.Self-Attention

7.Memory-based Attention

8.Soft/Hard Attention

9.Global/Local Attention

10.評(píng)價(jià)指標(biāo)

11.寫在后面

12.參考文獻(xiàn)

寫在前面

近些年來,注意力機(jī)制一直頻繁的出現(xiàn)在目之所及的文獻(xiàn)或者博文中寺枉,可見在nlp中算得上是個(gè)相當(dāng)流行的概念抑淫,事實(shí)也證明其在nlp領(lǐng)域散發(fā)出不小得作用。這幾年的頂會(huì)paper就能看出這一點(diǎn)姥闪。本文深入淺出地介紹了近些年的自然語言中的注意力機(jī)制包括從起源始苇、變體到評(píng)價(jià)指標(biāo)方面。

據(jù)Lilian Weng博主[1]總結(jié)以及一些資料顯示筐喳,Attention機(jī)制最早應(yīng)該是在視覺圖像領(lǐng)域提出來的催式,這方面的工作應(yīng)該很多函喉,歷史也比較悠久。人類的視覺注意力雖然存在很多不同的模型荣月,但它們都基本上歸結(jié)為給予需要重點(diǎn)關(guān)注的目標(biāo)區(qū)域(注意力焦點(diǎn))更重要的注意力管呵,同時(shí)給予周圍的圖像低的注意力,然后隨著時(shí)間的推移調(diào)整焦點(diǎn)哺窄。

而直到Bahdanau等人[3]發(fā)表了論文《Neural Machine Translation by Jointly Learning to Align and Translate》捐下,該論文使用類似attention的機(jī)制在機(jī)器翻譯任務(wù)上將翻譯和對(duì)齊同時(shí)進(jìn)行,這個(gè)工作目前是最被認(rèn)可為是第一個(gè)提出attention機(jī)制應(yīng)用到NLP領(lǐng)域中的工作萌业,值得一提的是坷襟,該論文2015年被ICLR錄用,截至現(xiàn)在生年,谷歌引用量為5596婴程,可見后續(xù)nlp在這一塊的研究火爆程度。

注意力機(jī)制首先從人類直覺中得到抱婉,在nlp領(lǐng)域的機(jī)器翻譯任務(wù)上首先取得不錯(cuò)的效果档叔。簡(jiǎn)而言之,深度學(xué)習(xí)中的注意力可以廣義地解釋為重要性權(quán)重的向量:為了預(yù)測(cè)一個(gè)元素授段,例如句子中的單詞蹲蒲,使用注意力向量來估計(jì)它與其他元素的相關(guān)程度有多強(qiáng),并將其值的總和作為目標(biāo)的近似值侵贵。既然注意力機(jī)制最早在nlp領(lǐng)域應(yīng)用于機(jī)器翻譯任務(wù)届搁,那在這個(gè)之前又是怎么做的呢?

傳統(tǒng)的基于短語的翻譯系統(tǒng)通過將源句分成多個(gè)塊然后逐個(gè)詞地翻譯它們來完成它們的任務(wù)窍育,這導(dǎo)致了翻譯輸出的不流暢卡睦。不妨先來想想我們?nèi)祟愂侨绾畏g的?我們首先會(huì)閱讀整個(gè)待翻譯的句子漱抓,然后結(jié)合上下文理解其含義表锻,最后產(chǎn)生翻譯。

從某種程度上來說乞娄,神經(jīng)機(jī)器翻譯(NMT)的提出正是想去模仿這一過程瞬逊。而在NMT的翻譯模型中經(jīng)典的做法是由編碼器 - 解碼器架構(gòu)制定(encoder-decoder),用作encoder和decoder常用的是循環(huán)神經(jīng)網(wǎng)絡(luò)仪或。這類模型大概過程是首先將源句子的輸入序列送入到編碼器中确镊,提取最后隱藏狀態(tài)的表示并用于解碼器的輸入,然后一個(gè)接一個(gè)地生成目標(biāo)單詞范删,這個(gè)過程廣義上可以理解為不斷地將前一個(gè)時(shí)刻 t-1 的輸出作為后一個(gè)時(shí)刻 t 的輸入蕾域,循環(huán)解碼,直到輸出停止符為止。

通過這種方式旨巷,NMT解決了傳統(tǒng)的基于短語的方法中的局部翻譯問題:它可以捕獲語言中的長(zhǎng)距離依賴性巨缘,并提供更流暢的翻譯。

但是這樣做也存在很多缺點(diǎn)采呐,譬如若锁,RNN是健忘的,這意味著前面的信息在經(jīng)過多個(gè)時(shí)間步驟傳播后會(huì)被逐漸消弱乃至消失懈万。其次拴清,在解碼期間沒有進(jìn)行對(duì)齊操作,因此在解碼每個(gè)元素的過程中会通,焦點(diǎn)分散在整個(gè)序列中口予。對(duì)于前面那個(gè)問題,LSTM涕侈、GRU在一定程度能夠緩解沪停。而后者正是Bahdanau等人重視的問題。

Seq2Seq模型

在介紹注意力模型之前裳涛,不得不先學(xué)習(xí)一波Encoder-Decoder框架木张,雖然說注意力模型可以看作一種通用的思想,本身并不依賴于特定框架(比如文章[15]:Learning Sentence Representation with Guidance of Human Attention)端三,但是目前大多數(shù)注意力模型都伴隨在Encoder-Decoder框架下舷礼。

Seq2seq模型最早由bengio等人[17]論文《Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation》。隨后Sutskever等人[16]在文章《Sequence to Sequence Learning with Neural Networks》中提出改進(jìn)模型即為目前常說的Seq2Seq模型郊闯。

從廣義上講妻献,它的目的是將輸入序列(源序列)轉(zhuǎn)換為新的輸出序列(目標(biāo)序列),這種方式不會(huì)受限于兩個(gè)序列的長(zhǎng)度团赁,換句話說育拨,兩個(gè)序列的長(zhǎng)度可以任意。以nlp領(lǐng)域來說欢摄,序列可以是句子熬丧、段落、篇章等怀挠,所以我們也可以把它看作處理由一個(gè)句子(段落或篇章)生成另外一個(gè)句子(段落或篇章)的通用處理模型析蝴。

對(duì)于句子對(duì),我們期望輸入句子Source绿淋,期待通過Encoder-Decoder框架來生成目標(biāo)句子Target嫌变。Source和Target可以是同一種語言,也可以是兩種不同的語言躬它,若是不同語言,就可以處理翻譯問題了东涡。若是相同語言冯吓,輸入序列Source長(zhǎng)度為篇章倘待,而目標(biāo)序列Target為小段落則可以處理文本摘要問題 (目標(biāo)序列Target為句子則可以處理標(biāo)題生成問題)等等等。

seq2seq模型通常具有編碼器 - 解碼器架構(gòu):

  • 編碼器encoder: 編碼器處理輸入序列并將序列信息壓縮成固定長(zhǎng)度的上下文向量(語義編碼/語義向量context)组贺。期望這個(gè)向量能夠比較好的表示輸入序列的信息凸舵。

  • 解碼器decoder: 利用上下文向量初始化解碼器以得到變換后的目標(biāo)序列輸出。早期工作僅使用編碼器的最后狀態(tài)作為解碼器的輸入失尖。

  • 編碼器和解碼器都是循環(huán)神經(jīng)網(wǎng)絡(luò)啊奄,比較常見的是使用LSTM或GRU。

自然語言處理中注意力機(jī)制綜述

編碼器 - 解碼器模型

NLP中注意力機(jī)制的起源

前面談到在Seq2Seq結(jié)構(gòu)中掀潮,encoder把所有的輸入序列都編碼成一個(gè)統(tǒng)一的語義向量context菇夸,然后再由decoder解碼。而context自然也就成了限制模型性能的瓶頸仪吧。

譬如機(jī)器翻譯問題庄新,當(dāng)要翻譯的句子較長(zhǎng)時(shí),一個(gè)context可能存不下那么多信息薯鼠。除此之外择诈,只用編碼器的最后一個(gè)隱藏層狀態(tài),感覺上都不是很合理出皇。

實(shí)際上當(dāng)我們翻譯一個(gè)句子的時(shí)候羞芍,譬如:Source: 機(jī)器學(xué)習(xí)-->Target: machine learning。當(dāng)decoder要生成"machine"的時(shí)候郊艘,應(yīng)該更關(guān)注"機(jī)器"荷科,而生成"learning"的時(shí)候,應(yīng)該給予"學(xué)習(xí)"更大的權(quán)重暇仲。所以如果要改進(jìn)Seq2Seq結(jié)構(gòu)步做,一個(gè)不錯(cuò)的想法自然就是利用encoder所有隱藏層狀態(tài)解決context限制問題。

Bahdanau等人[3]把a(bǔ)ttention機(jī)制用到了神經(jīng)網(wǎng)絡(luò)機(jī)器翻譯(NMT)上奈附。傳統(tǒng)的encoder-decoder模型通過encoder將Source序列編碼到一個(gè)固定維度的中間語義向量context全度,然后再使用decoder進(jìn)行解碼翻譯到目標(biāo)語言序列。前面談到了這種做法的局限性斥滤,而且将鸵,Bahdanau等人[3]在其文章的摘要中也說到這個(gè)context可能是提高這種基本編碼器 - 解碼器架構(gòu)性能的瓶頸,那Bahdanau等人又是如何嘗試緩解這個(gè)問題的呢佑颇? 別急顶掉,讓我們來一探究竟。

作者為了緩解中間向量context很難將Source序列所有重要信息壓縮進(jìn)來的問題挑胸,特別是對(duì)于那些很長(zhǎng)的句子痒筒。提出在機(jī)器翻譯任務(wù)上在 encoder–decoder 做出了如下擴(kuò)展:將翻譯和對(duì)齊聯(lián)合學(xué)習(xí)。這個(gè)操作在生成Target序列的每個(gè)詞時(shí),用到的中間語義向量context是Source序列通過encoder的隱藏層的加權(quán)和簿透,而傳統(tǒng)的做法是只用encoder最后一個(gè)時(shí)刻輸出

自然語言處理中注意力機(jī)制綜述

作為context移袍,這樣就能保證在解碼不同詞的時(shí)候,Source序列對(duì)現(xiàn)在解碼詞的貢獻(xiàn)是不一樣的老充。

想想前面那個(gè)例子:Source: 機(jī)器學(xué)習(xí)-->Target: machine learning (假如中文按照字切分)葡盗。decoder在解碼"machine"時(shí),"機(jī)"和"器"提供的權(quán)重要更大一些啡浊,同樣觅够,在解碼"learning"時(shí),"學(xué)"和"習(xí)"提供的權(quán)重相應(yīng)的會(huì)更大一些巷嚣,這在直覺也和人類翻譯也是一致的喘先。

通過這種attention的設(shè)計(jì),作者將Source序列的每個(gè)詞(通過encoder的隱藏層輸出)和Target序列 (當(dāng)前要翻譯的詞) 的每個(gè)詞巧妙的建立了聯(lián)系涂籽。想一想苹祟,翻譯每個(gè)詞的時(shí)候,都有一個(gè)語義向量评雌,而這個(gè)語義向量是Source序列每個(gè)詞通過encoder之后的隱藏層的加權(quán)和树枫。 由此可以得到一個(gè)Source序列和Target序列的對(duì)齊矩陣,通過可視化這個(gè)矩陣景东,可以看出在翻譯一個(gè)詞的時(shí)候砂轻,Source序列的每個(gè)詞對(duì)當(dāng)前要翻譯詞的重要性分布,這在直覺上也能給人一種可解釋性的感覺斤吐。

論文中的圖也能很好的看出這一點(diǎn):

自然語言處理中注意力機(jī)制綜述

生成第t個(gè)目標(biāo)詞

自然語言處理中注意力機(jī)制綜述

更形象一點(diǎn)可以看這個(gè)圖:

自然語言處理中注意力機(jī)制綜述
自然語言處理中注意力機(jī)制綜述

現(xiàn)在讓我們從公式層面來看看這個(gè)東東 (加粗變量表示它們是向量搔涝,這篇文章中的其他地方也一樣)。 假設(shè)我們有一個(gè)長(zhǎng)度為n的源序列x和措,并嘗試輸出長(zhǎng)度為m的目標(biāo)序列y:

自然語言處理中注意力機(jī)制綜述

作者采樣bidirectional RNN作為encoder(實(shí)際上這里可以有很多選擇)庄呈,具有前向隱藏狀態(tài)

自然語言處理中注意力機(jī)制綜述

和后向隱藏狀態(tài)

自然語言處理中注意力機(jī)制綜述

。為了獲得詞的上下文信息派阱,作者采用簡(jiǎn)單串聯(lián)方式將前向和后向表示拼接作為encoder的隱藏層狀態(tài)诬留,公式如下:

自然語言處理中注意力機(jī)制綜述

對(duì)于目標(biāo)(輸出)序列的每個(gè)詞(假設(shè)位置為t),decoder網(wǎng)絡(luò)的隱藏層狀態(tài):

自然語言處理中注意力機(jī)制綜述

其中

自然語言處理中注意力機(jī)制綜述

贫母,語義向量

自然語言處理中注意力機(jī)制綜述

是源(輸入)序列的隱藏狀態(tài)的加權(quán)和文兑,權(quán)重為對(duì)齊分?jǐn)?shù):

自然語言處理中注意力機(jī)制綜述

(注意:這里的score函數(shù)為原文的a函數(shù),原文的描述為:

自然語言處理中注意力機(jī)制綜述

is an alignment model)

對(duì)齊模型基于

自然語言處理中注意力機(jī)制綜述

(在i時(shí)刻的輸入)和

自然語言處理中注意力機(jī)制綜述

(在t時(shí)刻的輸出)的匹配程度分配分?jǐn)?shù)

自然語言處理中注意力機(jī)制綜述

腺劣。

自然語言處理中注意力機(jī)制綜述

是定義每個(gè)目標(biāo)(輸出)單詞應(yīng)該考慮給每個(gè)源(輸入)隱藏狀態(tài)的多大的權(quán)重(這恰恰反映了對(duì)此時(shí)解碼的目標(biāo)單詞的貢獻(xiàn)重要性)绿贞。

在Bahdanau[3]的論文中,作者采用的對(duì)齊模型為前饋神經(jīng)網(wǎng)絡(luò)橘原,該網(wǎng)絡(luò)與所提出的系統(tǒng)的所有其他組件共同訓(xùn)練籍铁。因此涡上,score函數(shù)采用以下形式,tanh用作非線性激活函數(shù)拒名,公式如下:

自然語言處理中注意力機(jī)制綜述

其中

自然語言處理中注意力機(jī)制綜述

吓懈,

自然語言處理中注意力機(jī)制綜述

和都是在對(duì)齊模型中學(xué)習(xí)的權(quán)重矩陣。對(duì)齊分?jǐn)?shù)矩陣是一個(gè)很好的可解釋性的東東靡狞,可以明確顯示源詞和目標(biāo)詞之間的相關(guān)性。

自然語言處理中注意力機(jī)制綜述

對(duì)齊矩陣?yán)?/p>

而decoder每個(gè)詞的條件概率為:

自然語言處理中注意力機(jī)制綜述

g為非線性的隔嫡,可能是多層的輸出

自然語言處理中注意力機(jī)制綜述

概率的函數(shù)甸怕,

自然語言處理中注意力機(jī)制綜述

是RNN的隱藏狀態(tài),

自然語言處理中注意力機(jī)制綜述

為語義向量。

NLP中的注意力機(jī)制

隨著注意力機(jī)制的廣泛應(yīng)用腮恩,在某種程度上緩解了源序列和目標(biāo)序列由于距離限制而難以建模依賴關(guān)系的問題∩液迹現(xiàn)在已經(jīng)涌現(xiàn)出了一大批基于基本形式的注意力的不同變體來處理更復(fù)雜的任務(wù)。讓我們一起來看看其在不同NLP問題中的注意力機(jī)制秸滴。

其實(shí)我們可能已經(jīng)意識(shí)到了武契,對(duì)齊模型的設(shè)計(jì)不是唯一的,確實(shí)荡含,在某種意義上說咒唆,根據(jù)不同的任務(wù)設(shè)計(jì)適應(yīng)于特定任務(wù)的對(duì)齊模型可以看作設(shè)計(jì)出了新的attention變體,讓我們?cè)倩剡^頭來看看這個(gè)對(duì)齊模型(函數(shù)):

自然語言處理中注意力機(jī)制綜述

释液。再來看看幾個(gè)代表性的work全释。

  • Citation[5]等人提出Content-base attention吠谢,其對(duì)齊函數(shù)模型設(shè)計(jì)為:
自然語言處理中注意力機(jī)制綜述
  • Bahdanau[3]等人的Additive(*)许昨,其設(shè)計(jì)為:
自然語言處理中注意力機(jī)制綜述
  • Luong[4]等人文獻(xiàn)包含了幾種方式:
  • 以及Luong[4]等人還嘗試過location-based function: 這種方法的對(duì)齊分?jǐn)?shù)僅從目標(biāo)隱藏狀態(tài)學(xué)習(xí)得到涎劈。
  • Vaswani[6]等人的Scaled Dot-Product(^):細(xì)心的童鞋可能早就發(fā)現(xiàn)了這東東和點(diǎn)積注意力很像削饵,只是加了個(gè)scale factor尿招。當(dāng)輸入較大時(shí)讼呢,softmax函數(shù)可能具有極小的梯度鲤竹,難以有效學(xué)習(xí)蕉汪,所以作者加入比例因子箫老。
  • Cheng[7]等人的Self-Attention(&)可以關(guān)聯(lián)相同輸入序列的不同位置封字。 從理論上講,Self-Attention可以采用上面的任何 score functions槽惫。在一些文章中也稱為“intra-attention” 周叮。

Hu[7]對(duì)此分了個(gè)類:

自然語言處理中注意力機(jī)制綜述

前面談到的一些Basic Attention給人的感覺能夠從序列中根據(jù)權(quán)重分布提取重要元素。而Multi-dimensional Attention能夠捕獲不同表示空間中的term之間的多個(gè)交互界斜,這一點(diǎn)簡(jiǎn)單的實(shí)現(xiàn)可以通過直接將多個(gè)單維表示堆疊在一起構(gòu)建仿耽。Wang[8]等人提出了coupled multi-layer attentions,該模型屬于多層注意力網(wǎng)絡(luò)模型各薇。作者稱项贺,通過這種多層方式君躺,該模型可以進(jìn)一步利用術(shù)語之間的間接關(guān)系,以獲得更精確的信息开缎。

Hierarchical Attention

再來看看Hierarchical Attention棕叫,Yang[9]等人提出了Hierarchical Attention Networks,看下面的圖可能會(huì)更直觀:

自然語言處理中注意力機(jī)制綜述

Hierarchical Attention Networks

這種結(jié)構(gòu)能夠反映文檔的層次結(jié)構(gòu)奕删。模型在單詞和句子級(jí)別分別設(shè)計(jì)了兩個(gè)不同級(jí)別的注意力機(jī)制俺泣,這樣做能夠在構(gòu)建文檔表示時(shí)區(qū)別地對(duì)待這些內(nèi)容。Hierarchical attention可以相應(yīng)地構(gòu)建分層注意力完残,自下而上(即伏钠,詞級(jí)到句子級(jí))或自上而下(詞級(jí)到字符級(jí)),以提取全局和本地的重要信息谨设。自下而上的方法上面剛談完熟掂。那么自上而下又是如何做的呢?讓我們看看Ji[10]等人的模型:

自然語言處理中注意力機(jī)制綜述

Nested Attention Hybrid Model

和機(jī)器翻譯類似扎拣,作者依舊采用encoder-decoder架構(gòu)赴肚,然后用word-level attention對(duì)全局語法和流暢性糾錯(cuò),設(shè)計(jì)character-level attention對(duì)本地拼寫錯(cuò)誤糾正二蓝。

Self-Attention

那Self-Attention又是指什么呢誉券?

Self-Attention(自注意力),也稱為intra-attention(內(nèi)部注意力)侣夷,是關(guān)聯(lián)單個(gè)序列的不同位置的注意力機(jī)制横朋,以便計(jì)算序列的交互表示。它已被證明在很多領(lǐng)域十分有效比如機(jī)器閱讀百拓,文本摘要或圖像描述生成琴锭。

比如Cheng[11]等人在機(jī)器閱讀里面利用了自注意力。當(dāng)前單詞為紅色衙传,藍(lán)色陰影的大小表示激活程度决帖,自注意力機(jī)制使得能夠?qū)W習(xí)當(dāng)前單詞和句子前一部分詞之間的相關(guān)性。

自然語言處理中注意力機(jī)制綜述

當(dāng)前單詞為紅色蓖捶,藍(lán)色陰影的大小表示激活程度

比如Xu[12]等人利用自注意力在圖像描述生成任務(wù)地回。注意力權(quán)重的可視化清楚地表明了模型關(guān)注的圖像的哪些區(qū)域以便輸出某個(gè)單詞。

自然語言處理中注意力機(jī)制綜述

我們假設(shè)序列元素為

自然語言處理中注意力機(jī)制綜述

俊鱼,其匹配向量為

自然語言處理中注意力機(jī)制綜述

刻像。讓我們?cè)賮砘仡櫹虑懊嬲f的基本注意力的對(duì)齊函數(shù),attention score通過

自然語言處理中注意力機(jī)制綜述

計(jì)算得到并闲,由于是通過將外部u與每個(gè)元素

自然語言處理中注意力機(jī)制綜述

匹配來計(jì)算注意力细睡,所以這種形式可以看作是外部注意力。當(dāng)我們把外部u替換成序列本身(或部分本身)帝火,這種形式就可以看作為內(nèi)部注意力(internal attention)溜徙。

我們根據(jù)文章[7]中的例子來看看這個(gè)過程湃缎,例如句子:"Volleyball match is in progress between ladies"。句子中其它單詞都依賴著"match"蠢壹,理想情況下嗓违,我們希望使用自注意力來自動(dòng)捕獲這種內(nèi)在依賴。換句話說图贸,自注意力可以解釋為蹂季,每個(gè)單詞

自然語言處理中注意力機(jī)制綜述

去和V序列中的內(nèi)部模式

自然語言處理中注意力機(jī)制綜述

匹配,匹配函數(shù)

自然語言處理中注意力機(jī)制綜述

疏日。

自然語言處理中注意力機(jī)制綜述

很自然的選擇為V中其它單詞

自然語言處理中注意力機(jī)制綜述

乏盐,這樣遍可以計(jì)算成對(duì)注意力得分。為了完全捕捉序列中單詞之間的復(fù)雜相互作用制恍,我們可以進(jìn)一步擴(kuò)展它以計(jì)算序列中每對(duì)單詞之間的注意力。這種方式讓每個(gè)單詞和序列中其它單詞交互了關(guān)系神凑。

自然語言處理中注意力機(jī)制綜述

另一方面净神,自注意力還可以自適應(yīng)方式學(xué)習(xí)復(fù)雜的上下文單詞表示。譬如經(jīng)典文章[14]:A structured self-attentive sentence embedding溉委。這篇文章提出了一種通過引入自關(guān)注力機(jī)制來提取可解釋句子嵌入的新模型鹃唯。 使用二維矩陣而不是向量來代表嵌入,矩陣的每一行都在句子的不同部分瓣喊,想深入了解的可以去看看這篇文章坡慌,另外,文章的公式感覺真的很漂亮藻三。

值得一提還有2017年谷歌提出的Transformer[6]洪橘,這是一種新穎的基于注意力的機(jī)器翻譯架構(gòu),也是一個(gè)混合神經(jīng)網(wǎng)絡(luò)棵帽,具有前饋層和自注意層熄求。論文的題目挺霸氣:Attention is All you Need,毫無疑問逗概,它是2017年最具影響力和最有趣的論文之一弟晚。那這篇文章的Transformer的廬山真面目到底是這樣的呢?

這篇文章為提出許多改進(jìn)逾苫,在完全拋棄了RNN的情況下進(jìn)行seq2seq建模卿城。接下來一起來詳細(xì)看看吧。

Key, Value and Query

眾所周知铅搓,在NLP任務(wù)中瑟押,通常的處理方法是先分詞,然后每個(gè)詞轉(zhuǎn)化為對(duì)應(yīng)的詞向量狸吞。接著一般最常見的有二類操作勉耀,第一類是接RNN(變體LSTM指煎、GRU、SRU等)便斥,但是這一類方法沒有擺脫時(shí)序這個(gè)局限至壤,也就是說無法并行,也導(dǎo)致了在大數(shù)據(jù)集上的速度效率問題枢纠。第二類是接CNN像街,CNN方便并行,而且容易捕捉到一些全局的結(jié)構(gòu)信息晋渺。很長(zhǎng)一段時(shí)間都是以上二種的抉擇以及改造镰绎,直到谷歌提供了第三類思路:純靠注意力,也就是現(xiàn)在要講的這個(gè)東東木西。

將輸入序列編碼表示視為一組鍵值對(duì)(K畴栖,V)以及查詢 Q,因?yàn)槲恼耓6]取K=V=Q八千,所以也自然稱為Self Attention吗讶。

自然語言處理中注意力機(jī)制綜述

K, V像是key-value的關(guān)系從而是一一對(duì)應(yīng)的,那么上式的意思就是通過Q中每個(gè)元素query恋捆,與K中各個(gè)元素求內(nèi)積然后softmax的方式照皆,來得到Q中元素與V中元素的相似度,然后加權(quán)求和沸停,得到一個(gè)新的向量膜毁。其中因子為了使得內(nèi)積不至于太大。以上公式在文中也稱為點(diǎn)積注意力(scaled dot-product attention):輸出是值的加權(quán)和愤钾,其中分配給每個(gè)值的權(quán)重由查詢的點(diǎn)積與所有鍵確定瘟滨。

而Transformer主要由多頭自注意力(Multi-Head Self-Attention)單元組成。那么Multi-Head Self-Attention又是什么呢能颁?以下為論文中的圖:

自然語言處理中注意力機(jī)制綜述

Multi-head scaled dot-product attention mechanism

Multi-Head Self-Attention不是僅僅計(jì)算一次注意力室奏,而是多次并行地通過縮放的點(diǎn)積注意力。 獨(dú)立的注意力輸出被簡(jiǎn)單地連接并線性地轉(zhuǎn)換成預(yù)期的維度劲装。論文[6]表示胧沫,多頭注意力允許模型共同關(guān)注來自不同位置的不同表示子空間的信息。 只有一個(gè)注意力的頭占业,平均值就會(huì)抑制這一點(diǎn)绒怨。

自然語言處理中注意力機(jī)制綜述
自然語言處理中注意力機(jī)制綜述

是需要學(xué)習(xí)的參數(shù)矩陣。既然為seq2seq模式谦疾,自然也包括encoder和decoder南蹂,那這篇文章又是如何構(gòu)建這些的呢?莫急念恍,請(qǐng)繼續(xù)往下看六剥。

Encoder

自然語言處理中注意力機(jī)制綜述

The transformer's encoder

編碼器生成基于自注意力的表示晚顷,其能夠從可能無限大的上下文中定位特定信息。值得一提的是疗疟,上面的結(jié)構(gòu)文章堆了六個(gè)该默。

  • 每層都有一個(gè)多頭自注意力層
  • 每層都有一個(gè)簡(jiǎn)單的全連接的前饋網(wǎng)絡(luò)
  • 每個(gè)子層采用殘差連接和層規(guī)范化。 所有子層輸出相同維度dmodel = 512策彤。

Decoder

自然語言處理中注意力機(jī)制綜述

The transformer's decoder.

解碼器能夠從編碼表示中檢索栓袖。上面的結(jié)構(gòu)也堆了六個(gè)。

  • 每層有兩個(gè)多頭注意機(jī)制子層店诗。
  • 每層有一個(gè)完全連接的前饋網(wǎng)絡(luò)子層裹刮。
  • 與編碼器類似,每個(gè)子層采用殘差連接和層規(guī)范化庞瘸。

與encoder不同的是捧弃,第一個(gè)多頭注意子層被設(shè)計(jì)成防止關(guān)注后續(xù)位置,因?yàn)槲覀儾幌M陬A(yù)測(cè)當(dāng)前位置時(shí)查看目標(biāo)序列的未來擦囊。最后來看一看整體架構(gòu):

自然語言處理中注意力機(jī)制綜述

The full model architecture of the transformer.

Memory-based Attention

那Memory-based Attention又是什么呢塔橡?我們先換種方式來看前面的注意力,假設(shè)有一系列的鍵值對(duì)

自然語言處理中注意力機(jī)制綜述

存在內(nèi)存中和查詢向量q霜第,這樣便能重寫為以下過程:

自然語言處理中注意力機(jī)制綜述

這種解釋是把注意力作為使用查詢q的尋址過程,這個(gè)過程基于注意力分?jǐn)?shù)從memory中讀取內(nèi)容户辞。聰明的童鞋肯定已經(jīng)發(fā)現(xiàn)了泌类,如果我們假設(shè)

自然語言處理中注意力機(jī)制綜述

,這不就是前面談到的基礎(chǔ)注意力么底燎?然而刃榨,由于結(jié)合了額外的函數(shù),可以實(shí)現(xiàn)可重用性和增加靈活性双仍,所以Memory-based attention mechanism可以設(shè)計(jì)得更加強(qiáng)大枢希。

那為什么又要這樣做呢?在nlp的一些任務(wù)上比如問答匹配任務(wù)朱沃,答案往往與問題間接相關(guān)苞轿,因此基本的注意力技術(shù)就顯得很無力了。那處理這一任務(wù)該如何做才好呢逗物?這個(gè)時(shí)候就體現(xiàn)了Memory-based attention mechanism的強(qiáng)大了搬卒,譬如Sukhbaatar[19]等人通過迭代內(nèi)存更新(也稱為多跳)來模擬時(shí)間推理過程,以逐步引導(dǎo)注意到答案的正確位置:

自然語言處理中注意力機(jī)制綜述

在每次迭代中翎卓,使用新內(nèi)容更新查詢契邀,并且使用更新的查詢來檢索相關(guān)內(nèi)容。一種簡(jiǎn)單的更新方法為相加

自然語言處理中注意力機(jī)制綜述

失暴。那么還有其它更新方法么坯门?

當(dāng)然有微饥,直覺敏感的童鞋肯定想到了,光是這一點(diǎn)古戴,就可以根據(jù)特定任務(wù)去設(shè)計(jì)欠橘,比如Kuma[13]等人的工作。這種方式的靈活度也體現(xiàn)在key和value可以自由的被設(shè)計(jì)允瞧,比如我們可以自由地將先驗(yàn)知識(shí)結(jié)合到key和value嵌入中简软,以允許它們分別更好地捕獲相關(guān)信息∈鲈荩看到這里是不是覺得文章灌水其實(shí)也不是什么難事了痹升。

Soft/Hard Attention

最后想再談?wù)凷oft/Hard Attention,是因?yàn)樵诤芏嗟胤蕉伎吹搅诉@個(gè)名詞畦韭。

據(jù)我所知疼蛾,這個(gè)概念由《Show, Attend and Tell: Neural Image Caption Generation with Visual Attention》提出,這是對(duì)attention另一種分類艺配。SoftAttention本質(zhì)上和Bahdanau等人[3]很相似察郁,其權(quán)重取值在0到1之間,而Hard Attention取值為0或者1转唉。

Global/Local Attention

Luong等人[4]提出了Global Attention和Local Attention皮钠。Global Attention本質(zhì)上和Bahdanau等人[3]很相似。Global方法顧名思義就是會(huì)關(guān)注源句子序列的所有詞赠法,具體地說麦轰,在計(jì)算語義向量時(shí),會(huì)考慮編碼器所有的隱藏狀態(tài)砖织。而在Local Attention中款侵,計(jì)算語義向量時(shí)只關(guān)注每個(gè)目標(biāo)詞的一部分編碼器隱藏狀態(tài)。由于Global方法必須計(jì)算源句子序列所有隱藏狀態(tài)侧纯,當(dāng)句子長(zhǎng)度過長(zhǎng)會(huì)使得計(jì)算代價(jià)昂貴并使得翻譯變得不太實(shí)際新锈,比如在翻譯段落和文檔的時(shí)候。

自然語言處理中注意力機(jī)制綜述

評(píng)價(jià)指標(biāo)

在看一些帶有attention的paper時(shí)眶熬,常常會(huì)伴隨著為了說明自己文章attention是work的實(shí)驗(yàn)妹笆,但實(shí)際上嘗試提供嚴(yán)格數(shù)學(xué)證明的文章極少。

Hu[7]把Attention的評(píng)價(jià)方式分為兩類娜氏,Quantitative(定量指標(biāo))和Qualitative(定性指標(biāo))晾浴。定量指標(biāo)顧名思義就是對(duì)attention的貢獻(xiàn)就行量化,這一方面一般會(huì)結(jié)合下游任務(wù)牍白,最常見的當(dāng)屬機(jī)器翻譯脊凰,我們都知道機(jī)器翻譯的最流行評(píng)價(jià)指標(biāo)之一是BLEU,我們可以在翻譯任務(wù)設(shè)計(jì)attention和不加attention進(jìn)行對(duì)比,對(duì)比的指標(biāo)就是BLEU狸涌,設(shè)置我們可以設(shè)計(jì)多種不同的attention進(jìn)行對(duì)比切省。

定性指標(biāo)評(píng)價(jià)是目前應(yīng)用最廣泛的評(píng)價(jià)技術(shù),因?yàn)樗?jiǎn)單易行帕胆,便于可視化朝捆。具體做法一般都是為整個(gè)句子構(gòu)建一個(gè)熱力圖,其熱力圖強(qiáng)度與每個(gè)單詞接收到的標(biāo)準(zhǔn)化注意力得分成正比懒豹。也就是說芙盘,詞的貢獻(xiàn)越大,顏色越深脸秽。其實(shí)這在直覺上也是能夠接收的儒老,因?yàn)?strong>往往相關(guān)任務(wù)的關(guān)鍵詞的attention權(quán)值肯定要比其它詞重要。比如Hu[7]文中的圖:

自然語言處理中注意力機(jī)制綜述

寫在后面

自然語言處理中注意力機(jī)制綜述

本文參考了眾多文獻(xiàn)记餐,對(duì)近些年的自然語言中的注意力機(jī)制從起源驮樊、變體到評(píng)價(jià)方面都進(jìn)行了簡(jiǎn)要介紹,但是要明白的是片酝,實(shí)際上注意力機(jī)制在nlp上的研究特別多囚衔,為此,我僅僅對(duì)18雕沿、19年的文獻(xiàn)進(jìn)行了簡(jiǎn)單的調(diào)研(AAAI练湿、IJCAI、ACL审轮、EMNLP肥哎、NAACL等頂會(huì)),就至少有一百篇之多断国,足見attention還是很潮的,所以我也把鏈接放到了我的github上榆苞。方便查閱稳衬。以后慢慢補(bǔ)充~~

地址:

https://github.com/yuquanle/Attention-Mechanisms-paper/blob/master/Attention-mechanisms-paper.md

隨便貼個(gè)圖:

自然語言處理中注意力機(jī)制綜述
自然語言處理中注意力機(jī)制綜述

參考文獻(xiàn)

[1] Attention? Attention!.

[2] Neural Machine Translation (seq2seq) Tutorial.

[3] Neural Machine Translation by Jointly Learning to Align and Translate. Dzmitry Bahdanau, Kyunghyun Cho, and Yoshua Bengio. ICLR, 2015.

[4] Effective approaches to attention-based neural machine translation. Minh-Thang Luong, Hieu Pham, and Christopher D Manning. EMNLP, 2015.

[5] Neural Turing Machines. Alex Graves, Greg Wayne and Ivo Danihelka. 2014.

[6] Attention Is All You Need. Ashish Vaswani, et al. NIPS, 2017.

[7] An Introductory Survey on Attention Mechanisms in NLP Problems. Dichao Hu, 2018.

[8] Coupled Multi-Layer Attentions for Co-Extraction of Aspect and Opinion. Terms Wenya Wang,Sinno Jialin Pan, Daniel Dahlmeier and Xiaokui Xiao. AAAI, 2017.

[9] Hierarchical attention networks for document classification. Zichao Yang et al. ACL, 2016.

[10] A Nested Attention Neural Hybrid Model for Grammatical Error Correction. Jianshu Ji et al. 2017.

[11] Long Short-Term Memory-Networks for Machine Reading. Jianpeng Cheng, Li Dong and Mirella Lapata. EMNLP, 2016.

[12] Show, Attend and Tell: Neural Image Caption Generation with Visual Attention. Kelvin Xu et al. JMLR, 2015.

[13] Ask me anything: Dynamic memory networks for natural language processing. Zhouhan Lin al. JMLR, 2016.

[14] A structured self-attentive sentence embedding. Zhouhan Lin al. ICLR, 2017.

[15] Learning Sentence Representation with Guidance of Human Attention. Shaonan Wang , Jiajun Zhang, Chengqing Zong. IJCAI, 2017.

[16] Sequence to Sequence Learning with Neural Networks. Ilya Sutskever et al. 2014.

[17] Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation. Kyunghyun Cho, Yoshua Bengio et al. EMNLP, 2014.

[18] End-To-End Memory Networks Sainbayar Sukhbaatar et al. NIPS, 2015.

[19] 《Attention is All You Need》淺讀(簡(jiǎn)介+代碼)

The End

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市坐漏,隨后出現(xiàn)的幾起案子薄疚,更是在濱河造成了極大的恐慌,老刑警劉巖赊琳,帶你破解...
    沈念sama閱讀 219,589評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件街夭,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡躏筏,警方通過查閱死者的電腦和手機(jī)板丽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人埃碱,你說我怎么就攤上這事猖辫。” “怎么了砚殿?”我有些...
    開封第一講書人閱讀 165,933評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵啃憎,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我似炎,道長(zhǎng)辛萍,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,976評(píng)論 1 295
  • 正文 為了忘掉前任羡藐,我火速辦了婚禮贩毕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘传睹。我一直安慰自己耳幢,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評(píng)論 6 393
  • 文/花漫 我一把揭開白布欧啤。 她就那樣靜靜地躺著睛藻,像睡著了一般。 火紅的嫁衣襯著肌膚如雪邢隧。 梳的紋絲不亂的頭發(fā)上店印,一...
    開封第一講書人閱讀 51,775評(píng)論 1 307
  • 那天,我揣著相機(jī)與錄音倒慧,去河邊找鬼按摘。 笑死,一個(gè)胖子當(dāng)著我的面吹牛纫谅,可吹牛的內(nèi)容都是我干的炫贤。 我是一名探鬼主播,決...
    沈念sama閱讀 40,474評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼付秕,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼兰珍!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起询吴,我...
    開封第一講書人閱讀 39,359評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤掠河,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后猛计,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體唠摹,經(jīng)...
    沈念sama閱讀 45,854評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評(píng)論 3 338
  • 正文 我和宋清朗相戀三年奉瘤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了勾拉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,146評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖望艺,靈堂內(nèi)的尸體忽然破棺而出苛秕,到底是詐尸還是另有隱情,我是刑警寧澤找默,帶...
    沈念sama閱讀 35,826評(píng)論 5 346
  • 正文 年R本政府宣布艇劫,位于F島的核電站,受9級(jí)特大地震影響惩激,放射性物質(zhì)發(fā)生泄漏店煞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評(píng)論 3 331
  • 文/蒙蒙 一风钻、第九天 我趴在偏房一處隱蔽的房頂上張望散怖。 院中可真熱鬧泡嘴,春花似錦淫半、人聲如沸辑畦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽囤萤。三九已至,卻和暖如春是趴,著一層夾襖步出監(jiān)牢的瞬間涛舍,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工唆途, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留富雅,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,420評(píng)論 3 373
  • 正文 我出身青樓肛搬,卻偏偏與公主長(zhǎng)得像没佑,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子温赔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評(píng)論 2 356

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