徐菲菲 蘆霄鵬
(上海電力大學計算機科學與技術(shù)學院 上海 200090)
隨著互聯(lián)網(wǎng)的廣泛應(yīng)用,越來越多的網(wǎng)絡(luò)用戶在各種論壇貼吧、微博,以及社交軟件如大眾點評、豆瓣等網(wǎng)絡(luò)平臺上通過對熱點事件、新聞人物、流行產(chǎn)品進行帶有個人情感色彩的評論來表達自己的情感和態(tài)度,在網(wǎng)絡(luò)上表達自己的情感和態(tài)度儼然已成為一種重要的生活方式。作為情感觀念的載體,通過對網(wǎng)絡(luò)中的文本信息的挖掘,能夠更全面地分析網(wǎng)絡(luò)用戶的行為,例如可以直觀地得到網(wǎng)絡(luò)用戶對于某熱點事物態(tài)度的變化,可以準確得到網(wǎng)絡(luò)用戶對某產(chǎn)品的滿意度。
情感是人類賴以生存的首要需求,也是人類參與日常社交生活的重要紐帶。由于文化背景以及成長環(huán)境的不同,不同的個體對同一事物會產(chǎn)生多樣的情感傾向,通過對文本進行情感分類可以理解網(wǎng)絡(luò)文本中的情感傾向,可以分為積極、消極情感或者更加細化的情感類別[1]。文本情感分析可以歸為觀點挖掘之一,通過自然語言處理結(jié)合深度學習技術(shù),可以對帶有個人情感色彩的文本進行情感極性分類,對主觀性情緒進行歸納與推理[2]。
隨著深度學習逐漸成為自然語言處理領(lǐng)域的研究熱點,利用基于情感詞典匹配的深度學習方法解決情感分析問題的技術(shù)也飛速發(fā)展。眾多學者對文本情感分析的情感特征進行了一定的優(yōu)化[3]。Zhang等[4]提出了一種基于情感詞典的策略,成功對在線用戶生成的文本進行了情感分類。Zhang等[5]提出了基于情感詞典的中文微博文本情感分析方法,通過計算權(quán)重來獲取微博文本的情感值,進而進行文本情感分類。Wu等[6]通過利用Web資源構(gòu)建了一個易于維護和擴展的情感詞典來幫助社交媒體內(nèi)容進行情感分析。
通過機器學習方法進行神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練,得到相應(yīng)的分類器,利用訓(xùn)練好的情感分類器可以對相應(yīng)的數(shù)據(jù)集進行情感極性分類。許多學者將CNN、RNN等神經(jīng)網(wǎng)絡(luò)廣泛應(yīng)用于詞性標注、機器翻譯和圖像處理等領(lǐng)域。Hu等[1]利用循環(huán)神經(jīng)網(wǎng)絡(luò)對英文文本進行了多模態(tài)融合情感分析。Kim[7]提出了一種改進的CNN進行文本分類。Zhuang等[8]采用背向傳播方法改進了所提出的循環(huán)隨機游走網(wǎng)絡(luò)模型,成功地對Twitter的博文進行了情感分類,表現(xiàn)出較好的性能。白靜等[9]通過BiLSTM遞歸神經(jīng)網(wǎng)絡(luò)提取特征并結(jié)合上下文語義對新浪微博中文文本情感進行了立場檢測。胡榮磊等[10]將循環(huán)神經(jīng)網(wǎng)絡(luò)中的長短期記憶網(wǎng)絡(luò)和前饋注意力模型相結(jié)合,提出了一種文本情感分類方案。陳珂等[11]利用提出的多通道卷積神經(jīng)網(wǎng)絡(luò)模型,對中文微博文本進行了情感分類。
CNN、RNN等神經(jīng)網(wǎng)絡(luò)在自然語言處理中的情感分析領(lǐng)域取得了較好的效果,但是仍然存在一些問題。比如CNN最初被廣泛應(yīng)用于圖像處理領(lǐng)域,在處理文本序列問題上并不是十分適用;雖然循環(huán)神經(jīng)網(wǎng)絡(luò)RNN在自然語言處理的運用中取得良好的效果,但其具有長期依賴和可能面臨的問題,如梯度爆炸或梯度消失[12]。為了解決這一系列的問題,LSTM和GRU等眾多基于標準循環(huán)神經(jīng)網(wǎng)絡(luò)的變體被陸續(xù)提出,并在情感分析領(lǐng)域成功應(yīng)用。LSTM能夠記憶序列的上下文,對于文本序列情感特征提取具有較為明顯的優(yōu)勢,能夠解決梯度消失的問題。作為LSTM的變體,GRU模型比標準的LSTM模型結(jié)構(gòu)更為簡單、參數(shù)更少、收斂速度快,因而訓(xùn)練時間更短,用于泛化的數(shù)據(jù)量更少。在最新的文本分類研究中發(fā)現(xiàn),最小門控單元MGU相比于GRU具有結(jié)構(gòu)更簡單、參數(shù)更少、訓(xùn)練時間更少等優(yōu)點,非常適用于時間依賴性很強的任務(wù),同時使用參數(shù)較少的MGU模型,可以減少選擇參數(shù)的工作量,提高模型的泛化能力[13]。
MGU模型沒有充分學習文本在時間上產(chǎn)生的先后順序等序列相關(guān)特征,而卷積神經(jīng)網(wǎng)絡(luò)CNN通過卷積運算,數(shù)據(jù)的相關(guān)特征可以被提取,強化原始數(shù)據(jù)中的某些特征,從而能夠降低來自噪聲的影響。例如當識別一幅圖片時,人的大腦不是對整幅圖片直接進行識別,而是通過圖片中的每一個特征先進行識別,然后再對所有局部特征進行深層次的整體識別,最后得到整幅圖片的相關(guān)信息。
Attention機制通過掃描全局文本獲得注意力資源重點投入的區(qū)域,篩選出高價值信息,因此被廣泛應(yīng)用于自然語言處理、圖像識別等多種深度學習任務(wù)中。在自然語言處理中,Attention經(jīng)常被用來和各類神經(jīng)網(wǎng)絡(luò)相結(jié)合,進而幫助神經(jīng)網(wǎng)絡(luò)重點關(guān)注文本序列中一些重要信息。
因此,本文結(jié)合CNN與最小門控單元MGU并引入注意力機制的網(wǎng)絡(luò)結(jié)構(gòu),提出一種新的注意力模型C_MGU。該模型將CNN中的卷積層和最小門控單元MGU以統(tǒng)一的架構(gòu)進行組合,并將注意力機制加入在卷積層和MGU層之間,不僅體現(xiàn)了CNN模型和最小門控單元MGU各自的優(yōu)勢,還利用注意力機制進一步優(yōu)化了語義特征表示。實驗結(jié)果表明,該模型不僅能夠突出文本的關(guān)鍵信息,還能挖掘更豐富的語義,在文本的情感分類上有較好的表現(xiàn)。
圖1 LSTM記憶單元
由于LSTM中存在較多的學習參數(shù)設(shè)置,訓(xùn)練時間較長,GRU作為LSTM的一種改良版變體被提出[15]。與LSTM相比,GRU內(nèi)部少了1個門控單元,參數(shù)更少,所以運算時間與收斂速度有較大提升。其結(jié)構(gòu)如圖2所示。
圖2 GRU記憶單元
GRU作為LSTM的變種,擁有更簡單的結(jié)構(gòu),只有更新門和重置門,即圖2中的zt和rt。更新門的作用類似于LSTM的遺忘門和輸入門,其負責決定對信息的篩選和記錄。重置門的作用是決定對過去狀態(tài)的信息遺忘的程度。二者的本質(zhì)區(qū)別在于GRU對當前狀態(tài)信息的產(chǎn)生是否受過去信息產(chǎn)生的影響具有選擇性,其有更深層次的理解,增加了信息的聯(lián)系程度。在t時刻,對于給定的輸入xt,GRU的隱藏輸出ht計算過程如下:
rt=σ(Wr·[ht-1,xt])
(1)
zt=σ(Wz·[ht-1,xt])
(2)
(3)
(4)
最小門控單元MGU是一種簡化的循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)單元,在所有門控單元中門數(shù)最少,只有一個遺忘門,將輸入門合并入遺忘門,結(jié)構(gòu)如圖3所示。
圖3 MGU記憶單元
可以看出,MGU顯然比LSTM和GRU的結(jié)構(gòu)更簡單,LSTM有4組參數(shù)需要確定,GRU需要有3組參數(shù),但是MGU只需要有2組參數(shù),因此MGU是所有用于RNN的門控單元中,結(jié)構(gòu)更簡單、參數(shù)更少、訓(xùn)練更快的循環(huán)神經(jīng)網(wǎng)絡(luò)。
結(jié)合CNN和MGU各自的優(yōu)勢,為了實現(xiàn)文本情感分析的目標,本文將CNN與最小門控單元MGU進行結(jié)合并引入注意力機制的網(wǎng)絡(luò)結(jié)構(gòu)。模型結(jié)構(gòu)如圖4所示。首先,模型通過CNN的卷積層模塊來捕捉提取文本的初步特征表示;然后利用Attention機制和最小門控單元MGU模塊來對文本的初步特征表示進行關(guān)鍵信息的加強和進一步的優(yōu)化;最后在MGU的隱藏層生成最終的文本深層特征表示,并將其輸入到Softmax層進行回歸處理,完成對文本的分類處理。
圖4 GRU-Att模型
本文提出的網(wǎng)絡(luò)模型的具體流程是:首先通過第一層的CNN卷積層對輸入的文本數(shù)據(jù)進行初步特征提??;然后通過第二層的注意力機制,對卷積層提取到的初步特征進行信息的篩選以及關(guān)鍵信息的加強即li;最后在MGU的隱藏層生成文本的深層特征表示Yi,并輸入到Softmax中進行回歸處理,完成對文本數(shù)據(jù)的情感分類。
2.2.1卷積層特征提取
本文模型的第一個模塊為利用卷積神經(jīng)網(wǎng)絡(luò)CNN的卷積層把長度為K的一組序列轉(zhuǎn)化為長度為K的輸出序列,利用CNN的卷積層確保輸入MGU的序列向量的合理長度以及原始語序,MGU神經(jīng)網(wǎng)絡(luò)可以把長度為K的序列轉(zhuǎn)換為任意一組序列輸出。一維卷積核在文本序列上滑動,過濾器提取不同位置的文本局部特征表示,令wj∈RD表示句子中第j個單詞的D維詞向量,x∈RL×D表示長度為L的輸入句子,令過濾器的長度為K,f∈RK×D為用于卷積運算的過濾器。對于一個句子中的每個位置i,具有K個連續(xù)單詞向量的窗口區(qū)域向量si表示為:
si=[wi,wi+1,…,wi+k-1]
(5)
卷積層針對局部的數(shù)據(jù)窗口進行卷積計算,產(chǎn)生特征映射c∈RL-K+1,計算公式如下:
ci=ReLU(si°f+θ)
(6)
式中:ci為特征映射元素;° 表示元素級相乘;θ表示偏置項;ReLU函數(shù)是非線性激活函數(shù)。采用N個相同長度的過濾器來生成特征矩陣:
(7)
2.2.2注意力層
隨著深度學習的發(fā)展,注意力機制被廣地應(yīng)用于自然語言處理、圖像識別處理等領(lǐng)域,并且取得了突出的成就[16]。注意力機制其實就是幫助網(wǎng)絡(luò)模型把握重點信息而忽略無關(guān)信息,可以更好地把握文本信息的重點,有助于對文本信息的語義挖掘。注意力機制和人類的視覺注意力有很大的相似性,通過對信息的全局掃描獲得重點關(guān)注區(qū)域,獲取目標細節(jié)信息。例如在過馬路時,人們首先看的是交通信號燈的顯示,而不是關(guān)注人群中的某一個人。注意力機制極大地提高了信息處理的效率和準確率[17]。本文模型中每一個輸出元素如下:
yi=F(Ci,y1,y2,…,yi-1)
(8)
(9)
(10)
eij=score(si-1,hj)=VT·tanh(Whj+Usi-1+b)
(11)
式中:yi為i時刻要生成的詞;上下文向量Ci是語句x1,x2,…,xj在經(jīng)過卷積層卷積運算得到的;S(xj)表示整個序列的隱藏向量;T表示文本序列的輸入長度;aij表示注意力權(quán)重系數(shù);eij是score函數(shù),定義目標單詞應(yīng)該考慮給每個輸入隱藏的多大的權(quán)重,相當于使用了一個全連接層;VT、W和U是權(quán)重參數(shù)矩陣;b為偏移量。由Attention機制形成的語義編碼會作為MGU模塊的輸入。
2.2.3MGU層
在Attention機制后,本文采用的是簡化的循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)單元,即最小門單元MGU,與LSTM和GRU相比,有著更少的參數(shù)[18]。在t時刻,MGU模型中,計算當前的狀態(tài)為:
(12)
遺忘門控制上一時刻的記憶遺忘程度以及附加了多少新信息,遺忘門的表示為:
ft=σ(Wf+Ufht-1+bf)
(13)
(14)
式中:xt是時刻的輸入。
MGU相比于LSTM和GRU有著更少的參數(shù),更簡單的結(jié)構(gòu),收斂速度更快。通過上述模型,可以獲得一種文本深層次特征表示,最后采用Softmax進行回歸獲得最終的文本分類結(jié)果。
對于情感分類任務(wù),本文選用公開的IMDB、Sentiment140數(shù)據(jù)集。本文將數(shù)據(jù)集分別按照正負平衡的原則選取20 000條數(shù)據(jù),并按照8∶2的比例分為訓(xùn)練集和測試集。
本文采用上述兩個數(shù)據(jù)集進行預(yù)訓(xùn)練,單詞向量采用Word2vec進行詞向量訓(xùn)練,詞向量的維度為100,由此可以得到文本詞語的向量表示。為了避免在訓(xùn)練過程中出現(xiàn)的不在詞語向量表中的詞語對模型造成的干擾,采用隨機初始化。由于卷積層模塊要求的是固定長度的輸入,所以本文將文本長度限制在MaxLen內(nèi),因此可以得到固定長度輸入的文本語句。另外本文設(shè)置區(qū)域序列長度為5,過濾器的數(shù)量設(shè)置為2。
對于基于注意力機制的C_MGU模型,本文定義上下文向量為100維,MGU的隱藏單元數(shù)為100,學習率為0.01,batch-size為20。經(jīng)過注意力機制后的MGU層隱藏層狀態(tài)作為Softmax的輸入,采用隨機梯度下降法作為優(yōu)化方法。
實驗采用Keras深度學習框架,底層為TensorFlow,TensorFlow平臺集成了CNN、RNN,以及LSTM、GRU、MGU等深度學習模型,使用Python語言編程實現(xiàn)。
采用準確率、F1值作為評價指標,將本文模型與文本情感分類常用模型進行對比。準確率與F1值的計算如下:
(15)
式中:m為所有預(yù)測正確的樣本數(shù);M為總的樣本數(shù)。
(16)
3.3.1參數(shù)設(shè)置比較實驗
處理詞向量作為較為基本的文本處理任務(wù),詞向量維度的大小對模型分類準確率有著重要的影響,當詞向量維度越大時,包含的詞語越多,信息量越大,但是會淡化詞與詞之間的關(guān)系,詞向量維度太小會造成無法區(qū)分詞語的結(jié)果。因此詞向量維度的選擇顯得尤為重要,通過對本文提出的Att-C_MGU以及CNN、LSTM、GRU等模型在詞向量維度不同時在數(shù)據(jù)集IMBD上的表現(xiàn),從而確定本文關(guān)于詞向量維度的選擇問題。詞向量維度不同時對模型在數(shù)據(jù)集IMBD上分類效果的具體影響如圖5所示。
圖5 詞向量維度對模型準確率的影響
可以看出,采用Word2Vec對詞向量進行訓(xùn)練,當詞向量維度小于100時,所有模型均表現(xiàn)出上升的趨勢,上升幅度略有不同,當詞向量的維度大于100時,所選模型在數(shù)據(jù)集上表現(xiàn)的分類性能有的顯示為波動,有的則上升幅度較小,有的模型則表現(xiàn)出不能很好地學習詞向量的特征信息,反而有所下降,所以本文選取詞向量維度為100。
確定詞向量的大小后,本文對于模型迭代次數(shù)的選擇也通過實驗來進行說明。迭代次數(shù)對模型的分類準確率也有重要的影響,迭代次數(shù)越多,模型的分類準確率越高,效果越好,但是當?shù)^一定的次數(shù)時,模型的泛化能力會下降,產(chǎn)生過擬合的結(jié)果。
迭代次數(shù)的影響如圖6所示??梢钥闯觯S著迭代次數(shù)的增加,模型準確率會逐漸增加,當?shù)螖?shù)為30左右時,準確率趨于穩(wěn)定,變化幅度較為平緩,表現(xiàn)的效果較好。
圖6 迭代次數(shù)對模型準確率的影響
3.3.2注意力機制影響實驗
首先對獲取的IMBD和Sentiment140數(shù)據(jù)集通過去除標點符號、停用詞等進行預(yù)處理,為后續(xù)實驗減少工作量;然后采用Word2vec對詞向量進行訓(xùn)練,將訓(xùn)練后的詞向量輸入本文提出的注意力C_MGU模型;最終將輸出結(jié)果與已經(jīng)標注好的數(shù)據(jù)進行比較從而表明本文模型的有效性。為了說明引入注意力機制的必要性和作用,在IMBD與Sentiment140數(shù)據(jù)集上比較了本文模型與不引入注意力機制的C_MGU的性能,實驗結(jié)果如圖7所示??梢钥闯?,在情感分析算法中引入注意力機制可以在一定程度上提升算法的性能,在IMBD、IMBD2、Sentiment140數(shù)據(jù)集分類上的準確率分別提升2.8%、2.3%、1.7%,由此說明Attention機制對新模型的必要性。
圖7 注意力機制的影響
3.3.3有效性對比實驗
通過對IMBD、Sentiment140數(shù)據(jù)集文本進行情感分析,將本文模型與傳統(tǒng)文本分類方法CNN、SVM、LSTM、GRU等模型進行對比,采用準確率、F1值作為評價指標,來驗證本模型的有效性,具體對比情況如圖8、表1和表2所示。
圖8 不同數(shù)據(jù)集上模型準確率對比
表1 不同模型的準確率對比
表2 不同模型的F1值對比
由表1和圖8可以看出,本文提出的基于注意力C_MGU模型在各個數(shù)據(jù)集上的準確率表現(xiàn)均優(yōu)于傳統(tǒng)的分類模型。與GRU模型相比,由于使用的是最簡門控單元MGU模塊,參數(shù)較少,收斂速度較快,并且引入了Attention機制,在各個數(shù)據(jù)集的準確率上比GRU高1.8%、4.6%;與Attention-LSTM模型相比較,雖然二者都引入了Attention機制,但是第二層分別是LSTM層和MGU層,也從正面證實MGU與LSTM相比,雖然在準確率上相差無幾,但是在時間代價消耗上明顯優(yōu)于LSTM,即MGU比LSTM模型收斂速度更快。由表2可以看出本文模型表現(xiàn)更為優(yōu)秀。
綜上所述,在各個數(shù)據(jù)集分類上的準確率以及F1值上,本文提出的基于注意力C_MGU皆優(yōu)于傳統(tǒng)模型。
本文提出一種基于注意力C_MGU混合神經(jīng)網(wǎng)絡(luò)模型,通過對IMBD影評數(shù)據(jù)和Sentiment140數(shù)據(jù)進行情感分析實驗,從準確率、F1值上與其他主流文本分類方法對比,結(jié)果表明該模型對文本進行情感分析是有效的。MGU與GRU、LSTM相比,由于其計算量小、收斂速度快等優(yōu)勢,在文本情感分析領(lǐng)域具有一定的優(yōu)勢。
在本文的研究中,情感極性只有積極和消極兩種,情感類別沒有進行細化,情感強度問題也沒有考慮;在對Sentiment140數(shù)據(jù)進行數(shù)據(jù)處理時,舍棄了一些只有表情符號或者只有圖片并沒有文字說明的數(shù)據(jù),無法從多角度進行全面分析,對模型造成了一定的局限性。下一步將對多模態(tài)文本情感分析進行深入的研究。