鏈接:arxiv.org/pdf/1904.0287(2019.4.5)

【摘要】注意力模型已經成為神經網路中的一個重要概念,已經在不同的應用領域進行了研究。本次調查對modeling attention的發展進行了結構化和全面的概述。特別是,我們提出了一種分類法,將現有的技術分為連貫的類別。我們回顧了注意力被納入的不同的神經結構,並展示了注意力如何提高神經模型的可解釋性。最後,我們討論了modeling attention在其中具有重要影響的一些應用。我們希望這個調查將提供一個簡潔的注意模型介紹,並指導從業者在開發他們的應用方法。

1、【介紹】注意模型(AM)概念首先由機器翻譯引入,目前已成為神經網路文獻中的一個主要概念。在自然語言處理、統計學習、語音和計算機視覺等領域有著廣泛的應用。注意力背後的直覺可以用人類的生物系統來最好地解釋。例如,我們的視覺處理系統傾向於有選擇地聚焦於圖像的某些部分,而忽略其他不相關的信息,這種方式有助於感知。同樣,在涉及語言、語言或視覺的幾個問題中,輸入的某些部分可能比其他部分更相關。例如,在翻譯和總結任務中,只有輸入序列中的某些單詞可能與預測下一個單詞相關。同樣,在圖像描述問題中,輸入圖像的某些區域可能與在標題中生成下一個單詞更相關。AM(Attention Model)通過允許模型只動態地關注有助於有效執行手頭任務的輸入的某些部分,從而整合了相關性的概念。圖1顯示了使用AM對Yelp評論進行情緒分類的示例。

在本例中,AM瞭解到,在五個句子中,第一句和第三句更為相關。此外,這些句子中的「delicious」和「amazing」兩個詞對於確定評論的情緒更有意義。

神經網路中model attention的快速發展主要有三個原因。首先,這些模型現在是最先進的,用於機器翻譯、回答問題、情緒分析、部分語音標記、選區分析和對話系統等多項任務。其次,除了在主要任務上提高性能外,它們還提供了其他幾個優勢。它們被廣泛用於提高神經網路的可解釋性,而神經網路又被視為黑盒模型。這是一個顯著的好處,主要是因為人們對影響人類生活的應用程序中機器學習模型的公平性、問責制和透明度越來越感興趣。第三,它們有助於克服循環神經網路(RNN)的一些挑戰,例如隨著輸入長度的增加,性能下降和輸入順序處理導致的計算效率低下。因此,在這項工作中,我們的目標是提供一個簡短的,但全面的關於attention modeling調查。

文章組織:我們在第2節中簡要解釋了Bahdanau等人[2014]提出的AM。我們將在第3節中描述我們的分類法,然後我們將分別在第4節和第5節中討論使用AM的關鍵神經架構以及注意力如何促進神經網路的可解釋性。

相關調查:關於計算機視覺(Wang and Tax,2016年)和圖形(Lee等人,2018年),已經有一些注意力的調查。另一項類似的工作是由Galassi等人[2019年],但我們進一步整合了可訪問的分類法、關鍵架構和應用程序以及AM的可解釋性方面。我們希望我們的貢獻不僅能夠促進對AM的更廣泛理解,而且能夠幫助人工智慧開發人員和工程師為他們的應用領域確定正確的方法。

2 Attention Model

sequence-to-sequence模型(如圖二a所示)包含encoder-decoder結構([Cho等人,2014b).encoder是一個RNN,它接受x1,x2,…,xt的輸入序列,其中t是輸入序列的長度,並將其編碼為固定長度矢量h1,h2,…,ht。decoder也是一個RNN,它以一個固定長度的向量ht作為輸入,生成一個輸出序列y1,y2,…,yT,其中T是輸出序列的長度。在每個位置t,ht和st分別表示編碼器和解碼器的隱藏狀態。

Challenges of traditional encoder-decoder:傳統的編碼器框架有兩個眾所周知的挑戰。首先,編碼器必須將所有輸入信息壓縮成一個固定長度的向量ht,然後將其傳遞給解碼器。使用一個固定長度的向量壓縮long and detailed的輸入序列可能會導致信息丟失[Cho等人,2014a]。其次,它無法對輸入和輸出序列之間的對齊進行建模,這是翻譯或摘要等結構化輸出任務的一個重要方面[Young et al., 2018]。直觀地說,在sequence-to-sequence的任務中,每個輸出標記都應該更受輸入序列的某些特定部分的影響。然而,解碼器在生成每個輸出標記時,缺乏任何機制來選擇性地關注相關的輸入標記。

Key idea:AM(Attention Model)旨在通過允許解碼器訪問整個編碼輸入序列h1、h2、…、ht來緩解這些挑戰。其核心思想是在輸入序列上引入注意權重α,以優先考慮存在相關信息的位置集,以生成下一個輸出標記。

Usage of attention:相應的具有注意力機制的編碼器-解碼器體系結構如圖2(b)所示。結構中的attention block負責學習attention weights αij,其捕獲hi(編碼器隱藏狀態,我們稱之為候選狀態)與sj(解碼器隱藏狀態,我們稱之為查詢狀態)的相關性.然後,這些注意力權重用於構建上下文向量C,該向量作為輸入傳遞給解碼器。在每個解碼位置j,上下文向量cj是編碼器所有隱藏狀態及其相應注意權的加權和,即

通過這個額外的上下文向量,解碼器可以訪問整個輸入序列的,也可以關注輸入序列中的相關位置。

Learning attention weights:注意力權重是通過在體系結構中加入一個額外的前饋神經網路來學習的。這種前饋網路學習特定的attention weights αij作為兩種狀態的函數,hi(候選人狀態)和sj?1(查詢狀態)作為神經網路的輸入。此外,該前饋網路與該體系結構的編解碼器組件聯合訓練。

3 Taxonomy of Attention

我們將注意力分為四大類,並闡明瞭每個類別中不同類型的注意力,如表1所示。我們要強調,這些類別並不相互排斥。注意可以作為多個類別的組合來使用。Yang等人[2016]採用了multi-level, self and soft attention的結合。因此,我們可以把這些範疇看作是在將注意力用於感興趣的應用時可以考慮的維度。為了使這個概念更容易理解,我們提供了一個關鍵技術論文列表,並在表2中指定了建議的方法中使用的多種attention類型。

3.1 Number of sequences

到目前為止,我們只考慮了涉及單個輸入和相應輸出序列的情況。當候選狀態和查詢狀態分別屬於兩個不同的輸入和輸出序列時,就會使用這種類型的注意,我們稱之為distinctive。用於翻譯的大多數注意力模型【Bahdanau等人,2014年】、總結【Rushet等人,2015年】、圖像描述【Xu等人,2015年】和語音識別【Chan等人,2016年】屬於distinctive的注意力類型。co-attention模型同時對多個輸入序列進行操作,並共同學習它們的注意權重,以捕獲這些輸入之間的交互。陸等[2016]使用co-attention模式進行視覺問答。作者認為,除了對輸入圖像進行視覺attention建模外,對問題attention建模也很重要,因為問題文本中的所有單詞對問題的答案並不同等重要。此外,基於注意力的圖像表示用於引導問題的注意力,反之亦然,這基本上有助於同時檢測問題中的關鍵短語和與答案相關的圖像的相應區域。相反,對於文本分類和推薦等任務,輸入是序列,但輸出不是序列。在此場景中,可以使用注意力來學習輸入序列中對應於相同輸入序列中的每個標記的相關標記。換句話說,對於這種類型的注意,查詢和候選狀態屬於相同的序列。為此,Yang等[2016]提出了self attention,也稱為inner attention。

3.2 Number of abstraction levels

在最一般的情況下,只為原始輸入序列計算注意權重。這種注意力可以稱為single-level。另一方面,注意力可以按順序應用於輸入序列的多個抽象層次。較低抽象級別的輸出(上下文向量)成為較高抽象級別的查詢狀態。此外,使用多級關注的模型可以根據權重是自上而下學習的(趙和張,2018)(從較高抽象級別到較低級別)還是自下而上學習的(Yang等人,016)進行進一步分類。我們舉例說明瞭這一類別中的一個關鍵示例,它在兩個不同的抽象層次(即單詞級別和句子級別)上使用了注意力模型來完成文檔分類任務[Yang等人,2016]。該模型被稱為「層次注意模型」(Hierarchical Attention Model:HAM),因為它捕獲了文檔的自然層次結構,即文檔由句子組成,句子由單片語成。

多層次的注意允許HAM提取句子中重要的單詞和文檔中重要的句子,如下所示。它首先建立了一種基於attention的句子表示法,並將一級attention應用於單詞嵌入向量序列。然後,它使用第二個層次的attention來聚合這些句子表示,以形成文檔的表示。文檔的最終表示形式用作分類任務的特徵向量。請注意,第3.1節中描述的co-attention工作[Lu等人,2016]也屬於多層次類別,它在三個層次上共同關注圖像和問題:單詞層次、短語層次和問題層次。這種co-attention和multi-level attention的組合如圖3所示。

趙、張[2018]建議使用「attention-via-attention」,也使用多層次的attention(較低層次的文字,較高層次的文字),但學習注意權重自上而下的方式。

3.3 Number of positions

在第三類中,差異來自於計算注意力函數的輸入序列的位置。Bahdanau等人介紹的attention也被稱為「soft attention」。顧名思義,它使用輸入序列所有隱藏狀態的加權平均值來構建上下文向量。軟加權方法的應用使得神經網路易於通過反向傳播進行有效的學習,同時也導致了二次計算代價。Xu等[2015]提出了一種硬注意模型,其中上下文向量是從輸入序列中隨機採樣的隱藏狀態計算出來的。Xu等[2015]提出了一種硬注意模型,其中上下文向量是從輸入序列中隨機採樣的隱藏狀態計算出來的。這是通過一個由注意力權重參數化的多項式分佈來實現的。由於減少了計算成本,硬注意模型是有益的,但是在輸入的每個位置進行艱難的決策會使得到的框架不可微且難以優化。因此,為了克服這一侷限性,文獻中提出了變分學習方法和強化學習中的策略梯度方法。

Luong等[2015]在機器翻譯任務的語境中提出了兩種注意模型,即局部注意模型和全局注意模型。全局注意模型類似於軟注意模型。另一方面,局部注意模型介於軟注意和硬注意之間。關鍵思想是首先檢測輸入序列中的一個注意點或位置,然後在該位置周圍選擇一個窗口,創建一個本地軟注意模型。輸入序列中的位置可以設置(單調對齊)或通過預測函數(預測對齊)學習。因此,局部注意的優點是在軟注意和硬注意、計算效率和窗口內的可微性之間提供參數權衡。

3.4 Number of representations

通常,大多數應用程序都使用輸入序列的單一特徵表示。然而,在某些場景中,使用輸入的一個特性表示可能不足以滿足下游任務。在這種情況下,一種方法是通過多個特徵表示捕捉輸入的不同方面。注意可以用來為這些不同的表示分配重要權重,這些表示可以確定最相關的方面,而忽略輸入中的雜訊和冗餘。我們將該模型稱為multi-representational AM,因為它可以確定下游應用程序輸入的多個表示形式的相關性。最終表示是這些多個表示及其注意權重的加權組合。這裡需要注意的一個好處是,通過檢查權重,可以直接評估哪些嵌入更適合於哪些特定的下游任務。

Kiela等[2018]學習了同一輸入句不同嵌入詞的注意權重,以改善句子表示。類似地,Maharjan等人[2018]使用注意力動態權衡書籍的不同特徵表示,捕捉辭彙、句法、視覺和類型信息。

基於相似的直覺,在多維注意中,引入權重來確定輸入嵌入向量的各個維度的相關性。直覺是,計算向量的每個特徵的分數可以選擇在任何給定上下文中最能描述標記特定含義的特徵。這對於自然語言應用程序來說尤其有用,因為在自然語言應用程序中,word嵌入會受到影響一詞多義的問題。Lin等[2017]和Shen等[2018]針對語言理解問題給出了這種方法的例子,以獲得更有效的句子嵌入表示。

4 Network Architectures with Attention

在本節中,我們將介紹與attention結合使用的三種顯著的神經架構:(1)編碼器-解碼器框架,(2)將注意力擴展到單個輸入序列之外的內存網路,以及(3)利用注意力繞過遞歸模型的順序處理組件的體系結構。

4.1 Encoder-Decoder

注意力的最早使用是作為基於RNN的編碼器-解碼器框架的一部分來編碼長的輸入語句【Bahdanau等人,2014年】。因此,注意力在這種體系結構中得到了最廣泛的應用。

一個有趣的事實是,AM可以採用任何輸入表示,並將其減少到一個固定長度的上下文向量,以用於解碼步驟。因此,它允許將輸入表示與輸出分離。我們可以利用這一優勢來引入混合編碼器解碼器,最流行的是卷積神經網路(CNN)作為編碼器,RNN或LSTM作為解碼器。這種結構特別適用於許多多模態任務,如圖像和視頻描述、視覺問題回答和語音識別。

然而,並非所有輸入和輸出都是順序數據的問題都可以用上述公式解決(例如,排序或旅行推銷員問題)。指針網路[Vinyals等人,2015]是另一類具有以下兩個差異的神經模型,(1)輸出是離散的,指向輸入序列中的位置(因此稱為指針網路),以及(2)輸出每一步的目標類數取決於輸入的長度(因此是變數)。這不能使用傳統的編碼器-解碼器框架實現,其中輸出字典是已知的先驗(例如。在自然語言建模的情況下)。作者利用注意權值對每個輸出位置選擇第i個輸入符號作為選擇符號的概率進行建模,實現了這一目標。這種方法可以應用於離散優化問題,如差旅銷售人員問題和排序問題。

4.2 Memory Networks

像問答和聊天機器人這樣的應用程序需要能夠從事實資料庫中的信息中學習。網路的輸入是一個知識資料庫和一個查詢,其中一些事實比其他事實更與查詢相關。端到端內存網路通過使用一組內存塊存儲事實資料庫來實現這一點,並使用attention在回答查詢時在內存中為每個事實建立關聯模型。使用attention還提供了計算優勢,使目標連續,並通過反向傳播支持端到端訓練。端到端內存網路可以看作是AM的一種泛化,它不是隻在單個序列上建模注意力,而是在一個包含大量序列(事實)的資料庫上建模注意力。

4.3 Networks without RNNs

循環體系結構依賴於編碼步驟上輸入的順序處理,這導致計算效率低下,因為處理不能並行化。為瞭解決這一問題,作者提出了一種Transformer結構,其中編碼器和解碼器由一組相同的層和兩個子層組成:位置定向前饋網路層(FFN)和multi-head自注意層。

Position-wise FFN: 輸入是順序的,要求模型利用輸入的時間方面,但是不使用捕獲該位置信息的組件(即RNN/CNN)。為此,轉換器中的編碼階段使用FFN為輸入序列的每個標記生成內容嵌入和位置編碼。

Multi-Head Self-Attention:在每個子層中使用self - attention來關聯標記及其在相同輸入序列中的位置。此外,注意力被稱為multi-head,因為幾個注意力層是並行堆疊的,具有相同輸入的不同線性變換。這有助於模型捕獲輸入的各個方面,並提高其表達能力。轉換結構實現了顯著的並行處理,訓練時間短,翻譯精度高,無需任何重複的組件,具有顯著的優勢。然而,位置編碼僅弱合併位置信息,可能不適用於對位置變化更敏感的問題。Shen等[2018]利用時間卷積和Transformer的自注意機制對位置信息進行編碼。

此外,還有更直接的方法來中斷輸入的順序處理。ra和Ellis[2015]提出了前向注意模型,他們使用AM分解數據的時間維度,使用FFNs而不是RNNs來解決順序數據問題。在這種情況下,AM被用來從可變長度的輸入序列中產生一個固定長度的上下文向量,它可以作為一個輸入輸入到FFN。

5 Attention for Interpretability

6 Applications

注意力模型由於其直觀性、通用性和可解釋性,已成為研究的一個活躍領域。注意力模型的變體已經被用來處理不同應用領域的獨特特徵,如總結、閱讀理解、語言建模、解析等。近年來,人們的注意力以新穎的方式被利用,為研究開闢了新的途徑。一些有趣的方向包括更平滑地整合外部知識庫、訓練前嵌入和多任務學習、無監督的代表性學習、稀疏性學習和原型學習,即樣本選擇。

7 Conclusion

在本次調查中,我們討論了文獻中描述注意力的不同方法,並試圖通過討論注意力的分類、使用注意力的關鍵神經網路體系結構和已經看到顯著影響的應用領域來概述各種技術。我們討論了在神經網路中加入注意力是如何帶來顯著的性能提高的,通過促進可解釋性提供了對神經網路內部工作的更深入的瞭解,並通過消除輸入的順序處理提高了計算效率。我們希望這項調查將提供一個更好的理解不同的方向,在這方面的研究已經做了,以及如何發展的技術在一個領域可以應用到其他領域。


推薦閱讀:
相關文章