天天看點

Attention的基本原理與模型結構

我們嘗試用人記憶和了解事物的方式來思考人工智能:

Attention的基本原理與模型結構

為什麼我們需要引入這種Attention機制,以seq2seq為例:

Attention的基本原理與模型結構

傳統的seq2seq可以了解為讓RNN從左往右看一遍要Encode的序列,并将記憶不斷存入隐藏層。但是隐藏層的次元是有限的,就像人類的記憶力有限,當序列很長時,讀到最後一個word時很可能已經對開頭的word發生遺忘,要以看一遍的記憶完整複述整個序列或者對序列做翻譯等操作,是存在局限的。

是以我們可以借助人類産生工作記憶的方式,在decode時計算目前隐藏層和之前序列隐藏層的關聯度,或者說目前這個decoder子產品要關注的encoder隐藏層有哪些,要有多少關注度。

Attention的基本原理與模型結構
Attention的基本原理與模型結構

decoder端的隐藏層 z z z和encoder端隐藏層 h h h的關聯度 α \alpha α計算可以有幾種常見的方法:

  1. 利用餘弦相似度計算 c o s ( z , h ) cos(z,h) cos(z,h)
  2. 以[ z , h z,h z,h]為輸入, α \alpha α為目标輸入訓練全連接配接層
  3. α = h T W z \alpha = h^TWz α=hTWz, W W W是可訓練參數

求得每一個decoder隐藏層 z 0 , z 1 . . . z i , . . . z n z_0,z_1...z_i,...z_n z0​,z1​...zi​,...zn​和encoder端隐藏層 h 0 , h 1 , . . . , h j , . . . h m h_0,h_1,...,h_j,...h_m h0​,h1​,...,hj​,...hm​的關聯度 α i j \alpha_i^j αij​,并對其做softmax歸一化,得到 α 0 ^ , α 1 ^ . . . α n ^ \hat{\alpha_0},\hat{\alpha_1}...\hat{\alpha_n} α0​^​,α1​^​...αn​^​, c i = ∑ k α i k ^ h k c_i = \sum_k \hat{\alpha_i^k}h^k ci​=∑k​αik​^​hk

c i 和 z i c_i和z_i ci​和zi​作為decoder端RNN的輸入和隐藏層

繼續閱讀