陳 珂,周浩軒,王國權(quán)
(1.廣東石油化工學(xué)院 計算機(jī)學(xué)院,廣東 茂名 525000;2.東莞長城開發(fā)科技有限公司,廣東 東莞 523000)
立場分析用于挖掘文本對特定話題、對象的支持、反對、中立立場,它和情感分析有相似的地方。但是由于人們有時會采用反諷、對比等修辭手法來表達(dá)觀點,正、負(fù)面情感文本有可能表達(dá)同一種立場,而現(xiàn)行的情感分析方法采用機(jī)器學(xué)習(xí)的特征詞提取方法進(jìn)行識別,在針對隱晦和不敏感文本無法準(zhǔn)確進(jìn)行識別。由此,該文提出一種基于深度學(xué)習(xí)的立場分析方法。
立場分析通常采用預(yù)訓(xùn)練來解決數(shù)據(jù)匱乏的問題。在針對SemEval-2016任務(wù)6中,Augenstein[1]采用skip-gram和LSTM(BiLSTM)分析推特立場,所得的F1值為58%。Zarrella[2]使用了skip-gram結(jié)合RNN模型,平均F1值為67.8%。周艷芳[3]在針對NLPCC-2016任務(wù)4中提出基于遷移學(xué)習(xí)的字、詞特征混合立場分析方法,F1值達(dá)到72.2%。胡瑞雪[4]提出基于BERT-LSTMCNN的立場分析方法,所得F1值可達(dá)87%。
受到胡瑞雪[4]的BERT-LSTMCNN模型啟發(fā),該文對LSTM和CNN部分采用并行輸入輸出,提高立場分析的準(zhǔn)確率,同時采用了多模型對比實驗方法驗證該模型的高效性。
深度學(xué)習(xí)方法的特點在于提取特征上實現(xiàn)自動化[5],在許多領(lǐng)域取得了較好的效果,文本立場分析任務(wù)上也涌現(xiàn)出越來越多的深度學(xué)習(xí)方法。
在卷積神經(jīng)網(wǎng)絡(luò)的立場分析方法上,Yuki等人[6]采用CNN模型通過自動檢測主題詞和有效詞來檢測立場。Wei等人[7]通過建立一個二分類的訓(xùn)練數(shù)據(jù)集,然后修改歸一化層來執(zhí)行三分類檢測Twitter文本立場。Yaakov等人[8]則是提出了基于有限數(shù)量特征的立場分類任務(wù)實現(xiàn)。
在長短時記憶神經(jīng)網(wǎng)絡(luò)的立場分析方法上,岳重陽[9]提出了基于注意力的雙向長短時神經(jīng)網(wǎng)絡(luò)。Kuntal等人[10]提出了一種基于LSTM的兩階段模型T-PAN。
王安君等人[11]在基于深度學(xué)習(xí)的分類框架上,為了將話題信息結(jié)合進(jìn)來,提出了BERT-Condition-CNN模型。Sun等人[12]提出使用一個共享的長短時記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)層來學(xué)習(xí)立場和情感信息之間的深層共享表示,然后將共享的表示信息進(jìn)行疊加,將情感檢測的隱含層輸出作為立場分析的附加輸入進(jìn)行聯(lián)合學(xué)習(xí),利用情感信息來促進(jìn)立場分析的效果。
在針對NLPCC2016立場分析任務(wù)上,受到胡瑞雪[4]模型的啟發(fā),該文提出了基于BERT-LSTMCNN的并行輸入輸出模型。通過BERT語言預(yù)訓(xùn)練模型對輸入的字建模,生成詞嵌入向量,再分別輸入LSTM和CNN網(wǎng)絡(luò),得到全局特征向量和局部特征向量,然后將其拼接,最后使用softmax函數(shù)進(jìn)行分類。模型架構(gòu)如圖1所示。
圖1 BERT-并行LSTMCNN網(wǎng)絡(luò)模型
BERT的核心是雙向的Transformer模型,具有可變數(shù)量的編碼層和自注意力模型。當(dāng)BERT模型進(jìn)行預(yù)訓(xùn)練形成語言表示模型后,只需對模型進(jìn)行遷移學(xué)習(xí)網(wǎng)絡(luò)訓(xùn)練,即可應(yīng)用于下游特定性語言處理任務(wù),對于字級、句級、句子對級的自然語言處理任務(wù)均使用。
模型在輸入層采用多層相加輸入的方式,其中就有Token嵌入層、Segment嵌入層和Position嵌入層[13]。Token嵌入層是為了將字詞映射為實際有值的向量;Segment嵌入層采用將實際值賦值給第一個句子中所有的字詞,另一個實際值則賦值給了第二個句子中所有字詞,目的是為了形成句子對;Position嵌入層會將字詞中兩個句子的中間位置變?yōu)槲恢孟蛄?以便后續(xù)更好地進(jìn)行運算。
預(yù)訓(xùn)練主要有兩個任務(wù),分別是掩碼語言模型(MLM)和下一句預(yù)測(NSP)。MLM任務(wù)使用了Mask(面具)對15%已分類的單詞進(jìn)行屏蔽,然后通過BERT模型進(jìn)行預(yù)測,并且在最終的損失函數(shù)計算被遮蓋住的標(biāo)記。該任務(wù)的目的是關(guān)注預(yù)料集中的每個詞語,從而得到更準(zhǔn)確的上下文語義信息。
NSP的目的是讓模型理解句子間的關(guān)聯(lián)性,可在任何一個級別語料庫進(jìn)行訓(xùn)練,對句子對A和B,B有一半的概率是緊隨A的實際下一句(IsNext),另一半概率則是語料庫中的隨機(jī)句子(NotNext)。將這個句子對拼接時在句首添加標(biāo)識[CLS],A、B間則用標(biāo)識[SEP]分隔開,并對[CLS]做二分類任務(wù)。
LSTM模型是通過在RNN模型的隱藏層中加入了細(xì)胞記憶單元結(jié)構(gòu),進(jìn)一步使得LSTM模型具有學(xué)習(xí)到長期以來信息的能力,用于全局信息的提取;CNN作為一種前饋神經(jīng)網(wǎng)絡(luò)模型,采用了使卷積層和池化層交替堆疊的方式實現(xiàn)卷積的功能,其核心在于卷積層對于數(shù)據(jù)局部特征的提取[14]。
在LSTM和CNN的特征提取層中,令得到的向量H分別輸入到LSTM和CNN神經(jīng)網(wǎng)絡(luò)中,在LSTM網(wǎng)絡(luò)之后接入一個激活層,在得到激活層輸出的最后一個狀態(tài)時可以輸出得到向量yLSTM。在CNN中,是由一個卷積層、一個激活層和一個最大池化層組成,再對CNN網(wǎng)絡(luò)進(jìn)行多卷積核的輸出進(jìn)一步合并處理得到y(tǒng)CNN。
將LSTM與CNN融合使用可以同時利用LSTM提取全局特征與CNN識別局部特征的能力。Pedro M.Sosa[15]在對推特文本立場分析實驗中,發(fā)現(xiàn)使用CNN-LSTM模型時,比CNN模型提高3%,而針對LSTM模型,則是降低了3.5%。在另外一組實驗中,使用LSTM-CNN模型比使用CNN模型的對照組提高8.5%,和LSTM模型相比,則提高2.7%,CNN和CNNLSTM模型性能表現(xiàn)差且需要更多的輪數(shù)(EPOCH)去提升模型效能以及減少過擬合。
所以,在該實驗的基礎(chǔ)上,該文采用并行的LSTMCNN結(jié)構(gòu),同時利用LSTM提取全局的文本特征和CNN網(wǎng)絡(luò)挖掘文本局部關(guān)聯(lián)性的能力,以達(dá)到優(yōu)良的輸出效果。
大量的研究數(shù)據(jù)表明,數(shù)據(jù)預(yù)處理對于分類是否高效起著決定性的作用,訓(xùn)練模型的魯棒性也會因數(shù)據(jù)預(yù)處理而產(chǎn)生相應(yīng)改變,分類結(jié)果準(zhǔn)確性也會因此改變[16]。
在數(shù)據(jù)預(yù)處理方面,首先是標(biāo)注文本立場,針對小規(guī)模樣本,采用的訓(xùn)練集、測試集和驗證集的最佳比例標(biāo)準(zhǔn)為0.6∶0.2∶0.2,采用jieba庫進(jìn)行分詞,并對停止詞、低頻詞以及非正式文本進(jìn)行刪除,減少噪聲干擾,以達(dá)到簡化操作的效果。
最優(yōu)字個數(shù)維度算法目的在于計算BERT模型的最優(yōu)輸入序列長度,以緩解文本數(shù)據(jù)稀疏造成誤差的問題。
在最優(yōu)字個數(shù)維度判定算法中,中文文本總是以正整數(shù)的方式出現(xiàn),在維度上也是有限的,而變量的取值為離散型的自然數(shù),公式如式(1)和式(2)所示。
(MIN(ls)≤g≤MAX(ls))
(1)
(MIN(lt)≤k≤MAX(lt))
(2)
式中,文本長度的分布概率記為P(LS),話題長度分布概率記為P(LT)。對此定義lsnumg為文本條數(shù),數(shù)據(jù)集總條數(shù)為lds,所取比值即為文本長度分布概率,在表示范圍中,MIN(ls)為最小文本長度,MAX(ls)為最大文本長度,長度分布概率同上。
相對的,文本長度概率函數(shù)F(LS)和話題長度概率函數(shù)F(LT)公式如下:
(3)
(4)
式(3)表示當(dāng)前文本長度取(lsa,lsb]時的概率,所計算出的概率是關(guān)于話題長度的函數(shù),稱為分布函數(shù);式(4)則表示話題長度取(lta,ltb]時的概率[17]。
實驗采用了NLPCC2016的中文微博文本立場檢測任務(wù)的數(shù)據(jù)集。所用到的微博話題如表1所示,所取字?jǐn)?shù)均值為5到8,所取數(shù)據(jù)集標(biāo)注方式和開源數(shù)據(jù)集均相同,評論文本采集于新浪微博,總計訓(xùn)練集數(shù)據(jù)為3 000條,驗證集與測試集分別為1 000條。
表1 話題數(shù)據(jù)集統(tǒng)計數(shù)據(jù)
可以看出,所取得的五個話題的數(shù)據(jù)體現(xiàn)了開源數(shù)據(jù)集的相關(guān)特性,并且在數(shù)據(jù)中不僅僅有鮮明的表達(dá)立場的評論,也存在隱晦或未直接表達(dá)的評論[18]。
為了對比本次實驗中所提模型的性能,設(shè)立對照實驗組,分別設(shè)計以下模型:
(1)CNN模型:輸入層128維,學(xué)習(xí)率1e-5,丟棄率為0.5,批處理參數(shù)(batch_size)為32,輪數(shù)(EPOCH)為10。
(2)LSTM模型:隱藏層為128維,其余參數(shù)設(shè)置同上。
(3)LSTMCNN模型:先接入LSTM進(jìn)行全局特征提取,再將結(jié)果接入CNN進(jìn)行局部特征提取,參數(shù)設(shè)置同上。
(4)CNNLSTM模型:先接入CNN進(jìn)行局部特征提取,再將結(jié)果接入LSTM進(jìn)行全局特征提取,參數(shù)設(shè)置同上。
(5)BERT預(yù)訓(xùn)練+LSTMCNN神經(jīng)網(wǎng)絡(luò):采用BERT-Base,Chinese語言模型,批處理參數(shù)(batch_size)設(shè)置為32,Token序列的最大長度為128,輪數(shù)(EPOCH)為10。
本次實驗中,評價模型的性能指標(biāo)如下:
(1)準(zhǔn)確率:
(5)
其中,TP表示正例,FP表示偽正例,準(zhǔn)確率表示預(yù)測正例中真正正例的比例。
(2)召回率:
(6)
其中,TP表示正例,FN表示偽反例,召回率表示預(yù)測正例占全部正樣本的比例。
(3)F1-評測值:
(7)
本次實驗的系統(tǒng)環(huán)境是Windows10,編程語言為python3.6,采用了谷歌發(fā)布的BERT中文預(yù)訓(xùn)練模型“BERT-Base,Chinese”,CPU為Intel(R)Core(TM)i7-10875H,GPU為GeForce GTX 1070,實驗平臺Keras版本為2.6.0,TensorFlow版本為2.6.2。
對上述話題和文本數(shù)據(jù)進(jìn)行最優(yōu)字個數(shù)維度判定算法處理,對5個目標(biāo)話題和對應(yīng)文本進(jìn)行計算,分別提取出話題長度、話題最優(yōu)長度、評論文本最長長度和評論文本的最優(yōu)長度,得出的結(jié)果如表2所示。
表2 話題和文本的字維度大小
由表2可以得知,當(dāng)目標(biāo)話題字維度和評論文本字維度均取到2的n次方倍時,所得數(shù)據(jù)有且可為最佳,因此,在BERT預(yù)訓(xùn)練過程中,輸入作為2的n次方倍時,進(jìn)一步處理及計算特征表征時,效果較為優(yōu)秀,同時對后續(xù)準(zhǔn)確率提升較為顯著[19]。
使用BERT+全連接神經(jīng)網(wǎng)絡(luò)驗證字維度大小對立場檢測的影響。在文中分別對不同話題進(jìn)行分析,在特征表征上選取原始BERT預(yù)訓(xùn)練語言模型訓(xùn)練。特征抽取上,選擇全連接層進(jìn)行提取,實驗方面,分別對五個話題和相關(guān)評論進(jìn)行訓(xùn)練,結(jié)果如表3、圖2所示,評價指標(biāo)為式(7)中的F1(Avg)。
表3 字個數(shù)維度不同時對立場檢測的影響
圖2 字個數(shù)維度不同時對立場檢測的影響
如表3所示,當(dāng)目標(biāo)話題和評論文本字個數(shù)維度均取最佳時[20],F1值約比其他情況高3%, 同時,當(dāng)目標(biāo)話題文本字個數(shù)維度取到4時,可以得到最佳性能。
Tbestlen,Sbestlen表示目標(biāo)話題的最優(yōu)字個數(shù)維度和微博文本最優(yōu)字個數(shù)維度的組合,當(dāng)話題和文本都是最佳字?jǐn)?shù)時效果最佳。
使用提出的實驗?zāi)P蛯υ掝}文本都使用最優(yōu)字個數(shù)進(jìn)行立場分析,首先對不使用BERT模型進(jìn)行預(yù)訓(xùn)練的相關(guān)神經(jīng)網(wǎng)絡(luò)模型進(jìn)行實驗,驗證CNN、LSTM、CNNLSTM、LSTMCNN模型的F1值與EPOCH輪數(shù)分析圖,如圖3所示,數(shù)據(jù)如表4所示。
表4 CNN、LSTM、CNNLSTM、LSTMCNN模型的F1值數(shù)據(jù)
圖3 部分實驗?zāi)P偷腇1值
由圖3可以看出,在CNN、LSTM、CNNLSTM、LSTMCNN模型中,所得結(jié)果的帶“*”曲線始終領(lǐng)先,故在該次實驗中,可以證明LSTMCNN領(lǐng)先于其他三個模型。
其次,在不使用BERT模型進(jìn)行預(yù)訓(xùn)練下即對表4中的最優(yōu)模型和所提模型進(jìn)行分析,驗證LSTMCNN、BERT-LSTMCNN模型的F1值與EPOCH輪數(shù)分析圖,如圖4所示,數(shù)據(jù)如表5所示。
表5 LSTMCNN、BERT-LSTMCNN模型的F1值數(shù)據(jù)
圖4 LSTMCNN、BERT-LSTMCNN模型的F1
在LSTMCNN和BERT-LSTMCNN圖表中可以看出,經(jīng)過BERT預(yù)訓(xùn)練后對該數(shù)據(jù)集的立場檢測任務(wù)有明顯的提高,平均相對沒有經(jīng)過BERT預(yù)訓(xùn)練的LSTMCNN神經(jīng)網(wǎng)絡(luò)模型提高約8%。
在采用了BERT模型進(jìn)行預(yù)訓(xùn)練后,相對于普通模型,BERT模型在學(xué)習(xí)率的提升上較為顯著,該模型所具備的“微調(diào)”的優(yōu)勢相對更為顯著[21],對自我的輸出及后接模型的自我學(xué)習(xí)機(jī)制有較大的提升,接下來將用實驗結(jié)果來進(jìn)一步闡述,所得數(shù)據(jù)如表6所示。
表6 實驗結(jié)果
從表6中分析可知,當(dāng)同等參數(shù)設(shè)置下,BERT-LSTMCNN模型性能是最佳的,所得F1值約為88.3%。由實驗數(shù)據(jù)可以看出,結(jié)合LSTM和CNN模型均能提升模型性能,其中,LSTMCNN優(yōu)于CNNLSTM,并且,加入BERT模型進(jìn)行預(yù)訓(xùn)練對F1值提高較為顯著,提升約7%。
同時,對比現(xiàn)有模型,所提模型相對周艷芳[3]所提出的基于遷移學(xué)習(xí)的字、詞特征混合立場分析方法,F1值高出約16%,相對胡瑞雪[4]提出的基于BERT與串行LSTMCNN模型的立場分析方法,F1值高出約1%,因此,所提模型具有更優(yōu)越的性能。
立場分析作為情感分析領(lǐng)域的一個新興方向,在文本分類任務(wù)中,主要做自動分析在線評論對于目標(biāo)話題支持與否的態(tài)度。該文結(jié)合了微博文本立場分析任務(wù),通過利用相關(guān)算法及建立相關(guān)模型進(jìn)行了詳細(xì)的研究工作。
在實驗中可以得出結(jié)論,當(dāng)目標(biāo)話題最優(yōu)字?jǐn)?shù)維度和文本最優(yōu)字?jǐn)?shù)維度相結(jié)合時,對于后續(xù)的預(yù)訓(xùn)練有顯著的提高效果;使用BERT預(yù)訓(xùn)練模型及并行輸入輸出的記憶卷積網(wǎng)絡(luò),相對于其他模型有更好的效能。