Attention 機制

記錄一下自己所理解的 Attention 機制:首先先從 Encoder-Decoder 框架來宏觀角度的看 Attention 機制,再從微觀角度來看。

一、Encoder-Decoder 框架

抽象的文本處理領域的Encoder-Decoder框架

由此可見嗦篱,生成 i 時刻要生成的單詞:

二、Soft Attention 模型(對比于 Hard 模型:one-hot 編碼的固定區(qū)域)

上圖展示的 Encoder-Decoder 框架沒有體現(xiàn)出“注意力模型”幌缝,因為在目標句子 Target 中每個單詞的生成過程如下:

其中 f 是 Decoder 的非線性變換函數(shù)灸促,可以看出,在生成目標句子的單詞時,不論生成哪個單詞腿宰,它們使用的輸入句子 Source 的語義編碼 C 都是一樣的呕诉,沒有任何區(qū)別。而語義編碼 C 是由句子 Source 的每個單詞經(jīng)過 Encoder 編碼產(chǎn)生的吃度,這意味著不論是生成哪個單詞甩挫,y1,y2還是y3,其實句子 Source 中任意單詞對生成某個目標單詞 yi 來說影響力都是相同的椿每,這是為何說這個模型沒有體現(xiàn)出注意力的緣由伊者。

真正體現(xiàn)注意力機制的框架如下:

引入注意力模型的 Encoder-Decoder 框架

即生成目標句子單詞的過程成了下面的形式:

而每個 Ci 可能對應著不同的源語句子單詞的注意力分配概率分布,比如對于上面的英漢翻譯來說间护,其對應的信息可能如下:

其中亦渗,f2 代表 Encoder 對輸入英文單詞的某種變換函數(shù),比如 Encoder 是 RNN 模型的話汁尺,f2 函數(shù)結(jié)果是某個時刻輸入 xi 后隱層節(jié)點的狀態(tài)值法精;g 函數(shù)一般是對構(gòu)成的元素加權(quán)求和。所以痴突,Attention 形成過程如下圖:

問題:分配的概率分布值(0.6搂蜓,0.2,0.2)如何生成的呢辽装?
以 Encoder 采用 RNN帮碰,Decoder 也采用 RNN 模型為例,則 Encoder-Decoder 框架轉(zhuǎn)換成下圖:

RNN 作為具體模型的 Encoder-Decoder 框架

那么下圖很通用的表示了注意力分配概率分布值的計算過程:

注意力分配概率計算

物理意義:一般在自然語言處理應用里會把 Attention 模型看作是輸出 Target 句子中某個單詞和輸入 Source 句子每個單詞的對齊模型拾积。

三殉挽、Attention 機制的本質(zhì)思想

三階段計算 Attention 過程

在第一個階段,可以引入不同的函數(shù)和計算機制拓巧,根據(jù)Query和某個Key_i斯碌,計算兩者的相似性或者相關性,最常見的方法包括:求兩者的向量點積玲销、求兩者的向量Cosine相似性或者通過再引入額外的神經(jīng)網(wǎng)絡來求值输拇,即如下方式:

Query, Key, Value 的定義

對于一個 Attention 機制而言,定義好 Query贤斜, Key策吠, Value 是至關重要的,這一點我個人認為是一個經(jīng)驗工程瘩绒,看的多了猴抹,自然就懂了。 我這里簡單舉閱讀理解與機器翻譯的例子:

  • 對于機器翻譯而言锁荔,常見的是: Query 就是上一時刻 Decoder 的輸出Si-1 蟀给, 而Key,Value 是一樣的,指的是 Encoder 中每個單詞的上下文表示跋理。
  • 對于英語高考閱讀理解而言择克, Query 可以是問題的表示,也可以是問題+選項的表示前普,而對于Key肚邢,Value而言,往往也都是一樣的拭卿,都指的是文章骡湖。而此時Attention的目的就是找出文章中與問題問題+選項的相關片段,以此來判斷我們的問題是否為正確的選項峻厚。

由此我們可以看出响蕴, Attention 中 Query, Key惠桃, Value 的定義都是很靈活的浦夷,不同的定義可能產(chǎn)生不一樣的化學效果


四、Self-Attention

在 self-attention 中刽射,我們可以認為source = target军拟。 self-attention可以捕捉到句子里面的長依賴關系。 self-attention 是針對句子中所有詞兩兩計算誓禁,不存在距離長短這一說。

下面介紹 self-attention 的具體計算:

上圖是分別得到 查詢向量肾档、鍵向量摹恰、值向量。下圖就是全部的流程:

分以下步驟實現(xiàn):

  1. 獲得查詢向量怒见、鍵向量俗慈、值向量。
  2. 計算得分遣耍。這些分數(shù)是通過打分單詞(所有輸入句子的單詞)的鍵向量與“Thinking”的查詢向量相點積來計算的闺阱。所以如果我們是處理位置最靠前的詞的自注意力的話,第一個分數(shù)是q1和k1的點積舵变,第二個分數(shù)是q1和k2的點積酣溃。
  3. 第三步和第四步是將分數(shù)除以8(8是論文中使用的鍵向量的維數(shù)64的平方根,這會讓梯度更穩(wěn)定纪隙。這里也可以使用其它值赊豌,8只是默認值),然后通過softmax傳遞結(jié)果绵咱。softmax的作用是使所有單詞的分數(shù)歸一化碘饼,得到的分數(shù)都是正值且和為1。
  4. 將每個值向量乘以softmax分數(shù)(這是為了準備之后將它們求和)。這里的直覺是希望關注語義上相關的單詞艾恼,并弱化不相關的單詞(例如住涉,讓它們乘以0.001這樣的小數(shù))。
  5. 對加權(quán)值向量求和(譯注:自注意力的另一種解釋就是在編碼某個單詞時钠绍,就是將所有單詞的表示(值向量)進行加權(quán)求和秆吵,而權(quán)重是通過該詞的表示(鍵向量)與被編碼詞表示(查詢向量)的點積并通過softmax得到。)五慈,然后即得到自注意力層在該位置的輸出(在我們的例子中是對于第一個單詞)纳寂。

注意:self-attention 是針對句子內(nèi)部,所以并不是輸出整個句子的 Attention 結(jié)果泻拦,而是每個單詞的 Attention 結(jié)果毙芜,與上面介紹的 Encoder-Decoder 機制有點不一樣。簡單的說:Attention 機制發(fā)生在 Target 的元素 Query 和 Source 中的所有元素之間争拐。而 Self Attention 顧名思義腋粥,指的不是 Target 和 Source 之間的 Attention 機制,而是 Source 內(nèi)部元素之間或者 Target 內(nèi)部元素之間發(fā)生的 Attention 機制架曹,也可以理解為 Target=Source 這種特殊情況下的注意力計算機制隘冲。


五、Global attention 與 Local attention

Global Attention
Local Attention

在 soft attention陣營中绑雄,很快又劃分為兩大陣營: Glocal attention 與 Local attention展辞, 二者的區(qū)別在于關注的范圍大小不同, 其中万牺,Global attention 關注全部的文字序列罗珍,而 Local attention 關注的是固定的窗口中的所有文字序列。

比較二者脚粟, Global attention 的計算量要比 Local Attention 要大覆旱,尤其是對于長句子而言,效率變得很低核无; 而 Local Attention 只與窗口內(nèi)的文字相關扣唱,因此窗口的大小就顯得至關重要了,且在 local attention 中多了一個預測中心詞 pt团南,這有可能會忽略一些重要的詞噪沙。因此基本不考慮 Local Attention。


參考文獻

  1. 圖解Transformer(完整版)
  2. 深度學習中的注意力模型(2017版)
  3. NLP中的 Attention 機制(不定期更新)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末已慢,一起剝皮案震驚了整個濱河市曲聂,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌佑惠,老刑警劉巖朋腋,帶你破解...
    沈念sama閱讀 222,946評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件齐疙,死亡現(xiàn)場離奇詭異,居然都是意外死亡旭咽,警方通過查閱死者的電腦和手機贞奋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,336評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來穷绵,“玉大人轿塔,你說我怎么就攤上這事≈倌” “怎么了勾缭?”我有些...
    開封第一講書人閱讀 169,716評論 0 364
  • 文/不壞的土叔 我叫張陵,是天一觀的道長目养。 經(jīng)常有香客問我俩由,道長,這世上最難降的妖魔是什么癌蚁? 我笑而不...
    開封第一講書人閱讀 60,222評論 1 300
  • 正文 為了忘掉前任幻梯,我火速辦了婚禮,結(jié)果婚禮上努释,老公的妹妹穿的比我還像新娘碘梢。我一直安慰自己,他們只是感情好伐蒂,可當我...
    茶點故事閱讀 69,223評論 6 398
  • 文/花漫 我一把揭開白布煞躬。 她就那樣靜靜地躺著,像睡著了一般饿自。 火紅的嫁衣襯著肌膚如雪汰翠。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,807評論 1 314
  • 那天昭雌,我揣著相機與錄音,去河邊找鬼健田。 笑死烛卧,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的妓局。 我是一名探鬼主播总放,決...
    沈念sama閱讀 41,235評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼好爬!你這毒婦竟也來了局雄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,189評論 0 277
  • 序言:老撾萬榮一對情侶失蹤存炮,失蹤者是張志新(化名)和其女友劉穎炬搭,沒想到半個月后蜈漓,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,712評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡宫盔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,775評論 3 343
  • 正文 我和宋清朗相戀三年融虽,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片灼芭。...
    茶點故事閱讀 40,926評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡有额,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出彼绷,到底是詐尸還是另有隱情巍佑,我是刑警寧澤,帶...
    沈念sama閱讀 36,580評論 5 351
  • 正文 年R本政府宣布寄悯,位于F島的核電站萤衰,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏热某。R本人自食惡果不足惜腻菇,卻給世界環(huán)境...
    茶點故事閱讀 42,259評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望昔馋。 院中可真熱鬧筹吐,春花似錦、人聲如沸秘遏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,750評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽邦危。三九已至洋侨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間倦蚪,已是汗流浹背希坚。 一陣腳步聲響...
    開封第一講書人閱讀 33,867評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留陵且,地道東北人裁僧。 一個月前我還...
    沈念sama閱讀 49,368評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像慕购,于是被迫代替她去往敵國和親聊疲。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,930評論 2 361

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