attention的數(shù)學(xué)解釋

Jason Brownlee博士的系列博客真的很受用哦。原文鏈接見(jiàn):Attention in Long Short-Term Memory Recurrent Neural Networks

1. 原來(lái)的Encoder–Decoder

image

在這個(gè)模型中,encoder只將最后一個(gè)輸出遞給了decoder,這樣一來(lái),decoder就相當(dāng)于對(duì)輸入只知道梗概意思,而無(wú)法得到更多輸入的細(xì)節(jié),比如輸入的位置信息。所以想想就知道了,如果輸入的句子比較短、意思比較簡(jiǎn)單,翻譯起來(lái)還行,長(zhǎng)了復(fù)雜了就做不好了嘛。

2. 對(duì)齊問(wèn)題

前面說(shuō)了,只給我遞來(lái)最后一個(gè)輸出,不好;但如果把每個(gè)step的輸出都傳給我,又有一個(gè)問(wèn)題了,怎么對(duì)齊?

什么是對(duì)齊?比如說(shuō)英文翻譯成中文,假設(shè)英文有10個(gè)詞,對(duì)應(yīng)的中文翻譯只有6個(gè)詞,那么就有了哪些英文詞對(duì)哪些中文詞的問(wèn)題了嘛。

傳統(tǒng)的翻譯專門有一塊是搞對(duì)齊的,是一個(gè)比較獨(dú)立的task(傳統(tǒng)的NLP基本上每一塊都是獨(dú)立的task啦)。

  1. attention機(jī)制
image

我們從輸出端,即decoder部分,倒過(guò)來(lái)一步一步看公式。

St=f(S_{t?1},y_{t?1},c_t)

S_t是指decoder在t時(shí)刻的狀態(tài)輸出,S_{t?1}是指decoder在t?1時(shí)刻的狀態(tài)輸出,y_{t?1}是t?1時(shí)刻的label(注意是label,不是我們輸出的y),c_t看下一個(gè)公式,f是一個(gè)RNN。

c_t=∑_{j=1}^{T_{x}}a_{tj}h_j

h_j是指第j個(gè)輸入在encoder里的輸出,a_{tj}是一個(gè)權(quán)重

a_{tj}=\frac{exp(e_{tj})}{∑_{k=1}^{Tx}exp(e_{tk})}

這個(gè)公式跟softmax是何其相似,道理是一樣的,是為了得到條件概率P(a|e),這個(gè)a的意義是當(dāng)前這一步decoder對(duì)齊第j個(gè)輸入的程度。

最后一個(gè)公式,

e_{tj}=g(S_{t?1},h_j)=V?tanh(W?h_j+U?S_{t?1}+b)

這個(gè)g可以用一個(gè)小型的神經(jīng)網(wǎng)絡(luò)來(lái)逼近,它用來(lái)計(jì)算S_{t?1}, h_j這兩者的關(guān)系分?jǐn)?shù),如果分?jǐn)?shù)大則說(shuō)明關(guān)注度較高,注意力分布就會(huì)更加集中在這個(gè)輸入單詞上,這個(gè)函數(shù)在文章Neural Machine Translation by Jointly Learning to Align and Translate(2014)中稱之為校準(zhǔn)模型(alignment model),文中提到這個(gè)函數(shù)是RNN前饋網(wǎng)絡(luò)中的一系列參數(shù),在訓(xùn)練過(guò)程會(huì)訓(xùn)練這些參數(shù), 基于Attention-Based LSTM模型的文本分類技術(shù)的研究(2016)給出了上式的右側(cè)部分作為拓展。

好了,把四個(gè)公式串起來(lái)看,這個(gè)attention機(jī)制可以總結(jié)為一句話:當(dāng)前一步輸出StSt應(yīng)該對(duì)齊哪一步輸入,主要取決于前一步輸出S_{t?1}和這一步輸入的encoder結(jié)果h_{j}。

最后編輯于
?著作權(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ù)。

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