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