
摘 要:目前,深度學習已經成為計算機視覺處理領域事實上的標準。由于它在圖像處理方面的廣泛普及和成功應用,幾乎所有的其他領域的問題都在嘗試通過深度學習找到其解決方案,在自然語言處理中的文本分析和語言建模也不例外。在情感分析中,識別用戶在文本評論中隱藏的情感是一項具有挑戰性的任務。在本文中, 使用深度學習模型進行基于IMDB電影評論數據集的情感分析,將基于深度學習的情感分析方法與其他傳統機器學習方法進行比較,以評估模型的性能。實驗結果表明,基于深度學習的神經網絡模型在許多方面優于傳統的機器學習方法。
關鍵詞:情感分析;深度學習;自然語言處理;LSTM;詞嵌入
中圖分類號:TP183? ? ? ? ? ? ? ? 文獻標識碼:A
0 引言
在解決機器學習問題上,深度學習已經被證明是非常成功的[1]。雖然這些深度學習算法并不能直接用來進行情感分析,但是深度學習在圖像處理、語音處理和其他認知方面計算領域上的成功,促使人們正嘗試把深度學習算法應用在語言處理, 情感分析和意見挖掘上,但語言問題是非常復雜的,首先需要解決語言規則和語言如何表示等相關的問題。隨著詞嵌入模型word2vec的出現,深度學習已經開始應用到包括情感分析在內的許多NLP任務中。
在本文中,使用深度神經網絡將用戶的電影評論數據集分為正類和負類。為了評估建立的深度學習模型的性能,將模型與傳統的樸素貝葉斯和邏輯回歸方法進行比較,結果表明,用于情感分析的深度神經網絡自然語言處理(NLP)模型不僅在準確率方面優于基礎模型,而且在捕獲隱藏情感方面優于基于統計概率的機器學習算法。
在本文中,使用遷移學習方法并通過LSTM網絡來進行情感分析,通過預訓練word2vec模型把整個文檔轉換成向量表示,在訓練過程中調整了神經網絡的各種參數,通過權值初始化和優化,以獲得在精度以及空間和時間復雜度方面的最佳性能。調優參數后,對IMDB數據集進行情感分析獲得的最佳性能為93.7%。
1 情感分析的研究
情感分析通常被認為是一種分類任務,根據作者在文本中所表達的情感或情緒,將一段文本劃分為若干類情感中的某一類。有許多機器學習算法可以應用于文本數據的極性學習,但它不能直接應用到文本本身, 輸入的文本需要轉換成矩陣, 矩陣中的元素代表文本的重要特性,轉換成矩陣后,矩陣中的每一行對應于文本的n維特征向量,通過機器學習算法可以學習到文本數據的極性。目前有一些流行的特征選擇算法,如Bag of Words 、Bag of n-grams或者TF-IDF等。這些方法只是簡單地考慮了單詞的統計量,而完全忽略了單詞的順序和上下文,而這些對單詞的意義起著至關重要的作用。另外,因為詞典的尺寸都非常大,所以這些方法還會產生稀疏和高緯度的矩陣,導致計算精度下降。
2 情感分析的深度神經網絡
深度神經網絡是一種包含許多隱藏層的人工神經網絡[2]。最初的NLP的深度學習之旅從一個簡單隱藏層的淺層神經網絡開始。在理解文本中語言隱藏結構及其語義和句法關系的復雜性的過程中,神經網絡中隱藏層的大小隨著各種超參數不斷增長,并進行微調以得到性能最佳的模型。神經網絡中許多新的激活函數的成功應用,也為神經網絡在解決語言問題方面的普及做出了重要貢獻。特別是在自然語言處理中,深度學習在詞性標注、機器翻譯、語音識別、意見挖掘、文檔摘要和問題回答等方面都非常成功。接下來本文介紹一下深度神經網絡在自然語言處理中的關鍵技術。
2.1 詞嵌入向量(Word-Embedding)
向量空間模型在NLP歷史上已經使用了很長時間,例如支持向量機(VSM),其中所有數據點都表示為VSM中的一個點,分類器必須學習最好的超平面,該超平面應該能夠將數據點分類到兩個單獨的類中。利用這一原則的方法可以主要分為兩類:基于計數的方法和預測方法。在基于神經網絡的詞向量表示模型中,國外作者提出了兩種不同的模型,一種是CBOW模型,另一種是SKIP-GRAM模型。CBOW中目標詞的訓練是基于上下文進行的,而在SKIP-GRAM模型中,對于每個詞,它的上下文的詞是基于窗口大小來預測的。本文采用word2vec模型對影評文檔進行矢量表示。word2vec模型中主要的思想是,所有詞匯出現在類似的環境相似的語義含義,應該放置在向量空間模型中比較近的位置。
2.2 遞歸神經網絡(RNN)
RNN除了它是遞歸的本身就是一個簡單的神經網絡,它能夠通過學習過去的信息去預測未來。RNN適合時間序列方面的學習,如詞性標注或機器翻譯等。但不能識別句子中單詞之間的長期依賴關系,即當遞歸過程中的序列變大時,會出現梯度消失問題,這時網絡停止進一步學習。在情感分析任務中,自word2vec模型提出以來,RNN發現了它的重要性。但由于word2vec模型是以向量的形式表示單詞,而RNN期望輸入的數據是固定大小的序列向量,這就使得NLP有很多任務需要解決,并且需要進行各種變化。它在語言方面獲得的最重要的特征是它的輸出依賴于當前輸入的單詞,同時在隱藏層中學習到包含上下文信息的權值矩陣。
2.3 長短期記憶神經網絡(LSTM)
LSTM的提出是為了解決RNN中梯度消失的問題,由于梯度消失問題,RNN無法搜索到離當前時刻很遠的信息,這是因為權值矩陣的值的更新變得非常小,從而導致學習到的新權值矩陣與舊權值矩陣幾乎保持不變,經過一段時間后就不再進行進一步的學習。這被認為是RNN學習長文本序列句子的一個主要缺點。通過利用LSTM中的內存單元和門的概念,RNN的這個問題得到了解決,使其適合于在確定電影評論的極性或一般文本處理中捕獲到較長的上下文信息。簡單的LSTM架構由記憶單元、輸入門、輸出門、遺忘門和傳統RNN中的隱藏狀態組成。LSTM模型需要確定它所學到的哪些信息與未來無關,并且需要去除這些信息。通過這樣的處理機制,LSTM能夠保存較長的信息,從而緩解RNN中梯度消失的問題。
2.4 激活函數(Activation Function)
在神經網絡中有許多激活函數用于處理非線性的問題并能實現最佳的分類。其中Sigmoid, tanh和SoftMax在LSTM中用于不同的目的。它的非線性特性使其成為分類任務的合適對象,其推導過程使其在損失函數優化過程中易于實現。這些激活函數在模型中加入了非線性,有助于在訓練過程中獲得最佳擬合曲線。對這些激活函數進行了實驗,并在深度神經網絡模型中評估了它們在情感分析任務中的有效性。
3 實驗部分介紹
本文中的實驗是在12 GB內存的GTX 1080i GPU上進行,模型開發使用python3,深度神經網絡的模型訓練和測試使用了基于tensorflow的keras庫。為了提高性能,在谷歌colab jupyter notebook執行代碼,不斷在GPU和CPU之間切換,發現在數據量大、矢量矩陣乘法高維的情況下更適合GPU,運行速度也相對較快。對于輸入原始數據的許多任務,使用nltk和scikitlearn python庫,對于單詞向量表示,使用word2vec預訓練模型。
在實驗數據方面,使用公開可用的大型影評數據集IMDB(v1.0)。這個數據集是專門為二分類而準備的,數據集中有25000條電影評論用于訓練,25000條用于測試。實驗按照以下步驟進行。
步驟1? 預處理數據,去除噪聲字符和停用詞。
步驟2? 將數據按4:1的比例把數據集分割成訓練集和測試集。
步驟3? 使用哈希函數對文本數據進行編碼,為每個單詞分配唯一的數字。
步驟4? 填充或截斷文本序列使得它們具有相同的輸入長度。
步驟5? 構建詞嵌入層、LSTM層和全連接層。
步驟6? 編譯深度神經網絡模型
步驟7? 擬合(訓練)模型
步驟8? 評估(測試)模型
4 模型評估
在實驗中,本文調整了不同的參數以獲得最佳的LSTM神經網絡性能。采用遷移學習的方法,通過預先訓練好的嵌入模型、word2vec和doc2vec得到單詞和文檔的向量,并將其輸入到LSTM中,利用LSTM的嵌入層構建單詞嵌入。
本文還使用不同的激活函數和正則化參數來得到最佳的結果組合。代價函數在這種情況下,因為實驗的數據集有正極性或負極性,本文選擇二元交叉熵。為了最小化成本函數,本文使用Adam optimizer來實現優化。
使用不同模型的實驗結果如下所示,可以看出,使用深度神經網絡的方法比傳統的貝葉斯、隨機森林和SVM分類方法[3]在準確率方面大幅提升。
5 結論
在本文中,通過電影評論數據集,利用深度神經網絡算法對用戶評論中隱藏的情感進行分析。使用預先訓練好的單詞嵌入模型生成詞的低維向量表示,并使用基于LSTM的序列模型進行情感分析。文中還試驗了各種超參數,學習這些參數的最佳可能值,使訓練模型產生更高的精度,并使用GPU幫助實現更快的計算響應。總體而言,在自然語言處理方面,深度學習方法不僅在準確性方面優于傳統方法,而且在從語言角度捕捉評論中的真實用戶情感方面也優于傳統方法。
參考文獻:
[1] 閆濤. 深度學習算法實踐 [M]. 電子工業出版社出版社,2020
[2] 王曉華. TensorFlow 2.0卷積神經網絡實戰 [M]. 清華大學出版社出版社,2020
[3] 趙衛東,董亮. 機器學習[M].人民郵電出版社,2018
作者簡介:
翟高粵(1975—),男,廣西欽州,副教授,碩士研究生,研究方向為軟件工程,人工智能。