【NLP模型】Attetion注意力機(jī)制

參考 http://www.itdecent.cn/p/e14c6a722381

1.Encoder-Decoder 模型

Encoder-Decoder 模型

其中,x_1x_2 \cdots x_4為輸入(假設(shè)為待翻譯的句子),y_1y_2 \cdots y_4為輸出(假設(shè)為目標(biāo)翻譯句子),c為中間語義變量

c=g(x_1,x_2 \cdots x_4)

\left\{ \begin{aligned} y_1 = f(c) \\ y_2 = f(c,y_1) \\ y_i = f(c,y_1,y_2 \cdots y_{i-1}) \end{aligned} \right.

gf為任意非線性變換,如RNN,CNN

2.Attention模型

Attetion 在 Encoder-Decoder 基礎(chǔ)上,使輸出y_i不再共享同一個(gè)c,每個(gè)y_i對(duì)應(yīng)一個(gè)c_i。注意力的意思就是對(duì)于一個(gè)輸出y_1,可能更關(guān)注x_1而比較少關(guān)注其他輸入,即y_1主要被x_1影響,計(jì)算c_1時(shí),x_1的權(quán)重也更大

引入注意力機(jī)制后的Attetion模型.png

c_i = g(\omega_1*x_1 +\omega_2*x_2 + \cdots + \omega_i*x_i)

\left\{ \begin{aligned} y_1 = f(c_1) \\ y_2 = f(c_2,y_1) \\ y_i = f(c_i,y_1,y_2 \cdots y_{i-1}) \end{aligned} \right.

下面討論\omega的值如何計(jì)算

假設(shè)Encoder和Decoder都是RNN模型

如圖,h_i為輸入的隱藏層,H_i為輸出的隱藏層,都可以在計(jì)算y_i前算出

向量\omegah_iH_i經(jīng)某種變換F并經(jīng)過softmax層得出:

計(jì)算w的過程

3. 對(duì)Attetnion模型進(jìn)行更一般化的表示

attention模型權(quán)重的一般化計(jì)算方法

如圖,Query相當(dāng)于上面提到的RNN的Encoder中的隱藏層h,Key相當(dāng)于RNN的Encoder中的隱藏層H,a相當(dāng)于\omega,Value相當(dāng)于輸入x,Attention Value相當(dāng)于中間語義c

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容