王曙燕,原 柯
(西安郵電大學 計算機學院,西安 710121)
大學生論壇不僅是大學生獲取知識信息的來源之一,也是大學生表達情緒的平臺。大學生通過學生論壇表達出帶有情感傾向性的語句,其中有正面積極的語句,也有一些負面消極的語句。研究人員利用深度學習對這些語句進行情感分析,以便于高校管理者掌握大學生的情感狀況,并對近期情緒異常的學生進行開導。
近年來,對于情感分析的研究已經取得較大進展。對文本進行情感分析的方法主要分為基于情感詞典的方法、基于傳統機器學習的方法和基于深度學習的方法。基于情感詞典的方法是根據現有的情感詞典,按照語義規則計算句子的情感值,獲得句子的情感傾向[1]。這種方法比較依賴于情感詞典,無法有效地識別論壇新興的詞語。基于傳統機器學習的方法主要有支持向量機(Support Vector Machine,SVM)[2]、樸素貝葉斯(Naive Bayesian,NB)等,現有的有監督學習方法常依賴于復雜的特征工程。文獻[3]使用隱馬爾科夫模型和支持向量機將情感分析任務轉化為標簽序列學習問題,在微博情感分析問題中融入上下文語境,改進分類效果。文獻[4]利用隱含狄利克雷分布(Latent Dirichlet Allocation,LDA)分析與COVID-19 相關的Twitter信息中突出的主題和情感。基于深度學習的方法是目前主流的情感分析方法,通過深度學習對語句進行情感分析,以抽象特征,從而減少人工提取特征的工作,并且能夠模擬詞與詞之間的聯系,具有局部特征抽象化和記憶功能。文獻[5]整合現有的情感詞語資源來構建一個情緒知識庫,根據深度學習算法與情緒知識庫提出一種融合情緒知識的案件微博評論情緒分類方法,稱為EK-INIT-CNN。文獻[6]通過注意力機制關注文本中的關鍵情感信息,利用卷積神經網絡(Convolutional Neural Network,CNN)提取局部語義特征,能夠更好地處理轉折與復雜句式。文獻[7]構建基于多通道雙向長短期記憶(Long Short-Term Memory,LSTM)的情感分析模型,對語言知識和情感資源進行建模,以生成不同的特征通道,從而充分學習文本中的情感信息。
詞向量分為靜態詞向量和動態詞向量。靜態詞向量模型與查字典類似,每一個詞固定對應一個詞向量,但是未解決一詞多義的問題,例如,獨熱編碼(One-Hot)、Word2Vec 模型[8]、GloVe 模型[9]等。動態詞向量模型根據一個詞在不同語句中的上下文關系生成不同的詞向量,例如,在“我要好好學習”和“我對學習沒有興趣”兩句話中“學習”的詞向量表示不同。目前,主流的動態詞向量模型主要有基于雙向的LSTM 網絡[10]的ELMo模型[11]、基于多層雙向Transformer[12]的BERT 模型[13]、知識增強的語義表示ERNIE 模型[14]、對BERT 進行改進的RoBERTa 模型[15]以及使用全詞掩碼策略(Whole Word Masking,WWM)[16]進行預訓練的RoBERTa-WWM模型[17]等。
文本情感分析方法多針對某一領域,例如,與社會時事案件相關的互聯網微博輿情案件情感分析[5]、教育領域課程評論的情感分析、社交媒體會話中的諷刺語句檢測分析[18]。現有的情感分析方法缺少對大學生論壇領域的研究。大學生在論壇上發表的言論具有口語化表達、新興網絡用語等特點,并且還有其領域特性的詞語,例如“掛科”“上岸”“九漏魚”和“重修”等。
本文提出一種基于RoBERTa-WWM 的大學生論壇情感分析模型。通過RoBERTa-WWM 模型得到句子級的語義特征表示,并將其輸入到文本卷積神經網絡-雙向門控循環單元(TextCNN-BiGRU)網絡模型中進行訓練,以獲取局部與更深層次的語義特征,在此基礎上,利用Softmax 分類器進行情感分類。
RoBERTa-WWM[17]模型是基于BERT[13]模型演變而來。為捕獲語句中更深層次的雙向關系,BERT 模型以多層雙向Transformer[12]編碼器作為模型的主要架構,通過注意力機制將句子中任意位置的兩個詞距離轉換成1,并且將掩碼語言模型(Mask Language Model,MLM)和下一句預測(Next Sentence Prediction,NSP)作為預訓練目標。MLM 隨機選取輸入語句中15%的字段,在每次訓練中將選取的token 以80%的概率替換為[MASK],10%的概率替換為隨機的單詞,剩余10%的概率保持原有單詞,這樣做的目的是提高模型對句子的特征表示能力和泛化能力。NSP 模型用于判斷句子B 是否為句子A 的下文,從而對句子之間的關系進行建模。RoBERTa模型[15]改進BERT模型主要分為3個步驟:1)將靜態mask 修改為動態mask,當BERT 模型訓練數據時,每個樣本只進行一次隨機mask,在每次訓練時mask 的位置都是相同的,而動態mask 在每次訓練前都要動態生成一次mask,使得模型能夠學習更多的語句模式;2)移除NSP,提高模型的效率;3)使用更大的數據集進行訓練,采用字節對編碼(Byte Pair Encoding,BPE)處理文本數據。
WWM[16]改變了預訓練階段中的樣本生成策略,根據中文文本的特點,以字為粒度的mask 方法轉變為以詞為粒度的mask 方法,首先將語句進行分詞,如果一個詞的部分字段被mask,則將整個詞也進行mask。對于語句“為未來點贊,為夢想起航,為自己拼搏!”,原始mask 策略和WWM 策略生成的樣例如表1 所示。WWM 策略的mask 方式,能夠有效提升中文文本表示的效果。

表1 不同策略生成的樣例語句Table 1 Sample sentences generated with different strategies
本文利用RoBERTa-WWM 模型獲得句子級的詞向量表示,在訓練過程中預訓練模型的參數根據數據集進行微調。RoBERTa-WWM 模型結合RoBERTa 模型與WWM 的優點,由12 層Transformer組成。RoBERTa-WWM 模型具有3 個特點:1)將預訓練階段的樣本生成策略更改為全詞掩碼策略,但不使用動態mask;2)移除NSP,提升模型效率;3)訓練數據集更大,訓練步數、訓練序列更長。
RoBERTa-WWM 模型結構如圖1 所示。模型初始的輸入為一條文本語句,用W1,W2,…,Wn表示,將該語句字向量、段向量和位置向量的加和作為模型的輸入,用E1,E2,…,En表示,中間層表示12 層雙向Transformer 特征提取器,T1,T2,…,Tn為模型的輸出向量。

圖1 RoBERTa-WWM 模型結構Fig.1 Structure of the RoBERTa-WWM model
TextCNN[19]將CNN 應用到文本分類任務中,在短文本領域中訓練速度更快且效果更好,因此,適用于大學生論壇領域的情感分類。TextCNN 利用多個不同大小的卷積核提取句子中的關鍵信息,從而充分捕捉局部相關性,獲取更深層次的語義信息。TextCNN 模型結構如圖2 所示。

圖2 TextCNN 模型結構Fig.2 Structure of TextCNN model
TextCNN 模型主要有嵌入層、卷積層、池化層和輸出層。嵌入層使用預訓練好的詞向量對語句進行表示,每一條評論語句對應一個m×n的矩陣,其中,m表示一條語句的最大長度,n表示詞向量的維度。卷積層通過不同的卷積核來提取文本的局部特征,通常采用的卷積核大小為2、3、4、5,使用卷積核進行卷積時,可以獲取到詞序及其上下文信息。為了保證文本基本語義單元的完整性,文本卷積是一維卷積,只需要沿著詞向量矩陣的垂直方向進行卷積。池化層將卷積層輸出的特征進行池化操作,以提取更顯著的特征,它能夠降低輸出結果的維度,使不同尺寸的卷積核得到的特征維度相同。輸出層將池化后拼接的向量進行全連接后,將其輸入到分類器中進行分類。
門控循環單元(Gated Recurrent Unit,GRU)[20]是LSTM 的變體,兩者都旨在解決循環神經網絡(Recurrent Neural Network,RNN)中存在梯度消失問題。GRU 具有稱為門的內部結構,用于調節信息流,保留或者丟棄序列中的數據。GRU 有一個重置門和一個更新門。重置門主要決定需要遺忘多少過去的信息,重置門的值越小,前一狀態的信息被寫入的越少。更新門用于控制前一時刻的狀態信息有多少被帶入到當前狀態中,即前一時間步和當前時間步的信息有多少是需要繼續傳遞。更新門的值越大說明帶入前一時刻的狀態信息越多。相比LSTM,GRU 結構較簡單,參數也較少,能夠有效提高訓練的效率。GRU 的單元結構如圖3 所示。

圖3 GRU 單元結構Fig.3 The unit structure of GRU
從圖3 可以看出,xt表示t時刻的輸入,zt表示t時刻的重置門,1?表示門控信號權重1,范圍為0~1,表示t時刻的候選激活狀態,ht表示t時刻的激活狀態,ht?1表示t?1 時刻的隱層狀態。
在GRU 網絡中,狀態信息都是從前向后輸出的,只能學習當前時刻之前的信息,而不能學習當前時刻之后的信息。在情感分類任務中,當前時刻、前一時刻與后一時刻的狀態信息都要產生聯系。本文采用雙向門控循環單元(BiGRU)代替GRU,可以學習到一個詞的上下文語義信息。BiGRU 是由兩個單向、方向相反的GRU 組成神經網絡模型,輸出由兩個GRU 的狀態信息共同決定。BiGRU 網絡結構如圖4所示。

圖4 BiGRU 網絡結構Fig.4 BiGRU network structure
從圖4 可以看出,BiGRU 網絡當前的隱層狀態是由當前的輸入xt、t?1 時刻向前隱層狀態的輸出和t+1 時刻反向的隱層狀態輸出這3 個部分共同決定。
本文提出基于RoBERTa-WWM 的大學生論壇情感分析模型。通過RoBERTa-WWM 模型得到數據集中句子級的語義特征表示,將獲取到的特征表示輸入到TextCNN 中以獲得更深層次的語句特征,然后將拼接和池化后的TextCNN 輸出向量輸入到BiGRU 網絡中獲得全面的上下文信息,最終使用Softmax 分類器進行情感分類。本文模型結構如圖5 所示。

圖5 本文模型結構Fig.5 Structure of the proposed model
嵌入向量表示層是將文本語句轉化為神經網絡模型以識別二維向量。傳統的詞嵌入方法有Word2Vec[8]、GloVe[9]等,這些方法為每個詞提供一個固定的向量表示,但是無法解決一詞多義的問題,而RoBERTa-WWM模型根據一個詞上下文語境的不同,為每條語句提供一個句子級的特征向量表示。
對于一條語句S={x1,x2,…,xm},本文構建語句S的字向量、段向量和位置向量,將這3 個向量的加和作為RoBERTa-WWM 模型的輸入,得到字級別的詞向量集合T={t1,t2,…,tm},最終將詞向量進行拼接,得到語句S的詞嵌入矩陣Rm×n。拼接方式如式(1)所示:

其中:⊕表示行向量拼接運算符;m表示單個語句的最大長度,由于大學生論壇語句多為短文本,因此本文設置m為100;n表示詞向量的維度,因為RoBERTa-WWM模型的詞向量維度為768,所以n的值為768。
在上一層獲取到句子級詞嵌入矩陣的基礎上,語義信息獲取層用于獲取更深層次的語義信息和上下文信息。對于詞嵌入矩陣,利用TextCNN 進行一維卷積操作,提取文本多類型的局部特征,將卷積后的結果輸入到BiGRU 網絡,對文本進行正反雙向處理,用于獲取更全面的上下文信息。
對于TextCNN,為了能有效提取更深層次的特征,本文設置3 種不同大小的卷積核,分別為3、4、5,每種卷積核都設置256 個,并且將填充值設置為same,保證卷積輸出向量的維度一致。池化層采用最大值池化,將卷積層輸出的特征進行池化操作來提取更顯著的特征,并將池化后的特征向量進行拼接操作。本文將pool_size 設置為4,為防止模型過擬合,加入Dropout 層隨機忽略掉一定數量的神經元,將隨機忽略概率設置為0.5。
GRU 可以捕獲長距離的語義信息,但是傳統的GRU 只能獲取正向的語義信息。本文利用BiGRU網絡同時對語句進行正反兩個方向處理,用于獲取語句全面的上下文信息,BiGRU 網絡的輸入維度與TextCNN 層的輸出維度一致。本文設置GRU 的單元數為128 個,最終將BiGRU 網絡的輸出進行全連接操作。
情感計算層將語義信息獲取層輸出的特征向量通過Softmax 分類器計算語句S在情感標簽中的概率向量O=[o1,o2,o3],選擇最大值所代表的情感標簽作為最終輸出的情感標簽。Softmax 分類器將輸入向量的第i項轉化為概率Pi,如式(2)所示:

其中:K為情感標簽的數目。本文采用神經網絡反向傳播機制更新模型參數,損失函數采用交叉熵loss,在訓練過程中,將交叉熵最小化,計算過程如式(3)所示:

其中:D為訓練集大小;K為情感標簽數量;y為真實的情感類別為預測的情感類別。
本文通過爬蟲技術獲取某大學學生論壇9 112 條評論數據,分別標注為負面消極型、客觀中立型和積極樂觀型3 種情感類別,構建大學生論壇情感分析數據集。每條評論數據有標簽、內容、發布人和發布時間4 種屬性,以便于之后的應用與分析,并在該數據集上設置多組對比實驗。
大學生論壇數據集通過百度貼吧平臺某大學貼吧獲取得到,經過篩選與處理后,構建含有9 112 條學生論壇評論語句的數據集,采用3 種情感標簽進行標注,0 代表負面消極型,1 代表客觀中立型,2 代表積極樂觀型。負面消極型評論共有1 355 條,客觀中立型評論共有6 325 條,積極樂觀型評論共有1 432 條。負面消極型評論包括對學習和生活上的消極言論,或者對他人的憎恨與謾罵等;客觀中立型評論包括對一些事物的客觀評價,或者不帶個人感情的敘述等;積極樂觀型評論包括對事物積極樂觀的看法、描述自己的喜悅,或者對他人的鼓勵和正面的建議等。大學生論壇數據集樣例如表2 所示。

表2 大學生論壇數據集樣例Table 2 Samples of college student forum dataset
本文按照近似8∶2 將實驗數據集分為訓練集和測試集,訓練集共7 289 條評論,測試集共1 823 條評論。大學生論壇數據集分布如表3 所示。

表3 大學生論壇數據集分布Table 3 Distribution of college student forum dataset
為驗證本文模型在情感分析公共數據集上的有效性,本文使用的公共實驗數據集是NLPCC2014數據集。NLPCC2014 數據集分為訓練集和測試集,包括none、happiness、like、anger、sadness、fear、disgust 和surprise 8 種情感標簽。為了與對比實驗一致,本文去除了none標簽的數據,在剩余數據集中訓練集共7 407 條評論,測試集共2 394條評論。NLPCC2014數據集分布如表4所示。

表4 NLPCC2014 數據集分布Table 4 Distribution of NLPCC2014 dataset
本文選取5 種模型與本文所提的RTB 模型進行對比,這5 種對比模型主要是:1)TextCNN 模型[19],將卷積神經網絡應用到文本分類任務中,通過Word2Vec 模型[8]生成每個詞對應的詞向量,并將其輸入到多個不同窗口大小的卷積核中,以實現情感分 類;2)BiLSTM 模 型[21],由前向 和后向 的兩個LSTM 組合而成,獲取文本全面的上下文信息,從而進行文本分類;3)TextCNN-BiGRU 模型[22],是一種將BiGRU 的語義特征提取能力與TextCNN 的深層特征提取能力相結合的模型,采用Word2Vec 模型作為詞嵌入層;4)BERT 模型[13],Google 在2018 年提出的一種預訓練模型,將多層Transformer 作為模型的主要架構,提取BERT 中文預訓練模型的動態詞向量直接進行情感分類;5)RoBERTa-WWM 模型[17],該模型結合RoBERTa[15]和BERT-WWM[16]的優點,在RoBERTa 模型的基礎上,將預訓練樣本生成策略修改為WWM,并將該模型作為本文的基準模型。
本文經過多次對比實驗后,選取參數的最優值用于其他所有實驗。本文實驗的可調參數設置如表5所示。

表5 本文實驗的參數設置Table 5 Parameters setting of the proposed experiment
3.4.1 大學生論壇數據集實驗結果
在大學生論壇數據集上不同模型的評價指標對比如表6 所示。由于數據集0 類(負面消極型)和2 類(正面積極型)的樣本相對較少,1 類(客觀中立型)的樣本相對較多,因此模型需要更加關注帶有情感語句的分類效果。本文采用宏平均精準率(Macro_P)、宏平均召回率(Macro_R)、宏平均F1 值(Macro_F1)以及微平均F1 值(Micro_F1)作為評價指標。

表6 在大學生論壇數據集上不同模型的評價指標對比Table 6 Evaluation indexs comparison among different models on college student forum dataset %
從表6 可以看出,本文RTB 模型在大學生論壇數據集上的各項評價指標均以Word2Vec 作為詞嵌入層的TextCNN 模型、BiLSTM 模型與TextCNN-BiGRU 模型的評價指標均較低,與BERT 模型相比還有較大的差距。在TextCNN 模型、BiLSTM 與TextCNN-BiGRU模型中,Macro_F1與Micro_F1之間差值約6個百分點,說明模型對于樣本數量較少的0 類和2 類的分類效果相對較差。本文模型相對于TextCNN-BiGRU 模型的Macro_P、Macro_R、Macro_F1 和Micro_F1 分別提升7.29、12.57、10.28 和6.70 個百分點。相比BERT 模型,本文模型的評價指標分別提升了3.59、2.08、2.77 和1.44 個百分點。本文使用TextCNN-BiGRU 模型獲取更深層次的語義信息,相比RoBERTa-WWM 模型,本文模型的各項指標分別提升了2.16、1.15、1.61和0.75個百分點,說明加入TextCNN-BiGRU 模型進行訓練,能夠更好地學習語義特征。
3.4.2 NLPCC2014 數據集實驗結果
在NLPCC2014 數據集上不同模型的評價指標對比如表7 所示。本文以宏平均F1 值(Macro_F1)和微平均F1 值(Micro_F1)作為實驗的評價指標。對比模型是EMCNN[23]、DAM[24]與EK-INIT-CNN[5]。EMCNN 模型利用表情符號生成的特征矩陣對語句進行語義增強,改進分類效果。DAM 模型在BiLSTM 的基礎上引入雙重注意力機制與情感符號,增強對語義的捕獲能力。EK-INIT-CNN 模型使用情緒知識表示,通過INIT-CNN 和注意力機制生成情緒知識和語義特征矩陣,將情緒知識特征與語義特征相融合,在NLPCC2014 數據集上取得較好的分類效果。

表7 在NLPCC2014 數據集上不同模型的評價指標對比Table 7 Evaluation indexs comparison among different models on NLPCC2014 dataset %
從表7 可以看出,相比其他模型,本文模型的Macro_F1 和Micro_F1 具有較高的評價指標。對于TextCNN 和TextCNN-BiGRU 模型,同一模型的Macro_F1 和Micro_F1 值之間差值約20 個百分點,其原因為數據集中的fear 標簽數據量太少,沒有被預測出來,導致該標簽的各項指標都為0。BiLSTM模型將每個標簽都預測出來,但綜合指標不是很高。相比TextCNN、BiLSTM 模型,TextCNN-BiGRU 模型的綜合指標相對較高。相比以上3 個基準模型,EMCNN 和DAM 模型的Macro_F1 指標都有了較大的提升。EK-INIT-CNN 模型將微博情緒知識庫融合到了微博語句中,效果有了很大的提升。BERT 和RoBERTa-WWM 模型在海量語料上對語句進行了更好的向量表示,有效提升了分類效果。本文模型在RoBERTa-WWM 模型的基礎上,結合深度基準模型學習更深層次的語義特征,對比TextCNN-BiGRU模型,本文模型的Macro_F1 和Micro_F1 值分別提升28.85 和17.98 個百分點。相比DAM 模型,本文模型的指標分別提升了20.89 和21.11 個百分點。相比EK-INIT-CNN 模型,本文模型的指標分別提升11.29和6.89 個百分點。對比BERT 和RoBERTa-WWM 模型,本文模型分別提升了2.52、2.30 和0.48、0.21 個百分點。因此,本文模型具有較優的分類效果。
3.4.3 模型分析與評價
為了評估模型的準確性與價值,本文使用ROC曲線(受試者工作特征曲線)對RTB 模型進行分析,結果如圖6 所示。

圖6 RTB 模型的ROC 曲線Fig.6 ROC curves of RTB model
從圖6 可以看出,本文模型的ROC 曲線完全在對角線上方,宏平均AUC 值為0.98,因此,本文模型具有較優的預測能力。對于0 類(負面消極型)標簽的分類具有較優的性能,這是由于0 類語句的情感特征較為明顯。對于2 類(正面積極型),被預測錯誤的樣本多數被預測為了1 類(客觀中立型),原因是缺少明顯的情感詞語,例如,數據集第8 015 條語句“學習,是生活必需。特別是現代社會,信息化發展很快,學習尤為重要。”被預測為1 類,因其沒有提及到情感詞語。總之,本文模型用于分析大學生論壇語句具有較優的性能和實用價值。
3.4.4 單個類別分類性能對比
本文將RTB 模型與RoBERTa-WWM 模型在單個類別的分類性能上進行對比,以F1 值作為評價指標,結果如圖7 所示。

圖7 不同模型的單個類別分類性能對比Fig.7 Each category classification performance comparison among different models
從圖7 可以看出,RTB 模型與RoBERTa-WWM模型都在1 類(客觀中立型)上具有較優的分類效果,但是在0 類(負面消極型)和2 類(積極正面型)上相對較差。由于1 類的樣本數量相對較多,因此模型對1 類語句的語義特征學習較為全面。在0 類和2 類中一些語句的情感特征不是很明顯,導致分類錯誤。相比RoBERTa-WWM 模型,RTB 模型在0 類、1 類 和2 類上的F1 值 分別提高了3.59、0.73 和0.52 個百分點,在0 類的分類效果提升較為明顯,說明加入TextCNN-BiGRU 網絡能夠充分捕獲負面消極情感的語義特征。因此,RTB 模型相比RoBERTa-WWM 模型在各類別分類上都具有更優的性能。
本文構建基于RoBERTa-WWM 的大學生論壇情感分析模型。利用RoBERTa-WWM 模型對文本數據進行向量化處理,以解決傳統詞嵌入層的一詞多義問題,同時將文本向量輸入到TextCNN-BiGRU 模型進行訓練,獲取更深層次的語義信息。在大學生論壇與NLPCC2014數據集上的實驗驗證了本文模型的有效性,結果表明,相比TextCNN、BiLSTM、TextCNN-BiGRU等模型,本文模型能夠有效地對大學生論壇語句進行分類。后續將逐漸減少Transformers 層數,分析Transformers 不同層數對分類結果的影響,在不影響模型分類效果的條件下減少模型參數量。此外,通過對語句進行更細粒度的標注,進一步提高模型的泛化能力。