Attention Mechanism Attention 的概念在 2014 年被 Bahdanau et al. [Paper 1] 所提出,解決了 encoder-decoder 架構的模型在 decoder 必須依賴一個固定向量長度的 context vector 的問題。實際上 attention mechanism 也符合人類在生活上的應用,例如:當你在閱讀一篇文章時,會從上下文的關鍵字詞來推論句子所以表達的意思,又或者像是在聆聽演講時,會捕捉講者的關鍵字,來了解講者所要描述的內容,這都是人類在注意力上的行為表現。
用比較簡單的講法來說, attention mechanism 可以幫助模型對輸入 sequence 的每個部分賦予不同的權重, 然後抽出更加關鍵的重要訊息,使模型可以做出更加準確的判斷。
複習一下在之前介紹的 Seq2Seq model 中,decoder 要預測在給定 context vector 與先前預測字詞 \({y_1, \cdots, y_{t-1}}\) 的條件下字詞 $y_{t}$ 的機率,所以 decoder 的定義是在有序的條件下所有預測字詞的聯合機率:
\[ \begin{align} p(\mathrm{y}) & = \prod_{t=1}^T p(y_t | \{y_1, \cdots, y_{t-1}\}, c) \tag 1 \\ \mathrm{y} & = (y_1, \cdots, y_T) \end{align} \]