黃衛(wèi)春,陶自強*,熊李艷
(1.華東交通大學(xué)軟件學(xué)院,南昌 330013;2.華東交通大學(xué)信息學(xué)院,南昌 330013)
文本分類任務(wù)是自然語言處理中的基礎(chǔ)性任務(wù),該問題初期被視作是一些簡單的匹配性問題,例如,數(shù)據(jù)集中存在不同類別的文本,只要事先搜集一些與每個類別相關(guān)的詞匯,當(dāng)新樣本中有這個詞語,就判定它是對應(yīng)類別即可。但是這種做法顯然忽略了句子的整體語義和語境,從而導(dǎo)致文本分類的準(zhǔn)確率低等問題。同時,文本分類又是組合了語義信息、語序信息和語境信息的復(fù)合型任務(wù),傳統(tǒng)的機器學(xué)習(xí)方法難以對非結(jié)構(gòu)化文本數(shù)據(jù)進行理解[1-2]。而文本表示方法同樣對分類效果有很大影響,李舟軍等[3]針對自然語言處理中詞語的分布式表示進行了說明。近年來,由于深度學(xué)習(xí)算法針對非結(jié)構(gòu)化數(shù)據(jù)處理的優(yōu)勢逐漸明顯,開始成為解決文本分類問題的熱門選擇。
卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network, CNN)在語音識別、自然語言處理和計算機視覺等領(lǐng)域都有很大的應(yīng)用,并且取得了很好的效果。Kim[4]首次提出將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于文本分類處理之中。陶永才等[5]構(gòu)建了一種基于壓縮激發(fā)塊的卷積神經(jīng)網(wǎng)絡(luò)文本分類模型,可以結(jié)合文本整體與局部關(guān)聯(lián)性進行語義分析。Wang等[6]提出了一個基于卷積神經(jīng)網(wǎng)絡(luò)的框架,該框架結(jié)合了兩種不同的詞語表示方法進行分類。Conneau等[7]提出了一種文本處理體系結(jié)構(gòu),使用小規(guī)模卷積和池化操作,并且證明該模型的性能隨卷積深度而增加。Duque等[8]對卷積神經(jīng)網(wǎng)絡(luò)進行壓縮,評估了時間深度可分離卷積和全局平均池對結(jié)果的影響。但是使用卷積神經(jīng)網(wǎng)絡(luò)進行文本分類未能解決卷積神經(jīng)網(wǎng)絡(luò)在深度增加時所造成的梯度彌散現(xiàn)象,從而導(dǎo)致深層卷積網(wǎng)絡(luò)訓(xùn)練效果不好。
為了解決CNN模型在深度增加時,信息缺失程度越來越重,訓(xùn)練誤差反而隨深度增加而增加的情況。He等[9]提出了一種稱為殘差網(wǎng)絡(luò)的架構(gòu),這種方法可以有效地防止信息的缺失,同時也可以緩解過擬合問題。同時,許多研究人員提出了將注意力機制運用于文本分類模型中,在自然語言處理中,Bahdanau等[10]首次將注意力機制在encode-decode的基礎(chǔ)上應(yīng)用到機器翻譯。姚苗等[11]加入了堆疊雙向LSTM和自注意力機制的方法,優(yōu)化了文本表示。Yin等[12]提出通用的基于注意力的卷積神經(jīng)網(wǎng)絡(luò),通過三種注意力機制方案,將句子之間的影響整合于CNN。但是,現(xiàn)有作用于文本的注意力機制只能得出句子中詞語和詞語之間的聯(lián)系,卻無法靈活地得到不同階短語之間的聯(lián)系,導(dǎo)致短語維度不匹配問題,從而干擾分類效果。
為了有效進行特征選擇,解決梯度消失問題,降低冗余特征干擾分類結(jié)果,同時可以靈活捕捉不同層次短語之間的聯(lián)系,從而獲得更好的分類效果,現(xiàn)采用密集池化連接解決模型特征丟失以及梯度消失的問題,以及對序列信息特征提取不敏感做出優(yōu)化。改進傳統(tǒng)注意力機制,采用短語注意力模型靈活地得到不同階短語信息,解決傳統(tǒng)注意力機制短語維度不匹配問題,重新組合關(guān)系密切的短語信息提高分類準(zhǔn)確率。以新聞分類數(shù)據(jù)集為例,設(shè)置三組對比實驗,對模型收斂性和測試集評估指標(biāo)進行分析,以證明模型的有效性。對實驗部分的超參數(shù)進行優(yōu)化調(diào)整,以使得模型結(jié)果達到最優(yōu)值。
密集池化連接和短語注意力機制(dense-pool convolutional neural networks with phrase attention,DPCNN-PAtt)模型由詞嵌入層,密集池化連接層,短語注意力機制層,全連接層由4個部分組成,模型總體結(jié)構(gòu)如圖1所示。
圖1 模型整體框架
詞向量Glove[13]用于詞語的表示,Glove融合了全局矩陣分解和局部上下文窗口兩種方法,在加快訓(xùn)練速度的同時,也可以控制詞語權(quán)重,代價函數(shù)為
(1)
(2)
xmax=100,α=0.75時的效果最好,直接使用語料庫進行訓(xùn)練。針對集外詞(out of vocabulary, OOV)詞匯,隨機化相同維度TOKEN加入詞典隨網(wǎng)絡(luò)訓(xùn)練。
密集池化連接分為殘差網(wǎng)絡(luò)和池化層兩個部分,殘差網(wǎng)絡(luò)內(nèi)進行多次卷積,同時可防止梯度消失,之后使用池化層保留權(quán)重大的特征值,實現(xiàn)特征復(fù)用。假設(shè)殘差網(wǎng)絡(luò)卷積結(jié)構(gòu)式為
(3)
在殘差網(wǎng)絡(luò)之后卷積短語特征,再在層與層之間使用池化,表達式為
(4)
式(4)中:Xl∈Rn×k;Wl∈Rw×k為單個卷積核維度;w為卷積窗口大小,共有k個卷積核,每次僅在此時對卷積窗口w個詞語進行卷積,池化后得到第l層的輸出結(jié)果Xl,in。
網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示,隨著密集池化連接層數(shù)的增加,其提取的短語維度ngram也不斷增加,圖中第一層只能表示單個詞語的語義信息,而第二層通過卷積可表示相鄰兩個詞語組合的短語信息。
圖2 密集連接池化結(jié)構(gòu)圖
之前的研究者在使用卷積神經(jīng)網(wǎng)絡(luò)時,一般直接使用上一層的輸出作為輸入。這種方式會隨著卷積層數(shù)的增加而導(dǎo)致梯度消失,從而使參數(shù)無法有效更新。
假設(shè)層內(nèi)采用常規(guī)網(wǎng)絡(luò),梯度更新表示為
(5)
(6)
當(dāng)連乘部分為若干個(0,1)區(qū)間內(nèi)的數(shù),則梯度會趨向于0,又由于學(xué)習(xí)率的限制,梯度會變得更小,以至于后面的參數(shù)無法獲得有效梯度。
在層內(nèi)加入殘差連接以后,可得
(7)
(8)
通過改變梯度傳播方式,從連續(xù)乘積變成了累加形式,這樣梯度可以穩(wěn)定地從第M層傳入第m層,從而緩解梯度消失的情況,密集連接池化流程如圖3所示。
圖3 密集連接池化流程圖
如圖4所示,圖4(a)中“奇妙”為正向情感詞,而“枯燥”為負(fù)向情感詞,因為常規(guī)注意力機制只能提取出詞與詞之間的關(guān)系,無法得出否定詞“不”和“枯燥”的短語含義,則無法很好地理解兩個詞對主語的情感傾向。如圖4(b)和圖4(c)所示,先通過卷積獲得高階短語維度特征信息,再使用注意力機制組合短語特征,可正確理解語義信息。
圖4 注意力機制對比
如圖2所示,由于每一層所提取的短語信息維度不同,由低維逐漸轉(zhuǎn)向高維。通過短語注意力機制可以利用不同維度短語信息,從而表示出它們的關(guān)系。具體過程如圖5所示,分為兩部分,首先是短語特征重構(gòu),其次是短語特征注意力關(guān)系矩陣提取。
圖5 短語注意力機制示意圖
在短語特征重構(gòu)部分,先對不同卷積層的短語特征進行降維,這有利于后續(xù)注意力機制處理,公式為
(9)
(10)
(11)
(12)
圖6 短語特征注意力矩陣構(gòu)造
在得到不同層之間權(quán)重矩陣以后,將每一層輸出的短語特征與權(quán)重參數(shù)相乘,再累加獲得組合不同階的短語特征信息,公式為
(13)
由于將不同層之間的特征相加,為了防止維度過大,需要除標(biāo)度L進行限制。通過這樣的方式,可以求得不同層之間的關(guān)聯(lián),從而有指向地處理關(guān)聯(lián)度高的短語特征向量。
(14)
訓(xùn)練的目標(biāo)是最小化損失函數(shù),損失函數(shù)采用交叉熵(cross entropy)為損失函數(shù),同時加入L2正則化防止過擬合,公式為
(15)
使用的實驗數(shù)據(jù)集為新聞分類數(shù)據(jù)集(AG),以新聞文章作為樣本,劃分為4種不同的新聞類別,分別為World、Sports、Business、Sci/Tech,具體信息如表1所示。
表1 數(shù)據(jù)集信息
實驗環(huán)境配置和參數(shù)設(shè)置分別如表2、表3所示。
表2 實驗環(huán)境配置
表3 參數(shù)設(shè)置
分類效果評估標(biāo)準(zhǔn)采用準(zhǔn)確率(precision,P)、召回率(recall,R)和F1值進行衡量,定義如下。
(16)
(17)
(18)
根據(jù)分類結(jié)果所建立的混淆矩陣如表4所示。
表4 混淆矩陣
為了對比在不同情況下模型的效果,設(shè)置了3組對照實驗?zāi)P?,實驗設(shè)置與2.2節(jié)介紹一致,以新聞數(shù)據(jù)集(AG)為實驗數(shù)據(jù)集進行對比。
(1)僅使用卷積神經(jīng)網(wǎng)絡(luò)CNN。
(2)使用密集池化連接(dense-pool connection convolutional neural network, DPCNN),但是不使用短語注意力機制。
(3)使用短語注意力機制(convolutional neural network with phrase attention,CNN-PAtt),但是不使用密集池化連接網(wǎng)絡(luò)。
通過對比3種不同模型的loss下降程度以及準(zhǔn)確率,結(jié)果如圖7所示。
圖7 4種模型的準(zhǔn)確率和損失值對比試驗圖
通過圖7(a)對比發(fā)現(xiàn),在相同實驗條件下,本文模型準(zhǔn)確率均高于3種對比模型,模型準(zhǔn)確率比CNN-PAtt模型高0.9%~1.5%,比DPCNN高0.5%~0.8%,比CNN高2.5%~3%。通過圖7(b)可以發(fā)現(xiàn),本文模型loss值下降較快,相對穩(wěn)定,取得了很好的收斂結(jié)果,而對比模型收斂性相對較差,尤其是CNN-PAtt和CNN模型,這也是因為沒有加入密集池化連接從而產(chǎn)生梯度消失的緣故,但是CNN模型在迭代次數(shù)變高時準(zhǔn)確率和損失值表現(xiàn)均比CNN-PAtt模型更好。綜上可得,本文模型可以有效緩解梯度消失,同時提高準(zhǔn)確率,降低損失值。
通過實驗具體對比了4種模型的準(zhǔn)確率、召回率和F1值,不僅對總體性能指標(biāo)進行計算,還對新聞數(shù)據(jù)集4個不同類別分別計算其分類效果,結(jié)果如表5所示。
表5 對比實驗結(jié)果
由于準(zhǔn)確率和召回率只能表達部分模型性能,通過F1值綜合考量,DPCNN-PAtt模型的F1值比以上3個對比模型分別高出3.34、0.81和2.69,模型性能得到有效提升,具體如圖8所示。
圖8 F1值比較
2.5.1 網(wǎng)絡(luò)層數(shù)對結(jié)果影響對比
結(jié)果如圖9所示,可以看出網(wǎng)絡(luò)層數(shù)選取第4層時,數(shù)據(jù)集準(zhǔn)確率最高。也并非層數(shù)越深,分類結(jié)果越好,網(wǎng)絡(luò)層數(shù)偏高時提取出的短語語義偏差會增加。
圖9 網(wǎng)絡(luò)層數(shù)對結(jié)果的影響
2.5.2 不同池化方式對比
比較最大池化和平均池化兩種池化方式對結(jié)果的影響,密集連接層數(shù)以2、4、6、8層進行實驗,結(jié)果如圖10所示。對比可得,采用最大池化精度提升更大,平均池化最優(yōu)準(zhǔn)確率為0.922,而最大池化方式可以達到0.927。這也是因為最大池化可以提取出特征區(qū)域中最重要的特征,而當(dāng)使用平均池化提取特征時,重要特征的權(quán)重會因為層數(shù)的增加而變小,所以其語義特征也相應(yīng)弱化,從而引起分類效果變差。
圖10 不同池化方式對準(zhǔn)確率影響
2.5.3 句子長度對結(jié)果影響
由于數(shù)據(jù)集中樣本長度不一致,需要將樣本處理成統(tǒng)一長度進行處理。首先需要得出數(shù)據(jù)集中樣本長短的分布情況,對新聞分類數(shù)據(jù)集(AG)進行分析,圖11為數(shù)據(jù)集樣本長度分布。
由圖11分析可知,樣本中詞語數(shù)在[40,60]區(qū)間內(nèi)較多。取句子長度為30開始實驗,在[30,80]區(qū)間內(nèi)進行實驗,實驗結(jié)果如圖12所示,取60表現(xiàn)最優(yōu)。
圖11 AG數(shù)據(jù)集樣本長度分布
通過對比模型實驗結(jié)果得出以下結(jié)論。
(1)在密集池化連接中通過殘差網(wǎng)絡(luò)防止由于層數(shù)增加而導(dǎo)致的梯度消失問題,并在殘差網(wǎng)絡(luò)后加入池化層復(fù)用重要特征,可以有效緩解梯度消失的問題。
(2)同時改進常規(guī)注意力機制,使用短語注意力機制可以更充分地利用不同尺度的短語特征信息,并且對其進行組合,獲得不同階短語之間的關(guān)系,并通過對比實驗得出模型的有效性。
但對于深層次信息語義信息的提取,以及上下文序列信息處理,還存在一定局限性。可以嘗試使用更好的詞向量預(yù)處理模型,比如Bert模型,也可以加入循環(huán)神經(jīng)網(wǎng)絡(luò)進行實驗,這可以作為之后的研究方向。