Attention的本质:从Encoder-Decoder(Seq2Seq)理解
目錄
1. 前言
2. Encoder-Decoder(Seq2Seq)框架
3. Attention原理
3.1 Soft Attention介紹
4. Attention機制的本質思想
5. 總結
1. 前言
? ? ? ? ? 注意力模型最近幾年在深度學習各個領域被廣泛使用,無論是圖像處理、語音識別還是自然語言處理的各種不同類型的任務中,都很容易遇到注意力模型的身影。所以,了解注意力機制的工作原理對于關注深度學習技術發展的技術人員來說有很大的必要。
2. Encoder-Decoder(Seq2Seq)框架
? ? ? ? 要了解深度學習中的注意力模型,就不得不先談Encoder-Decoder框架,因為目前大多數注意力模型附著在Encoder-Decoder框架下。其實注意力模型可以看作一種通用的思想,本身并不依賴于特定框架,這點需要注意。
? ? ? ? Encoder-Decoder框架可以看作是一種深度學習領域的研究模式,應用場景異常廣泛。圖2是文本處理領域里常用的Encoder-Decoder框架最抽象的一種表示。
? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ?文本處理領域的Encoder-Decoder框架可以這么直觀地去理解:可以把它看作適合處理由一個句子(或篇章)生成另外一個句子(或篇章)的通用處理模型。對于句子對(Source,Target),我們的目標是給定輸入句子Source,期待通過Encoder-Decoder框架來生成目標句子Target。Source和Target可以是同一種語言,也可以是兩種不同的語言。而Source和Target分別由各自的單詞序列構成:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ?Encoder:顧名思義就是對輸入句子Source進行編碼,將輸入句子通過非線性變換轉化為中間語義表示C
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ?Decoder:其任務是根據句子Source的中間語義表示C和之前已經生成的歷史信息進行解碼
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
?
3. Attention原理
按照Encoder-Decoder的框架,我們的輸出值y的表達式:
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ?語義編碼C是由句子Source的每個單詞經過Encoder編碼產生的,這意味著不論是生成哪個單詞,y1、y2還是y3,其實句子Source中任意單詞對生成某個目標單詞yi來說影響力都是相同的,這是為何說這個模型沒有體現出注意力的緣由。這類似于人類看到眼前的畫面,但是眼中卻沒有注意焦點一樣。這樣不符合人類認知事物的原理。所以我們引入Attention機制。
3.1 Soft Attention介紹
我們最普遍的一種Soft Attention的計算過程。
加上Attention的Encoder-Decoder的框架如下:
? ? ? ? ? ? ? ? ? ? ? ? ??
我們的圖中,出現了C1,C2,C3分別對應了y1,y2,y3,這樣我們的輸出值的表達式也改變了:
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
問題是我們的Ci如何計算?
我們再看一副Attention的細節圖
從圖中可以看出Ci是hi的加權的結果
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
我們如何計算αi呢?這時候就用到我們的Softmax的原理,著也是Soft Attention取名的原因。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
根據不同的Attention算法e(hi,sj)的實現方式也不同:
- Bahdanau Attention結構
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
其中U、V、W是模型的參數,e(h,s)結構代表了一層全聯接層。
- Luong Attention結構
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
但是無論是Bahdanau Attention,還是Luong Attention,它們都屬于Soft Attention的結構,都是通過Softmax來計算αi,j。
4. Attention機制的本質思想
? ? ? ? ?上述內容就是經典的Soft Attention模型的基本思想,那么怎么理解Attention模型的物理含義呢?一般在自然語言處理應用里會把Attention模型看作是輸出Target句子中某個單詞和輸入Source句子每個單詞的對齊模型,即輸出Target句子中某個單詞Query和輸入Source句子每個單詞key的相關性或相似性,這是非常有道理的。
? ? ? ? ?目標句子生成的每個單詞對應輸入句子單詞的概率分布可以理解為輸入句子單詞和這個目標生成單詞的對齊概率,這在機器翻譯語境下是非常直觀的:傳統的統計機器翻譯一般在做的過程中會專門有一個短語對齊的步驟,而注意力模型其實起的是相同的作用。
? ? ? ? ? ? ? ??
? ? ? ? 我們可以這樣來看待Attention機制:將Source中的構成元素想象成是由一系列的(Key,Value)數據對構成,此時給定Target中的某個元素Query,通過計算Query和各個Key的相似性或者相關性,得到每個Key對應Value的權重系數,然后對Value進行加權求和,即得到了最終的Attention數值。所以本質上Attention機制是對Source中元素的Value值進行加權求和,而Query和Key用來計算對應Value的權重系數。即可以將其本質思想改寫為如下公式:
? ? ? ? ? ? ? ? ??
? ? ? ?上文所舉的Encoder-Decoder框架中,因為在計算Attention的過程中,Source中的Key和Value合二為一成,指向的是同一個東西,也即輸入句子中每個單詞對應的語義編碼hi(?hi即為Key和Value),所以可能不容易看出這種能夠體現本質思想的結構。
? ? ? ??從本質上理解,Attention是從大量信息中有選擇地篩選出少量重要信息并聚焦到這些重要信息上,忽略大多不重要的信息。聚焦的過程體現在權重系數的計算上,權重越大越聚焦于其對應的Value值上,即權重代表了信息的重要性,而Value是其對應的信息。
5. 總結
? ? ? ? Encoder-Decoder(Seq2Seq)加Attention架構由于其卓越的實際效果,目前在深度學習領域里得到了廣泛的使用,了解并熟練使用這一架構對于解決實際問題會有極大幫助。
? ? ? ? ?再者還有最新的Transformer結構,拋棄傳統的RNN結構,完全使用Attention結構實現不同層級間的信息傳遞,并且還能并行處理大大提高運行速度,和準確度。
?
轉載:https://www.cnblogs.com/huangyc/p/10409626.html#_labelTop
總結
以上是生活随笔為你收集整理的Attention的本质:从Encoder-Decoder(Seq2Seq)理解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 预训练模型:BERT深度解析《BERT:
- 下一篇: 自然语言处理库——Gensim之Word