一、前提
該篇為基於實現LSTM中文情感傾向分析的基礎上,為提高情感傾向預測的准確度,而引入的一個注意力機制模塊,通過翻閱相關學術文獻和其他資料所作的歸納總結。
二、注意力機制簡介
簡單來說,注意力機制與人類視覺注意力相似,正如人在看事物一樣,會選擇重點的對象,而忽略次要對象。近幾年來,注意力機制在圖片處理領域和自然語言處理領域得到廣泛的應用,並展現出顯著的效果。注意力機制主要是利用神經網絡找到輸入特征的有效部分。
三、Encoder-Decoder模型
注意力機制的框架主要是基於Encoder-Decoder框架發展而來。Encoder-Decoder模型又被稱為編碼-解碼模型,其中Encoder會將輸入的句子序列轉化為一個固定長度的向量,Decoder會將該向量在轉化為其他語言形式的句子序列。自然語言處理中的Encoder-Decoder框架如下圖1所示(注:圖片來源於網絡)
圖1 Encoder-Decoder框架
給出一組文本(X,Y),其中X={x1,x2,x3,...,xn},Y={y1,y2,y3,...,ym}。Encoder對X文本進行編碼處理,通過非線性變換轉化,將X文本轉化為中間語義C,其表達式為:
C=φ(x1,x2,x3,...,xn)
Decoder對中間語義C和已生成的歷史信息{y1,y2,y3,...,yi-1}來生成i時刻的信息yi,其表達式為:
yi=φ(C,y1,y2,y3,...,yi-1)
四、Attention模型
從Encoder-Decoder框架中可以注意到,每預測一個yi所對應的語義編碼都是C,說明X中的每個詞匯對Y中的每個詞匯的影響程度都是相同的,這樣會導致語義向量無法表達整個文本的信息,使得解碼效果降低。基於Encoder-Decoder框架無法突出輸入序列的區分度,因而專家們提出了注意力機制使Encoder-Decoder框架缺陷得到改善。注意力機制的結構框架如圖2所示:
圖2 注意力機制框架
當生成目標句子詞匯yi時,都有唯一中間語義Ci與之對應,其中i=(1,2,3,...),其表達式如下所示:
y1=Φ(C1)
y2=Φ(C2,y1)
y3=Φ(C3,y1,y2)
以此類推,當i時刻時,
yi=Φ(Ci,y1,y2,y3,...,yi-1)
其中Ci與Encoder-Decoder框架中的中間語義C有所區別,它是一個權重處理后的權值,Ci的表達式為(注:由於博客無法使用MathType編寫的公式,且本地編寫困難,這里用截圖代替)
其中,Vij表示為編碼中的第j個詞匯與解碼中的第i個詞匯之間的權值,hj表示為Encoder中第j個詞匯的隱向量,bij表示一個矩陣,用於衡量編碼中第i個詞匯對解碼中的第j個詞匯的影響程度。