注意力機制即attention mechanism在序列學習任務上具有巨大的提公升作用,在編解碼器框架內,通過在編碼段加入a模型,對源資料序列進行資料加權變換,或者在解碼端引入a模型,對目標資料進行加權變化,可以有效提高序列對序列的自然方式下的系統表現。
attention模型的基本表述可以這樣理解成(我個人理解):當我們人在看一樣東西的時候,我們當前時刻關注的一定是我們當前正在看的這樣東西的某一地方,換句話說,當我們目光移到別處時,注意力隨著目光的移動野在轉移,這意味著,當人們注意到某個目標或某個場景時,該目標內部以及該場景內每一處空間位置上的注意力分布是不一樣的。這一點在如下情形下同樣成立:當我們試圖描述一件事情,我們當前時刻說到的單詞和句子和正在描述的該事情的對應某個片段最先關,而其他部分隨著描述的進行,相關性也在不斷地改變。從上述兩種情形,讀者可以看出,對於attention的作用角度出發,我們就可以從兩個角度來分類attention種類:空間注意力和時間注意力,即spatial attention 和temporal attention。這種分類更多的是從應用層面上,而從attention的作用方法上,可以將其分為soft attention和hard attention,這既我們所說的,attention輸出的向量分布是一種one-hot的獨熱分布還是soft的軟分布,這直接影響對於上下文資訊的選擇作用。
再解釋了attention做了一件什麼事之後,我們討論一下為什麼需要attention模型,即attention加入的動機:
序列輸入時,隨著序列的不斷增長,原始根據時間步的方式的表現越來越差,這是由於原始的這種時間步模型設計的結構有缺陷,即所有的上下文輸入資訊都被限制到固定長度,整個模型的能力都同樣收到限制,我們暫且把這種原始的模型稱為簡單的編解碼器模型。
編解碼器的結構無法解釋,也就導致了其無法設計。
下面我們來看一下attention的具體原理:
首先讓編碼器輸出結構化的表示,假設這些表示,可以用下述集合表示,(hold不住了,我要截圖了,太麻煩了!!!)
由於定長上下文特徵表示帶來的資訊損失,同時也是一種缺陷,由於不同的時間片或者空間位置的資訊量明顯有差別,利用定常表示無法很好的解決損失的問題,而attention則恰好解決了這個問題。
我們甚至可以進一步解釋,編解碼器內部大致是如何工作的,當然從我看來這有點馬後炮的意思,畢竟attention是根據人的先驗設計出來的,因此導致最後訓練的結果朝著人指定的目標在走。可以說,就是輸入第j維的上下文表示資訊與第t時間片輸出的關係,第j維可以是空間維度上,也可以是時序上。由於加入attention會對輸入的上下文表示進行一次基於權重的篩選,然而這種顯示的篩選模式並不是人工制定這種機制所要看到的結果,而是通過此種加權的方式,讓網路能學到空間上或者時序上的結構關係,前提當然是假設這裡有一種原先不可解釋的相互關係。以上圖1可以很清晰地看出機器翻譯問題中,加入的attention模型輸出權重的分布與輸入與輸出資訊的關係。
attention的出現就是為了兩個目的:1. 減小處理高維輸入資料的計算負擔,通過結構化的選取輸入的子集,降低資料維度。2. 「去偽存真」,讓任務處理系統更專注於找到輸入資料中顯著的與當前輸出相關的有用資訊,從而提高輸出的質量。attention模型的最終目的是幫助類似編解碼器這樣的框架,更好的學到多種內容模態之間的相互關係,從而更好的表示這些資訊,克服其無法解釋從而很難設計的缺陷。從上述的研究問題可以發現,attention機制非常適合於推理多種不同模態資料之間的相互對映關係,這種關係很難解釋,很隱蔽也很複雜,這正是attention的優勢—不需要監督訊號,對於上述這種認知先驗極少的問題,顯得極為有效。
這裡直接上一幅圖,舉個具體的例子,然後咱們慢慢來解釋:
讓我們來看一下**裡其他研究者都是如何利用attentionmodel的:
最新一篇cvpr2023年accepted *****關於vqa問題的文章中,作者使用到了基於spatial和基於temporal兩個層面的attetion模型,效果肯定提公升了不用說,該問題更是極好的利用了這兩點,其實這兩種應用方式早在mt中得到了利用。
**今天實在太晚了,我要回家睡覺,先寫到這,不然又不知道幾點睡,不能總熬夜
**上次說周五前更新完,結果拖了一周了,不過想想也沒說哪個周五,啊哈哈哈。這裡趕緊補上
上圖的兩種attention用法都屬於soft attention,即通過確定性的得分計算來得到attended之後的編碼隱狀態,圖示來自**
jang y, song y, yu y, et al. tgif-qa: toward spatio-temporal reasoning in visual question answering[j]. arxiv preprint arxiv:1704.04497, 2017.
我們來討論一下圖示中的左邊和右邊兩種attention是如何實現的。
假設前面視覺編碼後的特徵表示為7x7x3072維featuremaps(**裡的引數)m
t,然後來自text encoder的隱狀態為h
q1x1024,
生成乙個7x7的attend mask,a
t=f(hq,m
t),attended featuremaps 為at
mt,所以現在的維度不就變成了1x3072了嗎?
attention注意力機制
attention注意力機制的定義和本質 顧名思義 注意力機制的意思就是將注意力集中在重要的點上,忽略那些不重要的因素。注意力機制的本質其實就是對特徵分配注意力權重的過程。現在的重點就是注意力權重的獲取過程。encoder decoder模型定義 以機器翻譯為例,來講解attention機制。機器翻...
Attention注意力機制
attention注意力機制及其實現 帶注意力機制的seq2seq翻譯模型 attention注意力機制介紹 自然語言處理中的自注意力機制 self attention mechanism 簡要描述就是 你正在做什麼,你就將注意力集中在那一點上 attention分為空間注意力和時間注意力,即spa...
attention注意力機制學習
目前主流的attention方法都有哪些?jaylou婁傑的回答 知乎 目前主流的attention方法都有哪些?張戎的回答 知乎 attention機制解讀 高峰ouc的文章 知乎 transformer詳解 一 attention機制詳解 被包養的程式猿丶的文章 知乎 簡說seq2seq原理及實...