1. 程式人生 > >Attention, 神經網路中的注意力機制

Attention, 神經網路中的注意力機制

簡介

mechanism , [‘mek(ə)nɪz(ə)m].
最近兩年,注意力機制(Attention Mechanism )被廣泛使用在自然語言處理、影象識別及語音識別等各種不同型別的深度學習任務中,是一個值得關注與深入瞭解的核心技術。

  • 人的注意力機制:
    拿到一篇文章時, 會重點關注標題和段落首句, 期望快速得到關鍵資訊.
    人群中看到心動女生時, 雖然周圍熙熙攘攘的人群都映在了在你的眼簾裡, 但你關注的只有那位在意的人, 其他的人彷彿視而不見.
    重點關注感興趣的區域性資訊, 這就是人的注意力機制.

  • 演算法模型的借鑑:
    人類視覺通過快速掃描全域性影象,獲得需要重點關注的目標區域,也就是一般所說的注意力焦點,而後對這一區域投入更多注意力資源,以獲取更多所需要關注目標的細節資訊,而抑制其他無用資訊

  • 機器翻譯中的應用:
    機器翻譯屬於Encoder-Decoder框架. 這種框架不僅僅在文字領域廣泛使用,在語音識別、影象處理等領域也經常使用。文字處理和語音識別的Encoder部分通常採用RNN模型,影象處理的Encoder一般採用CNN模型。

機制

without attention

該框架將原文encode為語義編碼C, 然後再decode為譯文中的單詞序列.


figure 未引入注意力模型的 ENcoder-Decoder 框架

using attention

人是怎麼翻譯的呢?
很大程度上的逐詞翻譯.之所以不是嚴格的逐詞, 是因為要考慮語法和句式結構.
對比上圖的 Encoder-Decoder框架 , 就會發現, 所有語義完全通過一箇中間語義C來表示,單詞自身的資訊已經消失,可想而知會丟失很多細節資訊, 導致翻譯質量不佳.

這一缺陷在輸入句子比較短的時候問題不大,但是如果輸入句子比較長,就會暴露得更明顯.


figure 引入注意力模型的 ENcoder-Decoder 框架

With an attention mechanism we no longer try encode the full source sentence into a fixed-length vector. Rather, we allow the decoder to “attend” to different parts of the source sentence at each step of the output generation.

visualization

這裡寫圖片描述
figure 論文[1] 中的視覺化配圖
It visualizes the hierarchical attention layers in Figures 5 and 6 . Red denotes the sentence weight and blue denotes the word weight. 顏色越深表示權重越大. 圖中一共有四個doc. 每一行是相應doc的一個句子.

參考