張俊飛 畢志升 吳小玲
(廣州醫(yī)科大學基礎醫(yī)學學院 廣州 511436)
文本情感分析是一個在自然語言上執(zhí)行的主觀任務,是對自然語言表達的詞語、句子或篇章進行情感判斷,其中詞語的情感分析是其他層次研究的前提[1]。進入互聯(lián)網(wǎng)時代,各個行業(yè)中文本評價信息在以井噴式增長,進一步提高文本信息情感分析的精確度能夠為用戶購買決策、政府輿論導向、商家商機把握等提供咨詢服務。文本情感分析主要從情感傾向和情感強度兩個維度對主觀信息進行情感判斷。在一些研究中也把情感傾向稱為情感極性、語義傾向,可以分為正面(褒義)、負面(貶義)和中立三個層次,中立表示沒有情感。情感強度表達主要通過兩種方法實現(xiàn):1)通過合適強度的情感詞語,如“good”情感強度要小于“excellent”等;2)使用情感程度副詞,如“非?!?、“十分”、“一點點”等。
文本情感分析是對情感主觀信息的挖掘,是計算機科學、計算語言學、自然語言處理等領域的研究熱點之一。從信息技術發(fā)展的角度,文本情感分析技術有如下三種:1)基于情感詞典的文本情感分析[2~3],情感詞典包含積極詞和消極詞,通過情感詞的分值計算實現(xiàn)情感類別輸出。然而,此種方法忽略了詞語的語義信息和詞序特征,在句子和篇章級別的情感分析中會丟失很多情感信息。2)基于機器學習的情感分析,如利用SVM進行微博情感分析[4]、基于樸素貝葉斯情感分類算法[5]等。這種方法同基于情感詞典有著同樣丟失情感信息的特征,且需要做大量的特征提取工作。3)基于深度學習的情感分析,深度學習以不用再提取數(shù)據(jù)特征和處理線性不可分先天優(yōu)勢成為了文本情感分析研究的熱點。劉龍飛等[6]證實了基于卷積神經(jīng)網(wǎng)絡的微博情感傾向性分析是有效的;王樹恒等[7]整合詞向量Word2vec和雙向LSTM(Long short term memory networks)實現(xiàn)維吾爾語文本情感分析,并證實了比其他深度學習模型具有更高的情感分析準確率。
本研究借鑒先前學者研究成果,提出了利用詞嵌入技術Doc2vec和雙向長短期記憶網(wǎng)絡LSTM進行文本情感分析方案,并詳細對比闡述了Word2vec和長短期記憶網(wǎng)絡LSTM,最后基于Question Pairs語義等價數(shù)據(jù)集語料和評教評語語料,通過兩組對比試驗:Word2vec和Doc2vec詞向量生成對比實驗、LSTM和雙向LSTM評教評語情感分析對比實驗,驗證提出方案的有效性。
不同形式的數(shù)據(jù)應用到深度學習模型中,通常輸入的數(shù)據(jù)需要被標記成標量值,如卷積神經(jīng)網(wǎng)絡使用像素值作為輸入,logistic回歸使用一些可以量化的特征值作為輸入,強化學習模型使用獎勵信號來進行更新。Word2vec和Doc2vec實現(xiàn)一個向量表示一個詞,應用到基于深度學習的NLP中。
詞語的向量化表示有兩種:One-Hot representation方式和詞向量Distributed representation。One-Hot representation方式把每個詞表示成一個只包含0和1的長向量,向量的維度是詞典的大小,1的位置對應詞在詞典中的位置,如“評教”表示為[0 0 0 0 0 1 0 0 0 0 0…]。顯然,這種方式存在如下問題:1)詞典的大小決定了向量的維度,通常詞典較大易造成向量的維度災難;2)向量大部分為0值,非常稀疏,不利于處理任務;3)沒有考慮詞語之間的語義或語法關系,不適合詞匯語義的比較運算。Word2vec和Doc2vec模型利用詞的上下文信息環(huán)境將一個詞從One-Hot representation方式映射為一個低維、稠密的K維實數(shù)向量(K為模型中超參數(shù)),是Distributed representation方式。
Word2vec詞向量分布式表達來源于上下文的詞預測模型,Mikolov等[8]提出 CBOW(Continuous Bag-of-Word)和Skip-gram(Continuous Skip-gram)兩個模型,分別使用三層神經(jīng)網(wǎng)絡對語言建模預測上下文單詞出現(xiàn)的概率。CBOW根據(jù)語句詞語上下文信息預測該詞語,Skip-gram則是利用當前詞語推測上下文信息。兩種模型都包含三層:輸入層、投影層、輸出層。如圖1所示,以CBOW模型為例介紹其原理如下:首先wt為輸出層詞語,Context(wt)為其上下文,單側個數(shù)為c,總長度為2c。利用One-Hot編碼生成輸入層和輸出層詞語向量:v(Context(wt-c))、v(Context(wt-c+1))、v(Context(wt))…v(Context(wt+c))。在投影層將2c個輸入層向量求和(或取均值、直接拼接起來),即 xw=輸出層通過Hierarchical Softmax或Negative Sampling降低訓練復雜度,Hierarchical Softmax采用一棵Huffman樹,以語料中出現(xiàn)的詞為葉子節(jié)點,以詞頻為權重構成,其中葉子節(jié)點共N(即語料詞典的長度)個。使用霍夫曼樹來代替?zhèn)鹘y(tǒng)的神經(jīng)網(wǎng)絡,可以提高模型訓練的效率,然而對于生僻的詞語運算量將會很大。Negative Sampling摒棄了霍夫曼樹,采用了負采樣和二元邏輯回歸的方法求解模型參數(shù)。基于Negative Sampling的CBOW模型算法流程如下所示,其中采用隨機梯度上升法進行梯度迭代。
圖1 CBOW模型
Algorithm:基于Negative Sampling的CBOW模型算法
輸入:基于CBOW的語料訓練樣本,詞向量的維度大小M,CBOW的上下文大小2c,步長η,負采樣的個數(shù)neg。
過程:
1)隨機初始化所有的模型參數(shù)θ,利用One-Hot編碼初始化所有的詞向量w;
2)對于每個訓練樣本(Contex(t w0),w0),負采樣出neg個負例中心詞wi,i=1,2,…,neg;
3)進行梯度上升迭代過程,對于訓練集中的每一個樣本(Contex(t w0),w0,w1,…,wneg)做如下處理:
(2)for i=0 to neg,計算:
(3)對于Context(w)中
的每一個詞向量xk(共2c個)進行更新:
(4)如果梯度收斂,則結束梯度迭代,否則回到步驟3)繼續(xù)迭代;
輸出:詞匯表每個詞對應的模型參數(shù)θ,所有的詞向量xk
當利用Word2vec詞向量表示一個詞的時候,Mikolov等給出了一個著名等式“king-man+woman=queen”,形象地說明了詞向量處理文本的魔力。然而,當考慮到詞語之間的排列順序對句子或文本信息的影響,利用Word2vec詞向量求和(或取均值、直接拼接起來)就顯得差強人意。Doc2vec模型在Word2vec模型的基礎上做出了改進,增加了詞序語義的分析。Doc2vec模型把文檔特征向量看作是一個表示當前文檔中的其余部分信息或者主題信息的向量[9~10]。
Doc2Vec也有兩種模型,分別為Distributed Memory(DM) 和 Distributed Bag-of-Words(DBOW)。DM模型在給定上下文和文檔向量的情況下預測單詞的概率,DBOW模型在給定Paragraph向量的情況下預測文檔中一組隨機單詞的概率。如圖2所示,以DM模型為例介紹Doc2Vec原理。DM模型在訓練時,首先將每個文檔ID和語料庫中的所有詞初始化一個One-Hot編碼向量,然后將文檔向量和上下文詞語向量輸入模型,投影層將這些向量累加(或取均值、直接拼接起來)得到中間向量,作為輸出層的輸入。輸出層同樣可以采用Hierarchical Softmax或Negative Sampling降低訓練復雜度。在一個文檔的訓練過程中,文檔ID保持不變,共享著同一個Paragraph向量,相當于在預測單詞的概率時,利用了整個句子的語義。
圖2 DM模型
RNN(Recurrent Neural Networks)通過使用反向傳播和記憶的機制,處理任意長度的序列,具備保持信息能力,可以將信息按照時間狀態(tài)進行傳遞,但是其存在梯度爆炸或消失[11]和長期依賴問題。梯度問題影響網(wǎng)絡結構的誤差反向傳遞,長期依賴是指相隔較遠的語義相關信息。Hochreiter[12]等提出了一種RNN的變種LSTM,用一個記憶單元對原RNN中的隱層節(jié)點進行替換,可以學習長期依賴信息。這個記憶單元由記憶細胞、輸入門、遺忘門和輸出門組成,其中記憶細胞用來存儲和更新歷史信息,三個門結構通過Sigmoid函數(shù)來決定信息的保留程度。LSTM模型能避免RNN的梯度問題,具有更強的“記憶能力”,能夠很好地利用上下文特征信息,并保留文本的順序信息,自動選擇特征進行分類。[13]
圖3 LSTM內部結構
LSTM內部結構如圖3所示,其算法偽代碼如下所示。遺忘門、輸入門、輸出門在當前時刻t接受上文信息ht-1和當前輸入xt,然后與權重矩陣相乘,再與偏置量相加,最后利用Sigmod激活函數(shù)進行信息過濾;Gt表示tanh層創(chuàng)建的新候選值向量;St表示由狀態(tài)St-1更新后的新細胞狀態(tài);Ot運行Sigmod層確定細胞狀態(tài)輸出部位;細胞狀態(tài)經(jīng)過tanh處理與 Ot相乘,最終輸出 ht。
Algorithm:LSTM算法
輸入:上文信息輸入ht-1,當前輸入信息xt
過程:
其中σ、tanh表示Sigmod函數(shù)、雙曲正切函數(shù);W、b表示權重矩陣、偏置向量;ft、it、Ot表示忘記門、輸入門、輸出門;ht表示最后的輸出;
損失函數(shù)表示為l(t)=f(ht,yt)=‖ht-yt‖2,yt表示t時刻的輸出標簽;
輸出:t時刻輸入信息的輸出ht
單向LSTM網(wǎng)絡是以歷史順序處理序列的,忽略了當前信息之后的信息[14]。單向LSTM輸出狀態(tài)ht包含了t時刻之前的上文信息,為了得到下文信息,使用反向即將輸入逆序處理的循環(huán)神經(jīng)網(wǎng)絡,構建更加強有力的基于LSTM的雙向循環(huán)神經(jīng)網(wǎng)絡,來對時序數(shù)據(jù)進行建模。如圖4所示,通過雙向LSTM的隱藏層中保存有兩個值A參與正向計算和A'參與反向計算。正向計算時,隱藏層的St與St-1有關;反向計算時,隱藏層的 St與 St+1有關。雙向LSTM輸出結果需要并聯(lián)在一起,再交給后面的層來處理。
圖4 雙向LSTM內部結構
為了驗證本文提出的基于詞向量Doc2vec的雙向LSTM情感分析有效性,設計了兩組對比實驗:Word2vec和Doc2vec詞向量生成對比實驗、LSTM和雙向LSTM評教評語情感分析對比實驗。第一組實驗采用Quora發(fā)布的Question Pairs語義等價數(shù)據(jù)集作為語料庫;第二組實驗采用本校多年教學評價評語,并把它們分成訓練語料和測試語料兩部分。在本文實驗中使用TensorFlow作為深度學習平臺,利用Gensim Python包實現(xiàn)對Wor2vec和Doc2vec詞向量編程。為了更好地實現(xiàn)Python環(huán)境兼容和管理,采用Anaconda作為管理工具,并安裝Keras高層框架,實現(xiàn)對神經(jīng)網(wǎng)絡庫模塊化。
Question Pairs語義等價數(shù)據(jù)集語料庫包含了40多萬對標注好的問題對,如果兩個問題語義等價,則is_duplicate值為1,否則為0。具體格式如表1所示。
表1 Question Pairs語義等價數(shù)據(jù)集
在語料詞向量生成過程中,Word2vec采用CBOW模式,Doc2vec采用DM模式,輸出端兩者都采用Negative Sampling進行訓練?;赪ord2vec和Doc2vec的句子對匹配方法主要分為三步:1)訓練語料庫的Doc2vec和Word2vec模型;2)分別用Doc2vec和Word2vec得到句子的向量表示;3)計算句子向量的余弦相似度,即為兩個句子的匹配程度。當匹配相似度值大于指定閾值的時候,認為它們語義等價,label值為1,否則為0。最后比較label值和語料庫中的is_duplicate值,計算準確度,得到如表2數(shù)據(jù)。由表2數(shù)據(jù)可知,Doc2vec對句子的表達優(yōu)于Word2vec。
表2 基于Word2vec和Doc2vec的相似度判斷準確率
本校多年教學評價評語數(shù)據(jù)每條都由量化評分和質性評語組成。實驗設計質性評價評語集合為待情感分析的語料庫中的數(shù)據(jù)屬性;量化分數(shù)映射為語料庫中標簽值,如表3所示。
表3 標簽映射規(guī)則
該實驗設計流程如下;
首先,需要對訓練語料庫進行分詞處理、去停用詞等數(shù)據(jù)預處理,并進行One-Hot編碼。分詞采用結巴分詞[15]系統(tǒng)精確模式,采用動態(tài)規(guī)劃找出基于詞頻的最大切分組合,支持加載外部詞庫,對與未登錄詞采用HMM模型、Viterbi算法發(fā)現(xiàn)新詞。
其次,采用Gensim python包、Doc2Vec的DM模型、Negative Sampling進行輸出訓練,生成詞向量。
最后,把生成的詞向量輸入分別輸入到雙向LSTM和LSTM中,進行情感分析訓練。雙向LSTM輸出結果需要利用 tf.contact(outputs,2)函數(shù)并聯(lián)并進行轉置操作,LSTM則可直接輸出結果。兩種深度神經(jīng)網(wǎng)絡最后都接一個全連接層進行softmax分類。經(jīng)過每次迭代,輸出損失函數(shù)值(loss)和模型準確率(accuracy)。本文經(jīng)過25次迭代,雙向LSTM的loss值下降到0.0584,accuracy達到0.9542;LSTM的loss值下降到0.0674,accuracy達到0.9242。利用生成的訓練模型,進行測試集驗證,雙向LSTM的loss達到0.1547,accuracy為0.9357;LSTM的loss達到0.1647,accuracy為0.9057。由此可見雙向LSTM較單向LSTM在教學評價評語情感分析中具有更高的準確率。
本文針對詞向量技術Word2vec沒有充分考慮文檔詞序語義,LSTM沒有利用下文信息實現(xiàn)情感分析判斷,提出基于詞向量Doc2vec的雙向LSTM情感分析方案。通過對Word2vec的CBOW模式及模式輸出端Negative Sampling訓練闡述,引入詞向量Doc2vec的介紹;利用LSTM原理介紹,過渡到雙向LSTM的描述。最后陳述了兩組對比試驗:Word2vec和Doc2vec詞向量生成對比實驗、LSTM和雙向LSTM評教評語情感分析對比實驗。第一組實驗驗證了Doc2vec引入文檔向量到詞向量計算過程中,保存了文檔詞序語義信息,對句子的表達優(yōu)于Word2vec。第二組實驗使用了評教評語語料,分別利用LSTM和雙向LSTM進行情感分析,從輸出情感標識的損失函數(shù)值和精確度說明了雙向LSTM具有更高的精準度。