傳統對編解碼機制,一個編碼器(Encoder)讀取並編碼源句子(source sentence )成固定長度的向量。
然後,解碼器(Decoder)從編碼矢量輸出轉換。
局限性
這種編碼器 - 解碼器方法的潛在問題是神經網絡需要能夠將源句子的所有必要信息壓縮成固定長度的矢量。
注意力(Attention)如何解決問題?
注意機制(Attention Mechanism)允許解碼器在輸出生成的每個步驟處注意源句子的不同部分。
我們不是將輸入序列編碼為單個固定的上下文向量,而是讓模型學習如何為每個輸出時間步驟生成上下文向量。也就是說,我們讓模型根據輸入句子以及它到目前為止產生的內容來學習要參加的內容。
注意機制(Attention Mechanism)
這裡,編碼器從輸入X1,X2,X3 …… XT生成h1,h2,h …… .hT
然後,我們必須找出每個輸出時間步長的上下文向量ci。
如何計算每個輸出時間步長的上下文向量(Context Vector)?
對齊模型
a是對齊模型(Alignment model),它是一個前饋神經網絡,它與所提出系統的所有其他組件一起訓練,該對齊模型對(e)每個編碼輸入(h)與解碼器的當前輸出的匹配程度進行評分。
softmax
使用softmax函數對準分數進行歸一化。
上下文向量(Context Vector)是注釋(hj)和歸一化對齊分數的加權和。
解碼
解碼器通過查看第i個上下文向量和先前的隱藏輸出s(t-1)來生成第i個時間步的輸出。