最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Attention

2021-10-21 12:03 作者:神兮兮的喵社長(zhǎng)  | 我要投稿

深度學(xué)習(xí)有很多小模塊,attention模塊是比較受矚目的一個(gè)模塊了。在這里,會(huì)記錄一些相關(guān)的知識(shí)。

1.Attention的發(fā)展歷史

Attention mechanism起源于Google mind 2014年《advances in neural information processing systems》的《Recurrent models of visual attention》圖像分類(lèi)項(xiàng)目。簡(jiǎn)單描述圖像中的attention思想。他們研究的動(dòng)機(jī)受到人類(lèi)注意力機(jī)制的影響。人們?cè)谶M(jìn)行觀(guān)察圖像的時(shí)候,其實(shí)并不是一次就把整幅圖像的每個(gè)位置像素都看過(guò),大多是根據(jù)需求將注意力集中在圖像的特定部分。而且人類(lèi)會(huì)根據(jù)之前觀(guān)察的圖像學(xué)習(xí)到未來(lái)要觀(guān)察圖像注意力應(yīng)該集中的位置。該模型是在傳統(tǒng)的RNN上加入了attention機(jī)制,通過(guò)attention去學(xué)習(xí)一幅圖像要處理的部分,每個(gè)當(dāng)前狀態(tài)都會(huì)根據(jù)前一個(gè)狀態(tài)學(xué)習(xí)得到的要關(guān)注的位置和當(dāng)前輸入的圖像,去處理注意力部分像素,而不是圖像的全部像素。這樣的好處是更少的像素需要處理,減少了任務(wù)的復(fù)雜度。

在2014年《Computer science》的《Neural machine translation by jointly learning to align and translation》機(jī)器翻譯項(xiàng)目中引入NLP領(lǐng)域。在傳統(tǒng)的Neural machine translation(NMT)模型中,Encoder用一個(gè)RNN對(duì)源語(yǔ)言編碼,Decoder用一個(gè)RNN進(jìn)行解碼翻譯。而基于attention機(jī)制的NMT中,它在傳統(tǒng)的基礎(chǔ)上,把源語(yǔ)言端的每個(gè)詞學(xué)到的表達(dá)和當(dāng)前要翻譯的詞通過(guò)設(shè)計(jì)的attention聯(lián)系了起來(lái)。經(jīng)過(guò)模型訓(xùn)練,得到attention矩陣,完成翻譯。

在2015年中,基于attention機(jī)制的RNN模型爆發(fā)。

直到2017年,《advances in neural information processing systems》的《attention is all you need》論文發(fā)表,attention及其變種爆發(fā)。

2.Attention的例子

通過(guò)seq2seq的例子來(lái)感受attention的思想。

在Encoder的過(guò)程中保留每個(gè)RNN單元的隱藏狀態(tài),得到(h1,h2,……,hn)。

在Decoder的每一個(gè)timestep,根據(jù)decoder的輸入和上一步的隱藏狀態(tài)輸出,可以得到當(dāng)前步的隱藏狀態(tài)。假設(shè)第t步的隱藏狀態(tài)為St,利用St和hi進(jìn)行dot點(diǎn)積得到attention score,也稱(chēng)為“相似度”、“影響度”或者是“匹配得分”。

3.Attention的定義

Attention的通用定義如下:給定一組向量集合values,以及一個(gè)向量query,attention機(jī)制是一種根據(jù)該query計(jì)算values的加權(quán)求和的機(jī)制。重點(diǎn)就是這個(gè)集合values中的每個(gè)value的“權(quán)值”的計(jì)算方法。

比較感性的認(rèn)識(shí)就是我們重新定義了一個(gè)卷積層的計(jì)算方式,這個(gè)卷積層把我們?cè)谝曈X(jué)上或者語(yǔ)言上的向量或者矩陣表示中重要的部分加黑標(biāo)注,給不重要的部分進(jìn)行淡化消失。

4.attention及其變種

在attention的例子和定義中,我們初步了解attention的初衷。但是僅僅了解attention的初始版本是不夠的。以下內(nèi)容會(huì)介紹attention的變種。

從計(jì)算方式來(lái)講,針對(duì)attention的變種主要有兩種方式:

a.?????? 在attention向量的加權(quán)求和計(jì)算方式上進(jìn)行創(chuàng)新

b.?????? 在attention score的計(jì)算方式上進(jìn)行創(chuàng)新

c.?????? 把a(bǔ)和b結(jié)合起來(lái)

在attention向量的加權(quán)求和計(jì)算方式上進(jìn)行創(chuàng)新有以下幾種:

(1)?????? soft attention,global attention,動(dòng)態(tài)attention

這三個(gè)都是soft attention。也就是上面講過(guò)的最常見(jiàn)的attention,即在求注意力分配概率分布的時(shí)候,對(duì)于輸入句子或者圖像X任意一個(gè)單詞或者像素都給出概率,是個(gè)概率分布,把a(bǔ)ttention變量(context vector)用ct表示。Attention得分在經(jīng)過(guò)了softmax過(guò)后的權(quán)值用alpha表示。

《neural machine translation by jointly learning to align and translate》

(2)?????? hard attention

前面soft是給每個(gè)單詞都賦予一個(gè)單詞match的概率。那么如果直接從輸入句子里面找到某個(gè)特定單詞,然后把目標(biāo)句子單詞和這個(gè)單詞對(duì)齊,而其他輸入句子中的單詞硬性的認(rèn)為對(duì)齊概率為0。這就是hard attention的思想。Hard attention一般用在圖像里,當(dāng)圖像區(qū)域被選中時(shí),權(quán)重為1,其余情況為0。

《neural image caption generation with visual attention》

(3)?????? 靜態(tài)attention

靜態(tài)attention對(duì)輸出句子共用一個(gè)St的attention就夠了,一般用在Bilstm的首位hidden state輸出拼接起來(lái)做St。

《effective approaches to attention based neural machine》

(4)?????? Local attention

Soft attention每次對(duì)齊的時(shí)候都要考慮前面的encoder的所有hi,所以計(jì)算量會(huì)很大,因此一種樸素的思想是只考慮部分窗口內(nèi)的encoder隱藏輸出,其余為0。在窗口內(nèi)使用softmax的方式轉(zhuǎn)換為概率。

對(duì)于時(shí)刻t的每一個(gè)目標(biāo)詞匯,首先產(chǎn)生一個(gè)對(duì)齊的位置pt,context vector由編碼器中一個(gè)集合的隱藏層狀態(tài)計(jì)算得到,編碼器中的隱藏層包好在窗口[pt-D, pt+D]中,D的大小通過(guò)經(jīng)驗(yàn)選擇。公式pt中,大S指的是源句子的長(zhǎng)度,Wp和vp是指模型的參數(shù),通過(guò)訓(xùn)練得到,為了支持pt附近的對(duì)齊點(diǎn),設(shè)置一個(gè)圍繞pt的高斯分布,其中小s是在以pt為中心的窗口中的整數(shù),pt是一個(gè)在[0, S]之間的實(shí)數(shù)。小Sigma一般取窗口大小的一半。

(5)?????? 強(qiáng)制前向attention

要求在生成目標(biāo)句子時(shí),如果某個(gè)輸入單詞已經(jīng)和輸出單詞對(duì)齊了,那么后面基本不太考慮再試用它。

《Teach machines to read and comprehend》

《supervised sequence labelling with recurrent neural networks》

在attention score的計(jì)算方式上進(jìn)行創(chuàng)新。原始的soft attention的attention向量的計(jì)算總是依賴(lài)與權(quán)重求和,而權(quán)重往往是attention score的softmax。式子中的變量e代表的就是attention score,alpha是attention的權(quán)重,a是context vector。根據(jù)attention score的計(jì)算方式不同,我們可以將attention細(xì)分為以下幾種:

(1)?????? 點(diǎn)積attention score

(2)?????? 乘積attention score

(3)?????? 加法attention score

更加特殊的attention

(1)?????? self attention

self attention也叫作 intra attention,在沒(méi)有任何額外信息的情況下,仍然可以通過(guò)允許句子使用self attention機(jī)制來(lái)處理自己,從句子中提取需要關(guān)注的信息。Self attention在很多任務(wù)上表現(xiàn)十分出色,比如閱讀理解、文本繼承、自動(dòng)文本摘要。以上這些已經(jīng)被證明是非常有效的。Self attention的計(jì)算方式如下:

(a) 以當(dāng)前的隱藏狀態(tài)去計(jì)算和前面的隱藏狀態(tài)的得分,作為當(dāng)前隱藏單元的attention score

(b) 以當(dāng)前狀態(tài)本身去計(jì)算得分作為當(dāng)前單元attention score,這種方式更常見(jiàn),更簡(jiǎn)單

(c) 針對(duì)第二種計(jì)算方式,其又有矩陣的變形,令矩陣H=[h1,h2,……,hn]表示句子的隱藏矩陣,每個(gè)隱藏狀態(tài)為2u維

《feed forward networks with attention can solve some long-term memory problems》

《a structured self-attentive sentence embedding》

(2)?????? key value attention

簡(jiǎn)單來(lái)說(shuō)Key value attention是將hi拆分成兩部分,keyi和valuei,使用的時(shí)候只針對(duì)key部分計(jì)算attention權(quán)重,然后加權(quán)求和的時(shí)候只使用value部分進(jìn)行加權(quán)求和。

《Frustratingly short attention spans in neural language modelling》

(3)?????? multi-head attention

4.小結(jié)

從上面的內(nèi)容和公式來(lái)看,attention機(jī)制其實(shí)就是一個(gè)加權(quán)求和的機(jī)制。所以只要我們使用了加權(quán)求和,不管是怎么加權(quán),怎么求和,只要是根據(jù)已有信息計(jì)算的隱狀態(tài)的加權(quán)求和,那么就是使用了attention。而所謂的self attention只是僅僅在句子內(nèi)部做加權(quán)求和(區(qū)別于seq2seq里面decoder對(duì)encoder的隱藏狀態(tài)的加權(quán)求和)

Self attention作用范圍可能更大一點(diǎn),而key value其實(shí)是對(duì)attention進(jìn)行了更廣泛的定義,前面的attention都可以套上key value attention,比如我們有時(shí)候把k和v當(dāng)做一樣的來(lái)計(jì)算,比如self attention的時(shí)候query=key=value。


Attention的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
图木舒克市| 张家口市| 祁门县| 滦南县| 土默特左旗| 灵宝市| 航空| 永和县| 双辽市| 陆丰市| 谷城县| 涡阳县| 普宁市| 吐鲁番市| 大邑县| 红安县| 莒南县| 阿鲁科尔沁旗| 攀枝花市| 安溪县| 岱山县| 奉化市| 洪泽县| 呼伦贝尔市| 茂名市| 土默特右旗| 万安县| 竹山县| 东丰县| 南陵县| 西乌珠穆沁旗| 镇安县| 新昌县| 克什克腾旗| 巢湖市| 孝义市| 永清县| 石城县| 特克斯县| 新沂市| 米林县|