概括地說兽赁,在神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)預(yù)測任務(wù)時(shí)滔金,引入Attention(注意力)機(jī)制能使訓(xùn)練重點(diǎn)集中在輸入數(shù)據(jù)的相關(guān)部分圈澈,而不是無關(guān)部分霉涨。
比如說按价,你將很長的一句話人工從一種語言翻譯到另一種語言,在任何時(shí)候笙瑟,你最關(guān)注的都是當(dāng)時(shí)正在翻譯的詞或短語楼镐,與它在句子中的位置無關(guān)。在神經(jīng)網(wǎng)絡(luò)中引入注意力機(jī)制往枷,就讓它也學(xué)會了人類這種做法框产。
在Encoder-Decoder結(jié)構(gòu)中,Encoder把所有的輸入序列都編碼成一個(gè)統(tǒng)一的語義特征c再解碼错洁,如下圖:
c中必須包含原始序列中的所有信息秉宿。如機(jī)器翻譯問題,當(dāng)要翻譯的句子較長時(shí)屯碴,一個(gè)c可能存不下那么多信息描睦,就會造成翻譯精度的下降。
Attention機(jī)制通過在每個(gè)時(shí)間輸入不同的c來解決這個(gè)問題导而,下圖是帶有Attention機(jī)制的Decoder:
以機(jī)器翻譯為例:
輸入的序列是“我愛中國”忱叭,因此隔崎,Encoder中的h1、h2韵丑、h3爵卒、h4就可以分別看做是“我”、“愛”撵彻、“中”钓株、“國”所代表的信息。在翻譯成英語時(shí)千康,第一個(gè)上下文c1應(yīng)該和“我”這個(gè)字最相關(guān)享幽,因此對應(yīng)的a11就比較大,而相應(yīng)的a12拾弃、a13值桩、a14就比較小。c2應(yīng)該和“愛”最相關(guān)豪椿,因此對應(yīng)的a22就比較大奔坟。最后的c3和h3、h4最相關(guān)搭盾,因此a33咳秉、a34 的值就比較大。
這些權(quán)重aij怎么來的鸯隅?
aij是從模型中學(xué)出的澜建,它和Encoder第i個(gè)階段的隱狀態(tài)、Decoder的第j-1階段的隱狀態(tài)有關(guān)蝌以。
同樣還是拿上面的機(jī)器翻譯舉例炕舵,a1j的計(jì)算:
a2j的計(jì)算:
A3j的計(jì)算: