国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

注意力機制在深度學習中的研究進展

2019-08-05 01:42:28朱張莉祁江楠
中文信息學報 2019年6期
關(guān)鍵詞:數(shù)據(jù)源注意力向量

朱張莉,饒 元,吳 淵,祁江楠,張 鈺

(1. 西安交通大學 軟件學院 社會智能與復雜數(shù)據(jù)處理實驗室,陜西 西安 710049;2. 陜西師范大學 計算機科學學院,陜西 西安710119)

0 引言

近年來,隨著深度學習技術(shù)的逐步興起,越來越多的研究人員將深度學習模型引入到自然語言處理(natural language processing, NLP)以及多媒體的內(nèi)容對象識別任務(wù)中。例如,Y Kim采用卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)解決話題分類任務(wù)[1];I Sutskever將遞歸神經(jīng)網(wǎng)絡(luò)(recurrent neural networks,RNN)應(yīng)用到文本生成任務(wù)中[2];Ma Xuezhe結(jié)合多種深度神經(jīng)網(wǎng)絡(luò)解決序列標注的問題[3]。這些使用深度學習網(wǎng)絡(luò)的方法在各領(lǐng)域任務(wù)中都取得了比以往研究更好的效果。其中,Encoder-Decoder作為深度學習任務(wù)中較為常見的框架,已成功應(yīng)用于各個領(lǐng)域。但是由于其作為一種通用的框架模型,并不針對某一特定領(lǐng)域而設(shè)計,這就導致了該框架本身存在以下亟待解決的問題和技術(shù)挑戰(zhàn)。

(1)長程記憶能力有限:傳統(tǒng)的深度學習模型如RNN在新的時間狀態(tài)下不斷疊加輸入序列會導致前面的輸入信息變得越來越模糊,即存在長程記憶能力有限問題;CNN雖然在一定程度上可以緩解該問題,但由于濾波器一般不會選擇太大,所以并不能很好地解決此問題。特別是如果源句子序列非常長,那么由于梯度更新中衰減較大,導致序列頭部的參數(shù)無法有效更新,模型難以學到合理的向量表示,并且先輸入的內(nèi)容攜帶的信息會被后續(xù)輸入的信息稀釋掉,輸入序列越長,這個現(xiàn)象就越嚴重。因此,如何改善模型設(shè)計的結(jié)構(gòu)缺陷,成為引入注意力機制需要解決的基本問題。

(2)序列轉(zhuǎn)化過程中的相互關(guān)系:從源序列A到目標序列B的轉(zhuǎn)化過程中,解碼器基本上沿著源序列的順序依次接受輸入,且輸入始終是一段固定的特征向量,并不是按照位置對A進行檢索。由于不同的時間步長或者空間位置信息具有明顯的差別,利用定長表示無法很好的解決信息損失問題,如何更好地利用注意力機制學習內(nèi)容之間的相互關(guān)系進而表示這些信息,具有很高的實用價值,成為亟待解決的問題。

(3)提升模型動態(tài)結(jié)構(gòu)輸出質(zhì)量:讓任務(wù)處理系統(tǒng)能夠更有效地獲得輸入數(shù)據(jù)與當前的輸出數(shù)據(jù)之間的有用信息,從而提高輸出的質(zhì)量。在實際使用中可能要求在不同時刻關(guān)注不同信息,可通過引入現(xiàn)有注意力機制及注意力機制的變種動態(tài)獲取需要關(guān)注的部分信息,進而生成更合理的輸出。

注意力機制(attention mechanism)的出現(xiàn),使得傳統(tǒng)Encoder-Decoder框架中存在的問題得以緩解。注意力機制通過對模型中不同關(guān)注部分賦予不同的權(quán)重,并從中抽取出更加重要和關(guān)鍵的信息,從而優(yōu)化模型并做出更為準確的判斷。Google DeepMind團隊于2014年率先在RNN模型上引入注意力機制來實現(xiàn)圖像的分類[4],完成了圖像中多個物體對象的高效準確識別[5],使其在MNIST分類任務(wù)中錯誤率下降4%,驗證了注意力機制在圖像處理領(lǐng)域的有效性,同時也使得結(jié)合注意力機制的神經(jīng)網(wǎng)絡(luò)成為了研究熱點。隨后,Bahdanau等[6]在文獻[7]工作的基礎(chǔ)上,第一個將注意力機制引入到機器翻譯領(lǐng)域,這也是注意力機制在NLP中的首次應(yīng)用。隨著研究的推進,W Yin在其本人先前工作[8]的基礎(chǔ)上引入注意力機制,并將新模型應(yīng)用于句子建模的任務(wù)中[9]。在此基礎(chǔ)上,Google機器翻譯團隊摒棄了依賴于復雜RNN或CNN來處理序列變換的Encoder-Decoder架構(gòu),轉(zhuǎn)而采用更為簡單的基于注意力機制的序列轉(zhuǎn)換器網(wǎng)絡(luò)架構(gòu)(Transformer)進行序列變換[10],并在WMT2014 English-to-German翻譯任務(wù)中,將BLEU值提升至28.4,超當時的最佳模型2分。

可見,如何更好地將注意力機制與神經(jīng)網(wǎng)絡(luò)相結(jié)合,已成為當前深度學習各領(lǐng)域共同關(guān)注的熱點問題[6,9-10]。本文主要針對注意力機制與深度學習網(wǎng)絡(luò)模型結(jié)合過程中相關(guān)的技術(shù)挑戰(zhàn)以及相應(yīng)的最新研究工作進展進行分析與綜述。

1 注意力機制定義與原理

注意力機制是由Treisman和Gelade提出的一種模擬人腦注意力機制的模型[4],它可以看成是一個組合函數(shù),通過計算注意力的概率分布,來突出某個關(guān)鍵輸入對輸出的影響。一般大多數(shù)注意力機制均基于Encoder-Decoder框架,特別是在文本處理領(lǐng)域中常用的Encoder-Decoder抽象框架,如圖1所示。

圖1 抽象的Encoder-Decoder框架

該模型將一個變長的輸入X=(x1,x2,…,xn),映射到一個變長輸出Y=(y1,y2,…,ym)。其中,Encoder(編碼器)把一個變長的輸入序列X,通過非線性變換轉(zhuǎn)化為一個中間的語義表示C:C=f(x1,x2,…,xn);Decoder(解碼器)的任務(wù)是根據(jù)輸入序列X的中間語義表示C和先前已經(jīng)生成的y1,y2,…,yi-1來預測并生成i時刻的輸出yi=g(y1,y2,…,yi-1,C),其中,f()和g()均為非線性轉(zhuǎn)化函數(shù)。由于傳統(tǒng)的Encoder-Decoder框架對輸入序列X缺乏區(qū)分度,因此Bahdanau等[6]引入了注意力機制來解決這個問題,他們提出的模型結(jié)構(gòu)如圖2所示。

圖2 注意力機制的結(jié)構(gòu)示意圖[6]

其中,st-1是Decoder端在t-1時刻的隱狀態(tài),yt是目標詞,Ct是上下文向量,則t時刻的隱狀態(tài),如式(1)所示。

st=f(st-1,yt-1,Ct)

(1)

Ct依賴于編碼端輸入序列的隱藏層表示,通過加權(quán)處理后可表示如式(2)所示。

(2)

其中,hj表示Encoder端第j個詞的隱向量,它包含整個輸入序列的信息,但重點關(guān)注第j個詞周圍的部分。T是輸入端長度,αt,j表示Encoder端第j個詞對Decoder端第t個詞的注意力分配系數(shù),且αt,j概率值之和為1。αt,j的計算公式,如式(3)所示。

(3)

其中,at,j表示一個對齊模型,用于衡量Encoder端位置j的詞相對于Decoder端位置t的詞的對齊程度/影響程度。通常將對齊模型a參數(shù)化作為前饋神經(jīng)網(wǎng)絡(luò)與系統(tǒng)中其余部分共同訓練。常見的對齊方式有如下4種。

1) 加性注意力(additive attention)

(4)

其中,Wa∈n×n,Ua∈n×2u和a∈n表示權(quán)重矩陣,u為單向隱藏層單元數(shù)。加性注意力是最經(jīng)典的注意力機制[6],它通過使用隱含層的前饋神經(jīng)網(wǎng)絡(luò)來計算注意力的權(quán)重,由于Uahj不依賴于t,可提前計算以最小化計算量。

2) 乘法(點積)注意力(multiplicative attention)

(5)

其中,Wa∈n×2u表示權(quán)重矩陣。乘法注意力[11]和加性注意力在復雜度上是相似的,但由于乘法注意力可以使用矩陣操作,使其在實踐中計算速度更快,且存儲性能更高。在低維度解碼器狀態(tài)中兩者性能相似,但在高維情況上,加性注意力的性能更優(yōu)[11]。

3) 自注意力(self-attention)

(6)

其中,H∈T×2u表示輸入序列的隱向量。Wa∈da×2u是一個權(quán)重矩陣,a∈r×da是一個參數(shù)向量,其中da為一個自定義的超參數(shù),r為需要從輸入序列中抽取的信息個數(shù),A即為最終得到的注意力矩陣。由此可見自注意力機制通常不需要其他額外信息,它能夠關(guān)注自身進而從中抽取相關(guān)信息[12]。

4) 關(guān)鍵值注意力(key-value attention)

關(guān)鍵值注意力是Daniluk最近提出的注意力機制的變體[13],它將形式和函數(shù)分開,從而為注意力計算保持分離的向量。具體而言,關(guān)鍵值注意力將每一個隱藏向量hj分離為一個鍵kj用于計算注意力分布αj和一個值vj用于編碼下一個詞的分布和上下文表示,如式(7)所示。

(7)

其中,W1,W2∈n×n和va∈n是權(quán)重矩陣,L為注意力窗體的長度,1為所有單元為1的向量。

2 注意力機制分類

2.1 基本注意力機制結(jié)構(gòu)

2.1.1 軟注意力機制和硬注意力機制

Xu K根據(jù)每一時間步所關(guān)注的區(qū)域是一個區(qū)域還是所有的區(qū)域,將注意力機制分為如下兩類[14]:

1) 軟注意力機制(soft attention)

軟注意力機制考慮所有的輸入,但并不是給每個輸入相同的權(quán)重,而是更關(guān)注某些特定的輸入。如圖2所示,軟注意力機制會為每一個特征分配一個注意力權(quán)值,即一個概率分布。其特定區(qū)域信息的上下文向量Ct,j可直接通過比重加權(quán)求和得到,如式(8)所示。

(8)

軟注意力機制是參數(shù)化的,光滑且可微,可以被嵌入到模型中直接訓練,且梯度可以通過注意力機制模塊反向傳播到模型的其他部分。

2) 硬注意力機制(hard attention)

硬注意力機制是一個隨機過程,在某一時刻只關(guān)注一個位置信息,注意力相對集中,常采用One-Hot形式。位置信息的多元伯努利分布如式(9)所示。

(9)

注意力權(quán)重αt,j在此所起的作用是表明該位置是否被選中,只有0,1兩個選項。st,j是一個one-hot指示器,值為1表示第j個位置被選中,否則為0。為了實現(xiàn)梯度的反向傳播,需要采用蒙特卡羅采樣[11]方法來估計模塊的梯度。

兩種注意力機制都有各自的優(yōu)點,軟注意力機制相對發(fā)散,而硬注意力機制會專注于某一特定區(qū)域。Minh-Thang Luong[11]在此基礎(chǔ)上進一步提出針對上述兩種注意力機制的改進版本,即全局注意力(global attention)和局部注意力(local attention)。全局注意力機制關(guān)注全部位置的信息,因此計算開銷較大,為提升模型效率,遂提出局部注意力機制,該機制每次僅需關(guān)注源語言編碼中一個較小的上下文窗口,其計算復雜度要低于全局注意力機制和軟注意力機制,且與硬注意力機制不同的是,它幾乎處處可微,易于訓練。因此,常認為局部注意力機制是軟注意力機制和硬注意力機制優(yōu)勢上的混合體。

2.1.2 位置注意力機制

一般地,在文本中與目標詞距離較近的上下文詞匯比距離較遠的詞匯更重要。因此,Duyu Tang將位置信息(location attention)編碼到注意力模型中,并歸納出如下四種編碼策略[15]。

1)mj=ej⊙lj

(10)

其中,⊙表示逐元素相乘,ej∈d×1和lj∈d×1分別表示詞xj的詞向量和位置向量,mi即記憶向量表示。位置向量可通過式(10)計算得出,其中,T、k和d分別表示句子長度、跳數(shù)及維度,Lj是詞xj的位置。

2)lj=1-Lj/T

(11)

這是模型1)的簡化版,其在不同的跳中使用相同的位置向量lj。當Lj距離越大時,lj的重要性就越低。

3)mj=ej+lj

(12)

將位置向量lj視為模型的一個參數(shù),使用向量相加得到記憶向量。位置向量隨機初始化,并通過梯度下降學習得到。

4)mj=ej⊙σ(lj)

(13)

與模型3)不同的是,位置表示被認為是控制有多少單詞語義被寫入記憶的神經(jīng)門。對位置向量進行sigmoid函數(shù)σ處理,并使用逐元素相乘計算記憶向量mj。

在上述4個模型中,模型1)和模型2)位置向量的值是固定的,并以啟發(fā)式的方式進行計算;模型3)和模型4)位置向量作為參數(shù)與其他參數(shù)共同訓練。模型2)比較直觀、計算成本更低且不損失精度。模型4)對神經(jīng)門的選擇非常敏感。

2.1.3 輸入序列注意力機制

雖然基于位置的編碼取得了一定的進步,但是它們不足以完全捕獲特定詞匯與目標實體的關(guān)系以及它們可能對目標關(guān)系的影響。因此,Linlin Wang提出將注意力機制用于輸入序列(input attention mechanism),并設(shè)計了基于多層注意力機制的卷積神經(jīng)網(wǎng)絡(luò)模型,用來自動識別與關(guān)系分類相關(guān)的輸入句的部分[16]。圖3為將注意力機制應(yīng)用在輸入序列的整體結(jié)構(gòu)示意圖。

圖3 面向輸入序列的注意力機制示意圖[15]

(14)

1) 直接平均

(15)

其中,ci∈(dw+2dp)k為第i個詞的上下文信息,dw和dp是超參數(shù),k為滑窗大小。

2) 串聯(lián)

(16)

通過將詞向量串聯(lián)獲得第i個詞輸入注意力部分更多的信息,它包含了兩個實體的相關(guān)關(guān)系。

3) 距離

(17)

該處理方式將關(guān)系理解為兩個實體之間的映射,且結(jié)合了兩個實體特定的權(quán)重以獲取它們之間的關(guān)系。

輸入注意力部分的最終輸出是矩陣R=[r1,r2,…,rT]。

2.1.4 自注意力機制

自注意力[10,17-18](Self-attention,SAN)又稱內(nèi)部注意力,它通常僅關(guān)注自身并從中抽取相關(guān)信息,而不使用其它額外信息。傳統(tǒng)的注意力機制中,源端和目標端的內(nèi)容是不一樣的,得到的結(jié)果即源端的每個詞與目標端每個詞之間的依賴關(guān)系。而在自注意力機制中,注意力發(fā)生在源端內(nèi)部元素之間或者目標端內(nèi)部元素之間。

2.2 組合注意力機制結(jié)構(gòu)

2.2.1 協(xié)同注意力機制(co-attention)

協(xié)同注意力是注意力機制的一種變體,是一種雙向注意力,它不再只關(guān)注單獨的數(shù)據(jù)源P∈d×N,而是共同關(guān)注數(shù)據(jù)源P和數(shù)據(jù)源Q∈d×T。協(xié)同注意力需要使用數(shù)據(jù)源Q引導生成數(shù)據(jù)源P的注意力,而且還需要使用數(shù)據(jù)源P引導生成數(shù)據(jù)源Q的注意力權(quán)重。如圖4所示,它多用于問答系統(tǒng)[19-20],不僅需要給閱讀的資源(文檔或圖片)生成一個注意力權(quán)重,而且還需要給問句生成一個注意力權(quán)重,該方法適用于多模態(tài)問題。

圖4 層次協(xié)同注意力模型[19]

一般地,根據(jù)生成數(shù)據(jù)源注意力順序的不同,可將協(xié)同注意力分為兩種方式[19]:

1. 平行協(xié)同注意力(parallel co-attention)

平行協(xié)同注意力同時關(guān)注數(shù)據(jù)源P和Q。通過計算數(shù)據(jù)源P和數(shù)據(jù)源Q特征的相似性來將其結(jié)合,并形成一個關(guān)聯(lián)矩陣M∈T×N,如式(18)所示。

M=tanh(QTWbP)

(18)

其中,Wb∈d×d是權(quán)重矩陣。關(guān)聯(lián)矩陣M橫向代表數(shù)據(jù)源Q,縱向代表數(shù)據(jù)源P,數(shù)據(jù)源P和Q的注意力計算可采用如下兩種方法實現(xiàn)。

(1) 關(guān)聯(lián)矩陣簡單的最大化輸出

(19)

通過簡單的最大化輸出與其他形態(tài)位置的關(guān)聯(lián)性,來分別計算數(shù)據(jù)源P和Q的注意力。

(2) 將關(guān)聯(lián)矩陣作為一個特征

(20)

其中,Wp,Wq∈k×d,whp,whq∈k是權(quán)重矩陣。ap∈N和aq∈T是注意力概率分布。

2. 交替協(xié)同注意力(alternation co-attention)

在交替協(xié)同注意力機制中,順序地交替生成數(shù)據(jù)源P和數(shù)據(jù)源Q的注意力。其執(zhí)行過程包括如下三個方面的步驟:

① 將數(shù)據(jù)源Q轉(zhuǎn)化為單個向量q;

② 將q加入到數(shù)據(jù)源P中,生成數(shù)據(jù)源P的注意力權(quán)重;

③ 將②的輸出加入到數(shù)據(jù)源Q中,生成數(shù)據(jù)源Q的注意力權(quán)重。

該方法類似于交替使用兩次傳統(tǒng)注意力機制。

2.2.2 層疊式注意力機制(attention-over-attention,AoA)

層疊式注意力機制是一種交互式注意力,率先出現(xiàn)在閱讀理解式問答系統(tǒng)任務(wù)中。一般地,閱讀理解式問答系統(tǒng)的研究將問題看作一個整體,或者只考慮問題對文檔的影響,并沒有考慮文檔對問題的影響,而模型實際上可以利用更多的文檔—問題之間的交互信息[21]。

通常,問答系統(tǒng)在得到成對匹配矩陣M∈|D|*|Q|后,按列計算文檔D中每個單詞對問題Q中某個單詞的重要程度(即注意力),最終形成一個文檔級別的注意力分布α(t),如式(21)所示。

(21)

其中,矩陣M橫向表示問題,縱向表示文檔,它是文檔級問題詞向量的匹配矩陣,M(i,j)代表文檔中第i個單詞的上下文嵌入與問題中第j個單詞的上下文嵌入的點積之和。

Yiming Cui等設(shè)計了一種新的層疊式注意力模型,對問題進行了更細致的拆解[21]。在上述文檔級注意力的基礎(chǔ)上疊加了一層[22],按行計算問題中每個單詞對文檔中某個單詞的重要程度,形成一個問題級別的注意力分布β(t),然后對這些分布進行累加求平均得到β,如式(22)所示。

(22)

最后將文檔級的注意力分布α與問題級別的注意力分布β進行點積計算即求得增加了文檔級別的注意力αD,如式(23)所示。

αD=αTβ

(23)

在文檔級注意力的基礎(chǔ)上疊加了問題級注意力,使得這個注意力更有側(cè)重。相比于先前使用啟發(fā)式融合函數(shù)[22]或設(shè)置多個超參數(shù),Yiming Cui等[23]提出的模型結(jié)構(gòu)相對簡單,且不需要設(shè)置額外的手工超參數(shù),該模型還可在多個文檔級注意力之上自動生成一個集中注意力,并進行雙向的查找。相比于最先進的EpiReader,層疊式注意力閱讀器在CBTest NE和CBTest CN數(shù)據(jù)集上將準確率分別提升了2.3%和2.0%。近期,層疊式注意力被應(yīng)用于屬性級情感任務(wù)中,在Restaurant和Laptop兩個數(shù)據(jù)集上平均準確率分別達到81.2%和74.5%[23]。

2.2.3 多頭注意力機制(multi-head attention)

Google提出的簡單網(wǎng)絡(luò)架構(gòu)Transformer,是注意力機制的完善。并在此基礎(chǔ)上提出多頭注意力模型,如圖5所示[10]。

圖5 多頭注意力模型[10]

其中,Q、K、V分別是query、key和value的簡寫,K和V是一一對應(yīng)的,即為key-value的關(guān)系。相對于單一注意力只對K、Q、V進行注意力計算,研究發(fā)現(xiàn)通過使用模型學習得到多種映射器,分別對K、Q、V的各個維度進行多次線性映射,效果更佳[10],如式(24)所示。

MultiHead(Q,K,V)=Concat(head1,…,headh)WO

(24)

將Q、K、V通過矩陣映射后,重復執(zhí)行h次Attention操作(參數(shù)不共享),最后將結(jié)果拼接,即為“多頭”,本模型中的注意力都為SAN。通過多頭自注意力機制,能夠使用不同序列位置的不同子空間的表征信息來進行序列數(shù)據(jù)處理。而在單一注意力機制中,這些不同位置不同子空間的表征信息由于取均值操作的存在,而將被模型丟棄。

3 注意力機制研究進展

3.1 針對長程記憶能力有限的問題

在神經(jīng)網(wǎng)絡(luò)中增加外部記憶,解碼時與之交互,可以擴展神經(jīng)網(wǎng)絡(luò)的表達能力[24]。外部記憶可以將當前時刻重要的中間信息存儲起來,用于后續(xù)時刻,在一定程度上彌補了注意力機制的不足,能夠更好地擴展模型的表達能力及增強長距離依賴效果。如Duyu Tang等提出將基于上下文的注意力機制(content attention)運用到屬性級的情感分類中[15]。系統(tǒng)的輸入由外部記憶和屬性向量兩部分組成,輸出向量為每一塊外部記憶的加權(quán)和。該模型在Laptop和Restaurant數(shù)據(jù)集上分別在疊加7層和9層時達到最佳性能,準確率分別為72.37%和80.95%。

Han Zhang[25]提出自注意生成式對抗網(wǎng)絡(luò)(SAGAN),能夠為圖像生成任務(wù)實現(xiàn)注意力驅(qū)動的、長范圍的依存關(guān)系建模。傳統(tǒng)的卷積GAN只根據(jù)低分辨特征圖中的空間局部點生成高分辨率細節(jié),在SAGAN中,可使用所有特征點的線索來生成高分辨率細節(jié),且鑒別器能檢查圖片相距較遠部分的細節(jié)特征是否彼此一致。該模型在ImageNet數(shù)據(jù)集中將最好的Inception分數(shù)紀錄從36.8提高至52.52,并將Frechet Inception距離從27.62減少到18.65[25]。

3.2 序列轉(zhuǎn)化過程中的相互關(guān)系

注意力機制對源端和目標端對應(yīng)關(guān)系建模,是無監(jiān)督的模型。近期,在多個領(lǐng)域引入了注意力機制的變種,使其能更好地利用源端和目標端的信息。如:Yiming Cui等[22]提出的層疊式注意力機制,對問題進行了更細致的拆解,而不是簡單地將其看成一個整體[22],相比于最先進的EpiReader,層疊式注意力閱讀器在CBTest NE和CBTest CN數(shù)據(jù)集上將準確率分別提升了2.3%和2.0%。Caiming Xiong等在Yiming Cui等[21]層疊注意力的基礎(chǔ)上借鑒交替協(xié)同注意力機制的思想,將協(xié)同注意力應(yīng)用于機器閱讀理解式問答任務(wù)中,在SQuAD數(shù)據(jù)集上,整體F1值達到80.4%[20]。Jiasen Lu等[16]提出使用協(xié)同注意力機制處理VQA(visual question answering)任務(wù),將注意力機制分別用于圖像和問句中,并采用平行和交替兩種協(xié)同注意力機制策略。

3.3 模型動態(tài)結(jié)構(gòu)輸出質(zhì)量的提升

注意力機制通過改進源語言表達方式,在解碼中動態(tài)選擇源語言相關(guān)信息,從而極大地提升了模型動態(tài)結(jié)構(gòu)輸出質(zhì)量。如Linlin Wang等提出將注意力機制應(yīng)用在池化層,用于學習目標類別的注意力。該方法通過對窗口大小中各輸入向量的對應(yīng)維度進行卷積,以此來抽取窗口中有意義的N-gram短語,在SemEval-2010數(shù)據(jù)集上,將F1值提升至88%[16]。

雖然注意力機制可以改善傳統(tǒng)編碼器—解碼器中存在的一些問題,但引入注意力機制后,由于在獲得注意力分配權(quán)重時,需要計算源語言句子中所有詞語的權(quán)重,該過程耗費計算資源,且會導致這些模型的訓練速度和推斷速度變慢[17],因此會對模型的時間和空間性能產(chǎn)生一定的影響。

(1)注意力機制對計算量的影響:模型引入注意力機制后可能存在計算量較大的問題,可適當使用Minh-Thang Luong等提出的局部注意力代替全局注意力[11],來達到減少計算量的目的。局部注意力在生成上下文向量時只關(guān)注源語言小部分區(qū)域,把無關(guān)信息過濾掉,可以顯著減少計算量。在WMT 2014英語到德語翻譯上,局部注意力比全局注意力提高了0.9個BLEU值。另外在亞琛工業(yè)大學(RWTHAachen)英德詞對齊語料上,局部注意力詞對齊錯誤率為34%,比全局注意力詞對齊錯誤率減低了5%。

(2)注意力機制對存儲空間的影響:SAN雖然可以通過高度并行計算獲取輸入序列中每對元素應(yīng)用注意力機制生成的上下文表示,且相較于RNN和CNN而言,SAN在對遠距離和局部相關(guān)性兩方面都比較靈活。但是SAN需要很大的存儲空間存儲所有元素對的對齊分數(shù),對存儲空間的需求隨序列長度呈二次方增長。為解決上述問題,Shen T等提出了一種雙向分塊自注意力機制(Bi-directional block self-attention,Bi-BloSA),實現(xiàn)更快且節(jié)省空間的上下文融合,然后基于Bi-BloSA提出了不使用RNN/CNN的序列編碼模型,稱為雙向分塊自注意力網(wǎng)絡(luò)(Bi-directional block self-Attention network,Bi-BloSAN),它使用注意力機制將Bi-BloSA的輸出壓縮為一個向量表示[26]。這種模型具有高度的并行運算性,同時對局部和遠距離相關(guān)性進行了良好的建模,相較于DiSAN(雙向自注意力網(wǎng)絡(luò))的空間消耗隨序列長度增加呈現(xiàn)指數(shù)級的增長,經(jīng)過改進的Bi-BloSAN,其空間消耗明顯降低。

(3)注意力機制對模型訓練速度和推斷速度的影響:為解決模型訓練速度和推斷速度較慢的問題,Adams Wei Yu等在問答領(lǐng)域提出了一個名為QANet的新型問答系統(tǒng)框架,它不再需要循環(huán)網(wǎng)絡(luò),其編碼器僅由卷積和自注意力機制構(gòu)成,卷積可以對局部相互作用建模,而自注意力機制可以對全局相互作用建模[17]。在SQuAD 數(shù)據(jù)集上,QANet 模型的訓練速度提升到對應(yīng)的 RNN 模型的3~13倍、推斷速度提升到4~9倍,并且取得了和循環(huán)模型同等的準確率。速度的提升使得能夠使用更多的數(shù)據(jù)來訓練模型。因此,Adams將 QANet 模型和使用神經(jīng)機器翻譯模型回譯得到的數(shù)據(jù)結(jié)合了起來。在 SQuAD 數(shù)據(jù)集上,使用增強的數(shù)據(jù)訓練的模型在測試集上獲得了84.6的F1值,這遠遠優(yōu)于目前公開的最佳模型81.8的F1值。C Zhou等使用自注意力機制替代卷積神經(jīng)網(wǎng)絡(luò)或長短期記憶網(wǎng)絡(luò)(long short-term memory,LSTM),在Amazon購買行為的公開數(shù)據(jù)集上進行單行為預測實驗時,訓練速度較CNN/LSTM提升近4倍[27]。

4 注意力模型的主要應(yīng)用

基于注意力機制的神經(jīng)網(wǎng)絡(luò)被廣泛應(yīng)用于圖像識別、語音識別及自然語言處理等各種不同類型的深度學習任務(wù)中,是近兩年深度學習技術(shù)中值得關(guān)注與深入了解的核心技術(shù)之一。

4.1 圖像識別

2014年Google Deep Mind團隊率先在RNN模型上使用了注意力機制來進行圖像分類[4],該團隊提出了一種基于注意力機制的任務(wù)驅(qū)動的視覺處理框架。隨后,他們又提出一種基于注意力機制的用于圖像中多個物體識別的模型[5],該模型利用深度學習來訓練Deep RNN,其目的是找到輸入圖像中最相關(guān)的區(qū)域。Google Deep Mind團隊的這兩項工作的實驗都是基于變換的MNIST,他們將一個新的思路引入該領(lǐng)域,并在公開數(shù)據(jù)集上將圖像分類錯誤率降低了4%[5],這也為將其應(yīng)用于計算機視覺中大規(guī)模對象識別及分類任務(wù)提供了一個新的方向。

4.2 語音識別

Jan Chorowski等提出了一種基于注意力機制的新模型,即“attention-based recurrent sequence generator with Convolutional Features”[28],將注意力機制應(yīng)用到語音識別領(lǐng)域。該模型對長輸入具有很強的魯棒性,且在單一話語及10倍長(重復)的話語中分別達到了18% PER(phoneme error rate)和20%PER。

語音識別中的經(jīng)典模型(connectionist temporal classification,CTC),在基于注意力機制的Encoder-Decoder框架中由于注意力機制建立了語音與單詞之間的對應(yīng)關(guān)系,因此取得了較好的結(jié)果。Dzmitry Bahdanau等[29]在文獻[28]工作的基礎(chǔ)上,將注意力機制應(yīng)用到LVCSR中,主要是對注意力的計算范圍進行了2w的加窗,加快訓練和解碼速度,提升了模型的性能。但其仍存在一些不足:適合短語識別,對長句子的識別較差;當存在噪聲數(shù)據(jù)時訓練不穩(wěn)定。隨后,Suyoun Kim等提出了將注意力與CTC結(jié)合對語音聲學建模的方法,該模型共用一個Encoder,將另一端Decoder分為兩部分,一部分是注意力,另一部分是CTC,并通過權(quán)重λ給定不同的權(quán)重比[30]。

4.3 自然語言處理

4.3.1 機器翻譯

Bahdanau首次使用單層注意力機制解決機器翻譯中不同長度的源語言對齊問題,將翻譯和對齊同時進行,顯著提高了神經(jīng)機器翻譯模型的翻譯性能[6]。

為了解決定長源語言句子向量難以捕獲長距離依賴的問題,Junczys Dowmunt等[31]引入了注意力機制動態(tài)計算源語言端上下文,在聯(lián)合國平行語料庫30個語言對上,與傳統(tǒng)的統(tǒng)計機器翻譯相比,除在兩個語言對上神經(jīng)機器翻譯略遜色于基于短語的統(tǒng)計機器翻譯外,在其他翻譯對上神經(jīng)機器翻譯都取得了壓倒性的優(yōu)勢[31]。盡管如此,它仍存在一些問題:由于缺乏對注意力調(diào)整的約束,可能會導致最終翻譯結(jié)果出現(xiàn)“過譯”和“漏譯”現(xiàn)象。

為了緩解上述問題,Z Tu等使用一個覆蓋率向量來記錄注意力歷史[32],覆蓋率向量作為模型的輸入用于調(diào)整后續(xù)的注意力權(quán)重,它能夠讓神經(jīng)機器翻譯系統(tǒng)考慮更多的未翻譯詞。相比基于標準注意力機制的神經(jīng)翻譯系統(tǒng),改進后的模型提高了0.2%的翻譯質(zhì)量和4.17%的對齊質(zhì)量。

Cheng Yong等發(fā)現(xiàn)源語言到目標語言翻譯模型和目標語言到源語言翻譯模型在計算注意力時均存在不足但可以相互彌補,因而通過在訓練目標中加入一致性約束,鼓勵兩個模型相互幫助,將兩個翻譯方向的性能分別提高了0.76%和1.52%[33]。

劉洋提出,盡管將人類的先驗知識和數(shù)據(jù)驅(qū)動的神經(jīng)網(wǎng)絡(luò)方法相結(jié)合在神經(jīng)機器翻譯工作中取得了一定的進展,但目前只能加入有限的先驗知識,尚缺乏一個通用的框架來支持向神經(jīng)機器翻譯中加入任意的先驗知識[34]。

4.3.2 文本摘要

Radev等將摘要定義為:從一個或多個文本中提取出來的一段文字,它能夠表達原始文本中重要信息,且其長度不超過或遠少于原文本的一半[35]。文本摘要旨在通過機器自動輸出簡潔、流暢、保留關(guān)鍵信息的摘要。文本摘要從技術(shù)上通??煞譃槿悾撼槿∈秸?extractive)、理解式摘要(abstractive)和壓縮式摘要(compressive)。

龐超等提出了一種基于分類的理解式摘要模型,該模型將注意力機制引入到基于遞歸神經(jīng)網(wǎng)絡(luò)的Encoder-Decoder框架中,從而使模型能夠更加精確地獲取原文的中心內(nèi)容,模型還與分類器相結(jié)合,并在大量的語料下同時訓練這兩部分內(nèi)容。在文本摘要任務(wù)中相較于MOSES+模型,該模型在ROUGE-1、ROUGE-2和ROUGE-L分別提升2.78%、0.23%和1.04%[36]。

使用Encoder-Decoder框架的文本摘要是在機器翻譯的基礎(chǔ)上逐步發(fā)展的,但是兩者的任務(wù)仍存在本質(zhì)區(qū)別:機器翻譯是要盡可能地保證信息的完整性,且翻譯過程中的輸入輸出序列長度大致相同;而文本摘要要求盡可能使用凝練的語句來表達整體信息,且摘要的長度不超過或遠少于原文本的一半。

4.3.3 問答系統(tǒng)

問答系統(tǒng)(question answering,QA)用于回答人們以自然語言形式提出的問題,周博通等[37]針對大規(guī)模知識庫問答的特點,構(gòu)建了一個包含3個主要步驟的問答系統(tǒng):問句中的命名實體識別、問句與屬性的映射和答案選擇,使用結(jié)合注意力機制的雙向LSTM進行屬性映射。該系統(tǒng)在NLPCC-ICCPOL 2016 KBQA任務(wù)提供的測試數(shù)據(jù)集上的平均F1值為0.809 7,接近已發(fā)表的最好水平。

David Golub等提出一種character-level的Encoder-Decoder方法,引入注意力機制,改進了之前基于word-level的Encoder-Decoder中存在的OOV問題及訓練參數(shù)較多的問題[18]。David Golub分別對比了word-level和character-level模型在entity和predicate上的準確率。結(jié)果顯示,在predicate上的預測準確率相差不大,但是在entity上的預測準確率相差較大,word-level的準確率大約為45.0%,和character-level準確率的96.6%相差甚遠。結(jié)果表明引入注意力機制的character-level方法,有效地改善了問答系統(tǒng)中OOV問題,它使用較少的訓練集,并且減少了訓練參數(shù),將準確率提高了7個百分點。

5 未來研究方向

目前,結(jié)合注意力機制的Encoder-Decoder框架取得巨大成功,新的研究成果不斷涌現(xiàn)出來,注意力機制如何更好地和神經(jīng)網(wǎng)絡(luò)結(jié)合以及其自身的不斷改進仍然是當下和未來的研究熱點。

(1)多模態(tài)注意力機制:多模態(tài)注意力機制利用的資源不限于文本,目前研究主要結(jié)合使用圖像或語音信息。通常采用兩個編碼器,一個對文本信息進行編碼,另一個對圖像或者語音信息編碼。在解碼時,通過注意力機制將不同模態(tài)信息進行融合。目前工作利用的多模態(tài)信息較為單一,未來我們可將其運用于富媒體,如視頻等領(lǐng)域。

(2)構(gòu)建通用的注意力的評價機制:雖然結(jié)合注意力機制的深度學習網(wǎng)絡(luò)均取得了一定成功,但現(xiàn)在尚未存在統(tǒng)一的評價機制。如何結(jié)合注意力機制的優(yōu)勢構(gòu)建通用的評測方法,將會成為未來研究的熱點。

(3)增強模型的可解釋性:神經(jīng)網(wǎng)絡(luò)相當于一個“黑匣子”,無法檢查系統(tǒng)中存在的偏差,無法對運行良好的系統(tǒng)提供具體的解釋??梢暬亲畛R姷氖潞蠼忉岊愋?,目前廣泛應(yīng)用于機器翻譯等領(lǐng)域[6-7],未來可借鑒Za Chary Lipton[38]提出的事后解釋和透明度兩種解釋方式增強模型的可解釋性。

(4)注意力機制與新模型的融合:神經(jīng)網(wǎng)絡(luò)的新模型不斷出現(xiàn),如何設(shè)計注意力機制使其能更好地與新模型相融合也是一個需要關(guān)注的熱點問題。如將注意力機制融入Hinton的膠囊網(wǎng)絡(luò)[39]中。

6 總結(jié)

本文從多個角度對深度學習中注意力機制進行了介紹,包括注意力模型的定義與原理、多種不同的分類方式和主要應(yīng)用,并針對注意力機制研究過程中所存在的長程記憶能力有限、序列轉(zhuǎn)化過程中的相互關(guān)系、模型動態(tài)結(jié)構(gòu)輸出質(zhì)量和引入注意力機制后對模型時間和空間性能的影響等關(guān)鍵性技術(shù)問題與挑戰(zhàn)進行了分析與綜述。使用注意力機制的一個主要優(yōu)勢是它能更好地解釋并可視化整個模型,即便于理解在模型輸出過程中輸入序列中的信息是如何影響最后生成序列的,因此融合注意力的模型在深度學習的各個領(lǐng)域均得到廣泛的應(yīng)用。

注意力機制擴展了神經(jīng)網(wǎng)絡(luò)的能力。它可以專注于輸入的特定部分,使自然語言基準測試的性能得到改進,以及賦予圖像字幕、記憶網(wǎng)絡(luò)和神經(jīng)程序全新的能力。結(jié)合注意力機制的深度神經(jīng)網(wǎng)絡(luò)在部分領(lǐng)域呈現(xiàn)出全面超越傳統(tǒng)神經(jīng)網(wǎng)絡(luò)的趨勢。雖然目前該機制在多模態(tài)、評價機制、可解釋性及與新模型的融合等方面尚存在不足之處,但必將成為未來深度學習的發(fā)展方向。

猜你喜歡
數(shù)據(jù)源注意力向量
向量的分解
讓注意力“飛”回來
聚焦“向量與三角”創(chuàng)新題
Web 大數(shù)據(jù)系統(tǒng)數(shù)據(jù)源選擇*
“揚眼”APP:讓注意力“變現(xiàn)”
傳媒評論(2017年3期)2017-06-13 09:18:10
基于不同網(wǎng)絡(luò)數(shù)據(jù)源的期刊評價研究
A Beautiful Way Of Looking At Things
向量垂直在解析幾何中的應(yīng)用
向量五種“變身” 玩轉(zhuǎn)圓錐曲線
基于真值發(fā)現(xiàn)的沖突數(shù)據(jù)源質(zhì)量評價算法
喜德县| 沈阳市| 丽水市| 昭平县| 德安县| 浮山县| 永善县| 新干县| 蕉岭县| 肃南| 双辽市| 思茅市| 平陆县| 泰来县| 澎湖县| 扎兰屯市| 衡阳县| 仁怀市| 洛南县| 凯里市| 洛隆县| 聂拉木县| 子洲县| 绥宁县| 白城市| 福海县| 外汇| 南乐县| 万荣县| 汕头市| 垣曲县| 米易县| 壶关县| 宕昌县| 夏邑县| 留坝县| 巨鹿县| 五大连池市| 霍州市| 武乡县| 宁陕县|