滕金保,孔韋韋,田喬鑫,王照乾,李 龍
1.西安郵電大學(xué),西安 710121
2.桂林電子科技大學(xué),廣西 桂林 541004
3.陜西省網(wǎng)絡(luò)數(shù)據(jù)分析與智能處理重點(diǎn)實(shí)驗(yàn)室,西安 710121
4.廣西可信軟件重點(diǎn)實(shí)驗(yàn)室,廣西 桂林 541004
文本分類是自然語言處理中最經(jīng)典、最重要的任務(wù)之一,主要任務(wù)是將給定的文本數(shù)據(jù)集按照已知的類別進(jìn)行歸類。文本分類技術(shù)便于人們對文本數(shù)據(jù)處理,有助于提取文本中最有價值的信息,也是自然語言處理中一項(xiàng)最基本的任務(wù),在情感分析[1]、垃圾郵件識別[2]、輿情分析[3]等任務(wù)中有重要的研究意義,受到了人們的高度重視。
傳統(tǒng)的文本分類算法主要是基于統(tǒng)計(jì)的分類算法,結(jié)合特征工程與機(jī)器學(xué)習(xí)模型實(shí)現(xiàn)對文本的分類[4]。Hindi等[5]提出了一種改進(jìn)的KNN模型,該模型的距離函數(shù)利用詞頻和它們之間的順序關(guān)系進(jìn)行距離計(jì)算,首先對文本數(shù)據(jù)進(jìn)行預(yù)處理和特征提取,然后使用KNN算法對文本分類數(shù)據(jù)集的距離進(jìn)行了評估。Ying等[6]提出了改進(jìn)的貝葉斯算法來解決文本分類問題,首先使用貝葉斯算法進(jìn)行文本分類并計(jì)算準(zhǔn)確率,同時與其他方法進(jìn)行比較,確定所用方法的有效性,然后通過修改設(shè)定的閾值來提高預(yù)測的準(zhǔn)確率,使得模型能夠更有效地預(yù)測出具有特定意義的文本。文獻(xiàn)[7]提出用改進(jìn)的樸素貝葉斯來解決文本分類問題,通過構(gòu)造一個相關(guān)因子,該因子包含了不同類之間的總體相關(guān)性,有效地利用了自舉的思想,對于較小的訓(xùn)練集數(shù)據(jù)仍然有不錯的效果。以上改進(jìn)的機(jī)器學(xué)習(xí)模型雖然在一定程度上提高了文本分類的效果,但文本特征需要人工提取,且沒有考慮不同特征之間的相關(guān)性,忽略了特征之間的相互影響,同時文本存儲存在高維稀疏、表達(dá)能力弱的缺點(diǎn)[8]。
隨著研究的深入,Word2vec通過對大規(guī)模文本數(shù)據(jù)進(jìn)行訓(xùn)練,將文本表示成低維稠密的向量空間,大大降低了文本數(shù)據(jù)存儲的難度,且考慮了詞語之間的相關(guān)性,更好地表示了文本數(shù)據(jù),這極大地推動深度學(xué)習(xí)在文本分類上的廣泛應(yīng)用[9]。卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)是近年來最流行的深度學(xué)習(xí)算法之一,卷積核通過設(shè)置不同的權(quán)重來提取多維特征,然后經(jīng)過池化層獲取局部關(guān)鍵信息,通過其特有的網(wǎng)絡(luò)結(jié)構(gòu)和權(quán)值共享策略使得降維速度更快且訓(xùn)練的參數(shù)相對較少,網(wǎng)絡(luò)結(jié)構(gòu)簡單高效且適應(yīng)性強(qiáng)[10]。Fesseha等[11]提出基于卷積神經(jīng)網(wǎng)絡(luò)和低資源語言詞匯嵌入的文本分類方法,構(gòu)建了一個連續(xù)詞袋方法的CNN,一個跳字方法的CNN,以及是否包含Word2vec的CNN來評價新聞文章,實(shí)驗(yàn)結(jié)果相較于傳統(tǒng)機(jī)器學(xué)習(xí)方法有很大的提升。Qiu等[12]提出一種基于奇異值分解算法(SVDCNN)的卷積神經(jīng)網(wǎng)絡(luò)模型,首先采用奇異值分解算法代替池化層進(jìn)行特征提取和降維,然后采用部分采樣梯度下降算法(PSGD)對模型參數(shù)進(jìn)行優(yōu)化,在保證模型訓(xùn)練穩(wěn)定的同時加快了模型的收斂速度?;诟倪M(jìn)卷積神經(jīng)網(wǎng)絡(luò)的短文本分類模型[13]用改進(jìn)的CNN提取不同粒度的短文本特征,有效提取到關(guān)鍵信息且模型分類準(zhǔn)確率較高。雖然CNN和其改進(jìn)模型可以有效提取局部關(guān)鍵信息,且分類效果較好,但忽略了上下文語義信息[14]。循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)作為自然語言的標(biāo)配,可以更好地處理文本上下文信息,高效地挖掘文本潛在的語義信息,但由于在處理長文本時會導(dǎo)致部分信息的丟失,因此目前多采用RNN的變體長短時記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)進(jìn)行文本上下文語義信息的提取。Ibrahim等[15]提出一種用于多標(biāo)簽生物醫(yī)學(xué)文本分類的混合神經(jīng)網(wǎng)絡(luò),首先利用CNN提取最具區(qū)分度的特征,同時用BiLSTM獲取上下文信息,然后將兩個網(wǎng)絡(luò)的輸出進(jìn)行融合。該算法結(jié)合了CNN和LSTM提取文本特征的優(yōu)點(diǎn),大幅度提高了模型預(yù)測的效果,但沒有考慮到文本中最關(guān)鍵的信息,沒有將注意力集中在重要的詞語上[16]。CNN和LSTM在提取文本信息時都有各自的優(yōu)勢,但都存在可解釋性弱的不足的缺點(diǎn),為此,Bahdanau等[17]將注意力(Attention)機(jī)制引入RNN并在機(jī)器翻譯任務(wù)中取得了不錯的成績,開啟了Attention機(jī)制在自然語言的先河。Zhang等[18]提出基于注意力的雙向GRU情感分析模型,利用雙向門循環(huán)單元提取上下文語義信息,結(jié)合注意力機(jī)制進(jìn)行情感分析,模型預(yù)測的準(zhǔn)確率和訓(xùn)練速度都有極大的提升。Li等[19]提出了一種基于門控注意力機(jī)制的雙向長短時記憶網(wǎng)絡(luò)和基于正則表達(dá)式分類器相結(jié)合的文本分類方法,利用了基于規(guī)則算法的可解釋性,并通過引入注意力機(jī)制將注意力集中在句子的關(guān)鍵部分,大幅度提高了文本分類的效果。以上模型雖然有效地提升了模型預(yù)測的效果,但大都采用遞進(jìn)式網(wǎng)絡(luò)結(jié)構(gòu),提取到的信息向后傳遞時容易發(fā)生梯度消失和爆炸問題,同時遞進(jìn)式網(wǎng)絡(luò)結(jié)構(gòu)提取文本特征時只用到單一網(wǎng)絡(luò)的優(yōu)勢,無法融合CNN和RNN提取文本特征的優(yōu)勢,因此分類效果有待提升。
CNN提取特征時通過設(shè)置不同大小的卷積核可以有效地提取局部關(guān)鍵信息。LSTM相較于RNN可以更有效地處理長文本,緩解梯度問題,可以更好地提取上下文語義信息。Attention機(jī)制通過設(shè)置不同的權(quán)重可以將注意力放到對最終結(jié)果影響較大的單詞上。因此,為進(jìn)一步提升文本分類的效果,充分利用文本信息中最關(guān)鍵最有價值的信息,本文提出一種基于CNN和LSTM的多通道注意力機(jī)制文本分類模型MCCL(Multi-Channel-CNNAtt-LSTMAtt),主要內(nèi)容如下:
(1)利用詞嵌入技術(shù)訓(xùn)練詞向量,將文本信息表示成低緯的稠密矩陣;
(2)用CNN和LSTM提取文本局部信息和上下文特征,將輸出信息作為多通道注意力的輸入提取注意力分值;
(3)將多通道注意力的輸出信息融合,得到最終的文本信息向量表示,根據(jù)這個向量進(jìn)行文本分類。
本文提出的MCCL模型充分利用了CNN和LSTM提取文本特征的優(yōu)點(diǎn),在此基礎(chǔ)之上引入多通道注意力機(jī)制,根據(jù)不同單詞對分類結(jié)果影響的大小賦予不同的權(quán)重,使單詞在分類任務(wù)中起更不同的作用,達(dá)到提高分類效果的目的。
圖1 模型總體架構(gòu)圖Fig.1 Overall architecture diagram of model
本文提出MCCL模型,主要包含詞嵌入層、CNNAttention層、LSTM-Attention層,總體架構(gòu)如圖1所示。
分類任務(wù)前需要將文本轉(zhuǎn)換成計(jì)算機(jī)可以識別的數(shù)字矩陣,并用固定長度的實(shí)數(shù)表示,這種表示方式稱為詞嵌入[20]。發(fā)展初期多采用獨(dú)熱編碼的方式進(jìn)行轉(zhuǎn)換,根據(jù)詞匯表的大小將每個單詞表示成相應(yīng)維度的數(shù)字矩陣,矩陣中對應(yīng)詞匯表順序編號位置為1,其余位置為0,這種方式表示雖然可以唯一標(biāo)識每個詞語但無法體現(xiàn)詞語之間的相關(guān)性,且向量維數(shù)與詞匯表大小正相關(guān),容易導(dǎo)致維數(shù)災(zāi)難問題的發(fā)生。
MCCL模型采用Word2vec模型訓(xùn)練詞向量,該模型是通過對大規(guī)模文本數(shù)據(jù)進(jìn)行訓(xùn)練而得到的低緯且稠密的詞向量,可以更好地表示詞語之間的關(guān)系及信息。Word2vec模型有Skip-gram和CBOW兩種結(jié)構(gòu),如圖2所示。
圖2 Skip-gram結(jié)構(gòu)和CBOW結(jié)構(gòu)Fig.2 Skip-gram structure and CBOW structure
Skip-gram和CBOW都由輸入層、映射層、輸出層組成,Skip-gram使用中心詞預(yù)測周圍的詞,CBOW使用周圍的詞預(yù)測中心詞。CBOW的訓(xùn)練速度比Skip-gram快,但Skip-gram比CBOW表達(dá)文本語義的效果更好[21],因此本文選用Skip-gram訓(xùn)練詞向量。Skip-gram在訓(xùn)練時通過中間詞向量Wt的條件概率值來求解上下文詞向量,計(jì)算公式為:
假設(shè)輸入到模型中的一條文本的單詞數(shù)為N,用向量[W1,W2,…,Wn]來表示這條文本,在經(jīng)過詞嵌入層后文本表示轉(zhuǎn)換成X=[x1,x2,…,xn],xi∈Rd,其中d為詞向量維度。
CNN由若干卷積層、Pooling層、全連接層組成,具有較強(qiáng)的特征提取能力,通過設(shè)置不同大小的卷積核可以有效地提取局部關(guān)鍵信息,然后通過Pooling層對輸入的特征圖進(jìn)行壓縮,使特征圖變小,簡化網(wǎng)絡(luò)計(jì)算復(fù)雜度,最后由全連接層連接所有的特征,將輸出值送給分類器。MCCL模型采用TextCNN[19]結(jié)構(gòu)提取特征,如圖3所示。
Attention機(jī)制的本質(zhì)是為不同的特征賦予一組權(quán)重值,在文本分類任務(wù)中表示為權(quán)重越大的詞越重要,對最終的結(jié)果影響也就越大。將注意力放在對文本分類結(jié)果影響較大的詞上可以有效提升分類的效果。
CNN-Attention層進(jìn)行特征處理時首先將文本表示成詞向量矩陣形式,然后使用多個不同大小的卷積核對矩陣進(jìn)行卷積,將卷積后的結(jié)果進(jìn)行最大池化操作得到一個新的特征向量Yi,然后作為多通道注意力的輸入,計(jì)算每個特征向量與整個特征向量匹配得分為:
圖3 Text-CNN模型Fig.3 Text-CNN model
公式中是比詞向量更高一級的文本表示形式,開始時初始化該向量,隨著模型訓(xùn)練時更新,分?jǐn)?shù)值越大表明對應(yīng)注意力越大,該詞也越重要。特征向量得分占總體百分比為:
公式中j∈[0,L],得到每個特征向量對應(yīng)的百分比后再對所有特征向量進(jìn)行求和再平均,得到最終向量V,計(jì)算公式為:
LSTM是一種改進(jìn)的RNN,通過在神經(jīng)元加入輸入門i、遺忘門f、輸出門o、內(nèi)部記憶單元c使得在處理長序列文本時更加有優(yōu)勢,緩解了梯度消失和爆炸的現(xiàn)象的發(fā)生,相較于RNN可以更有效地提取文本上下文信息。輸入門i控制當(dāng)前時刻網(wǎng)絡(luò)的輸入Xt有多少保存到單元狀態(tài)Ct,遺忘門f決定上時刻的單元狀態(tài)Ct-1有多少保留到當(dāng)前時刻Ct,輸出門o控制單元狀態(tài)Ct有多少輸出到LSTM的當(dāng)前輸出值Ht。模型結(jié)構(gòu)如圖4所示。
圖4 LSTM結(jié)構(gòu)圖Fig.4 LSTM structure diagram
當(dāng)輸入的文本詞向量矩陣為X=[x1,x2,…,xk]時,則LSTM的更新公式為:
公式中σ(·)為Sigmoid激活函數(shù),tanh(·)為雙曲正切函數(shù),W為對應(yīng)的權(quán)重,b為偏置,Ht為最終的輸出。將LSTM提取文本上下文信息后的輸出Ht作為多通道注意力的輸入,模型結(jié)構(gòu)如圖5所示。
圖5 LSTM-Attention結(jié)構(gòu)圖Fig.5 LSTM-Attention structure diagram
Ht經(jīng)過公式(2)~(4)計(jì)算后得到經(jīng)過LSTM-Attention最終向量T,即包含了文本上下文信息,又將注意力放在了重要的詞語上,更好地表示了語義信息。
實(shí)驗(yàn)在Ubuntu 18.04系統(tǒng)上進(jìn)行,CPU為Intel?Xeon?Gold 5218,深度學(xué)習(xí)框架為Tensorflow2.1.0,使用Python3.6編程語言,為更好地表示語義信息采用Skip-gram訓(xùn)練詞向量,且采用CUDA10.1進(jìn)行加速計(jì)算,具體實(shí)驗(yàn)環(huán)境如表1所示。
表1 實(shí)驗(yàn)環(huán)境Table 1 Experimental environment
數(shù)據(jù)集采用IMDB英文電影評論數(shù)據(jù)集、復(fù)旦大學(xué)中文數(shù)據(jù)集、THUCNews數(shù)據(jù)集。IMDB數(shù)據(jù)集為二分類數(shù)據(jù)集,分為消極評論和積極評論,數(shù)據(jù)集噪聲特征少,分類難度低。復(fù)旦大學(xué)中文數(shù)據(jù)集共有20個類別,文本多為文獻(xiàn)內(nèi)容且篇幅較長,噪聲特征較多。THUCNews數(shù)據(jù)集共有14個類別,噪聲特征較少,由于數(shù)據(jù)全集樣本過多,本文隨機(jī)抽取了42 000條樣本進(jìn)行實(shí)驗(yàn)。各數(shù)據(jù)集均進(jìn)行了預(yù)處理,去除特殊字符以及標(biāo)點(diǎn)符號,并進(jìn)行分詞處理,詳細(xì)信息如表2所示。
表2 數(shù)據(jù)集統(tǒng)計(jì)信息Table 2 Data set statistics
詞向量訓(xùn)練時,為了更好地表示語義信息,采用Skip-gram結(jié)構(gòu)進(jìn)行訓(xùn)練,同時為了避免不常用單詞對實(shí)驗(yàn)結(jié)果造成影響,在訓(xùn)練詞向量時選取詞頻前6 000的單詞進(jìn)行訓(xùn)練。為了防止過擬合現(xiàn)象的發(fā)生在CNN、LSTM網(wǎng)絡(luò)層中設(shè)置Drop_out值為0.5,隨機(jī)失活50%的神經(jīng)單元,采用ReLu激活函數(shù)在加快收斂速度的同時也可以進(jìn)一步防止過擬合現(xiàn)象的發(fā)生。采用多分類任務(wù)中常用的交叉熵?fù)p失函數(shù),優(yōu)化器為Adam,Batch_size為256,Epoch為10,具體參數(shù)如表3~5所示。
表3 Word2vec網(wǎng)絡(luò)參數(shù)Table 3 Word2vec network parameters
表4 CNN網(wǎng)絡(luò)參數(shù)Table 4 CNN network parameters
表5 LSTM網(wǎng)絡(luò)參數(shù)Table 5 LSTM network parameters
采用分類任務(wù)常見的評估標(biāo)準(zhǔn):準(zhǔn)確率、精確率、召回率以及F1值對MCCL模型進(jìn)行評估。準(zhǔn)確率(Acc)表示預(yù)測正確的樣本占總樣本的比重,精確率(Pre)表示實(shí)際類別且預(yù)測類別都為正的樣本占所有預(yù)測類別為正的樣本比重,召回率(Rec)表示實(shí)際類別且預(yù)測類別都為正的樣本占所有實(shí)際類別為正的樣本比重,F(xiàn)1值為準(zhǔn)確率和召回率的加權(quán)調(diào)和平均值?;煜仃嚾绫?,指標(biāo)計(jì)算如式(10)~(13)所示。
表6 混淆矩陣Table 6 Confusion matrix
為驗(yàn)證提出的MCCL模型預(yù)測性能,在同等實(shí)驗(yàn)環(huán)境下與以下基準(zhǔn)模型進(jìn)行對比:
(1)CNN-LSTM[22]:首先用CNN提取文本局部關(guān)鍵信息,然后用LSTM提取CNN輸出的上下文語義信息。
(2)CNN-RNN[23]:首先用CNN提取局部關(guān)鍵信息,然后用RNN提取CNN輸出的上下文語義信息。
(3)LSTM-CNN[24]:首先用LSTM提取文本上下文語義信息,然后用CNN提取LSTM輸出的局部關(guān)鍵信息系。
(4)CNN-Attention[25]:首先用CNN提取局部關(guān)鍵信息,然后用Attention計(jì)算CNN輸出信息的注意力分值。
(5)LSTM-Attention[26]:首先用LSTM提取上下文語義信息,然后用Attention計(jì)算LSTM輸出信息的注意力分值。
(6)CNN-LSTM-Attention(CLA)[27]:首先用CNN提取局部關(guān)鍵信息,然后用LSTM提取CNN輸出信息的上下文語義信息,最后用Attention計(jì)算注意力分值。
(7)LSTM-CNN-Attention(LCA)[28]:首先用LSTM提取上下文語義信息,然后用CNN提取LSTM輸出信息的局部關(guān)鍵信息,最后用Attention計(jì)算注意力分值。
(8)CNN+LSTM[29]:首先用CNN和LSTM提取文本局部關(guān)鍵信息和上下文語義信息,然后將輸出信息進(jìn)行融合后分類。
MCCL和以上基準(zhǔn)模型在3個公開數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果如表7~9。
表7 IMDB實(shí)驗(yàn)結(jié)果對比Table 7 Comparison of IMDB experimental results%
表8 復(fù)旦大學(xué)中文數(shù)據(jù)集實(shí)驗(yàn)結(jié)果對比Table 8 Comparison of experimental results of Chinese data sets in Fudan University %
表9 THUCNews數(shù)據(jù)集實(shí)驗(yàn)結(jié)果對比Table 9 Comparison of experimental results of THUCNews data set%
從表中可以看出MCCL模型在三個數(shù)據(jù)集上的表現(xiàn)最優(yōu),大幅度提升了文本分類的效果。相較于CNNLSTM模型效果分別提升了4.98個百分點(diǎn)、4.20個百分點(diǎn)、6.30個百分點(diǎn),這是因?yàn)镃NN-LSTM模型使用的是遞進(jìn)結(jié)構(gòu),CNN提取特征時雖然可以有效提取局部關(guān)鍵信息,但會導(dǎo)致部分信息的丟失,經(jīng)過CNN提取后的語義信息向后傳遞時是不完整的,而MCCL模型不僅提取到了局部關(guān)鍵信息,還有效地提取了上下文信息,信息向后傳遞時是完整的,因此分類效果會更好。相較于CNN-RNN模型效果分別提升了5.39個百分點(diǎn)、5.20個百分點(diǎn)、6.99個百分點(diǎn)。相較于LSTM-CNN模型效果提升了3.48個百分點(diǎn)、3.24個百分點(diǎn)、4.89個百分點(diǎn),這是因?yàn)長STM-CNN模型提取文本信息時雖然可以有效提取上下文信息,但進(jìn)行分類時認(rèn)為每個單詞對最終的結(jié)果影響相同,沒有將注意力集中在更重要的單詞上,而MCCL模型不僅可以有效提取特征,還將注意力集中在對分類結(jié)果影響大的單詞上。同時可以看出CNNLSTM模型的分類效果要優(yōu)于CNN-RNN模型,這是因?yàn)樘幚硗瑯拥男畔STM可以有效地解決文本長依賴問題,且有效地緩解了梯度彌散和爆炸問題,而RNN無法處理長文本序列,更容易發(fā)生梯度彌散和爆炸問題,因此CNN-LSTM模型的性能優(yōu)于CNN-RNN模型。對比LSTM-CNN模型和CNN-LSTM模型可以看出LSTM-CNN的性能要明顯優(yōu)于CNN-LSTM模型,這是因?yàn)镃NN提取的是局部關(guān)鍵信息,如果在LSTM之前提取文本關(guān)鍵信息會導(dǎo)致對文本原始信息提取不全問題的發(fā)生,提取的信息向后傳播時是不完整的,無法準(zhǔn)確表示整個文本信息,而LSTM提取的是文本上下文信息,在提取信息層面可以更好地表示文本,向后傳播時仍然是完整的信息,因此LSTM-CNN模型的分類效果要優(yōu)于CNN-LSTM。相較于CNN-Attention模型效果分別提升了5.69個百分點(diǎn)、4.50個百分點(diǎn)、5.60個百分點(diǎn),相較于LSTM-Attention模型效果分別提升了3.29個百分點(diǎn)、3.13個百分點(diǎn)、4.16個百分點(diǎn),這是因?yàn)镸CCL不僅將注意力放到了對分類結(jié)果影響大的單詞上,更充分地提取了文本潛在的語義信息,而CNN-Attention模型在提取特征時只考慮了局部關(guān)鍵信息,LSTM-Attention模型提取特征時只考慮了上下文信息,因此MCCL模型性能更好。相較于CLA模型性能分別提升了3.28個百分點(diǎn)、3.33個百分點(diǎn)、3.60個百分點(diǎn),相較于LCA模型性能分別提升了3.09個百分點(diǎn)、1.98個百分點(diǎn)、2.52個百分點(diǎn),這是因?yàn)槭褂眠f進(jìn)式的結(jié)構(gòu)更容易出現(xiàn)梯度消失和爆炸的問題,而MCCL模型采用并行結(jié)構(gòu)提取特征,有效緩解了梯度的問題,進(jìn)行特征提取時更是結(jié)合了CNN和LSTM的優(yōu)勢,因此分類效果要明顯優(yōu)于以上模型。相較于CNN+LSTM模型效果分別提升了2.29個百分點(diǎn)、1.58個百分點(diǎn)、1.40個百分點(diǎn),CNN+LSTM模型雖然可以有效提取局部關(guān)鍵信息和上下文信息但進(jìn)行分類認(rèn)為每個詞對最終的結(jié)果起同等作用,而在文本分類任務(wù)中一些詞語相對于其他詞語起的作用可能更大,甚至決定了最終分類的結(jié)果,而MCCL模型在CNN+LSTM的基礎(chǔ)上引入了Attention機(jī)制,通過計(jì)算注意力分值賦予每個單詞不同權(quán)重,從而可以有效識別對分類結(jié)果影響較大的詞語,因而分類效果要優(yōu)于CNN+LSTM。
從表7~9中可以看出MCCL模型不僅在準(zhǔn)確率上有很大的提升,在精確率、召回率、F1值上的提升效果也比較明顯。在IMDB數(shù)據(jù)集上精確率、召回率、F1值分別提升了2.90個百分點(diǎn)、2.53個百分點(diǎn)、3.11個百分點(diǎn),在復(fù)旦大學(xué)中文數(shù)據(jù)集上精確率、召回率、F1值分別提升了2.41個百分點(diǎn)、2.04個百分點(diǎn)、2.27個百分點(diǎn),在THUCNews數(shù)據(jù)集上精確率、召回率、F1值分別提升了2.08個百分點(diǎn)、1.87個百分點(diǎn)、2.40個百分點(diǎn),充分顯示了MCCL模型的優(yōu)勢。
為進(jìn)一步展示MCCL模型的優(yōu)越性,本文對每個模型的訓(xùn)練過程進(jìn)行了進(jìn)一步探究,得出了復(fù)旦大學(xué)中文數(shù)據(jù)集訓(xùn)練過程的校驗(yàn)集準(zhǔn)確率,如圖6所示。
從圖中可以看出CNN-LSTM模型和LSTM-CNN模型曲線波動較大,在第8個Epoch才開始收斂,CLA模型和LCA模型曲線相對平滑,最終的準(zhǔn)確率較高,但收斂速度相對較慢,提出的MCCL模型不僅收斂速度更快,且曲線整體相對平緩,訓(xùn)練過程穩(wěn)定且準(zhǔn)確率高,且在后續(xù)的訓(xùn)練過程中一直處于領(lǐng)先優(yōu)勢,進(jìn)一步體現(xiàn)了MCCL模型的優(yōu)勢。
圖6 復(fù)旦大學(xué)中文數(shù)據(jù)集校驗(yàn)集準(zhǔn)確率Fig.6 Accuracy of Chinese data set check set in Fudan University
分類的準(zhǔn)確率是評價模型效果的重要指標(biāo),但訓(xùn)練過程中的消耗也是一個重要的指標(biāo)。因此,在以上實(shí)驗(yàn)的基礎(chǔ)上對比模型的訓(xùn)練時間,如表10所示。
表10 訓(xùn)練時間實(shí)驗(yàn)結(jié)果Table 10 Experimental results of training time min
訓(xùn)練時間實(shí)驗(yàn)是在單機(jī)下進(jìn)行的,系統(tǒng)為Ubuntu Server 18.04 LTS,CPU為Intel?Xeon?Gold 5218,GPU:Ampere A100 77 40 GB,采用CUDA10.1加速計(jì)算。從表中可以看出MCCL模型的訓(xùn)練時間較短,接近所有對比實(shí)驗(yàn)中最短訓(xùn)練時間,這是因?yàn)槎嗤ǖ啦⑿薪Y(jié)構(gòu)相較于串行結(jié)構(gòu)不僅能有效提取文本語義特征,還可以充分地利用計(jì)算機(jī)性能進(jìn)行加速運(yùn)算。由此可見,MCCL模型在訓(xùn)練階段具有較快的收斂速度,可以有效地減少訓(xùn)練時間的消耗。
超參數(shù)的設(shè)置對最終實(shí)驗(yàn)結(jié)果有重要的影響,為進(jìn)一步提升MCCL模型的性能,對卷積核大小、Embedding維度、LSTM隱藏層大小進(jìn)行進(jìn)一步探究。固定其他超參數(shù),設(shè)置卷積核大小為1~10,實(shí)驗(yàn)結(jié)果如圖7所示。
圖7 卷積核大小對實(shí)驗(yàn)結(jié)果影響Fig.7 Influence of convolution kernel size on experimental results
設(shè)置Embedding維度為50、100、200、300,實(shí)驗(yàn)結(jié)果如圖8所示。
圖8 Embedding維度大小對實(shí)驗(yàn)結(jié)果影響Fig.8 Influence of Embedding dimension size on experimental results
設(shè)置LSTM隱藏層大小為64、128、256、512,實(shí)驗(yàn)結(jié)果如圖9所示。
圖9 LSTM隱藏層大小對實(shí)驗(yàn)結(jié)果影響Fig.9 Influence of LSTM hidden layer size on experimental results
從圖7中可以看出卷積核為3時分類準(zhǔn)確率最高,其次是2和4,且分類接近,選取最優(yōu)的卷積核大小結(jié)合分類結(jié)果相近的卷積核可以提升效果[19],因此MCCL模型最佳的卷積核大小設(shè)置為2、3、4。從圖8中可以看出當(dāng)Embedding維度為200時效果最好,維度為300時接近最佳分類效果,但考慮到模型復(fù)雜度及分類效率等問題,因此選擇Embedding維度為200。從圖9中可以看出FuDan數(shù)據(jù)集的分類效果隨著LSTM隱層數(shù)的增大而增大,當(dāng)隱層數(shù)大于256時增長的速率減緩,且隱層數(shù)為512時的分類效果和隱層數(shù)為256時的分類效果接近,這是因?yàn)镕uDan數(shù)據(jù)集文本中單詞數(shù)較多,增加隱藏層數(shù)可以更好地提取語義信息,當(dāng)隱藏層數(shù)大于文本單詞數(shù)時,分類效果會隨著隱藏層數(shù)增大而遞減。而IMDB和THUCNews數(shù)據(jù)集在隱層數(shù)為256時分類效果最好,因此LSTM隱藏層應(yīng)設(shè)置為256。
為驗(yàn)證MCCL模型的有效性,進(jìn)行消融實(shí)驗(yàn)。將MCCL模型分解,設(shè)置CNN、LSTM、CNN+LSTM、CNNAttention、LSTM-Attention,實(shí)驗(yàn)結(jié)果如表11~13所示。
表11 IMDB消融實(shí)驗(yàn)結(jié)果Table 11 Experimental results of IMDB ablation%
表12 復(fù)旦大學(xué)中文數(shù)據(jù)集消融實(shí)驗(yàn)結(jié)果Table 12 Experimental results of Chinese data set ablation in Fudan University %
表13 THUCNews數(shù)據(jù)集消融實(shí)驗(yàn)結(jié)果Table 13 Experimental results of ablation on THUCNews data set %
從表中可以看出CNN和LSTM分類效果接近,CNN+LSTM分類效果要明顯優(yōu)于CNN和LSTM,這是因?yàn)镃NN+LSTM結(jié)合了CNN和LSTM提取特征的優(yōu)勢,因此分類效果要優(yōu)于單一的提取器。CNN-Attention分類效果明顯優(yōu)于CNN,這是因?yàn)镃NN-Attention在CNN提取文本特征基礎(chǔ)上引入Attention可以將注意力放在重要的特征上,而LSTM-Attention效果優(yōu)于CNNAttention,這是因?yàn)長STM相較于CNN可以有效提取到文本上下文語義信息,經(jīng)過Attention后這種在提取文本信息上的差異在最終結(jié)果上被放大,因此LSTM結(jié)合Attention的效果要優(yōu)于CNN結(jié)合Attention。MCCL分類效果最好,這是因?yàn)镸CCL在提取文本信息時結(jié)合了CNN和LSTM的優(yōu)勢,有效提取了局部關(guān)鍵信息和上下文信息,在此基礎(chǔ)上引入多通道注意力將注意力集中在對最終結(jié)果影響較大的單詞上,提高了模型分類的效果。
針對文本分類問題提出一種基于CNN和LSTM的多通道注意力機(jī)制文本分類模型MCCL,模型首先通過詞嵌入將文本表示成低緯稠密詞向量矩陣,然后利用CNN和LSTM提取局部關(guān)鍵信息和上下文語義信息,并用多通道注意力機(jī)制提取CNN和LSTM輸出信息的注意力分值,最后將多通道注意力機(jī)制的輸出信息進(jìn)行融合,實(shí)現(xiàn)了有效提取文本特征的基礎(chǔ)上將注意力集中在重要的詞語上,提升了文本分類的效果。通過與其他模型對比實(shí)驗(yàn)進(jìn)一步證明了MCCL模型的優(yōu)勢。下一階段的研究工作是分析MCCL模型的各個參數(shù)對分類結(jié)果的影響,從而使模型分類效果更好,進(jìn)一步提高文本分類的準(zhǔn)確率。