翟社平 楊媛媛 邱 程 李 婧 毋志云
1(西安郵電大學計算機學院 陜西 西安 710121)2(陜西省網(wǎng)絡數(shù)據(jù)分析與智能處理重點實驗室 陜西 西安 710121)
隨著互聯(lián)網(wǎng)行業(yè)的發(fā)展,電商評論和社交平臺得到了有效的推廣,形成了大量包含用戶情感觀點的短文本信息數(shù)據(jù)。將文本中的情感及觀點進行提取,可以幫助企業(yè)、政府進行有效決策。情感分析也稱為觀點挖掘,是自然語言處理領域的研究熱點,其關鍵任務是分析社交媒體和商品評論的文本數(shù)據(jù),進而挖掘出用戶的情感觀點。目前國內(nèi)外對于文本的情感分析多為單語種文本的分析,但隨著中英文搭配使用在社交中的普遍化,情感分析的相關研究仍需更深一步。
在單語種情感分析方面,已取得了較好的研究成果[1]。其中,深度學習模型在情感分析任務重有著優(yōu)異的表現(xiàn),可以在沒有人工標注的特征工程前提下,提高分類的準確率。Tai等[2]構建了樹狀長短時記憶網(wǎng)絡(Long Short-Term Memory,LSTM)結構,在情感分析任務中取得了進步。Wang等[3]將遞歸神經(jīng)網(wǎng)絡和條件隨機場整合到一個統(tǒng)一的框架中,用于顯式方面和意見術語的共同提取,提升了分類準確率。但此類方法未將文本中重點知識進行突出,由此,注意力機制被引入情感分析任務。注意力機制可為文本分配不同權重,進而為關鍵部分分配更多注意力,提升分類準確率。譚皓等[4]考慮到表情符對文本的影響作用,提出了基于表情符注意力機制的情感分析模型。張仰森等[5]提出雙重注意力機制,構建包含情感詞、程度副詞、否詞、表情符等情感符號庫,引入注意力模型和雙向長短時記憶網(wǎng)絡(Bilateral-LSTM,Bi-LSTM),提升情感分析的準確率。胡朝舉等[6]提出深層注意力的LSTM情感分析,對文本進行特定主題探索,分析特定主題的情感傾向。
在雙語種情感分析方面,Meng等[7]利用平行語料庫提升詞典覆蓋率,采用最大化似然值對詞語進行標注,進而提升情感分類準確率。栗雨晴等[8]通過構建雙語詞典,進行微博多類情感分析。但這兩種方法需構建多語言平行語料庫,分類準確率依賴于語料庫的質(zhì)量和規(guī)模大小。Wang等[9]利用因子圖模型的屬性函數(shù)從每個帖子中學習單語和雙語信息,利用因子函數(shù)來探索不同情緒之間的關系,并采用置信傳播算法來學習和預測模型。
在中英文搭配文本中,英文單詞對文本的情感表達產(chǎn)生重要影響,甚至能改變文本的情感極性,但情感的表達并非詞語極性的累加。例如下面兩個例子,句①通過英文單詞更改了句子極性,句②通過英文單詞加強了句子極性。
① 玩了一下午輪滑so tired!(中性+負性=負性)
② 昨晚一夜沒睡,坐過了車,多么happy的一天啊。(負性+正性=負性)
結合以上分析,本文將雙語文本和句中的英文子句分別作為Bi-LSTM的輸入,得到兩者的知識表示。引入注意力機制,根據(jù)英文子句為雙語文本分配不同權重,得到融合了英文子句特征的知識表示,進而得到最終的情感分析模型。通過爬取新浪微博上的數(shù)據(jù)作為數(shù)據(jù)集進行實驗,與現(xiàn)有雙語分析模型相比,本文所構建模型實現(xiàn)了效率的有效提高。
循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network,RNN)是前饋神經(jīng)網(wǎng)絡的改進,一個序列t時刻的輸出不僅與之后的輸出有關,也與之前的輸出也有關。RNN會對前面的信息進行記憶,保存于網(wǎng)絡的內(nèi)部狀態(tài),當前的輸出即由該內(nèi)部狀態(tài)計算得出。RNN中隱含層的節(jié)點是相互連接的,隱含層的輸入由上一隱含層的輸出和輸入層的輸出兩部分組成。理論上,RNN可以對任何長度的數(shù)據(jù)進行處理,但實踐中,任意長度的數(shù)據(jù)具有復雜性,為了簡化運算過程,設置當前狀態(tài)只于前n個狀態(tài)相關。
RNN仍然存在梯度消失和梯度爆炸問題,為了避免該問題,Hochreiter等[10]提出并實現(xiàn)了LSTM。在一個LSTM模型中,每個單元包含輸入門it、遺忘門ft、輸出門ot以及記憶單元ct。輸入詞向量可以表示為{x1,x2,…,xn},其中xt為一個單元的輸入,是輸入文本中一個單詞的詞向量。ht表示網(wǎng)絡中的隱藏層向量。單元中的3個門和記憶單元可由以下公式計算得出:
(1)
ft=σ(Wf·X+bf)
(2)
it=σ(Wi·X+bi)
(3)
ot=σ(Wo·X+bo)
(4)
ct=ft⊙ct-1+it⊙tanh(Wc·X+bc)
(5)
ct=ft⊙ct-1+it⊙tanh(Wc·X+bc)
(6)
ht=ot⊙tanh(ct)
(7)
式中:Wi、Wf、Wo∈Rd×2d為權重矩陣;bi、bf、bo∈Rd表示訓練過程中學習到的偏置值;σ表示激活函數(shù);⊙表示點乘積。
雙向循環(huán)神經(jīng)網(wǎng)絡由前向神經(jīng)網(wǎng)絡和后向神經(jīng)網(wǎng)絡構成,前向神經(jīng)網(wǎng)絡負責記憶上文信息,后向神經(jīng)網(wǎng)絡負責記憶下文信息,對文本分析起到了促進作用。Bi-LSTM由兩個LSTM構成,且連接著同一個輸出層,為輸出層的數(shù)據(jù)同時提供上下文的信息,圖1為Bi-LSTM沿時間的展開圖。
人腦關注事物會為關鍵部分分配更多的注意力,注意力機制即為該現(xiàn)象的抽象化。通過計算注意力概率分布,對事物的關鍵性部分分配更重的權重,進行突出,進而對模型起到優(yōu)化作用。注意力機制最主要的特質(zhì)是為文本中的關鍵信息分配更多的權重,使得模型更多地關注重要信息,早期多用于圖像處理領域,近年來自然語言處理領域也引入了該方法。根據(jù)當前單詞為輸出矩陣分配不同權重,生成特定的上下文表示。
根據(jù)LSTM產(chǎn)生的隱藏層特征H=[h1,h2,…,hN]構建注意力機制的輸入,H∈Rd×N,其中:d表示隱藏層的長度;N為輸入文本的長度。注意力機制最終產(chǎn)生注意力權重矩陣α和特征表示v可由以下公式計算得出:
ui=tanh(Wshi+bs)
(8)
(9)
(10)
為了關注更多有價值信息,本文提出基于英文注意力機制的雙語情感分析模型,對語句中英文詞匯進行抽取,并對英文詞匯和語句進行向量表示與融合。采用雙向LSTM和注意力機制,更好地提取出文本中重點詞匯。模型構建如圖2所示,輸入數(shù)據(jù)包含兩部分:雙語文本s和英文子句t,英文子句即雙語文本中出現(xiàn)的非中文詞匯。
圖2 基于注意力機制的模型框圖
模型的網(wǎng)絡結構中主要包含4個網(wǎng)絡層:詞向量輸入層、雙向LSTM層、注意力計算層、情感預測層。詞向量層的作用是把句子中的每個詞匯映射成為低維、連續(xù)和實數(shù)的向量表示;雙向LSTM層對句子s和英文子句t進行建模,分別生成上下文特征表示和外文特征表示;注意力計算層根據(jù)上下文和外文兩個部分的特征表示輸入,為句子中的單詞分配合適的注意力權重,生成特定的情感特征表示;情感預測層基于特定的情感特征來預測情感傾向。
模型采用共享權重的雙向LSTM將文本和英文詞匯映射到相同向量空間。記Bi-LSTM中的前向LSTM和后向LSTM在時刻i的輸入處理分別為:
(11)
(12)
根據(jù)英文詞匯對為句子中的每一個詞匯分配合適的注意力權重,從而生成特征相關的情感特征表示。經(jīng)過注意力計算層,整個句子的表示如下:
(13)
式中:αt表示了句子第t個詞結合英文詞匯后的重要程度,即模型表示的第t個詞在句子中的注意力權重,其定義如下:
(14)
式中:score為衡量詞語與英文詞匯組合后的重要程度的打分函數(shù),score的定義如下:
(15)
式中:WS、WT為權重矩陣;b為偏執(zhí)向量;v為權重向量;vT表示v的轉(zhuǎn)置。
雙語文本的情感傾向預測需要同時考慮上下文信息和英文詞匯對文本的影響,本文將前向LSTM和后向LSTM的最后一個時間步的隱藏狀態(tài)連接起來作為句子s的特征表示,并利用非線性變換將其和英文相關的情感特征結合起來:
dc=tanh(Wcs+bc)
(16)
然后,采用softmax函數(shù)來獲取其情感分布。
(17)
式中:C表示情感標簽個數(shù);pc表示情感標簽c的預測概率。
模型采用交叉熵作為優(yōu)化的損失函數(shù),若D表示訓練數(shù)據(jù)集,則基于英文注意力的雙語分析模型損失函數(shù)如下:
(18)
為了訓練和測試語料,從新浪微博抽取雙語微博文本信息。使用分詞器進行分詞,替換掉微博中的網(wǎng)址、用戶及話題標簽等,過濾掉長度小于5的微博文本,獲得7 000條用于標注的雙語文本。然后依照高興、悲傷、憤怒、恐懼和驚訝五類情感對文本進行人工類別標注。雙語文本表達情感共有四種可能:1) 句子沒有表達情感;2) 句中的中文子句表達情感;3) 句中的英文子句表達情感;4) 中英文共同表達情感。因此,分別對句中英文子句、中文子句和雙語文本進行人工類別標注。語料在各情感類別中的分布情況如表1所示。
表1 雙語文本在5類情感類別中的分布
本實驗采用詞向量訓練工具word2vec,設置參數(shù)為:雙語文本和英文子句詞向量為100維;訓練迭代次數(shù)100;設置學習速率0.05等。采用Bi-LSTM生成文本表示,因此雙語文本中每個單詞的輸出表示為200維。注意力權重的維度與文本長度一致。本文利用TensorFlow框架來訓練注意力機制Bi-LSTM模型,設置LSTM的層數(shù)為64層,Bi-LSTM的層數(shù)為128層。實驗時標注語料按照8∶1∶1分別分為訓練集、開發(fā)集和測試集。采用準確率P(Precision)、召回率R(Recall)和F1值來表示評估實驗的性能。
1) 通過設定不同輸入體現(xiàn)英文子句對雙語文本的影響作用。
(1) CN-Bi-LETM,僅考慮雙語文本中的中文,作為Bi-LSTM網(wǎng)絡的輸入,得到的表示直接作為判斷模型的特征向量。
(2) EN-Bi-LSTM,僅考慮雙語文本中的英文,作為Bi-LSTM網(wǎng)絡的輸入,得到的表示直接作為判斷模型的特征向量。
(3) CN-EN-Bi-LSTM,將混合文本的向量表之直接作為Bi-LSTM網(wǎng)絡的輸入,得到的表示直接作為判斷模型的特征向量。
(4) EN-Attention Bi-LSTM,為雙重LSTM模型引入注意力機制,在特征表示時為不同詞語分配不同權重,作為最終的特征向量。
2) 通過與現(xiàn)有算法進行對比,體現(xiàn)深度學習在情感分析中的高效性,以及引入注意力機制對深度學習情感分析算法的影響。
(1) 基于平行語料庫的分類方法。采用平行語料庫與最大化似然值結合的方法擴展詞典,進而實現(xiàn)情感分類。
(2) 采用情感詞典與監(jiān)督學習算法相結合,實現(xiàn)較好的分類效果。
(3) 基于雙語詞典的分類方法。通過構建雙語詞典,采用半監(jiān)督高斯混合模型進行中文及雙語微博文本進行分類。
(4) 聯(lián)合因子圖模型。利用因子圖模型的屬性函數(shù)學習文本的單語和雙語信息,使用置信傳播算法進行情感預測。
1) 表2顯示了不同基線的實驗結果,可以看出:
表2 與其他基線比較
(1) 由于雙語文本中存在大量由中文陳述客觀事實、英文表述情感的現(xiàn)象,CN-Bi-LSTM只考慮了中文文本同樣是不穩(wěn)定的。
(2) 由于英語是我們語料庫中的嵌入式語言,EN-Bi-LSTM的結果只考慮英語文本是不穩(wěn)定的。
(3) CN-EN-Bi-LSTM將雙語文本共同作為網(wǎng)絡輸入,忽略了英文對中文子句的影響作用。
(4) EN-Attention Bi-LSTM引入注意力機制,明顯優(yōu)于以上算法。
上述實驗表明,本文所提模型由于英文子句改變或加強了文本的極性,同時注意力模型也發(fā)掘出了文本內(nèi)部的語義權重,提升了識別效果。
2) 表3顯示了不同算法在相同數(shù)據(jù)集上的實驗結果,可以看出,本文提出模型提升了分類的準確率。
表3 各分類算法F值
本文提出一種基于注意力機制的雙語文本情感分析模型,將雙語文本中的英文子句提取出來,分別采用雙重LSTM模型進行特征表示,利用注意力機制,根據(jù)英文子句對雙語文本詞匯分配不同權重,進行特征融合,最終形成基于注意力機制的特征向量,該方法能獲取到更加精準的語義表示。實驗結果顯示,英文子句注意力機制能夠有效識別雙語文本情感極性,并且準確率都超越了現(xiàn)有分類算法,取得了較好分析的結果。
本文方法立足于新浪微博,雙語文本以中文為主,英文為輔,未考慮到英文所占比重對分析結果的影響,不具有普適性。此外,下一步工作可針對雙語文本中的詞性進行比重劃分,對本方法進行改進。