周凱,李暉,劉桐
(沈陽工業(yè)大學(xué)信息科學(xué)與工程學(xué)院,沈陽 110870)
情感分析也稱為意見挖掘[1],它是利用計算機(jī)技術(shù)對文本的觀點(diǎn)、情感傾向進(jìn)行挖掘與分析,并利用人工智能的神經(jīng)網(wǎng)絡(luò)對文本情感傾向進(jìn)行分類判定。文本情感分析技術(shù)主要可劃分為基于人工和機(jī)器學(xué)習(xí)的傳統(tǒng)分類方法[2-3]和基于深度學(xué)習(xí)的分類方法兩種?;谌斯さ姆诸惙椒ê艽蟪潭壬先Q于情感詞典的構(gòu)建,主要是通過對標(biāo)注情感詞典的極性和強(qiáng)度標(biāo)注來實(shí)現(xiàn)文本的情感分類。由于構(gòu)建的詞典通常只針對特定領(lǐng)域的固定短文本,對于長文本和跨領(lǐng)域的情感分析任務(wù)來說,該方法費(fèi)時、費(fèi)力且遷移能力較差?;跈C(jī)器學(xué)習(xí)的方法,先對文本的語料庫進(jìn)行標(biāo)記,利用特征提取的方法提取特征,再在分類器中輸入所提取的特征,計算概率分布達(dá)到情感分類的目的,這類方法成功的關(guān)鍵在于選擇出大量高質(zhì)量的標(biāo)注樣本、最佳的特征組合和分類器,機(jī)器學(xué)習(xí)的準(zhǔn)備工作需要耗費(fèi)大量精力,模型泛化能力差。與此同時,機(jī)器學(xué)習(xí)的算法對復(fù)雜語境下的表達(dá)能力有限,不能捕捉文本隱藏語義之間的關(guān)聯(lián)性,從而影響分類的準(zhǔn)確率。本研究針對上述問題,提出一種基于深度學(xué)習(xí)的情感分析模型。
BERT(Bidirectional Encoder Representation fromTransformer)[4]是根據(jù)Transformer中衍生出來的預(yù)訓(xùn)練語言模型,能實(shí)現(xiàn)文本的向量化。BERT作為一種預(yù)訓(xùn)練語言模型,預(yù)訓(xùn)練過程是最為核心的部分,其中包括MLM、NSP兩個預(yù)訓(xùn)練任務(wù)。
MLM訓(xùn)練任務(wù)可以看作是完形填空的形式,每當(dāng)輸入一句話,模型會隨機(jī)地遮住一些要預(yù)測的詞,使用[MASK]特殊符號統(tǒng)一表示。這個選取的概率是每個句中15%的詞。例如:疫情嚴(yán)峻→疫情嚴(yán)[MASK]。此處將“峻”字進(jìn)行了特別的MASK處理,再利用無監(jiān)督學(xué)習(xí)的方法,來預(yù)測MASK位置的詞語。BERT模型對隨機(jī)選取的15%的詞匯做出如下三種處理,使模型更加合理。
1)80%的時間是采用[MASK]處理:疫情嚴(yán)峻疫情嚴(yán)[MASK]。
2)10%的時間是隨機(jī)取一個詞來代替MASK的詞:疫情嚴(yán)峻→疫情嚴(yán)酷。
3)10%的時間保持不變:疫情嚴(yán)峻→疫情嚴(yán)峻。
NSP訓(xùn)練任務(wù)可以看作是段落重排序。當(dāng)輸入句子A和B時,判斷二者是否前后句。在此基礎(chǔ)上,從語料庫中隨機(jī)選取了50%的B作為A的背景句,其余50%的B是在語料庫中隨機(jī)匹配的。引入NSP訓(xùn)練任務(wù)可以更好地讓BERT學(xué)習(xí)到連續(xù)的文本片段之間的相關(guān)性,并且把其相關(guān)性保存在[CLS]符號中。預(yù)訓(xùn)練任務(wù)流程如圖1所示。
圖1 BERT預(yù)訓(xùn)練任務(wù)流程示意圖
TextCNN的網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。與傳統(tǒng)的CNN[5]相比,TextCNN的結(jié)構(gòu)并無顯著差異,它僅包含一層卷積層和一層最大層池化層[6]。
圖2 TextCNN網(wǎng)絡(luò)結(jié)構(gòu)
TextCNN網(wǎng)絡(luò)主要通過卷積層提取語句的不同特征,池化層提取其中最重要的特征,再加上全連接和softmax層,最后輸出情感分類結(jié)果。
局部特征的獲取是CNN的關(guān)鍵。在文本中,局部特征一般由一個或多個字構(gòu)成,類似于N-gram。CNN的優(yōu)勢在于可以自動地結(jié)合、篩選出各種抽象層次的語義信息。
TextCNN的輸入層是一個n×d的矩陣,其中n表示句子的字?jǐn)?shù),d表示每個單詞對應(yīng)的向量維度。因此,輸入的每一層就是一個單詞對應(yīng)的d維的詞向量。此外,本研究還對語句進(jìn)行填充處理,以保證詞向量的長度一致。
對文本的卷積運(yùn)算和圖像的卷積運(yùn)算是完全不同的。在圖像處理中,通常采用正方形核,例如3×3的卷積核,卷積核沿著整個圖像的高、寬,按步長進(jìn)行卷積運(yùn)算。而TextCNN的卷積層[7-8]是一維卷積,它的卷積核尺寸是固定的,即詞向量維度d。卷積核僅沿高度方向運(yùn)動,而卷積核的高度也就是該窗口內(nèi)文字的數(shù)目。當(dāng)設(shè)置kernel_size=(2,3,4)時,即為一個窗口中分別可以包含2、3、4個單詞。由于矩陣的一行代表的是一個單詞,所以確保了詞作為語言中的最小粒度。
2017年騰訊提出用于文本分類的模型DPCNN(Deep Pyramid Convolutional Neural Networks)[9],其網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。該模型比TextCNN更加深入,并且增加了殘差網(wǎng)絡(luò),能夠更好地捕捉長文本之間的相關(guān)性,從而彌補(bǔ)了TextCNN在實(shí)現(xiàn)文本的分類任務(wù)時,由于本身網(wǎng)絡(luò)深度太淺而無法獲得長距離文本信息的缺陷。
圖3 DPCNN網(wǎng)絡(luò)結(jié)構(gòu)
DPCNN采用每個卷積塊包含兩層等長卷積的方式提高詞位的豐富性。等長卷積意味著輸出序列的長度與輸入序列長度相等。將輸入輸出序列的第n個詞向量稱為第n個詞位,此時尺寸為m的卷積核所生成的等長卷積就是將該詞位和它附近(m-1)/2個字的上下文信息進(jìn)行壓縮后的詞向量。與此同時,DPCNN使用兩層等長卷積累加會讓每個詞位的詞向量語義更加豐富準(zhǔn)確。
在DPCNN中采取了與ResNet網(wǎng)絡(luò)不同的方式,將feature map的數(shù)量進(jìn)行了固定。該方法通過對詞向量空間的維數(shù)進(jìn)行約束,使相鄰詞在原空間或類似于原空間的情況下進(jìn)行融合。同時,DPCNN在整個網(wǎng)絡(luò)結(jié)構(gòu)上看是深層的,但是從語義空間的角度上觀察是扁平的。
當(dāng)DPCNN為池化提供了恰當(dāng)?shù)暮喜l件后,就可以用1/2池化操作進(jìn)行合并信息。同樣大小的卷積核,每經(jīng)過一個1/2池化層,所能感知到的文本語義范圍就會增加一倍。
首先在語料S={w1,w2,…,wn}輸入到BERT模型時,將在文字的開頭加上[cls]特別的標(biāo)簽,含義是分類,并將[sep]標(biāo)簽添加到文字的結(jié)尾。BERT將一連串上下文序列作為輸入,經(jīng)過多層transformer編碼層處理,BERT為每個輸入標(biāo)記生成對應(yīng)的隱藏狀態(tài)向量,并輸出隱藏向量序列E={H[CLS],H1,H2,…,Hn,H[SEP]}。在此基礎(chǔ)上,利用H[CLS]作為文本輸入序列的聚合向量表達(dá),它包含上下文信息,可直接用于一步任務(wù)模型的輸入,實(shí)現(xiàn)情感分類。BERT-DPCNN情感分析模型如圖4所示。
圖4 BERT-DPCNN情感分析模型
實(shí)驗(yàn)在網(wǎng)絡(luò)媒體平臺爬取[10]評論數(shù)據(jù)10萬條,在數(shù)據(jù)清洗過程中,刪除無任何情感傾向的錯亂語句和僅由符號構(gòu)成的評論,保留文本評論98270條。將其中80%的評論文本作為訓(xùn)練集數(shù)據(jù),10%設(shè)置為測試數(shù)據(jù)集,剩余10%作為實(shí)驗(yàn)驗(yàn)證集,每個數(shù)據(jù)集包含10個情感標(biāo)簽。其中10種情感標(biāo)簽分別對應(yīng)開心、喜愛、驚訝、悲傷、厭惡、生氣、同情、羨慕和失望。
實(shí)驗(yàn)基于矩池云服務(wù)器Python3.7編程語言實(shí)現(xiàn),選用Pytorch框架搭建神經(jīng)網(wǎng)絡(luò)。實(shí)驗(yàn)數(shù)據(jù)設(shè)置4400個epoch進(jìn)行訓(xùn)練。
實(shí)驗(yàn)選取了準(zhǔn)確率、損失函數(shù)值、召回率,作為評估指標(biāo),評估情感分析模型的性能。通過與其他模型對比,驗(yàn)證本模型的有效性。實(shí)驗(yàn)結(jié)果對比如表1。
表1 實(shí)驗(yàn)結(jié)果對照表
可見,實(shí)驗(yàn)搭建的深度學(xué)習(xí)情感分析模型在準(zhǔn)確率這一指標(biāo)上都有著不錯的表現(xiàn),因此基于BERT-TextCNN和BERT-DPCNN的模型都適合于應(yīng)用在情感分析任務(wù)上。具體來看,BERT-DPCNN在情感分析任務(wù)上有著更加突出的表現(xiàn);同時,DPCNN可以更好的捕捉長文本之間的相關(guān)性,這一點(diǎn)也得到了驗(yàn)證。
在損失函數(shù)值這一指標(biāo)上,實(shí)驗(yàn)搭建模型符合理論預(yù)期?;贐ERT-TextCNN和BERT-DPCNN的模型都適合于應(yīng)用在情感分析任務(wù)上。
實(shí)驗(yàn)得到的準(zhǔn)確率曲線如圖5所示。從單條曲線上看,無論是基于TextCNN還是DPCNN網(wǎng)絡(luò),其準(zhǔn)確率都隨著epoch次數(shù)的增加,先快速提高,然后逐漸趨于平穩(wěn),曲線整體平滑。兩種模型的準(zhǔn)確率曲線與情感分析任務(wù)相吻合。隨著迭代次數(shù)的增加,詞表內(nèi)的語料被逐漸加載,模型準(zhǔn)確率也隨之增加。對比之下,基于BERT-DPCNN模型的準(zhǔn)確率更優(yōu)。
圖5 準(zhǔn)確率百分比曲線
實(shí)驗(yàn)得到損失函數(shù)值曲線如圖6所示。通過實(shí)驗(yàn)數(shù)據(jù)曲線可見,所有網(wǎng)絡(luò)模型的損失函數(shù)值都隨著epoch次數(shù)的增加,先快速收斂,然后趨于平穩(wěn),最后達(dá)到模型最優(yōu)時停止迭代。曲線整體平滑,起伏較小。損失函數(shù)值可以很好地反映模型與實(shí)際數(shù)據(jù)的差距,其中,基于BERT-DPCNN模型的損失函數(shù)收斂速度最快,損失函數(shù)的值最小。結(jié)合DPCNN模型的優(yōu)勢,分析可知,基于BERT-DPCNN模型的情感分析系統(tǒng)在情感分析領(lǐng)域有著一定的優(yōu)勢。
圖6 損失函數(shù)值曲線
針對目前情感分析技術(shù)在復(fù)雜語境中表達(dá)能力有限、語義關(guān)聯(lián)性困難、模型分類準(zhǔn)確率低等問題,優(yōu)化改進(jìn)情感分析模型。通過在BERT語言模型上結(jié)合DPCNN神經(jīng)網(wǎng)絡(luò)分類器,提高了模型效率和計算效果,使模型具有泛化性。通過比較精確率度、損失函數(shù)指標(biāo),對該方法的性能進(jìn)行了評價。模型的準(zhǔn)確率達(dá)到了92.09%的準(zhǔn)確率,損失函數(shù)值為0.38,結(jié)果表明,改進(jìn)后的模型可以更好兼容情感分析任務(wù)。