注意力機制(Attention Mechanism)

注意力機制起源於應用於NLP的RNN模型,但也在其他的領域有所應用。對注意力機制的理解也是算法面試經常提及的一道基礎面試題,在這篇博文裏我們彙總吳恩達深度學習視頻序列模型3.7和3.8以及臺大李宏毅教授對Attenion Mechanism以及相關參考文獻對注意力機制給出詳細的介紹的解釋。

注意力機制(Attention Mechanism)

注意力機制是深度學習中一個非常重要的思想,在NLP領域尤爲重要。

爲什麼要引入Attention Mechanism?

在一個Encoder和Decoder的翻譯模型中,翻譯一段法語到英文大致是整個序列輸進Encoder然後Decoder再輸出整個結果。也就是說模型是觀測了整個要翻譯的序列,然後再按序做的翻譯(時間步模型)。在這裏插入圖片描述
隨着輸入序列邊長,對模型輸出結果的Bleu score評估會呈現這樣的變化:
在這裏插入圖片描述
綠線代表人類翻譯的水平,藍線代表機器翻譯的水平,之間的Gap能衡量模型記憶長序列的能力。

而人工翻譯則是看一部分,翻譯一部分,再看下一部分,再翻譯一部分,如此往復。因爲對人來說,要記憶整個序列是非常困難的。

總結下來:

  1. 輸入序列非常長時,原始的Encoder-Decoder翻譯的質量會出現明顯下降,因爲整個模型要處理的feature過多,並且這些feature不一定對翻譯特定的單詞有所助益。一說模型難以學到足夠合理的向量表示。
  2. 原始的時間步方式翻譯的模型在設計上有缺陷。具體來講,整個序列無論長短都被Encoder編碼到固定長度,這使得Decoder的能力受限。因爲翻譯前後,源語言和目標語言不一定長度一致。
  3. 時間步編解碼器的結構缺乏有效的理論支撐和經驗指導,導致設計困難,模型效果不好。

注意力機制直觀理解

如同前面講過的人工翻譯是一部分一部分看,一部分一部分翻譯一樣,注意力機制旨在實現在計算某個時間步的輸出時,將注意力集中在一段序列上,段的大小可以由一個窗口來決定,並且爲該段序列每一個時間步都賦以權值,以決定它們對最終輸出的影響權重。這樣使得前面所述問題得到一定程度的解決。

注意力機制

實例說明:
在這裏插入圖片描述
如圖所示,在計算Encoder的輸出上下文c0c^0時,維持窗口大小爲4,即一個時間步輸出由四個時間步輸入決定。
c0=i=14α0^ihi c^0=\sum_{i=1}^4\hat{\alpha_0}^ih^i

那麼每個時間步的權重α0i\alpha_0^i如何計算,通過一個match機制來實現,具體而言,可以使用一個小型的網絡協同訓練來得到一個具體match函數。
在這裏插入圖片描述
圖中z是上一個時間步的輸出,吳恩達notation裏寫作s<t1>s^{<t-1>}

可以使用softmax來實現:
在這裏插入圖片描述
使用softmax是爲了窗口內部所有時間步權重相加等於1。

除此之外還有一些其他的實現方式:
在這裏插入圖片描述

  • 餘弦相似度
  • 小型網絡(前述)
  • 使用只有一個權重的計算公式,權重可以交由原網絡來訓練

如上所述,重複以上過程指導所有時間步的輸出都計算完成,這樣就得到了最終結果的序列。

雖然使用attention機制會明顯增加計算量,但是整個模型的輸出結果質量得到有效提升。因爲與單純的Encoder-Decoder模型不同。面對大量的features我們只關注窗口內部那部分features,而且窗口內部每一個時間步如何影響最後的序列生成都由權重控制,這使得整個過程更加的科學合理。

注意力機制的應用

雖然我們以NLP爲例,但注意力機制在其他領域也有一些應用。

  • 文本翻譯(Text Translation)
    吳恩達課程爲例,Attention機制被應用在翻譯一個單詞時應該重點關注哪些原詞。

  • 語義蘊含(Entailment)
    Attention機制被用來關聯假設和前提兩者中詞與詞之間的對應關係。

  • 語音識別(Audio Recognition)
    Attention機制被用來關聯每個輸入語音序列的某些部分和相應音素的對應關係。

  • 文本摘要(Text Summary)
    Attention機制被用來關聯輸入文本中的一些重要詞彙和生成的摘要裏的詞彙之間的對應關係。

  • 圖像描述(Image Caption)
    在計算機視覺領域,Attention機制可以幫助卷積神經網絡決定在生成文本描述時應該重點關注圖像的哪一部分。

參考文獻

吳恩達深度學習系列-注意力機制

臺大李宏毅機器學習課程-Attention-based model

Neural Machine Translation by Jointly Learning to Align and Translate. Dzmitry Bahdanau, Kyunghyun Cho, Yoshua Bengio. 2014.

深度學習中 的 Attention機制

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章