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