[論文導讀] 注意力機制模型的分類

Types of Attention Models

本篇文章將探討注意力在神經網路上的各種變形,若尚未對注意力機制了解的讀者可以先參考這篇文章:淺談有意識的 AI: 注意力機制介紹。首先筆者很推薦大家閱讀這篇論文:An Attentive Survey of Attention Models [1]。在這一篇 survey paper 中作者大致將注意力機制分成四個種類,其包括:模型架構、注意力抽象層次、注意力計算區域以及輸入的特徵數量。值得一提的是,這四個類別之間並無互斥,彼此是可以互相搭配組合的。

圖1. 注意力機制的種類

1. Number of sequences

如圖 2 所示,依據模型輸入與輸出的數量大致分成五個架構。而在 Seq2seq 模型中按照輸入序列與 query、key 和 value 的計算來源分為以下三類:

  • Distinctive (sequence to sequence):機器翻譯、圖像描述、語音辨識
  • Co-attention (multiple sequence as input):影像問答、 情意分析
  • Self (sequence to non-sequence):文章分類、推薦系統、文本表示
圖2. 根據模型輸入與輸出的數量分成五種架構 (From: Andrej Karpathy blog)

1.1 Distinctive (sequence to sequence)

Attention 的 query 和 value 分別來自兩個不同的 input sequence 和 output sequence,例如在機器翻譯例子中,我們的 query 來自於 decoder 的 hidden state,我們的 value 來自 encoder 的 hidden state。2015 年 Bengio 實驗室提出了 Attention 概念[2],在 decoder 中預測每個輸出時都會重新計算 C。每個 c 的計算方式就是使用 decoder 目前的隱藏狀態 s 去跟 encoder 中所有輸入的隱藏狀態 h 做計算,最後再經過一個 softmax 得到每一個的機率。透過這種方式就可以知道目前的輸入必須關注所有的輸入句子中的哪些部分。每一個 c 就是將得到的注意力分數與這些輸入的 h 做加權和。

圖3. Distinctive (sequence to sequence)

1.2 Co-attention (multiple sequence as input)

Co-attention 模型允許輸入多個 sequences 並且進行進行聯合學習權重,並且從這些輸入中取得彼此間對於目標輸出的關聯性。如圖 4 所示,在視覺問答 (visual question answering) 任務中[3],給定一張圖片和一個問題,需要生成相對應的答案,運用 attention 使得模型能夠同時捕獲重要的問題資訊以及對應的圖片資訊。

圖4. Co-attention (multiple sequence as input)

1.3 Self-attention (sequence to non-sequence)

想必大家應該都對這個名詞感到熟悉。沒錯在 2017 年 Google 所提出的 Attention Is All You Need 在論文中[4]作者拋棄了 RNN 架構並使用當前的輸入序列自己跟自己計算注意力程度。透過此機制大幅減低了原先無法平行化計算的瓶頸。透過輸入的序列自己與自己做 attention,去看與自身序列相關的重要程度關聯。

圖5. Self-attention (sequence to non-sequence)

2. Number of abstraction levels

在一般狀況下我們僅對原始輸入的序列計算注意權重,這種注意力可以稱為 single-level。我們換個角度來思考,同樣一個輸入每個人所關注的點可能會稍微不同,因此可以透過多個注意力取得多個抽象層次。最典型的例子是 Hierarchical Attention Model,因為模型是 hierarchical 的結構,它的注意力也是作用在多層結構上。Yang 等人在 2016 年使用了層次注意力模型,透過擷取兩個不同的抽象層次(word 到 sentence)的注意力來完成文件分類的任務[5]。另外在圖 4 的 VQA 任務也是屬於 multi-level,它在三個層次上共同關注圖像和問題,依序分別有: word level, phrase level 和 question level。這種 co-attention 和 multi-level attention 的架構透過影像與三種層次的提問句,讓模型關注不同層次的內容取得正確答案。

  • Single-level:常見的案例中,attention 都是在輸入序列上面進行計算。
  • Multi-level:透過多個注意力可以應用於輸入序列的多個抽象層次。
圖6. Number of abstraction levels

3. Number of positions

在此分類中主要是根據在計算注意力分數時輸入序列的位置數量。

圖7. Number of positions

3.1 Global (Soft) Attention

Bahdanau 與 Bengio 團隊於 2015 年提出了 soft attention model[2],並將其應用於機器翻譯上面。所謂的 global attention model 其實就是 soft attention model 也是我們最常見的注意力計算方法,意思是在計算 context vector 的時候使用所有的輸入序列狀態(value)與注意力分數做加權平均值。

3.2 Local Attention

而至於 local attention 介於 soft attention 和 hard attention 之間[6],此方法跟硬注意模型概念一樣都是為了改善當輸入序列過長,需要對每個狀態都計算注意力分數所造成的高計算成本問題。首先它從輸入序列中找到一個需要關注的位置,接著挑選一個合適的 windows 大小建立一個 local 的 soft attention 這樣做的好處在於,反向傳播時計算是可微的並且有效的減少了計算量。

圖8. Global vs. local attention (From: Luong, et al., 2015)

3.3 Hard Attention

Xu 與 Bengio 等人於 2015 年提出了一種 hard attention 硬注意模型[7],應用於圖像描述 (Image caption)。它是對所有輸入序列的狀態隨機取樣,相當於將隱藏狀態進行隨機選擇,然後計算注意力分數。由隨機採樣計算注意力分數大幅減少了計算成本,但是也造成反向傳播時無法計算梯度。需要更複雜的技巧,如 variational learning 或強化學習來訓練。不過硬注意模型在影象應用中證明是有用的,但是在自然語言中用處不大。因為在文本的任務中這種單詞一一對齊明顯要求太高,如果對不齊對後續處理負面影響很大。

圖9. Hard Attention

4. Number of representations

最後一種是按輸入序列的特徵數量分為 single feature、multi-representational、multi-dimensional。一個輸入可能有多種表達的資訊,我們按輸入的 representation 方式分類:

4.1 Single Feature

在某些間單的任務中僅會使用單個特徵表示某個時間的點資訊,這意味著一個輸入只有一種特徵表示。然而在某些場景中,使用輸入的一個特徵表示可能無法滿足下游任務。因此另外兩類可以解決這一類問題。

4.2 Multi-representational

在很多 NLP 任務中首要步驟就是該使用哪種預訓練的詞向量。其中一種方法就是嘗試結合各種詞向量的優點融合各種詞向量,透過 meta-embeddings 其實就是對 embedding 做了attention 並得到不錯的效果。在下圖這篇論文就對文字輸入進行了多種的 word embedding 表示,然後最後對這些表示進行 attention 的加權和[8]

圖8. Multi-representational

4.3 Multi-dimensional

在機器翻譯任務中 Zhao 等人於 2018 年提出一個 multi-dimensional 架構來確定輸入 embedding 的每個維度的相關性[9]。透過字母與單詞兩個不同級別計算不同維度的相關性。下圖是一個英語翻捷克與的範例,首先字母級別的 encoder 處理輸入句子中的字母,並根據語句中的空格來判定一個單詞的組成。接著使用單詞級別的 encoder 處理輸入句子中的單詞。在解碼的時候計算當前時刻的隱藏層狀態時,首先使用單詞級別的注意,得到單詞上下文向量,然後再利用單詞級別注意力計算字母級別注意力,得到字母上下文向量,把這兩個上下文向量連接起來作為最終上下文向量,來計算 decoder 隱藏層狀態。

圖9. Multi-dimensional

參考

[1] SNEHA et al. , ‘’ An Attentive Survey of Attention Models’’, ACM TIST, Jul 2021.
[2] Bahdanau et al. “Neural Machine Translation by Jointly Learning to Align and Translate”, ICLR 2015.
[3] Lu et al. “Hierarchical Question-Image Co-Attention for Visual Question Answering”, arXiv 2017.
[4] Vaswani et al. “Attention Is All You Need”, NIPS 2017.
[5] Yang et al. “Hierarchical Attention Networks for Document Classification”, NAACL 2016.
[6] Luong et al. “Effective Approaches to Attention-based Neural Machine Translation”, EMNLP 2015.
[7] Xu et al. “Show, Attend and Tell: Neural Image Caption Generation with Visual Attention”, PMLR 2015.
[8] Kiela et al. “Dynamic Meta-Embeddings for Improved Sentence Representations”, EMNLP 2018.
[9] Zhao et al. “Attention-via-Attention Neural Machine Translation”, AAAI 2018.

--

--