Attention機制最早是在視覺圖像領域提出來的,應該是在九幾年思想就提出來了,但是真正火起來應該算是google mind團隊的這篇論文《Recurrent Models of Visual Attention》[14],他們在RNN模型上使用了attention機制來進行圖像分類。隨後,Bahdanau等人在論文《Neural Machine Translation by Jointly Learning to Align and Translate》 [1]中,使用類似attention的機制在機器翻譯任務上將翻譯和對齊同時進行,他們的工作算是是第一個提出attention機制應用到NLP領域中。接著類似的基於attention機制的RNN模型擴展開始應用到各種NLP任務中。最近,如何在CNN中使用attention機制也成為了大家的研究熱點。下圖表示了attention研究進展的大概趨勢。
2 Recurrent Models of Visual Attention
在介紹NLP中的Attention之前,我想大致說一下圖像中使用attention的思想。就具代表性的這篇論文《Recurrent Models of Visual Attention》 [14],他們研究的動機其實也是受到人類注意力機制的啟發。人們在進行觀察圖像的時候,其實並不是一次就把整幅圖像的每個位置像素都看過,大多是根據需求將注意力集中到圖像的特定部分。而且人類會根據之前觀察的圖像學習到未來要觀察圖像注意力應該集中的位置。下圖是這篇論文的核心模型示意圖。
3 Attention-based RNN in NLP3.1 Neural Machine Translation by Jointly Learning to Align and Translate [1]
這篇論文算是在NLP中第一個使用attention機制的工作。他們把attention機制用到了神經網路機器翻譯(NMT)上,NMT其實就是一個典型的sequence to sequence模型,也就是一個encoder to decoder模型,傳統的NMT使用兩個RNN,一個RNN對源語言進行編碼,將源語言編碼到一個固定維度的中間向量,然後在使用一個RNN進行解碼翻譯到目標語言,傳統的模型如下圖: