於 雯,周武能
(東華大學 信息科學與技術學院,上海 201620)
互聯網的飛速發展改變了人民的生活方式給人們的生活帶來了很大的便利,也極大地推動了電子商務的發展,網絡購物也逐漸進入人們的生活中.但是網絡購物在給人們帶來便捷的同時也具有很多不可避免的弊端,無法真實的感受到商品的屬性,就為我們購買商品帶來了很大的風險,所以我們經常都會查看別人留下的評論信息在我們做出購買商品決策之前來提供參考.各大網絡購物平臺也會要求人們在購物結束之后留下商品的評論信息,為商家提供生產指導也為后續的消費者提供參考.對商品評論信息的情感傾向分析不僅能夠在消費者購買商品是提供指導,也可以使商家客觀的認識到自己商品的優缺點,來改進自己的商品.因此對商品評論的文本情感分析不僅具有巨大的商業上的價值也可以對學術研究用到實際領域起到很好的推動作用[1].
目前,對于商品評論情感傾向分類使用較多的方法主要有基于情感詞典和基于傳統機器學習方法.基于情感詞典的方法[2],主要依賴于對大量情感詞語數據庫的構建,而且現有的情感詞典規模有限并且情感詞對于所在領域和屬性的不同具有很大的區別,因此該方法的應用具有較大的局限性.傳統機器學習的方法最主要思想是先要通過一部分預先標注好的文本數據進行預訓練,訓練出一個情感傾向分類器,然后通過不斷的調節參數修改模型以達到較好分類性能,再通過這個訓練好的情感分類器對所有的文本進行情感傾向極性的分類.如:針對不同的特征選擇方法,分別應用樸素貝葉斯、支持向量機(SVM)、最大熵等不同的機器學習的分類方法.對評論進行分類,在幾種分類方法中SVM分類方法取得的效果最好,其分類準確率最高可以達到約88%[3,4].
近年來,深度學習的算法在語音和圖像領域取得較大突破,將深度學習的方法應用與自然語言處理領域也獲得了較大的關注.如 Bengio等利用深度學習的思想構建的神經概率語言模型[5],將各種深層神經網絡在大規模英文語料上進行語言模型訓練,得到了較好的語義表征,完成了句法分析和命名實體識別等許多的的自然語言處理任務,使得自然語言處理任務也能很好的應對大數據時代的挑戰[6,7].本文采用深度學習的循環神經網絡中的一種特殊的長短期記憶網絡LSTM來對商品評論進行情感傾向分析.
在文本處理中,首要的問題就是將人類的語言文本轉化為計算機可以理解的計算機語言,就是如何把一個句子用矢量的形式有效地表達出來.如果這一步能夠很好的完成,文本分類的復雜程度將會被大大降低.首先可以將每個詞語都用一個唯一的編號來表示,然后把每個詞的編號集合起來就變成一個句子的表示,并且對于詞語的語義相似性問題,可以通過對語義相似的詞語賦予相近的編號就可以很好的在保證語義的基礎上的表示出一個句子,實際上這種方法只在假定語義是單一的情況下成立,也就是說,在這種情況下考慮的語義是只有一維的情況.但是事實卻并非如此簡單,語義應該是更加復雜的多維的情況,而且基于中文的語義就會更加龐雜.因此如果只通過一個唯一的編號,就想將這些詞語放到合適的位置具有很大的難度.針對上述問題本文利用 Google開源的著名工具Word2Vec[8]用高維的向量(詞向量,Word Embedding)來表示詞語,并把具有相近意思的詞語放在同樣相近的位置并且對固定詞向量的維度,就可以通過實數向量來訓練模型,以獲得詞語的詞向量表示.
循環神經網絡(Recurrent Neural Networ,RNN)[9],顧名思義是具有循環結構的神經網絡,其網絡結構如圖1所示.RNN 的鏈式結構使得其能夠很好的解決序列的標注問題.但是由于梯度爆炸和梯度消失等問題經常存在于在 RNN 的訓練中,使得 RNN很難保持較長時間的記憶.

圖1 RNN網絡結構
長短期記憶(Long Short-Term Memory,LSTM)網絡是有 RNN 擴展而來,在設計之初就是用來解決RNN 長期依賴的問題.LSTM也是一種特殊的循環神經網絡因此也具有鏈狀結構,但是相比循環神經網絡的重復模塊有著不同的結構.它有四層神經網絡層,各個網絡層之間以特殊的方式相互作用,并非單個簡單的神經網絡層.網絡模塊示意圖如2所示.
在圖2中每個傳輸單元的狀態是決定 LSTM網絡的核心,就是穿過圖中的每條水平線.一個單元狀態就相當于于一個傳送帶,它貫穿于整個結構,在這個過程中僅通過一些線性的作用保證了信息傳輸的不變性.LSTM還具有一個很好的性能就是可以增加和去除向單元狀態中傳輸的信息,通過幾個結構來管理信息的傳輸并將其稱為門限.門限就是有選擇地讓信息通過.它們由一個sigmoid神經網絡層和逐點乘法運算組成.sigmoid層輸出[0,1]的數字,描述了每個成分應該通過門限的程度.0表示不讓任何成分通過,而1表示所有成分都可以通過[10].

圖2 LSTM網絡結構
LSTM有三種這樣的門限,分別為:輸入門、遺忘門和輸出門通過這三個門限來保護和控制單元狀態.以下公式中分別表示t時刻對應的三種門結構和單元狀態.
(1)遺忘狀態信息,LSTM中第一步是決定從上一單元傳來的信息哪些需要從單元狀態中拋棄.這是由一個sigmoid輸出層決定的該層被成為“遺忘門”.然后為單元狀態中的每個數字輸出一個[0,1]的值.就是以當前層的輸入xt和上一層的輸出ht?1作為輸入,然后在t–1時刻的細胞狀態輸出ft;
(2)更新狀態信息,決定在單元狀態中哪些新信息需要被存儲下來.這一層可以分為兩部分.首先,由一個sigmoid層決定哪些值需要更新該層被稱為“輸入門”.接下來,tanh層創建一個向量,里面包含新的待添加信息,這些信息是可以添加到新的狀態單元的信息.下一步我們將會結合這兩部分的信息對單元狀態進行更新.首先更新舊單元狀態,然后為新的單元狀態輸入新的信息,即在細胞狀態中更新信息,主要傳輸過程為:① 輸入門的 sigmoid 層的結果it作為將更新的信息;②由tanh層新創建的向量c?t,將添加在細胞狀態中.將舊的細胞狀態ct?1乘以ft,用以遺忘信息,與新的候選信息it·c?t的和,一起合成細胞狀態的更新.

(3)輸出信息,用 sigmoid 層來決定要輸出細胞狀態的相關信息,該層被稱為“輸出門”然后用tanh處理細胞狀態,兩部分信息的乘積就是要輸出的信息.

其中,sigmoid 函數模型為:

Tanh函數模型為:

基于LSTM我們可以搭建出商品評論文本的情感分類模型,其結構圖如圖3所示.

圖3 分類模型結構圖
由于互聯網的商品評論大多屬于短文本,且每個用戶的語言習慣具有很大差異,在進行文本分類之前需要對文本進行預處理,需要去除大量的無關符號,同時對詞頻進行統計,統計得出在文本中出現頻率最高的多為與情感表達無關的副詞,因此利用分詞工具進行詞性標注后去除無關的停用詞.將經過預處理后的文本作為輸入,進入分類模型之后通過Word2vec 把文本變為分布式存儲的詞向量,經過LSTM 網絡,為防止模型產生過擬合,在LSTM 網絡中加入Dropout隨機優化因子,使得模型在復雜的評論語句中也能很好的擬合,增加了模型的適用性
本文的實驗環境為Windows 7操作系統,采用Python編程語言,利用Python的Keras庫來實現LSTM網絡的搭建,其中Keras 庫底層通過調用Tensorflow框架來實現本文實驗環境的搭建,對比實驗中的機器學習方法,也采用Python 的第三方機器學習庫Scikit-learn來實現傳統機器學習的分類方法.
本文實驗的英文數據采用斯坦福大學公開的評論數據[12],數據已做好情感分類標簽正面情感標為1負面情感標為0.中文數據利用網絡爬蟲工具從網站上爬取兩萬多條評論信息(涉及六個領域)在去除無關信息后進行人工標注.在標注過程中由三個人分別于不同時間段進行標注正面情感標為1負面情感標為0,并將標注結果取三個人中的最大值(即如果對某條信息的標注結果不同則取標注結果人數最多的作為最后結果)以保證標注結果的準確性.對中文實驗數據采用jieba分詞工具做中文分詞處理并去除停用詞.最后采用隨機切分的方法隨機將數據切分為測試集和訓練集,測試集和訓練集的占比為2:8,訓練集用于訓練LSTM模型,測試集用于測試分類模型的分類效果.
實驗采用的評估分類模型的主要指標為模型分類的準確率、召回率及F1值[11],具體計算公式如下:

其中,a表示情感分類模型判斷文本類別正確的數目;b表示情感分類模型判斷錯誤將本不屬于此類的文本分到本類別的數目;c表示分類器錯誤判斷文本本該屬于次類別但卻錯分為其他類別的數目.
在本文實驗模型中主要參數有模型對預測結果進行分類的閾值大小,還有采用Dropout算法的比率,以及每輪訓練數據的大小(batch_size)和訓練輪數,模型參數設置如表1所示.
由于在對最后的預測結果輸出的是一個[0,1]之間的數值所以分類的閾值對于分類的準確率具有很大的影響,通常我們會選擇中間值0.5作為分類的閾值,就是在分類結果大于0.5時判斷為正面,預測結果小于0.5時判斷為負面情感,但是將0.5作為閾值有時并不是最好的選擇,如圖4所示,在研究分類閾值對于真正率和真負率的影響時發現,曲線在0.39左右發生了陡變,因此我們選擇0.39作為模型的分類閾值,大于0.39的才被分為正面情感,小于0.39的就被認為是負面情感.

表1 基于LSTM的模型參數設置

圖4 真正率和真負率隨閾值變化曲線
本文的方法采用了深度學習的LSTM 網絡利用高維詞向量的Word2vec方法表示文本詞向量以及使用Dropout的算法在收集的評論文本中進行實驗,并和其他方法進行對比實驗.
將本文采用的Dropout算法進行對比實驗.因為本文屬于二分類問題所以采用對數損失(binary loss)來衡量損失,本文的實驗模型中引用了 Dropout的算法,從圖5中可以看到相比于沒有使用Dropout的算法的模型,使用Dropout的算法之后損失函數開始下降較快但是后期下降比較平穩說明了函數的擬合情況較好,證明 Dropout算法的引用提高了模型的泛化能力有效的防止過擬合,并且可以看到隨著訓練輪數的增加函數損失不斷平穩減小.
最后實驗將本文采用的基于 LSTM的方法與傳統的機器學習算法,樸素貝葉斯和支持向量機的方法和基于Word2vec情感詞典(本文采用的情感詞典為知網HowNet情感詞典)的方法進行建模對比,同時在不同的中英文數據集上進行驗證實驗,實驗結果如表2所示在利用網絡爬蟲和自己進行人工標注的數據上采用本文LSTM + Word2vec+Dropout算法分類模型的各項評價指標都要高于其他幾種方法.采用機器學習方法由于需要進行特征的選擇和降維操作仍需要較大的工作量,基于情感詞典的方法由于對傳統的情感詞典具有較大的依賴性,并且由于語言系統的復雜性想要進一步提高精度仍具有很大的難度.由此可以證實本文提出的方法對于商品評論情感傾向性分析具有較好的實用性.

圖5 Dropout算法對損失函數影響曲線

表2 不同數據集不同模型對比實驗結果
本文的工作基于 LSTM網絡模型,利用 jieba分詞工具對文本語料進行中文分詞,并利用Word2vec工具來表征高維詞向量,訓練多領域的文本語料易于移植到多領域的使用克服了傳統情感詞典方法的領域詞典不足的情況.和傳統機器學習的分類模型相比,基于LSTM模型的方法,不用人為地設計和提取特征,傳統機器學習方法對于文本特征的配置和提取都具有一定的難度,并且通過Word2vec對詞向量的處理降低了詞語的維度同時也縮短了分詞模型的訓練時間,同時由于深度學習的模型還可以通過GPU來訓練,可以縮短相應的訓練時間,模型的適用性更強.為后續可以很好的使用評論信息來為預測用戶喜好以及分析真實商品信息提供了良好的基礎支持.