于 營,賈樹文,高華玲
(1. 三亞學(xué)院信息與智能工程學(xué)院,三亞 572022;2. 三亞學(xué)院陳國良院士團(tuán)隊(duì)創(chuàng)新中心,三亞 572022;3. 三亞學(xué)院盛寶金融科技商學(xué)院,三亞 572022)
情感分析(sentiment analysis)在自然語言處理領(lǐng)域是一個(gè)重要的研究方向。隨著當(dāng)前業(yè)務(wù)環(huán)境和應(yīng)用場景的變化,人們的需要越來越多地集中在一些情感分析處理方面。深度學(xué)習(xí)技術(shù)正在成為解決情感分析任務(wù)的一種新的方法。深度學(xué)習(xí)技術(shù)具有自動(dòng)學(xué)習(xí)、非線性建模等特點(diǎn),使得機(jī)器算法能夠更好地適應(yīng)數(shù)據(jù),從而更好地完成情感分析任務(wù)[1]。
情感分析在自然語言處理領(lǐng)域有著廣泛的應(yīng)用。它可以幫助公司理解市場和客戶需求,同時(shí)也可以幫助個(gè)人打破信息泡沫,了解當(dāng)前事件的全貌。在此背景下,使用深度學(xué)習(xí)技術(shù)進(jìn)行情感分析已成為研究熱點(diǎn)。
深度學(xué)習(xí)在自然語言處理的子領(lǐng)域情感分析方面取得了重大進(jìn)展。使用深度學(xué)習(xí)模型進(jìn)行情感分析已經(jīng)獲得了極大的關(guān)注,因?yàn)樗軌驅(qū)W習(xí)單詞之間復(fù)雜和非線性的關(guān)系。
深度學(xué)習(xí)在情感分析中的早期應(yīng)用之一是使用卷積神經(jīng)網(wǎng)絡(luò)(CNN)進(jìn)行情感分類。CNN在學(xué)習(xí)文本數(shù)據(jù)的局部和全局特征方面取得了成功,并已被用于二元和多類分類等情感分析任務(wù)[2]。循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)及其變體,如長短期記憶(LSTM)和門控遞歸單元(gate recurrent unit,GRU)[3]也被用于情感分析任務(wù)。RNN 對于情感分析等序列分類任務(wù)特別有用,主要因?yàn)樗梢蕴崛∑渲行蛄兄刑N(yùn)含的時(shí)間上下文信息。
最近,基于深度學(xué)習(xí)的模型,如基于注意力的模型、Transformer和預(yù)訓(xùn)練的語言模型[4]已被用于情感分析任務(wù)。基于注意力的模型,如注意力編碼器-解碼器模型(attentional encoder-decoder model)[5]和基于Transformer 的模型,如BERT(bidirectional encoder representations from transformers)[6]和GPT-2(generative pre-training transformer-2)[7]在各種情感分析任務(wù)上顯示出顯著優(yōu)勢。這些模型利用自注意力機(jī)制提取重要的詞嵌入并學(xué)習(xí)文本數(shù)據(jù)的上下文,從而實(shí)現(xiàn)對情感的準(zhǔn)確分類。
本實(shí)驗(yàn)基于Transformer 結(jié)合預(yù)訓(xùn)練語言模型,進(jìn)行情感分析任務(wù)的實(shí)現(xiàn)。Transformer 體系結(jié)構(gòu)是一種深度神經(jīng)網(wǎng)絡(luò)體系結(jié)構(gòu),它使用自注意力機(jī)制計(jì)算輸入序列的表示。這種架構(gòu)通過允許模型考慮序列的完整上下文,而不是只考慮當(dāng)前或鄰近的單詞,徹底改變了NLP 任務(wù)。結(jié)合自注意力機(jī)制,Transformer 可以捕獲序列中單詞之間復(fù)雜和長期的依賴關(guān)系,使它們在自然語言理解任務(wù)中非常有效。
在所提出的方法中使用BERT作為預(yù)訓(xùn)練模型。BERT 是谷歌開發(fā)的最先進(jìn)的預(yù)訓(xùn)練語言模型,在大量的文本數(shù)據(jù)上進(jìn)行訓(xùn)練,并學(xué)習(xí)以上下文敏感的方式表示句子中的每個(gè)單詞。為了將這種方法應(yīng)用于情緒分析,預(yù)訓(xùn)練的BERT模型可以在一個(gè)標(biāo)記的情緒數(shù)據(jù)集上進(jìn)行微調(diào),比如快樂、悲傷、憤怒或恐懼。在微調(diào)過程中,BERT 的權(quán)重被更新以優(yōu)化模型在特定情緒分析任務(wù)上的性能。
總之,將轉(zhuǎn)換模型與預(yù)訓(xùn)練語言模型(如BERT)相結(jié)合,為NLP 情感分析創(chuàng)建了強(qiáng)大的深度學(xué)習(xí)方法。該方法利用Transformer 模型的上下文理解和自我注意機(jī)制,以及BERT等預(yù)訓(xùn)練模型的優(yōu)越性能和適應(yīng)性,提供準(zhǔn)確高效的情緒分析結(jié)果。
硬件環(huán)境:CPU Intel i7-8700,GPU Nvidia GTX1060 6 GB
軟件環(huán)境:Python 3.8版本,TensorFlow 2.6.0
本實(shí)驗(yàn)采用Stanford Large Movie Review Dataset,該數(shù)據(jù)集是一個(gè)公共數(shù)據(jù)集,包含各種電影評論以及對評論的二元判定(正面還是負(fù)面)。數(shù)據(jù)集中含50000個(gè)標(biāo)注的電影評論文本,被平均分配到25000個(gè)訓(xùn)練集和測試集中,另外還有額外的未標(biāo)記數(shù)據(jù)可供使用。在訓(xùn)練前,首先應(yīng)對Stanford Large Movie Review Dataset 進(jìn)行以下預(yù)處理:
(1)劃分?jǐn)?shù)據(jù)集為訓(xùn)練集、驗(yàn)證集和測試集;
(2)提取每個(gè)評論的單詞,并將其轉(zhuǎn)換為數(shù)字形式的語料庫,使用Keras Tokenizer 的num_words屬性來控制訪問的單詞數(shù);
(3)將每個(gè)評論的數(shù)字化的詞匯填充為固定長度,使所有評論的長度相同;
(4)通過隨機(jī)擾動(dòng)集中的評論,增強(qiáng)模型的泛化性。
本實(shí)驗(yàn)設(shè)計(jì)了一個(gè)基于Transformer 的深度卷積神經(jīng)網(wǎng)絡(luò)模型,并與改進(jìn)的樸素貝葉斯算法(NB variants)、全連接神經(jīng)網(wǎng)絡(luò)(DNN)、循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)、門控遞歸單元(GRU)進(jìn)行對比。
將文本轉(zhuǎn)換為相應(yīng)的詞向量,并將其饋送到多層感知機(jī)和卷積神經(jīng)網(wǎng)絡(luò)模型中進(jìn)行訓(xùn)練和測試[8]。卷積神經(jīng)網(wǎng)絡(luò)模型中的卷積層和池化層可以幫助提取文本本身特征,遺忘門、輸入門、記憶單元和輸出門的設(shè)置為了更好地提取上下文特征,提高模型的準(zhǔn)確率。具體來說:
(1)嵌入(Embedding)層:將向量編碼為單詞向量,其中每個(gè)單詞通過查找嵌入矩陣來得到;
(2)卷積(Convolution)層:將嵌入向量進(jìn)行卷積操作,然后與重復(fù)的ReLU 和max-pooling層結(jié)合在一起,使最重要的特征被留下來;
(3)遺忘門(Forget gate)層:決定哪些信息需要被遺忘,哪些信息需要被保留;
(4)輸入門(Input gate)層:決定哪些新信息需要被加入到記憶單元中,哪些信息需要被忽略;
(5)記憶單元:存儲(chǔ)當(dāng)前時(shí)刻的記憶信息,以及由前面時(shí)刻傳遞來的信息;
(6)輸出門(Output gate)層:決定哪些信息需要被輸出,哪些信息需要被隱藏;
(7)平鋪(Flatten)層:將卷積層輸出的結(jié)果拉直,以便連接全連接和dropout兩個(gè)層;
(8)全連接(Dense)層:將特征映射到標(biāo)簽空間,這里是正面或負(fù)面;
(9)Dropout 層:隨機(jī)刪除一定比率(在實(shí)驗(yàn)中為0.5)的神經(jīng)元,以防止過擬合。
(1)Batchsize:64;
(2)Optimizer:Adam優(yōu)化器;
(3)激活函數(shù):ReLU加sigmoid;
(4)損失函數(shù):使用Cross-entropy 誤差函數(shù)進(jìn)行二分類;
(5)評估指標(biāo):準(zhǔn)確率。
經(jīng)過多次實(shí)驗(yàn),最終結(jié)果表明,我們所提出的模型在測試集上的準(zhǔn)確率為94.18%,而DNN 模型只有85.16%的準(zhǔn)確率。這表明卷積神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)開發(fā)的模型可以更好地識(shí)別文本中的情感,這是由于CNN 擅長處理文本、圖像等數(shù)據(jù)。并且,將該模型與樸素貝葉斯算法進(jìn)行了對比,使用了預(yù)處理后的情感分析數(shù)據(jù)集,實(shí)驗(yàn)結(jié)果表明,本文所提出的深度學(xué)習(xí)模型確實(shí)優(yōu)于傳統(tǒng)機(jī)器學(xué)習(xí)方法。表1展示了本文所提出的模型和對比模型在Stanford Large Movie Review Dataset 數(shù)據(jù)集上所取得的準(zhǔn)確率結(jié)果對比。
表1 實(shí)驗(yàn)結(jié)果總結(jié)與對比
通過繪制ROC 曲線和查看混淆矩陣來評估模型的預(yù)測精度,結(jié)果表明模型在整個(gè)測試集中的預(yù)測精度都很高,具有良好的泛化能力。
圖1 不同模型的ROC曲線對比
采用BERT進(jìn)行預(yù)訓(xùn)練的深度卷積神經(jīng)網(wǎng)絡(luò)模型,在情感分析上取得了最先進(jìn)的結(jié)果,這種方法可以提供高度準(zhǔn)確的情緒分析結(jié)果。
通過實(shí)驗(yàn)可以看出,本文所提出的深度學(xué)習(xí)模型在準(zhǔn)確率上較之前的模型有了很大的提高,尤其是在采用了BERT 的預(yù)訓(xùn)練參數(shù)之后,模型的準(zhǔn)確性進(jìn)一步提升。我們的模型具有出色的上下文理解能力,這是由于BERT是在大量文本數(shù)據(jù)上訓(xùn)練的,因此它可以獲取句子中單詞的上下文語義信息,這對于情感分析至關(guān)重要。通過理解上下文,模型可以識(shí)別文本情感內(nèi)容的細(xì)微差別,其自注意機(jī)制允許它捕捉句子中單詞之間的依賴關(guān)系。預(yù)先訓(xùn)練的模型可以針對特定的任務(wù)進(jìn)行微調(diào),使這種方法對不同的應(yīng)用程序具有高度的適應(yīng)性。通過重用預(yù)訓(xùn)練模型的知識(shí),微調(diào)需要更少的標(biāo)記示例,使得在標(biāo)記數(shù)據(jù)稀缺的情況下應(yīng)用這種方法成為可能。
通過本次實(shí)驗(yàn),我們看到了深度學(xué)習(xí)技術(shù)在情感分析中的高準(zhǔn)確率和精確度。與傳統(tǒng)的機(jī)器學(xué)習(xí)方法相比,深度學(xué)習(xí)技術(shù)可以更好地處理文本數(shù)據(jù)中的非線性特征,并且能夠從數(shù)據(jù)集本身中學(xué)習(xí)出更多的語義特征,更好地進(jìn)行情感分析。同時(shí),我們在使用不同的工具和結(jié)構(gòu)時(shí),也發(fā)現(xiàn)了卷積神經(jīng)網(wǎng)絡(luò)模型能更好地提高模型的效果的趨勢,其中,因?yàn)樵撃P涂梢暂^好地提取文本之間的關(guān)聯(lián)信息,以及處理文本中的局部信息,而在情感分析任務(wù)中表現(xiàn)了較高的準(zhǔn)確度。
然而,實(shí)驗(yàn)結(jié)果受到數(shù)據(jù)集的影響,數(shù)據(jù)集所包含的樣本特點(diǎn)和實(shí)際應(yīng)用場景有一定的不確定性。在今后的研究中,我們可以進(jìn)一步探索情感分析的實(shí)際應(yīng)用場景,并根據(jù)具體的任務(wù)需求對深度學(xué)習(xí)方法進(jìn)行適當(dāng)?shù)恼{(diào)整和優(yōu)化。通過增加數(shù)據(jù)集的多樣性,驗(yàn)證模型的泛化性,并精細(xì)化深度學(xué)習(xí)模型的網(wǎng)絡(luò)結(jié)構(gòu),以提高模型的準(zhǔn)確率和魯棒性,從而更好地推進(jìn)情感分析技術(shù)的發(fā)展和創(chuàng)新。