<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【NLP】四萬字全面詳解 | 深度學(xué)習(xí)中的注意力機(jī)制(二)

          共 8728字,需瀏覽 18分鐘

           ·

          2021-01-05 05:41

          NewBeeNLP原創(chuàng)出品??

          公眾號(hào)專欄作者@蘑菇先生?

          知乎?|?蘑菇先生學(xué)習(xí)記


          ?前情提要四萬字全面詳解 | 深度學(xué)習(xí)中的注意力機(jī)制(一)

          目前深度學(xué)習(xí)中熱點(diǎn)之一就是注意力機(jī)制(Attention Mechanisms)。Attention源于人類視覺系統(tǒng),當(dāng)人類觀察外界事物的時(shí)候,一般不會(huì)把事物當(dāng)成一個(gè)整體去看,往往傾向于根據(jù)需要選擇性的去獲取被觀察事物的某些重要部分,比如我們看到一個(gè)人時(shí),往往先Attend到這個(gè)人的臉,然后再把不同區(qū)域的信息組合起來,形成一個(gè)對被觀察事物的整體印象。

          「同理,Attention Mechanisms可以幫助模型對輸入的每個(gè)部分賦予不同的權(quán)重,抽取出更加關(guān)鍵及重要的信息,使模型做出更加準(zhǔn)確的判斷,同時(shí)不會(huì)對模型的計(jì)算和存儲(chǔ)帶來更大的開銷,這也是Attention Mechanism應(yīng)用如此廣泛的原因」

          在上一篇文章中,我們分享了seq2seq以及普通attention網(wǎng)絡(luò),今天來看看Attention機(jī)制的各種變體。

          本部分介紹Attention機(jī)制的各種變體。包括但不限于:

          • 「基于強(qiáng)化學(xué)習(xí)的注意力機(jī)制」:選擇性的Attend輸入的某個(gè)部分
          • 「全局&局部注意力機(jī)制」:其中,局部注意力機(jī)制可以選擇性的Attend輸入的某些部分
          • 「多維度注意力機(jī)制」:捕獲不同特征空間中的Attention特征。
          • 「多源注意力機(jī)制」:Attend到多種源語言語句
          • 「層次化注意力機(jī)制」:word->sentence->document
          • 「注意力之上嵌一個(gè)注意力」:和層次化Attention有點(diǎn)像。
          • 「多跳注意力機(jī)制」:和前面兩種有點(diǎn)像,但是做法不太一樣。且借助殘差連接等機(jī)制,可以使用更深的網(wǎng)絡(luò)構(gòu)造多跳Attention。使得模型在得到下一個(gè)注意力時(shí),能夠考慮到之前的已經(jīng)注意過的詞。
          • 「使用拷貝機(jī)制的注意力機(jī)制」:在生成式Attention基礎(chǔ)上,添加具備拷貝輸入源語句某部分子序列的能力。
          • 「基于記憶的注意力機(jī)制」:把Attention抽象成Query,Key,Value三者之間的交互;引入先驗(yàn)構(gòu)造記憶庫。
          • 「自注意力機(jī)制」:自己和自己做attention,使得每個(gè)位置的詞都有全局的語義信息,有利于建立長依賴關(guān)系。

          Reinforcement-learning based Attention

          • NIPS2014: Recurrent Models of Visual Attention[1]
          • ICLR2015: Multiple Object Recognition with Visual Attention [2]

          NIPS2014論文應(yīng)該是最早的Attention雛形,雖然和我們通常所說的、廣泛應(yīng)用于Seq2Seq的Attention機(jī)制不太一樣,但是還是值得提一下。這是Google DeepMind2014年提出的一篇計(jì)算機(jī)視覺領(lǐng)域的文章,適用于處理圖像序列或幀序列來進(jìn)行場景感知或處理(例如Video Caption)。

          其動(dòng)機(jī)在于隨著分辨率提高,計(jì)算量不斷增長,神經(jīng)網(wǎng)絡(luò)難以在實(shí)時(shí)應(yīng)用場景中,快速處理這么大的計(jì)算量。借鑒人類視覺系統(tǒng)的特點(diǎn),即,為了理解某個(gè)場景,并不是一下子處理整個(gè)場景,而是Focus到某些關(guān)鍵的位置上,然后聯(lián)合起來構(gòu)建出整個(gè)場景信息。故本篇論文利用RNN處理圖像序列,并使用「強(qiáng)化學(xué)習(xí)」來訓(xùn)練模型,使得模型能夠?qū)W習(xí)attention決策。即,針對實(shí)時(shí)的場景,基于過去的信息和任務(wù)的需要選擇下一個(gè)要focus的感知區(qū)域。這個(gè)和人類的感知方式比較相似,也是我們最早理解的Attention機(jī)制。

          但是,上文所述的廣泛應(yīng)用于Seq2Seq中的Attention不大一樣。人類的注意力機(jī)制實(shí)際上是可以節(jié)省計(jì)算資源的,注意只需要集中到某些區(qū)域,可以忽略大部分區(qū)域。Recurrent Models of Visual Attention中的做法和這個(gè)是一樣的。

          然而,下文即將要介紹的應(yīng)用于Seq2Seq模型模型的Attention就不是這樣的了。實(shí)際上,下文所述Attention模型,需要把每一個(gè)部分都觀察的仔仔細(xì)細(xì)(每部分權(quán)重都要算一下),才能進(jìn)一步?jīng)Q策到底需要focus到哪些部分,這和人類的視覺系統(tǒng)不相符,更像是memory,而不是attention(實(shí)際上attention可以理解為一種「短期記憶」,即根據(jù)短期記憶在輸入特征上分配attention;memory也是另外一種非常重要的機(jī)制),然而,這并不妨礙注意力機(jī)制的有效性。

          Global & Local Attention

          • EMNLP2015: Effective Approaches to Attention-based Neural Machine Translation[3]

          以往的文章,主要將attention應(yīng)用于不同場景中,而這篇文章提出了新的attention架構(gòu),引入了Global Attention和Local Attention的概念。

          Global Attention和上文的Soft Attention幾乎一樣,即計(jì)算上下文向量時(shí),和所有的encoder隱狀態(tài)向量求alignment;而Local Attention是Soft Attention和Hard Attention的權(quán)衡,既擁有Soft Attention可微分,容易使用反向傳播來優(yōu)化的優(yōu)點(diǎn),又擁有Hard Attention復(fù)雜度低的優(yōu)點(diǎn),除此之外,還不需要強(qiáng)化學(xué)習(xí)方法進(jìn)行訓(xùn)練。

          首先定義,

          • Encoder得到的源語句單詞 的隱狀態(tài)為:;
          • Decoder中目標(biāo)語句單詞 的隱狀態(tài)為:;
          • 對每一個(gè)目標(biāo)單詞 ,使用Attention機(jī)制計(jì)算的上下文向量為 ;
          • Attention機(jī)制中的對齊模型為 (前面文章中都是使用 , 即「前一個(gè)時(shí)間步」的Decoder隱狀態(tài)和Encoder隱狀態(tài)來計(jì)算對齊權(quán)重)。

          首先是Global Attention,如下圖所示:

          Global Attention中上下文向量 的計(jì)算路徑為:。

          • 對齊模型計(jì)算:

            是源語句單詞的位置。

            具體可以采用:

          • 上下文向量計(jì)算:

            注意圖中,框起來的部分作者稱為Attention Layer。

          接著是Local Attention,如下圖所示:

          Local Attention的引入是為了解決Global Attention中Attend到源語句中所有的詞,一方面復(fù)雜度高,另一方面很難翻譯長序列語句。Local Attention首先根據(jù)目標(biāo)詞的隱狀態(tài) 計(jì)算源語句中的「對齊位置」(中心),然后使用以該位置為中心的窗口 內(nèi)的源語句單詞 ,來計(jì)算Attention的權(quán)重,計(jì)算時(shí)使用以 為中心的高斯核函數(shù)進(jìn)行衰減。具體如下:

          • 「對齊位置模型」, 是源語句長度。只與t時(shí)刻Decoder狀態(tài) 有關(guān)。
          • 對齊權(quán)重模型:, 也就是在global Attention對齊模型基礎(chǔ)上加了高斯函數(shù)指數(shù)衰減。。

          計(jì)算上下文向量時(shí),同上文,即對窗口內(nèi)的encoder隱向量進(jìn)行加權(quán),即 。

          計(jì)算得到上下文向量后,本文直接將 concat在一起,并計(jì)算經(jīng)過attention后的隱狀態(tài)

          再將上述attention后的隱狀態(tài)輸入到一個(gè)softmax全連接層,得到預(yù)測目標(biāo)值:

          按照上述方式來看,每個(gè)目標(biāo)輸出單詞的預(yù)測值,沒有利用已經(jīng)預(yù)測的輸出單詞(embedding)作為輸入,也沒有利用目標(biāo)詞位置前一時(shí)刻的decoder隱狀態(tài) ;只利用了當(dāng)前時(shí)刻Decoder隱狀態(tài) (上下文向量計(jì)算中的權(quán)重也主要依據(jù)這個(gè)計(jì)算的)。也就是說,每個(gè)目標(biāo)詞位置的attention決策是獨(dú)立的(只和 本身相關(guān))。

          然而在機(jī)器翻譯當(dāng)中,通常要維護(hù)一個(gè)覆蓋集,即源語句中哪些單詞被翻譯過了;同理,在神經(jīng)機(jī)器翻譯中,我們在翻譯一個(gè)目標(biāo)詞時(shí),同樣需要關(guān)注哪些源語句單詞已經(jīng)被翻譯了。因此,作者提出了一個(gè)Input-feeding approach,把Decoder端前一時(shí)刻attention「后」的隱狀態(tài)和前一時(shí)刻預(yù)測的輸出單詞的embedding連接起來,作為下一時(shí)刻的輸入。(這個(gè)和傳統(tǒng)Attention的幾乎沒差別)

          本文的貢獻(xiàn)主要是Local Attention以及提出的各種各樣的Alignment函數(shù),其余都和前面的工作大同小異。現(xiàn)總結(jié)下Alignment函數(shù)如下圖所示:

          Multi-dimensional Attention

          • AAAI2018:DiSAN: Directional Self-Attention Network for RNN/CNN-Free Language Understanding[4]

          在Baisc Attention中,對于每個(gè)查詢,每個(gè)key對應(yīng)的value都有一個(gè)權(quán)重值,即每個(gè)查詢會(huì)對應(yīng)一個(gè)1-D的Attention weight向量。而Multi-dimensional Attention會(huì)產(chǎn)生更高維度的Attention矩陣,旨在捕獲不同特征空間中的Attention特征。

          實(shí)際上主要區(qū)別在于,之前每個(gè)value向量對應(yīng)一個(gè)權(quán)重Alignment Score,加權(quán)的時(shí)候?qū)嶋H上是利用了廣播機(jī)制,value每個(gè)元素feature都乘上該權(quán)重;現(xiàn)在修改為在feature-level,每個(gè)元素特征都乘上不同的權(quán)重系數(shù),因此Alignment Score是和Value同維度數(shù)的向量,即右圖中的 。做法很簡單,使用MLP對齊的時(shí)候,MLP輸出層神經(jīng)元數(shù)量等于Value維度數(shù)即可,例如這篇文章中使用

          其他方式如下:()

          Multi-Source Attention

          • NAACL-HLT2016:Multi-Source Neural Translation[5]

          這是2016發(fā)表在NAACL-HLT的一篇文章。文章使用英語,德語,法語三種語言建立了一種多源(三語言)機(jī)器翻譯模型。Intuition在于,如果一篇文章被翻譯成了另一種語言,那么就更加傾向于被翻譯成其他語言。這樣的觀點(diǎn)對機(jī)器翻譯任務(wù)有一定的啟發(fā),將原本的單一源語言替換為多種源語言,應(yīng)該可以取得更好的效果。

          如英語中的“bank”一詞原本可以翻譯為河岸或是銀行,如果源語言中有德語詞匯“Flussufer”(河岸)作為幫助,則自然可以精確得到法語中“Berge”(河岸)這樣的翻譯結(jié)果?;谶@樣的思想,作者在原有的seq2seq+attention模型的基礎(chǔ)上做了修改,引入更多源語句,建立一種多源的翻譯模型。模型結(jié)構(gòu)如下:

          左側(cè)是兩種不同語言的源語句,每種語言的源語句都有一個(gè)自己的encoder,且結(jié)構(gòu)一樣。問題的關(guān)鍵在于如何將兩種語言encoder的東西combine在一起,并和decoder的表示進(jìn)行對齊求attention。

          由于作者采用了LSTM,因此同時(shí)考慮了hidden state和cell state的combination。核心工作就是圖中黑色部分的combiners。combiners的輸入是兩個(gè)源語句最后時(shí)刻encoder得到的hidden state 和cell state ,輸出是單個(gè)hidden state 和單個(gè)cell state 。(以往的工作似乎沒有把encoder的cell state給decoder,從圖中還可以看出,兩個(gè)encoder中,每一層得到的兩個(gè)源語句的hidden state和cell state都需要經(jīng)過combiners)

          • 最基本的combiner:對于hideen state,就是把兩個(gè)encoder的隱狀態(tài)concat起來,再做一個(gè)線性變換+tanh激活:。對于cell state,直接相加: 。

          • LSTM variant combiner:

            唯一要提的就是, 作為輸入,每個(gè)encoder得到的cell state各自對應(yīng)一個(gè)自己的遺忘門。

          到目前為止,都不涉及到attention。上文得到的 只是作為decoder的初始輸入(前一時(shí)刻的輸入,以前的Seq2Seq模型,似乎cell state沒有傳給decoder)。

          至于attention,作者做了很小的改動(dòng)。采用的是EMNLP2015: Effective Approaches to Attention-based Neural Machine Translation[6]中的Local Attention。

          在這個(gè)基礎(chǔ)上,讓decoder的隱狀態(tài)同時(shí)和兩個(gè)encoder得到的隱狀態(tài)進(jìn)行對齊,并各自計(jì)算得到一個(gè)上下文向量,,注意這個(gè)c是上下文向量,跟上文所述cell state無關(guān)。最后計(jì)算Decoder的Attentional Hidden State時(shí),使用 。也就是之前只使用1個(gè)上下文向量,這里面使用兩個(gè)上下文向量。

          下面是實(shí)驗(yàn)的一個(gè)case:

          Hierarchical Attention

          • NAACL-HLT2016:Hierarchical Attention Networks for Document Classification[7]

          文本分類是一項(xiàng)基礎(chǔ)的NLP任務(wù),在主題分類,情感分析,垃圾郵件檢測等應(yīng)用上有廣泛地應(yīng)用。其目標(biāo)是給「每篇」文本分配一個(gè)類別標(biāo)簽。本文中模型的直覺是,不同的詞和句子對文本信息的表達(dá)有不同的影響,詞和句子的重要性是嚴(yán)重依賴于上下文的,即使是相同的詞和句子,在不同的上下文中重要性也不一樣。就像人在閱讀一篇文本時(shí),對文本不同的內(nèi)容是有著不同的注意度的。而本文在attention機(jī)制的基礎(chǔ)上,聯(lián)想到文本是一個(gè)層次化的結(jié)構(gòu),提出用詞向量來表示句子向量,再由句子向量表示文檔向量,并且在詞層次和句子層次分別引入attention操作的模型。

          模型結(jié)構(gòu)如上圖所示,

          • 詞先經(jīng)過Bidirectional RNN(GRU)提取到word annotation,然后經(jīng)過1個(gè)MLP得到word annotation對應(yīng)的隱表示(這一步在Basic Attention中沒有),
          • 然后使用該隱表示和全局的「word-level上下文隱向量」 進(jìn)行對齊,計(jì)算相似性,得到softmax后的attention權(quán)重,
          • 最后對句子內(nèi)的詞的word annotation根據(jù)attention權(quán)重加權(quán),得到每個(gè)句子的向量表示。
          • 接著,將得到的句子表示同樣經(jīng)過Bidirectional RNN(GRU)提取sentence annotation,再經(jīng)過MLP得到對應(yīng)的隱表示,接著將其和全局的「sentence-level上下文隱向量」 進(jìn)行對齊計(jì)算,得到句子的attention權(quán)重,最后加權(quán)sentence annotation得到文檔級(jí)別的向量表示。得到文檔表示后再接一個(gè)softmax全連接層用于分類。

          這里最有趣的一點(diǎn)是,全局的「word-level上下文隱向量」 和全局的的「sentence-level上下文隱向量」,是隨機(jī)初始化的,且也是通過模型進(jìn)行學(xué)習(xí)的。這二者就像專家一樣,是高級(jí)咨詢顧問。為了得到句子的向量表示,我們詢問 哪些詞含有比較重要的信息?為了得到文檔的向量表示,我們詢問 哪些句子含有比較重要的信息?

          Attention over Attention

          • ACL2017:Attention-over-Attention Neural Networks for Reading Comprehension[8]

          比較巧妙,但很容易理解,直接上圖:

          兩個(gè)輸入,一個(gè)Document和一個(gè)Query,分別用一個(gè)雙向的RNN進(jìn)行特征抽取,得到各自的隱狀態(tài) 。(Embedding Layer+Bi-GRU Layer)。接著要計(jì)算document和query之間「每個(gè)詞」的相似性得分,

          然后基于query和doc的隱狀態(tài)進(jìn)行dot product,得到doc和query的attention關(guān)聯(lián)矩陣 (Document所有詞和Query所有詞和之間的關(guān)聯(lián)矩陣,行是Document,列是Query)。然后按列(column)方向進(jìn)行softmax操作,得到query-to-document的attention值 ,表示t時(shí)刻的query 「word」的document-level attention。按照行(row)方向進(jìn)行softmax操作,得到document-to-query的attention值 ,表示t時(shí)刻的document 「word」的query-level attention,再對 按照列方向進(jìn)行累加求平均得到averaged query-level attention值 ,(可以證明,按列對 平均后仍然是概率分布),這個(gè)求平均的操作可以理解為求query-level每個(gè)詞和document所有詞的平均關(guān)聯(lián)性。

          最后再基于上一步attention操作得到 ,再進(jìn)行attention操作,即attention over attention得到最終的attended attention ,即Document每個(gè)詞都有一個(gè)attended attention score。

          預(yù)測的時(shí)候,預(yù)測詞典中每個(gè)詞的概率,將詞w在document中出現(xiàn)的位置上對應(yīng)的attention值進(jìn)行求和。例如圖中Mary出現(xiàn)在Document首尾,故把這兩個(gè)attention score相加,作為預(yù)測的概率。

          文章的亮點(diǎn)在于,引入document和query所有詞pair-wise的關(guān)聯(lián)矩陣,分別計(jì)算query每個(gè)詞document-level attention(傳統(tǒng)的方法都只利用了這個(gè)attention),和document每個(gè)詞的query-level attention,對后者按列取平均得到的averaged query-level attention。進(jìn)一步,二者點(diǎn)乘得到attended document-level attention,也即attention-over-attention。

          這個(gè)和上文層次化Attention有點(diǎn)像。

          ok,今天就到這兒啦,敬請期待下一篇~我是蘑菇先生,歡迎大家到我的公眾號(hào)『蘑菇先生學(xué)習(xí)記』一起交流!

          一個(gè)小通知

          由于微信平臺(tái)算法改版,公號(hào)內(nèi)容將不再以時(shí)間排序展示,如果大家想第一時(shí)間看到我們的文章,強(qiáng)烈建議星標(biāo)我們和給我們多點(diǎn)點(diǎn)【在看】。星標(biāo)具體步驟為:


          1. 點(diǎn)擊頁面最上方"NewBeeNLP",進(jìn)入公眾號(hào)主頁。

          2. 點(diǎn)擊右上角的小點(diǎn)點(diǎn),在彈出頁面點(diǎn)擊“設(shè)為星標(biāo)”,就可以啦。


          感謝每一份支持,比心

          本文參考資料

          [1]

          NIPS2014: Recurrent Models of Visual Attention: https://papers.nips.cc/paper/5542-recurrent-models-of-visual-attention.pdf

          [2]

          ICLR2015: Multiple Object Recognition with Visual Attention : https://arxiv.org/abs/1412.7755

          [3]

          EMNLP2015: Effective Approaches to Attention-based Neural Machine Translation: http://aclweb.org/anthology/D15-1166

          [4]

          AAAI2018:DiSAN: Directional Self-Attention Network for RNN/CNN-Free Language Understanding: https://arxiv.org/pdf/1709.04696.pdf

          [5]

          NAACL-HLT2016:Multi-Source Neural Translation: http://www.aclweb.org/anthology/N16-1004

          [6]

          EMNLP2015: Effective Approaches to Attention-based Neural Machine Translation: http://aclweb.org/anthology/D15-1166

          [7]

          NAACL-HLT2016:Hierarchical Attention Networks for Document Classification: http://www.aclweb.org/anthology/N16-1174

          [8]

          ACL2017:Attention-over-Attention Neural Networks for Reading Comprehension: https://arxiv.org/pdf/1607.04423.pdf


          -?END?-



          往期精彩回顧





          獲取本站知識(shí)星球優(yōu)惠券,復(fù)制鏈接直接打開:

          https://t.zsxq.com/qFiUFMV

          本站qq群704220115。

          加入微信群請掃碼:

          瀏覽 25
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  91在线18 | 在线观看视频免费无码 | 日韩男女操逼视频 | 日韩视频第1页 | 亚洲AV色香蕉一区二区三区 |