, ,,
在線評論通常用來表達人們對產品、服務、事件等方面的觀點和感受,具有更新速度快、處理難度高、復雜和真實等特點。如何從海量的在線評論中獲取有價值的信息,已經成為企業、機構、政府等社會團體的一個重要研究方向。如基于推特(Twitter)的在線評論情感分類和知識挖掘已經在總統選舉[1]、股票預測[2]、公眾對某重大事件的反應[3]等方面取得了較為成功的應用。目前,研究人員將用戶的在線評論自動標注為積極或者消極情感,其中大部分方法都是基于特征提取及情感學習和分類兩方面實現的[4]。在線評論內容長度有限,通常只有1~2句,甚至只是一些簡單的情感詞匯,文本中存在的大量價值含量低甚至沒有價值的條目數據會對分析造成很大的影響。另外,在線評論中還存在一些模糊的表達方式,需根據上下文的語義環境進行判斷,如中文表述中的反語等[5]。單純使用文本的信息對在線評論進行情感分析是一項具有挑戰性的任務,因此對于情感分類,研究人員需在語法結構、語義關系、內容處理等方面付諸努力,并提出一些行之有效的方法用以改進情感分類模型的性能。目前基于深度學習的方法已經成功應用在語音識別、圖形處理、信號處理等方面。深度學習能夠在零基礎的前提下,為情感分類進行建模,將深度學習的方法用在情感分類上已經成為自然語言處理的研究熱點。
本文采用基于長短型記憶網絡(long-short term memory,LSTM)的深度學習方法,解決在線消費評論情感分類依靠星級打分而無法利用句子本身語義的問題。該方法不需要對單詞、短語、句子進行手工嵌入,也不需要考慮它們之間的語義或語法聯系,利用之前呈現的詞語加深對當前文字的理解,自動對語句進行特征提取,更加注重語言的整合處理,從而提高深度神經網絡在情感分類方面的準確率。
基于傳統情感字典的分類方法可總結為以下幾個步驟:文本的預處理、添加情感詞典、分詞、訓練模型、分類等。情感詞典是情感分類的核心部分,包括積極情感詞典、消極情感詞典、否定詞典以及程度副詞詞典,這些詞典的應用使基于情感字典的分類取得了很好的分類結果。但傳統的分類方法存在兩方面的缺陷:精度問題和背景知識問題。精度問題在于很難提出行之有效的方法并進一步提高情感分類的準確度;背景知識問題,需要提前準備好各類情感字典,而這一舉措,需要手工操作才能保證情感分類的準確率,易擴展性較差[6]。但傳統的機器學習方法仍可以有效地用于情感分類問題[7],如貝葉斯分類(NB)、支持向量機(SVM)、最大熵(ME)等。Pang等人利用基于特征袋的方法訓練出一個模型,對影評數據集進行積極和消極的情感分類,達到了82%的準確率[8]。G Vinodhinic采用了支持向量機并集成了過采樣和欠采樣的方法,提高了情感分類文本的精確度[9]。Lin ChengHua等在2009年CIKM會議上提出一個基于LDA的聯合情感/主題模型(joint sentiment/topic model,JST)的新型概率模型框架,在LDA模型基礎上引用情感標簽[10]。Wiebe統計了每篇文章出現的主觀詞匯,利用K最鄰近值對基于篇章層面的情感進行研究,取得了滿意的效果[11]。Chen等人發現詞嵌入技術能提高信息檢索以及情感分類在自然語言處理的精確度,并成功應用到情感分類中[12]。在文本情感識別領域,使用傳統的機器學習方法多屬于淺層學習,如詞頻統計、字典匹配等。上述方法雖然取得一定的效果,但無法應對短文本語義的復雜環境。
深度學習在情感分類領域成效顯著。Santos and Gatti等人利用基于字符集和句子集的卷積神經網絡對短文本進行情感分類,使用斯坦福的影評數據集和斯坦福的推特情感語料庫進行訓練,分別達到85.7%和86.4%的準確率[13]。Glorot et alx選取了4個亞馬遜產品的評論數據集,該數據集包含22種類型共34萬多條評論,并使用深度學習的方法把每條評論標注為“積極”或“消極”[14]。深度學習不僅可以進行大規模的數據計算,還可以模擬大腦的工作方式,已經成為情感分類的重要手段。在中文情感分類方面,由于中英文表達在構詞、語法以及文化方面的不同,中文情感分析的研究工作相對不足,使中文主觀分類更具有挑戰性。孫松濤等人通過對大規模的微博數據集進行詞向量化,使用卷積神經網絡(CNN)模型對得到的詞向量進行情感學習,并建立基于CNN特征空間的微博多標簽情感分類器,得到了較好的情感語義區分度[15]。杜慧對現有的COBW神經網絡進行調整,在訓練文本詞向量的同時考慮到語義和句子的情感詞向量,進而避免了文本的原始向量相似而語句的情感色彩相差較大的問題[16]。盡管以上方法在情感分類領域已經取得不錯的成績,但仍需要依賴構建大量的特征工程(如情感字典、語法特征和句法特征等)來提高情感分類的準確率。
本文采用LSTM神經網絡方法,不需對單詞、短語、句子進行手工嵌入,也不需考慮它們之間的語義或語法聯系,從而避免了特征工程的構建。為了對比深度學習與傳統機器學習的差異,本文同時也提出了一個基于SVM的情感分類模型。對兩個模型的結果進行對比顯示,LSTM模型優于SVM分類模型。
英文的表達是以詞為單位的,詞與詞之間通常以空格隔開;而中文通常是以字為單位的,句子中的所有字需要連起來才能描述出一個完整的意思。分詞不僅是文本預處理的重要前提工作,而且還是智能計算的基礎性工作。在基于情感分類的研究中,選取那些具有情感傾向的詞尤為重要。本文使用Python(3.6.3)的Jieba(0.39)中文分詞包對在線消費評論語料庫進行分詞處理。
計算機無法理解人類的自然語言,其學習自然語言的過程可以看作是將語言文字符號數字化的過程。本文將在線消費評論轉換成LSTM模型所需的向量格式,采用谷歌的word2vec模型,基于Python的gensim(3.0.1)包實現詞的向量化。Word2Vec算法可以在捕捉上下文語義語境的同時壓縮數據,包括2種語言模型CBOW和Skip_gram;其中,CBOW通過上下文預測當前詞的模型,Skip_gram則通過當前詞預測上下文窗口內的單詞[17]。
本文將一種經典的深度學習模型LSTM用于文本情感分類。LSTM是循環神經網絡(RNN)的一個重要分支結構,在情感分類中能夠有效利用上下文關系從而避免梯度下降或消失,目前已廣泛應用于自然語言處理有關分類的問題上,并且準確度較高。LSTM模型包括輸入層、LSTM層和輸出層3個層(圖1)。

圖1 LSTM三層結構模型
LSTM單元作為整個模型的核心部分,包括輸入門、遺忘門和輸出門3個門,用于控制是否忽略當前信息或者將其傳遞到下一個單元。LSTM 單元狀態更新的數學表達式如下。
it=σ(Wxit+Whiht-1+Wcict-1+b1)
(1)
ft=σ(Wxft+Whfht-1+Wcfct-1+bf)
(2)
ct=ft?ct-1+it? tanh(Wxct+Whcht-1+bc)
(3)
ot=σ(Wxot+Whoht-1+Wcoct+bo)
(4)
ht=ot? tanh(ct)
(5)
其中,σ是點對的sigmoid函數,?代表是點對乘積,it,ft和ot分別是輸入、遺忘和輸出門,ht是t時刻以及之前時刻存儲的全部有用信息的隱含狀態向量,ct表示的是細胞向量,wi、wf、wc、wo是隱含狀態的權重矩陣,bi、bf、bc、bo表示對應權重的偏置。
在情感分類過程中,首先將原始輸入的在線消費評論進行向量化,得到LSTM模型需要的格式。LSTM通過門的結構選擇性保留對神經網絡有影響的信息,并對每個時刻狀態進行更新。如預測“商家的環境不錯,服務態度很好,比較滿意”和預測“商家的地理位置偏僻,環境嘈雜,客服服務態度較差,不推薦這個商家”這2個評論時,LSTM網絡會忘記之前態度“很好”而更新為“較差”,這種狀態是通過LSTM單元的遺忘門實現的。遺忘門根據當前輸入的ht、上一時刻狀態的ct-1和上一時刻的輸出ht-1共同決定哪一部分需要遺忘,與此同時輸入門會根據xt、ct-1和ht-1決定哪些信息進入當前時刻狀態的ct。本文將在線消費評論分為積極和消極兩方面,因此使用sigmoid函數作為激活函數將評論映射為積極或者消極的評論。LSTM的在線情感分類模型框架(見圖2)。

圖2 基于LSTM的在線情感分類模型框架
利用蘇劍林(http://spaces.ac.cn/archives/3414/)收集并標注好的中文語料庫,具體包括酒店、筆記本、牛奶、手機、書籍和熱水器共6方面的在線評論數據集。根據數據屬性將其分為好評數據集和差評數據集兩個大類,經過篩選去重后,共得到8 712個好評和8 053個差評數據。隨機抽取其中80%的數據用作訓練集,20%用作測試集,最終得到訓練集為13 412例,測試集為3 353例。
SVM和LSTM模型均基于Python語言實驗。其中LSTM模型是基于Tensorflow的Keras(2.0.3)框架訓練得到的,Keras作為一個高層神經網絡庫,具有高度模塊化、簡易性和可擴展性等特點。在LSTM神經網絡模型訓練過程中,需要對dropout、訓練周期以及在線評論數據集轉化為向量的維度等參數進行調節以實現全局最優。實驗環境:Intel(R) Core(TM) i5-6500 CPU@3.20 GHz,內存(RAM)16GB,操作系統64位Windows7。
神經網絡的訓練周期(Epoch)指的是前向傳播和后向傳播所有批次的單一訓練迭代。過多的訓練周期一方面會花費更多的時間,另一方面容易導致過度擬合。在圖3和圖4中,Train_acc、Test_acc分別代表訓練集和測試集的準確度,Train_loss和Test_loss分別代表訓練集和測試集的損失度。如圖4所示,隨著訓練周期的加長訓練集的準確度穩步提高,但是當訓練周期為8時,Test_loss的曲線不再呈現下降趨勢,說明模型已經進入過度擬合狀態,即測試集的準確率訓練周期在5-8之間,準確率在87.89%-89.08%;當訓練周期為8時,測試集的情感分類達到89.08%的準確度。
Dropout函數在神經網絡訓練的過程中,一方面可以按照一定的概率隨機丟棄部分神經網絡單元,防止模型過度擬合;另一方面可以加快模型的訓練速度,節省訓練時間。本次訓練中,Dropout的取值范圍為0.1-0.9,間隔為0.1,共9個取值,得到的dropout參數與神經網絡情感分類的準確度如圖5所示,在dropout為0.4時,在線評論達到87.18%的最高分類準確率。

圖3 LSTM模型訓練周期對情感分類精確度的影響

圖4 LSTM模型訓練周期對情感分類損失度的影響

圖5 Dropout對情感分類準確度的影響
訓練批次(Batch_size):在神經網絡的訓練過程中,當數據集較大的時候,并不是將所有數據一次性輸入進去,而是將數據集分為16、32、64、128、256共5個批次分別進行處理(圖6)。從圖6發現,當Batch_size=16時,模型對情感分類的準確率最高。

圖6 訓練批次(Batch_size)對情感分類準確度的影響
采用準確率、精確率(陽性預測率、precision)、召回率(recall)、F1以及受試者工作特征(Receiver Operating Characters,ROC)、曲線下面積(Area Under the ROC,AUC)5種常見的指標對模型進行評價。精確率和召回率在信息檢索和統計學分類領域中得到了廣泛應用。作為評價結果質量的重要指標,精確率指的是正確分類為積極情感的評論占所有預測為評論的比率;召回率指的是正確分類為積極情感的評論占實際為積極情感評論的比率;ROC用來檢查找出真陽性和避免假陽性的權衡,其中縱坐標代表正確分類為積極情感的比例,橫坐標代表錯誤分類為積極情感的比例;ROC曲線下面積用作評價情感分類模型的重要指標,即AUC值越高,能夠識別正確分類為積極情感的能力越強。
(6)
(7)
(8)
(9)
為了驗證基于深度學習的神經網絡在情感分類的有效性,選取了支持向量機在情感分類的結果作為對比。作為一種二分類模型,它在處理小樣本、非線性和高維模式識別中表現出獨特的優勢,如利用核技巧解決原空間數據線性不可分的問題;作為一種機器學習方法,在情感分類中得到廣泛應用。本文構造的SVM分類器是基于Python的scikit-learn(0.19.1)庫實現的。
基于深度神經網絡的情感分類方法及SVM方法的實驗結果如表1所示。

表1 LSTM與SVM在情感分類中的對比結果

圖7 LSTM神經網絡與SVM模型情感分類的ROC曲線
實驗結果表明,基于深度學習的LSTM的精確率達到89.08%,高于SVM模型的86.1%。基于LSTM模型可以更好地學習和利用長文本的語義特征,在模型的訓練過程中,LSTM通過遺忘門既能夠控制梯度下降的收斂性,也可以保持長期的記憶性;SVM模型雖然也獲得了很高的精確率,但在特征選擇和特征提取的過程中,無法解決長期依賴的問題,因此在模型預測的準確率上低于LSTM模型。
由圖6計算出SVM的AUC值為0.93,神經網絡模型LSTM的AUC值為0.95。根據評判標準,當AUC值大于0.9時,說明該分類模型具有較高的陽性識別率,因此本文中的2種方法在情感分類中均取得了較好的成績。LSTM的ROC曲線整體在SVM的ROC曲線的上方,部分重合,LSTM模型在本文的情感分類中優于SVM模型。一方面由于神經網絡能夠實現端到端的輸入輸出,不需要進行手工提取特征,具有易擴展性和可移植性高的特點;另一方面,LSTM神經網絡模型具有處理大規模、高維數據的能力。從表1可看出,無論從準確性、精確性、召回率以及F1方面,LSTM網絡模型均優于SVM模型。本例中,SVM的輸入變量是采用word2vecx訓練出的維度為300維的詞向量。雖然SVM利用內積核函數代替向高維空間的非線性映射,但在處理大量的文本轉化的向量可能存在局限性。
本文中,基于LSTM神經網絡模型優于傳統的機器學習SVM模型,這證實了特征學習的重要性。深度學習能夠實現特征的自動提取,而在傳統機器學習領域,這些特征需要人工分析提取出來。在學習能力上,LSTM模型能夠解決長期依賴的問題,更好地利用上下文語義關系。如人們在閱讀文章時,不是根據當前的某一句話或者某一個詞推斷作者的感情傾向,而是基于上下文的理解進行推斷的。LSTM的核心就是將之前有用的信息運用到當前狀態下。SVM模型將單一在線評論的詞向量映射到特定的空間結構中,存在特征學習的能力不足,依賴更多的先驗知識,可擴展性較差等問題。隨著網絡用語的出現和語言本身的發展,各種新的表達方式不斷出現,這給情感詞典的維護帶來了諸多不便。基于人工手動提取的情感特征無法詳盡列出每條規則,尤其是面對海量數據的互聯網時代。在情感分析和文本分類的任務中,Kim在Collobert等構建CNN模型的基礎上,利用詞向量工具Word2vec完成了1 000億個單詞的新聞語料庫訓練,將其運用到情感分類的任務中,取得了88.1%的最佳性能[18]。在大數據時代,只要有足夠的訓練數據集,深度學習模型總能夠訓練出逼近真實的結果[19]。
另外,本研究也存在一些局限性。第一,先前基于SVM情感分類的研究大多強調構建情感字典并取得了較好的實驗效果。本文主要采用谷歌的Word2Vec構建詞向量進而進行情感評論,并未構建和使用情感詞典。Mohammad AL-Smadi等人應用情感字典在對阿拉伯酒店評論進行情感分類的結果顯示,基于人工提取多維特征的SVM模型在情感分類的準確率優于RNN(Recurrent Neural Network)模型,RNN在模型的訓練速度上優于SVM模型[20]。第二,由于本研究只包含16 000多條數據集,深度學習需要更大量的訓練數據集,實驗數據的規模對實驗結果可能產生一定的影響。第三,本研究將在線評論情感分為積極或消極兩方面,剔除了模棱兩可、中立或者反語的情感傾向,如針對“這款空調的質量不錯,但是售后服務不盡如人意”這種語法現象還需要進一步的研究。
在對情感分類的方法研究中,基于英文情感分類的研究方法較為成熟。由于中英文在構詞、語法、表達等方面的差異性,中文情感分類的研究面臨的挑戰更大。使用深度網絡模型LSTM建立對在線評論進行情感分類的研究模型,避免了傳統分類模型對手工提取特征的過度依賴。對在線評論進行情感分類的精確率達到了89.08%,印證了深度學習在情感分類特征提取的優勢。然而在中文領域存在一詞多義的現象,深度學習是以詞向量作為原始變量的輸入,并不能像圖像將所有的原始信息輸入到深度學習的模型中,原始信息損失所帶來的誤差可能會導致在模型訓練的過程中出現不可預見的錯誤。另外,研究顯示,LSTM神經網絡模型要優于SVM模型,然而2種方法對在線評論的情感分類的準確度均達到80%以上。下一步將繼續探索深度學習方法在情感分類的應用。