天天看點

Transformer自下而上了解(3) Self-attention機制

本文筆記參考Wang Shusen老師的課程:https://www.youtube.com/watch?v=Vr4UNt7X6Gw&list=PLvOO0btloRnuTUGN4XqO85eKPeFSZsEqK&index=9

1. 前言

2015年,在文獻[1]中首次提出attention。到了2016年,在文獻[2]中提出了self-attention方法。作者将self-attention和LSTM結合用在了機器閱讀任務上。為了好了解,下文将LSTM表示成SimpleRNN。

在閱讀以下内容之前,強烈建議先看看之前關于attention機制的文章介紹:Transformer自下而上(2) 注意力(Attention)機制。

2. SimpleRNN (LSTM)

由下圖可以看到傳統的LSTM的第一個輸出\(h_1\)隻依賴于兩個輸入\(x_1\)和\(h_0\)

Transformer自下而上了解(3) Self-attention機制

3. SimpleRNN + Attention

下面我們會逐項介紹計算過程。

3.1 計算\(h_1\)和\(c_1\)

下圖給出了加入Attention機制後的示意圖,可以看到和Fig 1. 的差別在于我們把\(h_0\)替換成了\(c_0\)。由于\(h_0\)和\(c_0\)是已經初始化好了的,是以根據下圖中的公式我們能直接計算出\(h_1\)

Transformer自下而上了解(3) Self-attention機制

接下來我們需要計算\(c_1\)。Attention的目的是為了避免遺忘,是以一種很自然的思路就是\(c_i\)是所有之前狀态\(\{h0,..,h_{i-1}\}\)的權重求和,他們的權重分别是\(\{\alpha_0,...,\alpha_{i-1}\}\)。由于通常\(h_0\)初始化為0向量,是以\(c_1=h_1\)

Transformer自下而上了解(3) Self-attention機制

3.2 計算\(h_i\)和\(c_i\)

看完\(h_1\)和\(c_1\)的計算是不是還有點懵,沒關系,下面我們加大學習力度,重複多看幾次計算過程。

計算\(h\)的方法千篇一律,都是那目前的輸入\(x_i\)和前一時刻的context vector \(c_{i-1}\)拼接成一個向量後參與計算,即

\[\mathbf{h}_{i}=\tanh \left(\mathbf{A} \cdot\left[\begin{array}{l}

\mathbf{x}_{i} \\

\mathrm{c}_{i-1}

\end{array}\right]+\mathbf{b}\right)

\]

Transformer自下而上了解(3) Self-attention機制

下一步是計算\(c_2\)。\(c\)的通用計算公式可以寫成 \(c_i=\alpha_1 h_1+...\alpha_{i-1} h_{i-1}\)

權重\(\alpha_i\)的計算公式為

\[\alpha_{i}=\operatorname{align}\left(\mathbf{h}_{i}, \mathbf{h}_{2}\right)

上面的\(align\)可以有不同的實作方法([3]),你隻需要知道\(\alpha_i\)表示\(h_i\)和\(h_2\)之間的權重(或者是相似度),計算出所有的\(\alpha_i\)之後我們就能計算出\(c_i\)了,這裡\(c_2=\alpha_1h_1+\alpha_2h_2\)

Transformer自下而上了解(3) Self-attention機制

3.3 再計算一次

Transformer自下而上了解(3) Self-attention機制

同理,要計算\(c_4\),我們仍然要通過使用\(align\)計算符計算出不同的\(\alpha\)。

注意,Fig 7裡的\(\alpha_1,\alpha_2,...\)和Fig 5裡的\(\alpha\)是不一樣的,這裡隻是為了友善講解。也就是說每計算新的\(c\)都要計算一遍不同的\(\alpha\)。為了計算這些權重,我們每次都會周遊一遍之前的資料,是以這樣可以有效解決SimpleRNN遺忘的問題。

Transformer自下而上了解(3) Self-attention機制

參考文獻

[1] Bahdanau D, Cho K, Bengio Y. Neural machine translation by jointly learning to align and translate. In ICLR, 2015

[2] Cheng J, Dong L, Lapata M. Long short-term memory-networks for machine reading. In EMNLP, 2016

[3] Transformer自下而上(2) 注意力(Attention)機制 (https://zhuanlan.zhihu.com/p/374841046)

微信公衆号:AutoML機器學習 MARSGGBO ♥原創

如有意合作或學術讨論歡迎私戳聯系~

郵箱:[email protected]

2021-05-21 16:39:50

繼續閱讀