袁 勛,劉 蓉,劉 明
1.華中師范大學(xué) 物理科學(xué)與技術(shù)學(xué)院,武漢430079
2.華中師范大學(xué) 計(jì)算機(jī)學(xué)院,武漢430079
情感分析是自然語(yǔ)言處理領(lǐng)域的重要研究?jī)?nèi)容之一[1]。情感分析的主要任務(wù)是對(duì)人們生活中所獲取到的各種文本信息進(jìn)行提取、分析和總結(jié)。然而,當(dāng)一個(gè)句子包含多個(gè)方面的情感極性時(shí),傳統(tǒng)的情感分析模型將無(wú)法判斷情感極性,方面級(jí)情感分析會(huì)更加適合此類任務(wù)[2]。
方面級(jí)情感分析是一項(xiàng)更加具體的情感分類問(wèn)題,可以針對(duì)不同的目標(biāo)挖掘更細(xì)膩的情感信息。例如句子“這家餐廳的菜品味道不錯(cuò)就是太貴了”,在同一個(gè)句子中出現(xiàn)了“味道”和“價(jià)格”兩個(gè)方面,同樣也有正向和負(fù)向兩個(gè)不同的方面極性。早期的方面情感分析為自定義規(guī)則方法或構(gòu)建情感詞典結(jié)合支持向量機(jī)來(lái)實(shí)現(xiàn)[3-4]。這種方法嚴(yán)重依賴領(lǐng)域?qū)<?,費(fèi)時(shí)費(fèi)力,且只在所構(gòu)建的專業(yè)領(lǐng)域有效,泛化能力和魯棒性都比較弱。近年來(lái),隨著機(jī)器學(xué)習(xí)特別是深度學(xué)習(xí)[5-6]的快速發(fā)展,深度學(xué)習(xí)方法逐漸應(yīng)用在情感分析領(lǐng)域,并取得了顯著的成果。Kim[7]采用類似多元語(yǔ)法的方法提取多個(gè)卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)特征進(jìn)行拼接,得到多個(gè)文本局部特征,從而增強(qiáng)了模型的特征感知能力。Johnson 等[8]用類似圖像卷積的思路設(shè)計(jì)了一種高維度文本卷積方法,使用深層次卷積方法將文本詞向量與遠(yuǎn)距離單詞進(jìn)行交互,在情感分析任務(wù)上取得了不錯(cuò)的結(jié)果。Wang 等[9]提出一種結(jié)合注意力機(jī)制的LSTM(Long Short-Term Memory)網(wǎng)絡(luò)結(jié)構(gòu),利用方面嵌入注意力機(jī)制分別關(guān)注句子中的不同部分。結(jié)果表明,注意力機(jī)制能夠顯著提升方面情感分析模型的性能。在此基礎(chǔ)之上,Ma 等人[10]提出了一種細(xì)粒度交互式注意力網(wǎng)絡(luò)(Interactive Attention Networks,IAN),他們認(rèn)為目標(biāo)方面與文本應(yīng)該具有交互性,而以往模型將二者分開(kāi)建模。該網(wǎng)絡(luò)使用兩個(gè)LSTM 網(wǎng)絡(luò)分別對(duì)句子和方面信息進(jìn)行建模,經(jīng)過(guò)池化層來(lái)獲取方面信息的注意力,利用注意力完成句子和方面信息的交互操作。然而,上述模型由于缺乏海量訓(xùn)練數(shù)據(jù),雖然取得了一定的成績(jī),但卻缺乏基本的語(yǔ)法邏輯。
預(yù)訓(xùn)練模型解決了語(yǔ)法邏輯問(wèn)題[11-13]。預(yù)訓(xùn)練任務(wù)可以通過(guò)自監(jiān)督學(xué)習(xí)從大規(guī)模數(shù)據(jù)中獲得與具體任務(wù)無(wú)關(guān)的預(yù)訓(xùn)練模型,從而得到某個(gè)詞在特定上下文中的語(yǔ)義表征。在此基礎(chǔ)之上,Sun 等[14]通過(guò)構(gòu)造輔助句的方式融合文本與方面信息,利用自注意力獲取方面信息。Xu 等[15]提出了一種基于BERT(Bidirectional Encoder Representations from Transformers)[13]的后訓(xùn)練方法,將閱讀理解技術(shù)用于網(wǎng)絡(luò)評(píng)論分類,利用領(lǐng)域知識(shí)來(lái)提高相關(guān)任務(wù)目標(biāo)方面的注意力權(quán)重。Liu 等[16]提出的MT-DNN(Multi-Task Deep Neural Networks)模型將多任務(wù)學(xué)習(xí)與預(yù)訓(xùn)練任務(wù)結(jié)合起來(lái),利用關(guān)聯(lián)任務(wù)有標(biāo)簽的數(shù)據(jù)協(xié)助訓(xùn)練,通過(guò)外部數(shù)據(jù)來(lái)外加注意力層,利用兩種數(shù)據(jù)進(jìn)行互補(bǔ),表現(xiàn)出更好的遷移效果。Gao等[17]抽取特定位置編碼來(lái)提升方面信息注意力,將評(píng)論句作為第二句加入BERT,用類似閱讀理解的方法增強(qiáng)方面信息注意力。Song 等[18]認(rèn)為以往的BERT 結(jié)構(gòu)沒(méi)有利用中間層編碼信息,丟失了大量語(yǔ)義知識(shí),他們將BERT中間層表征向量線性組合起來(lái),在內(nèi)部每一層都用自注意力機(jī)制來(lái)獲取文本權(quán)重,最后使用LSTM來(lái)整合BERT內(nèi)部隱藏層表征向量,在方面級(jí)情感分析任務(wù)中取得了很好的效果。
受以上方法啟發(fā),本文基于BERT提出一種融合多層注意力的方面級(jí)情感分析模型(BERT and Multi-Layer Attention,BMLA)。首先將句子信息和方面信息構(gòu)造為句子對(duì)的形式輸入BERT,將編碼后的方面信息與BERT 隱藏層表征向量融合,設(shè)計(jì)了多層方面注意力,然后將多層方面注意力與編碼輸出文本進(jìn)行級(jí)聯(lián),補(bǔ)全文本原始特征,最后通過(guò)卷積神經(jīng)網(wǎng)絡(luò)增強(qiáng)句子與方面詞之間的長(zhǎng)依賴關(guān)系。通過(guò)提高方面詞與上下文間的交互,增強(qiáng)了情感文本對(duì)方面信息的感知力,從而使模型達(dá)到了更好的分類性能。
本文通過(guò)提取BERT隱藏層多層注意力進(jìn)行融合,并與上下文進(jìn)行交互,更深層地挖掘目標(biāo)情感極性與方面詞之間的聯(lián)系。BMLA模型由網(wǎng)絡(luò)輸入層、多層注意力層和輸出層三部分構(gòu)成,總體結(jié)構(gòu)如圖1所示。
圖1 BMLA模型整體框架Fig.1 Overall framework of BMLA model
輸入層的主要任務(wù)是將語(yǔ)言文字映射為低維字向量,本文使用預(yù)先訓(xùn)練好的BERT 來(lái)獲得字嵌入矩陣。BERT的輸入方式可以為單個(gè)句子或句子對(duì)。受Sun等人[14]啟發(fā),文章通過(guò)構(gòu)造輔助句子的方式將方面詞與原始句子合并為句子對(duì)輸入BERT,輸入方式為:
其中,Sentence為帶有情感傾向的文本語(yǔ)句,Aspect為方面信息。
注意力機(jī)制本質(zhì)是一種資源分配的機(jī)制,分配的過(guò)程體現(xiàn)在權(quán)重系數(shù)的計(jì)算上,即權(quán)重代表了信息的重要性。在本文模型中,當(dāng)句子經(jīng)過(guò)BERT 自注意力層[12-13]編碼后,每個(gè)隱層張量都含有對(duì)其他所有單元的注意力權(quán)值。以往的方法[14-17]都是單一地提取表征向量,這樣做只考慮了額外增加的標(biāo)志位對(duì)全文本的注意力,忽略了方面詞對(duì)應(yīng)的隱層張量對(duì)整個(gè)句子本身所具有的依賴關(guān)系。基于此,本文設(shè)計(jì)了一種多層方面注意力網(wǎng)絡(luò),以解決方面注意力不足的問(wèn)題。
1.2.1 方面注意力網(wǎng)絡(luò)
方面注意力網(wǎng)絡(luò)提取隱藏層表征向量與方面信息融合,增強(qiáng)方面信息的權(quán)重,以此來(lái)提升模型的抗干擾能力。與文獻(xiàn)[18]相似,為了更有效地利用中間層的語(yǔ)義信息,將一個(gè)句子分為三部分,狀態(tài)位部分、句子部分和方面詞部分。將文本與預(yù)定義的方面類別聯(lián)合輸入預(yù)訓(xùn)練模型,經(jīng)雙向Transformer[12]轉(zhuǎn)換得句子表征向量、句子編碼與方面信息編碼,表征向量[CLS]位是為了方便分類任務(wù)額外添加的標(biāo)志位,以[CLS]作為分類向量屬于從外部視角看待整個(gè)句子。如“路人”看待“我在這家飯店吃飯”并評(píng)論“位置不好但飯菜可口”,隨后根據(jù)方面詞“地理位置”來(lái)判斷極性“不好”。然而,將方面詞和句子作為句子對(duì)輸入模型,可以直接從方面詞“地理位置”來(lái)判斷情感為“不好”而非“可口”。因此從方面詞的視角來(lái)計(jì)算整體文本的情感極性是有必要的。方面注意力權(quán)重以預(yù)訓(xùn)練模型為基礎(chǔ),將BERT隱藏層方面詞編碼表征向量融合,再經(jīng)過(guò)LSTM層增強(qiáng)表征向量與方面向量之前的前后關(guān)系,可提高方面信息注意力權(quán)重。方面注意力網(wǎng)絡(luò)如圖2所示。
圖2 方面注意力網(wǎng)絡(luò)Fig.2 Aspect attention network
注意力層采用雙向自注意力機(jī)制,計(jì)算公式如下:
其中,Q、K、V為輸入單詞詞嵌入矩陣經(jīng)過(guò)線性變換所得,dk是Q、K矩陣的向量維度,為防止QKT內(nèi)積過(guò)大,加入放縮因子dk,從而使得訓(xùn)練過(guò)程中梯度值保持穩(wěn)定。
假設(shè)語(yǔ)義輸入層為T(mén)={t1,t1,…,tn},BERT 內(nèi)部結(jié)構(gòu)為l為內(nèi)部隱藏層的層數(shù),則第l層的隱層張量可表示為。將表征向量與方面注意力融合,一個(gè)注意力單元可整合為:
BERT 模型所有隱藏層都含有語(yǔ)義信息,每一層都在上一層的基礎(chǔ)上經(jīng)過(guò)雙向自注意力計(jì)算,因此更靠后的隱藏層含有更加深層次的注意力權(quán)重。為了簡(jiǎn)化計(jì)算參數(shù),提高計(jì)算效率,本文只取最后三層的方面注意力張量,然后經(jīng)過(guò)LSTM 網(wǎng)絡(luò)進(jìn)行融合,在不丟失信息的情況下提高方面特征注意力。計(jì)算過(guò)程如下:
其中,lout表示經(jīng)過(guò)1層LSTM池化層后的結(jié)果,L表示隱藏層最后一層,I3表示后三層經(jīng)過(guò)LSTM的結(jié)果。
1.2.2 全局注意力網(wǎng)絡(luò)
上述網(wǎng)絡(luò)強(qiáng)化了方面注意力權(quán)重信息,為了更好地捕獲方面信息與句子間的長(zhǎng)依賴關(guān)系,還要將方面信息與全局信息進(jìn)行融合,并通過(guò)深度卷積網(wǎng)絡(luò)獲取方面詞與長(zhǎng)距離情感文本關(guān)聯(lián)。卷積操作可表示為:
其中,x為輸入文本長(zhǎng)度,q、p為卷積核的大小,w為卷積核權(quán)重,v為卷積滑塊對(duì)應(yīng)文本當(dāng)前位置的值,使用ReLU函數(shù)激活。將方面注意力層與輸出層Pout拼接:
將BERT輸出層與方面注意力層級(jí)聯(lián),使用雙層堆疊式等長(zhǎng)卷積對(duì)級(jí)聯(lián)結(jié)果進(jìn)行卷積,卷積核大小為[3×1],卷積核數(shù)量為250。為保證卷積前后等長(zhǎng),每次卷積之后使用“0”在文本左右進(jìn)行PAD 填充,然后使用ReLU函數(shù)進(jìn)行激活,卷積堆疊兩次用以提高每個(gè)詞位的詞嵌入感知大小。
經(jīng)過(guò)上述卷積后,再與max pooling 負(fù)采樣進(jìn)行合并形成一個(gè)堆疊block。max pooling 的步長(zhǎng)為2,每次負(fù)采樣文本長(zhǎng)度減半,因此簡(jiǎn)稱1/2 池化層。單個(gè)文本每經(jīng)過(guò)一個(gè)1/2 池化層,其能感知到的文本片段就比之前長(zhǎng)了一倍。堆疊block感知野如圖3所示。
圖3 卷積層和池化層堆疊blockFig.3 Convolutional layer and pooling layer stacking blocks
輸入序列的長(zhǎng)度會(huì)隨著block數(shù)量的增加呈指數(shù)級(jí)減少,導(dǎo)致序列長(zhǎng)度隨著網(wǎng)絡(luò)加深呈現(xiàn)金字塔(Pyramid)[19]形狀。每一次堆疊加深一次深度,形成深層次循環(huán)卷積網(wǎng)絡(luò),不斷擴(kuò)大感知野,從而捕獲方面信息與句子間的長(zhǎng)依賴關(guān)系。
深度卷積網(wǎng)絡(luò)會(huì)產(chǎn)生梯度彌散問(wèn)題,為解決此問(wèn)題,將block堆疊后的數(shù)據(jù)與max pooling負(fù)采樣殘差組合[20],再將未經(jīng)過(guò)卷積層的無(wú)損數(shù)據(jù)傳遞至網(wǎng)絡(luò)前端,可有效緩解梯度消失問(wèn)題。將卷積和殘差鏈接過(guò)程循環(huán)往復(fù),可以增強(qiáng)方面信息對(duì)上下文的感知注意力,整個(gè)過(guò)程可表示為:
其中,P表示池化結(jié)果,Sout表示卷積結(jié)果。將上述過(guò)程交替循環(huán)直至語(yǔ)義維度整合為1,最終得到的Sout可用作情感分類。
在經(jīng)過(guò)注意力網(wǎng)絡(luò)之后,將最終輸出送入一個(gè)全連接層,通過(guò)softmax 分類器獲得待分類樣本在每個(gè)方面情感極性的概率p,并預(yù)測(cè)該方面的情感極性,計(jì)算過(guò)程如下:
其中,Wc和bc為訓(xùn)練的權(quán)重和偏差。模型通過(guò)最小化交叉熵來(lái)進(jìn)行訓(xùn)練,損失函數(shù)loss如下:
其中,C為分類類別,y為真實(shí)標(biāo)簽。
為了驗(yàn)證本文模型的情感分類效果,在公開(kāi)數(shù)據(jù)集SemEval2014 Task4[21]和AI Challenger 2018[22]上進(jìn)行對(duì)照實(shí)驗(yàn)。SemEval2014 Task4數(shù)據(jù)集包含兩個(gè)子數(shù)據(jù)集,一個(gè)為筆記本電腦評(píng)論,另一個(gè)為餐館評(píng)論。每條數(shù)據(jù)都由評(píng)論語(yǔ)句、目標(biāo)方面、方面極性組成,句子最大長(zhǎng)度不超過(guò)100,情感極性分為樂(lè)觀、中立、消極。數(shù)據(jù)集統(tǒng)計(jì)信息如表1所示。
表1 SemEval2014 Task4數(shù)據(jù)集Table 1 SemEval2014 Task4 database
AI Challenger 2018為細(xì)粒度用戶評(píng)論情感分析數(shù)據(jù)集,共包含6 大類20 個(gè)細(xì)粒度要素的情感傾向,每個(gè)細(xì)粒度要素的情感傾向有4 種狀態(tài):正向、中性、負(fù)向、未提及。使用[1,0,-1,-2]4 個(gè)值對(duì)情感傾向進(jìn)行描述。訓(xùn)練集共10.5 萬(wàn)個(gè)句子,每個(gè)句子20 個(gè)細(xì)粒度情感,共201 萬(wàn)個(gè)標(biāo)簽,測(cè)試集共1.5 萬(wàn)個(gè)句子,每個(gè)句子20 個(gè)細(xì)粒度情感,共30 萬(wàn)個(gè)標(biāo)簽。數(shù)據(jù)集統(tǒng)計(jì)信息如表2所示。
表2 AI Challenger 2018數(shù)據(jù)集Table 2 AI Challenger 2018 database
為了更好地學(xué)習(xí)兩個(gè)領(lǐng)域數(shù)據(jù)集,需要分別對(duì)兩個(gè)數(shù)據(jù)集進(jìn)行參數(shù)預(yù)設(shè)。實(shí)驗(yàn)操作系統(tǒng)是centOS7,配備Tesla V100 32 GB 顯卡,開(kāi)發(fā)環(huán)境是python3.6 和pytorch1.7.0。其中SemEval2014 Task4 中的Restaurant與Laptop數(shù)據(jù)集因?yàn)閿?shù)據(jù)類型相似,所以參數(shù)一致,這里用SemEval2014 Task4統(tǒng)一表示。實(shí)驗(yàn)配置如表3所示。
表3 實(shí)驗(yàn)配置Table 3 Experimental configuration
為了評(píng)估模型的性能,本文列舉了其他研究的方面情感分析模型與之進(jìn)行對(duì)比。度量指標(biāo)統(tǒng)一使用準(zhǔn)確率(ACC)和Macro-F1,在數(shù)據(jù)樣本不均衡時(shí),F(xiàn)1指標(biāo)具有更好的評(píng)估性能。
DPCNN[8]:深層金字塔卷積網(wǎng)絡(luò)。使用多個(gè)固定位置的卷積核分層提取文本所有鄰接詞的語(yǔ)義特征,并隨著網(wǎng)絡(luò)的加深不斷跳向更高層的語(yǔ)義空間,最后經(jīng)過(guò)線性變換來(lái)獲取目標(biāo)情感極性。
ATAE-LSTM[9]:基于注意力的LSTM。它將給定的Aspect嵌入與每個(gè)單詞嵌入一起作為L(zhǎng)STM的輸入,并在LSTM層上有一個(gè)注意層,利用注意力對(duì)模型結(jié)果進(jìn)行加權(quán)分配,提高模型對(duì)方面詞的權(quán)重。
IAN[10]:模型在LSTM 結(jié)果上交互式學(xué)習(xí)方面詞與文本內(nèi)容,得到結(jié)果與注意力結(jié)合輸入線性層獲得預(yù)測(cè)結(jié)果。
BERT-pair[14]:通過(guò)構(gòu)造輔助句的方式,將文本和方面詞以句子對(duì)的形式輸入BERT,再經(jīng)過(guò)softmax函數(shù)將單一向量轉(zhuǎn)為預(yù)測(cè)結(jié)果。
BERT-TextCNN[7,14]:在文本經(jīng)BERT 編碼之后,利用多尺寸卷積濾波器對(duì)文本片段進(jìn)行卷積操作,最后將詞嵌入結(jié)果輸入線性層進(jìn)行分類得到文本情感極性。
BERT-LSTM[18]:利用BERT內(nèi)部所有的中間隱層的表征向量,將其輸入LSTM,增加了文本信息的利用深度,最終結(jié)果輸入全連接層獲取分類信息。
在SemEval2014 Task4 數(shù)據(jù)集上各模型實(shí)驗(yàn)結(jié)果如表4所示。
表4 SemEval2014 Task4上各模型實(shí)驗(yàn)結(jié)果Table 4 Experimental results of each model on SemEval2014 Task4 %
表4展示了BMLA模型在SemEval2014 Task4數(shù)據(jù)集兩個(gè)領(lǐng)域上與其他基準(zhǔn)模型的準(zhǔn)確率與F1-score 比較。實(shí)驗(yàn)結(jié)果證明,BERT-MLA取得了比其他模型更好的分類效果,其Laptop和Restaurant數(shù)據(jù)集F1值分別為71.50%和74.91%,比BERT-LSTM模型提升了2.13個(gè)百分點(diǎn)和2.39個(gè)百分點(diǎn),驗(yàn)證了本文提出方法的有效性。
在AI Challenge 2018數(shù)據(jù)集上各模型實(shí)驗(yàn)結(jié)果如表5所示。
表5 AI Challenger 2018上各模型實(shí)驗(yàn)結(jié)果Table 5 Experimental results of each model on AI Challenger 2018 %
從表5可以看出,BMLA模型在AI Challenge 2018數(shù)據(jù)集上的準(zhǔn)確率和F1值分別為87.42%和77.65%,相比于BERT-LSTM模型,無(wú)論是準(zhǔn)確度還是F1指數(shù)都有所提升。其他模型由于對(duì)方面詞本身的注意力不足,當(dāng)句子出現(xiàn)多個(gè)方面極性時(shí),會(huì)對(duì)當(dāng)前所研究方面產(chǎn)生干擾,從而導(dǎo)致分類效果并不理想。相比之下,本文融合了多層注意力網(wǎng)絡(luò)來(lái)增強(qiáng)方面信息權(quán)重,提高了模型的抗干擾能力,因此,實(shí)驗(yàn)結(jié)果表現(xiàn)出更好的分類效果。
本文提出了一種融合多層方面注意力的方面級(jí)情感分析模型。該網(wǎng)絡(luò)的核心思想是提高方面注意力權(quán)重以增強(qiáng)方面信息與方面情感文本的交互。對(duì)于擁有多個(gè)方面詞的文本來(lái)說(shuō),每個(gè)方面極性都可能會(huì)對(duì)所研究方面產(chǎn)生干擾,本文模型更深層地挖掘了方面詞和文本之間的語(yǔ)義關(guān)系,同時(shí)將方面融合結(jié)果與上下文進(jìn)行交互,增強(qiáng)了情感文本與方面類別之間的關(guān)聯(lián),提高了模型的抗干擾能力。不同數(shù)據(jù)集對(duì)比實(shí)驗(yàn)表明,本文模型擁有比其他模型更好的性能。但目前方面情感分類研究都是基于顯性方面的情感分析,而真實(shí)情況可能需要檢測(cè)隱性方面的情緒,因此如何將領(lǐng)域知識(shí)與方面情感任務(wù)結(jié)合是未來(lái)的研究方向。