深度模型Attention

Attention機(jī)制源于對(duì)Seq2Seq模型的幾個(gè)問題優(yōu)化。Seq2Seq是基于Encoder-Decoder架構(gòu)思想實(shí)現(xiàn)。Encoder和Decoder部分都是采用RNN網(wǎng)絡(luò)模型。Seq2Seq模型存在的幾個(gè)問題是:

1. 基于序列化的RNN網(wǎng)絡(luò), 無(wú)法做到并行計(jì)算, 模型的運(yùn)行效率比較差。

  1. 輸入X的信息轉(zhuǎn)換為固定長(zhǎng)度的context vector Z,當(dāng)輸入句子長(zhǎng)度很長(zhǎng),固定長(zhǎng)度的context vector很難表達(dá)所有X的信息,模型的性能急劇下降。而且對(duì)于每個(gè)詞都賦予相同的權(quán)重,這樣做是不合理的。

并行化方面優(yōu)化:FaceBook提出CNN Seq2Seq模型,采用堆疊的CNN來(lái)替代RNN構(gòu)建Encoder和Decoder。因?yàn)镃NN可以實(shí)現(xiàn)并行,從而提升模型的運(yùn)行效率。

固定長(zhǎng)度的隱藏向量Z問題:解決的方法就是本文的主題Attention機(jī)制。 模型計(jì)算時(shí),對(duì)不同輸入端的數(shù)據(jù)采用不同的權(quán)重, 讓模型可以關(guān)注關(guān)鍵而重點(diǎn)的信息,從而得到更加準(zhǔn)確的結(jié)果。

一、Attention經(jīng)典架構(gòu)

1.Encoder hidden狀態(tài)計(jì)算:

Encoder hidden狀態(tài):ht = RNN(Xt, ht-1), 前一個(gè)狀態(tài)隱藏變量ht-1, 輸入Xt, 通過RNN 計(jì)算單元得到ht.

2. Attention部分:計(jì)算Decoder Si 對(duì)應(yīng)的context vector Ci

計(jì)算Decoder hidden state位置 i 與Encoder端所有hidden state加權(quán)平均值, 得到context vector Ci.

aij表示Decoder 位置i和Encoder 位置j 對(duì)應(yīng)的權(quán)重值,表示源端第j個(gè)詞對(duì)目標(biāo)端第i個(gè)詞的影響程度,計(jì)算方式類似softmax。

eij表示Decoder hidden states si-1 和Encoder hidden states hj 對(duì)應(yīng)的分?jǐn)?shù)值。

score分?jǐn)?shù)計(jì)算方法有多種:包括dot乘,矩陣乘法,concat連接。ht是Encoder端hidden states, hs是Decoder端的hidden state.

3. Decoder hidden state計(jì)算

與輸入端類似, St = RNN(Yt-1^, St-1, Ci), Decoder端前一個(gè)狀態(tài)隱藏變量St-1, Decoder端輸入Yt-1^, Context向量Ci通過RNN計(jì)算單元得到St.

4. Decoder端輸出結(jié)果

計(jì)算方式如下,

二、Attention的類型

2.1 按權(quán)值計(jì)算范圍來(lái)分

Soft Attention和Hard Attention

softAttention 是應(yīng)用最廣泛的一種方式, 計(jì)算Attention的權(quán)值aij, 每個(gè)Decoder hidden state Si 會(huì)用到所有Encoder端的hi向量。而且SoftAttetion部分能參與模型梯度反向傳播中。

而Hard Attention是隨機(jī)選取Encoder端的隱狀態(tài)hi來(lái)參與aij的計(jì)算,而不是整個(gè)encoder的隱狀態(tài)。為了實(shí)現(xiàn)梯度的反向傳播,需要采樣方法來(lái)估計(jì)一個(gè)梯度進(jìn)行統(tǒng)一更新。

Local Attention和Global Attention

Global Attention 和soft Attetion類似,都是會(huì)用到所以Encoder端的隱狀態(tài)。

****Local Attention(結(jié)構(gòu)如下圖)首先會(huì)為decoder端當(dāng)前的詞,預(yù)測(cè)一個(gè)source端對(duì)齊位置(aligned position)pt,然后基于pt選擇一個(gè)窗口,用于計(jì)算context向量ct。****

Self Attention

Self Attention不同在于:不是通過Encoder端和Decoder端的隱變量(hidden state)計(jì)算Attention的,而是先分別在Encoder端、Decoder端計(jì)算內(nèi)部詞與詞之間的相關(guān)關(guān)系,再將Encoder端的信息傳遞到Decoder端進(jìn)行計(jì)算, 得到Encoder端和Decoder端詞之間得依賴關(guān)系。

2.2 按Attention得組合方式

以下幾種Attention都比較復(fù)雜, 本文只做簡(jiǎn)單介紹,后續(xù)針對(duì)每個(gè)再做詳細(xì)介紹。

Multi-Head Attention

來(lái)自google的大作《Attention is all you need》,如下圖所示,將多個(gè)Scaled Dot-product Attetion作為block組合起來(lái)使用。

Multi-Step Attention

來(lái)自FaceBook的另一大作《Convolutional Sequence to Sequence Learning》,用CNN替代RNN作為Seq2Seq Encoder和Decoder的架構(gòu)實(shí)現(xiàn)。

Hierarchical Attention

也就是多層Attention,比如文檔的分類。 先通過第一層Attention參與詞級(jí)別的向量組合成句子級(jí)別的向量。再通過第二層Attention, 參與句子向量級(jí)別的計(jì)算出文檔的向量。

其他類型

未完待補(bǔ)充....

【參考文獻(xiàn)】

深度學(xué)習(xí)中Attention Mechanism詳細(xì)介紹:原理、分類及應(yīng)用https://zhuanlan.zhihu.com/p/31547842

Attention用于NLP的一些小結(jié) https://zhuanlan.zhihu.com/p/35739040

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • TACONTRON: A Fully End-to-End Text-To-Speech Synthesis Mo...
    MiracleJQ閱讀 4,290評(píng)論 0 1
  • 近日,谷歌官方在 Github開放了一份神經(jīng)機(jī)器翻譯教程,該教程從基本概念實(shí)現(xiàn)開始,首先搭建了一個(gè)簡(jiǎn)單的NMT模型...
    MiracleJQ閱讀 6,718評(píng)論 1 11
  • 前面的文章主要從理論的角度介紹了自然語(yǔ)言人機(jī)對(duì)話系統(tǒng)所可能涉及到的多個(gè)領(lǐng)域的經(jīng)典模型和基礎(chǔ)知識(shí)。這篇文章,甚至之后...
    我偏笑_NSNirvana閱讀 14,401評(píng)論 2 64
  • 最近人工智能隨著AlphaGo戰(zhàn)勝李世乭這一事件的高關(guān)注度,重新掀起了一波新的關(guān)注高潮,有的說(shuō)人工智能將會(huì)如何超越...
    MiracleJQ閱讀 3,117評(píng)論 2 1
  • 幸福路人春風(fēng)20171006第125天 今天上午陪父親打完針,我有事情就走了,(已經(jīng)和姐姐通過電話,她中午送飯),...
    春風(fēng)7861閱讀 229評(píng)論 0 0

友情鏈接更多精彩內(nèi)容