付甜甜,劉海忠*
(蘭州交通大學(xué) 數(shù)理學(xué)院,甘肅 蘭州 730070)
情感分類(lèi)是根據(jù)人們對(duì)特定的對(duì)象或?qū)嶓w發(fā)布的觀點(diǎn)、意見(jiàn)、態(tài)度等進(jìn)行信息提取的計(jì)算性研究過(guò)程[1],屬于文本分類(lèi)的子問(wèn)題。情感分類(lèi)在輿情分析方面、產(chǎn)品及服務(wù)方面,能夠輔助網(wǎng)絡(luò)環(huán)境的監(jiān)控和產(chǎn)品服務(wù)的改進(jìn)。情感分類(lèi)的研究方法主要有基于情感詞典的方法、基于機(jī)器學(xué)習(xí)的方法和基于深度學(xué)習(xí)的方法[2]。由于情感詞典和機(jī)器學(xué)習(xí)需要構(gòu)建詞典和龐大的特征工程,因而深度學(xué)習(xí)算法在情感分類(lèi)中變得十分流行。
深度學(xué)習(xí)算法以低維連續(xù)的詞向量來(lái)表示文本,解決了數(shù)據(jù)稀疏問(wèn)題和特征構(gòu)建的復(fù)雜問(wèn)題。Moraes等[3]對(duì)支持向量機(jī)SVM和人工神經(jīng)網(wǎng)絡(luò)ANN 進(jìn)行了文檔分類(lèi)的對(duì)比實(shí)驗(yàn),結(jié)果表明ANN 的分類(lèi)準(zhǔn)確率比SVM要高。Kim[4]提出了使用文本卷積神經(jīng)網(wǎng)絡(luò)(Text Convolutional Neural Networks,TextCNN) 進(jìn)行句子級(jí)情感分類(lèi),發(fā)現(xiàn)TextCNN 能夠快速高效地完成文本分類(lèi)任務(wù)。Liu 等[5]基于文本循環(huán)神經(jīng)網(wǎng)絡(luò)(Text Recurrent Neural Network,TextRNN)提出三種不同的信息共享機(jī)制來(lái)對(duì)文本數(shù)據(jù)進(jìn)行建模。梁軍等[6]討論了在中文微博情感分類(lèi)任務(wù)上使用深度學(xué)習(xí)算法的可行性。同時(shí)情感分類(lèi)算法也在通過(guò)對(duì)預(yù)訓(xùn)練模型微調(diào)或融入注意力機(jī)制等方式[7]進(jìn)行改進(jìn),而情感分類(lèi)的融合算法大多建立在CNN,RNN 等模型上。主層算法的選擇一定要依照任務(wù)特點(diǎn)和數(shù)據(jù)特征來(lái)構(gòu)建,本研究對(duì)比CNN 和RNN 兩個(gè)典型算法的表現(xiàn)來(lái)為主體算法的選用提供參考。
TextRNN 是用RNN 來(lái)處理文本分類(lèi)問(wèn)題。RNN能夠順序地讀取文本序列數(shù)據(jù),具有一定的記憶能力。本研究RNN 模型選用雙向長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)BiLSTM來(lái)進(jìn)行實(shí)驗(yàn)。LSTM是RNN 的變體,它通過(guò)控制遺忘門(mén)、輸入門(mén)和輸出門(mén)三個(gè)門(mén)結(jié)構(gòu)及細(xì)胞單元狀態(tài)來(lái)控制數(shù)據(jù)信息的加工,可以避免梯度消失問(wèn)題。BiLSTM擁有更大的感受野,雙向提取語(yǔ)義關(guān)聯(lián)信息以獲得高層特征表示。在建模時(shí),一組向量分別作為正向和反向LSTM的輸入:
連接正反方向LSTM處理后的序列輸出,BiLSTM在t 時(shí)刻的輸出則表示為:
TextRNN 模型結(jié)構(gòu)見(jiàn)圖1,單詞先通過(guò)嵌入層轉(zhuǎn)化為特征詞向量,然后使用BiLSTM 對(duì)序列張量進(jìn)行信息提取。將BiLSTM 的最初時(shí)間步和最后時(shí)間步的隱藏單元連結(jié),作為特征序列的表征傳輸?shù)饺B接層再進(jìn)行分類(lèi)。
圖1 TextRNN 結(jié)構(gòu)
CNN 提取特征信息時(shí)可以把文本數(shù)據(jù)理解為一維圖像,卷積核在文本表示矩陣上上下滑動(dòng)來(lái)進(jìn)行特征提取。句子向量化得到矩陣V(wi),采用Fk=k*d 維卷積核與其進(jìn)行卷積計(jì)算
ci表示經(jīng)過(guò)一次卷積計(jì)算得到的局部特征值,滑動(dòng)一輪后得到一個(gè)完整的局部特征向量C。為了降低向量維度,卷積后還要進(jìn)行池化操作。
TextCNN 模型結(jié)構(gòu)見(jiàn)圖2,先將單個(gè)文本序列輸入轉(zhuǎn)換為詞向量矩陣輸出,然后定義多個(gè)尺度的卷積核,分別執(zhí)行卷積操作。在所有輸出通道上執(zhí)行時(shí)序最大池化,將所有池化后的特征向量匯聚連結(jié)為新的特征向量,最后放入全連接層進(jìn)行分類(lèi)。
圖2 TextCNN 結(jié)構(gòu)
本研究實(shí)驗(yàn)使用IMDB 數(shù)據(jù)集,包含來(lái)自互聯(lián)網(wǎng)電影數(shù)據(jù)庫(kù)的50 000 條評(píng)論數(shù)據(jù),情感類(lèi)別為positive 和negative,按照1:1 劃分為訓(xùn)練集與測(cè)試集。首先對(duì)數(shù)據(jù)中的標(biāo)點(diǎn)符號(hào)和無(wú)用字符進(jìn)行清洗,隨后進(jìn)行分詞操作并過(guò)濾掉出現(xiàn)頻率少于5 次的單詞,然后創(chuàng)建一個(gè)屬于訓(xùn)練集的詞典。由于評(píng)論長(zhǎng)短不一,通過(guò)截?cái)嗪吞畛鋵⒚織l評(píng)論的長(zhǎng)度都控制在500 個(gè)單詞,分詞后進(jìn)行向量化。使用斯坦福的Glove 預(yù)訓(xùn)練詞向量來(lái)做嵌入,包含了400 000 個(gè)單詞的嵌入向量,在訓(xùn)練期間不更新詞向量。
TextRNN 是一個(gè)具有一層嵌入層、兩層隱藏層和一層全連接層的雙向神經(jīng)網(wǎng)絡(luò)。隱藏單元數(shù)設(shè)為100,學(xué)習(xí)率設(shè)為0.01,batch_size 為64,epoch 為5。
TextCNN 使用兩個(gè)嵌入層,其中一個(gè)是可訓(xùn)練權(quán)重,另一個(gè)是固定權(quán)重;三個(gè)卷積層,卷積核大小分別為[3,4,5],每個(gè)卷積核的數(shù)量為100,通道數(shù)為100,步長(zhǎng)為1,使用RELU 激活函數(shù);池化層采用時(shí)序最大池化,后面接上全連接層。dropout 設(shè)置為0.5,學(xué)習(xí)率設(shè)為0.001,batch_size 為64 ,epoch 為5。
利用機(jī)器學(xué)習(xí)的邏輯回歸模型LR、支持向量機(jī)模型SVM 和樸素貝葉斯模型NB 對(duì)實(shí)驗(yàn)數(shù)據(jù)進(jìn)行分類(lèi),結(jié)果見(jiàn)表1。本研究實(shí)驗(yàn)均采用分類(lèi)準(zhǔn)確率來(lái)評(píng)估分類(lèi)效果??梢钥闯鲈贗MDB 數(shù)據(jù)集上三個(gè)算法的測(cè)試結(jié)果并不是很理想,其中SVM的分類(lèi)準(zhǔn)確率只有51.12%,LR 和NB 可以達(dá)到75%左右。
表1 機(jī)器學(xué)習(xí)模型準(zhǔn)確率
LSTM:含雙層隱藏狀態(tài)的單向網(wǎng)絡(luò),其余參數(shù)設(shè)置與TextRNN 相同。
TextCNN_1:由卷積核大小為3*3 的3 個(gè)同類(lèi)型卷積核構(gòu)成,其余設(shè)置與TextCNN 完全相同。
TextCNN_2:由卷積核大小為4*4 的3 個(gè)同類(lèi)型卷積核構(gòu)成。
TextCNN_3:由卷積核大小為5*5 的3 個(gè)同類(lèi)型卷積核構(gòu)成。
與機(jī)器學(xué)習(xí)相比,深度學(xué)習(xí)算法不僅特征構(gòu)建更為簡(jiǎn)單,分類(lèi)準(zhǔn)確率也會(huì)有大幅提升。下面結(jié)合表格數(shù)據(jù)來(lái)進(jìn)行詳細(xì)分析。在預(yù)訓(xùn)練詞向量維度分別為50和100 時(shí),各模型分類(lèi)準(zhǔn)確率見(jiàn)表2。
表2 各算法分類(lèi)準(zhǔn)確率
當(dāng)詞嵌入維度為50 時(shí),TextRNN 在測(cè)試集上的分類(lèi)準(zhǔn)確率為84.5%,而LSTM只有50.1%。TextCNN的分類(lèi)準(zhǔn)確率為87.6%,比TextRNN 高出3.1%。使用同類(lèi)型卷積核的三個(gè)TextCNN 模型分類(lèi)準(zhǔn)確率分別為86.4%、87.5%、86.5%,結(jié)果相差不大,但準(zhǔn)確率都要比RNN 高。
在詞嵌入維度為100 時(shí),發(fā)生顯著變化的是LSTM,分類(lèi)準(zhǔn)確率提升了35.4%,達(dá)到了85.5%,而TextRNN 的分類(lèi)準(zhǔn)確率達(dá)到了86.1%,比單向算法的準(zhǔn)確率高0.6%。TextCNN 的準(zhǔn)確率達(dá)到87.7%,較三個(gè)使用同類(lèi)型卷積核的TextCNN 要高一些,同樣CNN的整體表現(xiàn)結(jié)果比RNN 要好。
實(shí)驗(yàn)結(jié)果表明,當(dāng)詞嵌入維度從50 維增加到100維時(shí),所有模型在訓(xùn)練集和測(cè)試集的準(zhǔn)確率都有所上升,說(shuō)明嵌入維度是影響分類(lèi)結(jié)果的一個(gè)重要因素。同時(shí)TextRNN、TextCNN 的分類(lèi)結(jié)果比機(jī)器學(xué)習(xí)的最好結(jié)果高出10%左右。
本研究在介紹TextRNN 與TextCNN 模型的基礎(chǔ)上,分別對(duì)文本進(jìn)行特征提取及分類(lèi)。在本研究所使用的數(shù)據(jù)集上,TextCNN 擁有更高的分類(lèi)準(zhǔn)確率和穩(wěn)健性,TextRNN 采用雙向提取時(shí)表現(xiàn)結(jié)果也不錯(cuò)。結(jié)合各自的特點(diǎn)來(lái)講,由于TextCNN 通過(guò)多尺度的卷積核組合進(jìn)行特征提取,比起使用同類(lèi)型卷積核的提取限制,對(duì)局部特征的提取更為精準(zhǔn)細(xì)致。而RNN 更擅長(zhǎng)處理長(zhǎng)序列數(shù)據(jù),獲取更大范圍的上下文信息。情感分類(lèi)任務(wù)進(jìn)行算法選擇時(shí),短文本可以選取多尺度卷積核組合的TextCNN,長(zhǎng)文本選擇雙向提取的TextRNN 會(huì)取得相對(duì)較高的準(zhǔn)確率。