1.Attention(注意力機制)

上圖中,輸入序列上是“機器學習”,因此Encoder中的h1、h2、h3、h4分別代表“機","器","學","習”的信息,在翻譯"macine"時,第一個上下文向量C1應該和"機","器"兩個字最相關,所以對應的權重a比較大,在翻譯"learning"時,第二個上下文向量C2應該和"學","習"兩個字最相關,所以"學","習"對應的權重a比較大。
a其實是一個0-1之間的值,a可以看成是e的softmax后的結果。

那現在關於attention來說就只剩下一個問題了,就是e是怎么來的。關於e的計算,業界有很多種方法,常用的有以下三種方式:

(1)計算Encoder的序列h與Decoder的序列h的余弦相似度.
(2)在1的基礎上,乘上一個Wa,Wa是需要學習的參數,從學習到Encoder和Decoder的隱藏的打分e。
(3)設計一個前饋神經網絡,前饋神經網絡的輸入是Encoder和Decoder的兩個隱藏狀態,Va、Wa都是需要學習的參數。
2.softmax函數
softmax用於多分類過程中,它將多個神經元的輸出,映射到(0,1)區間內,可以看成概率來理解,從而來進行多分類!
假設我們有一個數組,V,Vi表示V中的第i個元素,那么這個元素的softmax值就是

更形象的如下圖表示:

softmax直白來說就是將原來輸出是3,1,-3通過softmax函數一作用,就映射成為(0,1)的值,而這些值的累和為1(滿足概率的性質),那么我們就可以將它理解成概率,在最后選取輸出結點的時候,我們就可以選取概率最大(也就是值對應最大的)結點,作為我們的預測目標!
參考文獻:
https://zhuanlan.zhihu.com/p/52119092
https://www.zhihu.com/question/23765351/answer/240869755
