陳立潮,秦 杰,陸望東,潘理虎,張 睿
(1.太原科技大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,山西 太原 030024; 2.太原政通云科技有限公司,山西 太原 030000)
目前對文本分類研究的方向大致有兩個(gè):一是對文本的句子特征和上下文語義信息進(jìn)行擴(kuò)展;二是對分類算法、分類模型的選擇和創(chuàng)新。對文本句子特征和上下文語義進(jìn)行拓展可以增加短文本特征的信息量,但也因此會(huì)增加許多不屬于原有文本的語義信息,從而使最終文本分類的難度增加。而對分類算法和分類模型的創(chuàng)新則很好地避免了引入噪聲后帶來的對語義信息的干擾。長短時(shí)神經(jīng)網(wǎng)絡(luò)(long short-term memory,LSTM)[1]是在循環(huán)神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上改造和發(fā)展的一種神經(jīng)網(wǎng)絡(luò)模型,可以解決傳統(tǒng)人工分類效果不佳的問題,同時(shí)解決長期的依賴問題。Lee J Y等[2]提出將RNN、CNN相結(jié)合的神經(jīng)網(wǎng)絡(luò)分類模型,期望對文本語料分類結(jié)果不準(zhǔn)確的問題提供新的解決思路和方法;龔千健[3]提出了在短文本分類問題上構(gòu)建循環(huán)神經(jīng)網(wǎng)絡(luò),利用神經(jīng)網(wǎng)絡(luò)模型以獲取上下文語義進(jìn)而彌補(bǔ)統(tǒng)計(jì)學(xué)方法的缺點(diǎn)。關(guān)于短文本的分類結(jié)果在智能推薦、即時(shí)通訊、搜索問答等方面的應(yīng)用也越來越廣闊,但因?yàn)樯舷挛恼Z義信息理解不充分,使分類效果不佳進(jìn)而會(huì)導(dǎo)致用戶體驗(yàn)變差。因此,研究一種可以充分獲取上下文語義,對解決長期依賴關(guān)系的短文本分類模型具有重要意義。
為此,提出一種融合對抗訓(xùn)練自注意力多層雙向長短期記憶網(wǎng)絡(luò)模型對短文本進(jìn)行分類識(shí)別,以期通過對抗訓(xùn)練對文本信息進(jìn)行參數(shù)多樣性的補(bǔ)充,提高模型的泛化能力并減少過擬合現(xiàn)象的發(fā)生,從而達(dá)到優(yōu)化模型,提高分類性能的目的。
雙向長短期記憶神經(jīng)網(wǎng)絡(luò)(bidirectional long and short term memory network,Bi-LSTM)的創(chuàng)新點(diǎn)在于彌補(bǔ)了LSTM無法準(zhǔn)確解釋文本脈絡(luò)深層邏輯和深層上下文這一不足,運(yùn)用雙向結(jié)構(gòu)可以對文本進(jìn)行正反兩次語義調(diào)整,并準(zhǔn)確輸出信息,使得機(jī)器編譯訓(xùn)練后的語義更接近語句上下文環(huán)境的真實(shí)語義。董彥如等[4]提出基于雙向長短期記憶網(wǎng)絡(luò)和標(biāo)簽嵌入的文本分類模型,利用BERT模型提取句子特征,通過Bi-LSTM和注意力機(jī)制得到融合重要上、下文信息的文本表示,進(jìn)行分類。張曉輝等[5]提出基于LSTM的表示學(xué)習(xí)-文本分類模型,首先對文本進(jìn)行初始化文本表示,再對模型進(jìn)行訓(xùn)練提升,提高模型面對復(fù)雜樣本的準(zhǔn)確分類能力,增強(qiáng)模型的泛化性能。陶永才等[6]利用平均池化方法以及最大池化的方法將文本特征做提取,加之注意力機(jī)制的不同權(quán)重配比,對中文新聞?wù)Z料做分類。以上方法中,雖然都對單一的LSTM神經(jīng)網(wǎng)絡(luò)做了相關(guān)改進(jìn),在限定領(lǐng)域的部分范圍內(nèi)取得了一定的效果,但改進(jìn)發(fā)展的相關(guān)模型都無法將文本信息中隱藏的部分關(guān)鍵聯(lián)系進(jìn)行捕獲,對比較復(fù)雜的語義來說分類效果會(huì)有很大不確定性。
萬齊斌等[7]提出基于BiLSTM-Attention-CNN混合神經(jīng)網(wǎng)絡(luò)的分類處理方法。在注意力機(jī)制層之后又進(jìn)行卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,增強(qiáng)了模型特征的表達(dá)能力。李文慧等[8]提出Ad-Attention-BiLSTM模型,通過對嵌入層文本進(jìn)行對抗訓(xùn)練來增加文本的訓(xùn)練過程中的參數(shù)更新,提高最終的文本分類準(zhǔn)確率。姚苗等[9]提出Att-BiLSTMs模型,使用基于自注意力機(jī)制的堆疊雙向長短時(shí)記憶網(wǎng)絡(luò)模型。捕獲上下文隱藏依賴關(guān)系,優(yōu)化短文本特征稀疏的問題。上述方法中Ad-Attention-BiLSTM模型存在著擾動(dòng)參數(shù)單一化,固定化,無法準(zhǔn)確把握噪聲大小的缺點(diǎn);而Att-BiLSTMs模型則沒有考慮到文本的健壯性和更深層次參數(shù)的重要性。
Bi-LSTM的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。圖中h(t)代表前一層次的初始數(shù)值,w(t)代表詞向量。
圖1 Bi-LSTM網(wǎng)絡(luò)
考慮到短文本的語義特征較少,同時(shí)文本是高維的。故為了實(shí)現(xiàn)文本分類的準(zhǔn)確率,在傳統(tǒng)的Bi-LSTM網(wǎng)絡(luò)結(jié)構(gòu)上進(jìn)行改進(jìn),提出融合對抗訓(xùn)練自注意力多層雙向長短期記憶網(wǎng)絡(luò)(Con-Att-BiLSTMs)模型,對文本信息進(jìn)行充分挖掘,并運(yùn)用了分類對抗訓(xùn)練的方式對模型進(jìn)行訓(xùn)練。
文本分類方法的整體架構(gòu)如圖2所示。整體架構(gòu)包括詞嵌入層、Bi-LSTM層、注意力機(jī)制層和softmax這4個(gè)過程,可分為文本依賴關(guān)系學(xué)習(xí)和局部關(guān)鍵信息學(xué)習(xí)兩個(gè)階段。首先,在文本的嵌入過程中使用對抗訓(xùn)練加Dropout等多種正則化方式結(jié)合,并應(yīng)用自注意力動(dòng)態(tài)調(diào)配擾動(dòng)參數(shù),更合理控制噪聲大小,增強(qiáng)模型的健壯性和抗干擾能力;其次,使用雙層雙向長短期記憶網(wǎng)絡(luò)交叉獲取隱藏在文本深處的參數(shù)信息特征信息,挖掘文本中隱藏的深層次關(guān)鍵依賴關(guān)系特征,進(jìn)而獲取更深層次的隱含依賴關(guān)系。最后,通過注意力機(jī)制對短文本中關(guān)鍵信息進(jìn)行加權(quán),對重要的內(nèi)容分配更多注意力,再利用softmax分類器進(jìn)行文本分類。總的來說,所提方法以多層Bi-LSTM網(wǎng)絡(luò)結(jié)構(gòu)為核心,使用對抗訓(xùn)練是對Bi-LSTM網(wǎng)絡(luò)健壯性和防止過擬合的保證,而注意力機(jī)制是對Bi-LSTM網(wǎng)絡(luò)捕獲信息的突出顯示。
圖2 Con-Att-BiLSTMs模型
深度學(xué)習(xí)模型在防止模型過擬合的處理以及準(zhǔn)確對語義進(jìn)行泛化方面通常有以下幾種解決方法:①使用參數(shù)范數(shù)懲罰對模型進(jìn)行簡化,增強(qiáng)泛化能力,如L2正則化方法;②增加網(wǎng)絡(luò)層級,提高抗干擾能力,如使用Dropout;③增加必要的擾動(dòng),避免模型過擬合等,如引入對抗訓(xùn)練。
參數(shù)范數(shù)懲罰、噪聲注入及對抗訓(xùn)練都是深度學(xué)習(xí)的幾種正則化的方法之一。使用參數(shù)范數(shù)懲罰常用的是L2正則化方法,通常將其形容為“正則化逼近”,即通常只懲罰權(quán)重,不懲罰偏置。噪聲注入的正則化方式又包括:在輸入數(shù)據(jù)中注入噪聲(等價(jià)于權(quán)重的范數(shù)懲罰)、向隱藏單元添加噪聲(如Dropout)、將噪聲添加到權(quán)重。對抗訓(xùn)練則是通過產(chǎn)生錯(cuò)誤分類模型樣本并加入到訓(xùn)練集中,進(jìn)而對模型的分類準(zhǔn)確度進(jìn)行提升,使之擁有更好的泛化能力。
噪聲注入中向隱藏單元注入噪聲,如Dropout,原理是讓一些參數(shù)失效。在每一次的訓(xùn)練中,隨機(jī)的選取一部分的點(diǎn),將這些參數(shù)進(jìn)行隱藏,值置為0。因?yàn)槊恳淮斡?xùn)練,都隱藏了不同的權(quán)值,相當(dāng)于多次不同新網(wǎng)絡(luò)的復(fù)合疊加,得到各種情況的結(jié)果并復(fù)合輸出,使得獲取的信息特征更豐富。此時(shí)的網(wǎng)絡(luò)相比于最初的較復(fù)雜的網(wǎng)絡(luò)進(jìn)行了簡化,從而可以減少過擬合的發(fā)生。一般來講,疊加而成的組合網(wǎng)絡(luò)要優(yōu)于單一網(wǎng)絡(luò),因?yàn)榻M合網(wǎng)絡(luò)能夠捕捉到更多的隨機(jī)因素。同樣的,采用了Dropout以后,網(wǎng)絡(luò)的性能一般也比沒有使用Dropout的網(wǎng)絡(luò)要好。
對抗訓(xùn)練也是正則化方法之一。Miyato T等[10]在半監(jiān)督狀態(tài)的文本訓(xùn)練分類中加入了對抗訓(xùn)練擾動(dòng),并引入虛擬訓(xùn)練,有效避免了過擬合情況的發(fā)生。陳潤琳等[11]提出將注意力機(jī)制與對抗多任務(wù)學(xué)習(xí)相結(jié)合,在數(shù)據(jù)初始時(shí)即將注意力機(jī)制引入并分出一部分原始文本做對抗集,進(jìn)行對抗訓(xùn)練,得到多任務(wù)分類模型。為避免模型存在著擾動(dòng)參數(shù)單一化、固定化、無法準(zhǔn)確把握噪聲大小的缺點(diǎn),故采用對抗訓(xùn)練加Dropout正則化的方式,使用自注意力機(jī)制動(dòng)態(tài)分配擾動(dòng)參數(shù)進(jìn)行輸入,通過計(jì)算得到不同程度的對抗樣本,從而提升模型的性能,防止過擬合。輸入層對抗訓(xùn)練擾動(dòng)模型結(jié)構(gòu)如圖3所示。
圖3 輸入層對抗訓(xùn)練擾動(dòng)模型
在Bi-LSTM網(wǎng)絡(luò)中,不同層級的LSTM有不同的職責(zé),每個(gè)LSTM又有輸出門、記憶單元、輸入門等對數(shù)據(jù)進(jìn)行選擇性丟棄、更新、輸入。這3種機(jī)制的運(yùn)算公式可簡單概括為以下公式,激活函數(shù)如式(1)所示
sigmoidft=δ(Wf·X+bf)
(1)
輸入門信息更新如式(2)所示
it=δ(Wi·X+bi)
(2)
輸出門信息更新如式(3)所示
ot=δ(Wo·X+bo)
(3)
單元狀態(tài)信息更新如式(4)所示
ct=ft⊙ct-1+it⊙tanh(Wc·X+bc)
(4)
t時(shí)刻隱層狀態(tài)信息更新如式(5)所示
h(t)=ot⊙tanh(ct)
(5)
Bi-LSTM雙層網(wǎng)絡(luò)模型結(jié)構(gòu)如圖4所示。多重輸入更新、多重丟棄、多重輸入,使得模型的穩(wěn)定性和可解釋的上下文語義復(fù)雜性得到顯著提升,有利于對上下文語義依賴關(guān)系的深度挖掘。
圖4 雙層Bi-LSTM結(jié)構(gòu)
該模型是充分利用噪聲集的優(yōu)勢,在詞向量輸入多層級的Bi-LSTM結(jié)構(gòu)時(shí)加入噪聲因素,改變一層不變的詞向量特征,深層學(xué)習(xí)不同特征缺失的情況下語義的不同結(jié)果體現(xiàn)。首先,選擇合適的數(shù)據(jù)集并劃分噪聲集、測試集及訓(xùn)練集;其次,對數(shù)據(jù)集進(jìn)行去停用詞等處理,加入噪聲進(jìn)行擾動(dòng)對抗訓(xùn)練,利用多層級的Bi-LSTM結(jié)構(gòu)做反復(fù)多輪的訓(xùn)練學(xué)習(xí),利用Dropout層隨機(jī)忽略部分特征的機(jī)制,深層學(xué)習(xí)上下文的語義信息,隨之利用嵌入層可以做長遠(yuǎn)距離學(xué)習(xí)的特性,對不同時(shí)間序列中通過的文本做語義特征輸出,轉(zhuǎn)化為向量矩陣;最后利用注意力機(jī)制分配不同權(quán)重,增強(qiáng)關(guān)鍵詞的權(quán)重比例,弱化冗余特征的影響。經(jīng)過多次實(shí)驗(yàn),因?yàn)閮蓪覤i-LSTM結(jié)構(gòu)相較于一層和三層等結(jié)構(gòu)有迭代耗時(shí)短、訓(xùn)練耗時(shí)短、分類準(zhǔn)確率較高的優(yōu)點(diǎn),且能更好挖掘潛在的上下文依賴關(guān)系,故采用兩層Bi-LSTM。具體公式如下
e(ωi)=Wwordvi
(6)
(7)
注意力機(jī)制(Attention)是為了反映不同的特征詞于整個(gè)文本所屬類別分類時(shí)所貢獻(xiàn)的程度而產(chǎn)生的。已在很多領(lǐng)域得到應(yīng)用,如Kelvin Xu等[12]將注意力機(jī)制應(yīng)用于圖像標(biāo)注,增加了特征屬性。Zichao Yang等[13]在RNN中引入注意力機(jī)制來解決文本分類問題。自注意力機(jī)制(Self-attention)是注意力機(jī)制的一種,該機(jī)制只對同一層級的信息實(shí)現(xiàn)高效并行分析,不需要考慮下一層級的信息。注意力函數(shù)本質(zhì)類似于非關(guān)系型數(shù)據(jù)庫,可以將其看作是多個(gè)查詢(Query)對多個(gè)鍵值對(key-value)的關(guān)系映射的集合,每一個(gè)鍵值對都是這個(gè)集合內(nèi)的一個(gè)元素,存儲(chǔ)時(shí)也是按照鍵值對的形式存入對應(yīng)元素地址,當(dāng)進(jìn)行查詢時(shí),存儲(chǔ)器就通過映射輸出Value值,即Attention值。先使用相似性計(jì)算函數(shù),如式(8)
(8)
再用softmax進(jìn)行歸一化處理得到概率分布,如式(9)
(9)
最后根據(jù)權(quán)重系數(shù)對Value進(jìn)行加權(quán)求和,如式(10)
(10)
注意力機(jī)制就是對重要的內(nèi)容分配更多注意力,對其它不太重要的內(nèi)容分配較少的注意力。相較于直接把輸出向量加權(quán)取平均,加入注意力機(jī)制的Bi-LSTM網(wǎng)絡(luò)結(jié)構(gòu),避免了保留原文本大量冗余和噪聲的結(jié)果再次通過取平均值被保留下來,導(dǎo)致分類精度不足。
處理器為Inter(R) Core(TM) i5-9300H CPU @2.40 GHz,RAM 16 G。開發(fā)環(huán)境為python 3.5,使用tensorflow框架,開發(fā)工具為JetBrains PyCharm。為驗(yàn)證提出方法的可行性設(shè)計(jì)了以下實(shí)驗(yàn)。
實(shí)驗(yàn)語料來自維基百科的DBpedia分類數(shù)據(jù)集,該數(shù)據(jù)集有訓(xùn)練集560 000條,測試集70 000條,總計(jì)類別14種。隨機(jī)選取總訓(xùn)練集的7%(即39 200條)和8%(即44 800條)以及測試集的10%(即7000條)進(jìn)行實(shí)驗(yàn)驗(yàn)證。文本內(nèi)容由文本標(biāo)題、文本內(nèi)容、文本類別組成。
為保證結(jié)果的普遍性,采用隨機(jī)輸入的方式進(jìn)行實(shí)驗(yàn)驗(yàn)證。評價(jià)指標(biāo)采用微平均F1值和宏平均F1值。
(1)模型參數(shù)設(shè)置
詳細(xì)設(shè)置見表1。
表1 模型參數(shù)
max_document_length為最大文檔長度,hidden_size為雙層Bi-LSTM的隱藏層節(jié)點(diǎn)數(shù),embedding_size為詞向量維度,batch_size為單次迭代訓(xùn)練批處理樣本個(gè)數(shù),max_label為最大標(biāo)簽數(shù)量,epochs為模型訓(xùn)練達(dá)最優(yōu)的迭代次數(shù),num_layers為Con-Att-BiLSTMs模型中Bi-LSTM的層數(shù)。
(2)embedding_size取值對實(shí)驗(yàn)結(jié)果的影響
在DBpedia數(shù)據(jù)集中選取39 200條訓(xùn)練集,7000條測試集,對詞向量的維度分別取值為64、128、256、512維實(shí)驗(yàn),結(jié)果見表2。
表2 embedding_size與模型性能的關(guān)系
從表2對比可以看出,模型的性能隨著嵌入維度的變化而變化,但嵌入的維度不能無限制的擴(kuò)大,否則會(huì)導(dǎo)致迭代耗時(shí)嚴(yán)重的問題。在選取的4個(gè)維度中,當(dāng)維度到達(dá)256時(shí),模型的性能開始達(dá)到峰值,微平均和宏平均的F1值都最高,當(dāng)維度為512時(shí),優(yōu)于時(shí)間開銷大大增加,且容易發(fā)生過擬合。
(3)num_layers取值對實(shí)驗(yàn)結(jié)果的影響
Con-Att-BiLSTMs模型中,Bi-LSTM的層數(shù)與模型的復(fù)雜度和模型的分類性能息息相關(guān)。在DBpedia數(shù)據(jù)集中選取39 200訓(xùn)練集,7000測試集,對num_layers分別取不同的值進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果見表3。
由表3中數(shù)據(jù)對比可知,Bi-LSTM取值的層數(shù)也會(huì)直接影響最終模型的性能。當(dāng)num_layers取值為2時(shí),模型
表3 num_layers與模型性能的關(guān)系
的微平均及宏平均都較取值為1和3時(shí)有不同程度的提高,這是因?yàn)閷訑?shù)少,模型無法深層挖掘潛在上下文關(guān)系,層數(shù)太多,容易出現(xiàn)過擬合且使得效率變慢。鑒于雙層的雙向長短期記憶神經(jīng)網(wǎng)絡(luò)比之一、三層結(jié)構(gòu)有更明顯的運(yùn)行迭代用時(shí)少、效率高的優(yōu)勢,且能充分挖掘深層次依賴關(guān)系,所以最終采用兩層Bi-LSTM。
在DBpedia數(shù)據(jù)集上,將提出的Con-Att-BiLSTMs方法與短文本分類模型Attention-LSTM、Attention-BiLSTM、Ad-Attention-BiLSTM、CNN-LSTM、Att-BiLSTMs作對比來驗(yàn)證本文提出的方法優(yōu)劣。結(jié)果見表4。
表4 Con-Att-BiLSTMs與其它模型對比
表4實(shí)驗(yàn)中的數(shù)據(jù)集數(shù)量占比按總數(shù)據(jù)集的7%(即39 200條數(shù)據(jù))和8%(即44 800條數(shù)據(jù))取值??紤]到選取的訓(xùn)練數(shù)據(jù)集單一時(shí),可能會(huì)對模型的反映能力出現(xiàn)偏差,所以選擇兩組數(shù)據(jù)作對比參考。
當(dāng)數(shù)據(jù)量為39 200條時(shí),Attention-LSTM模型的準(zhǔn)確率很低,對文本語義的理解偏差較大,微平均F1值相較于其它模型較低,僅為87.19%,宏平均F1值也較低,為86.75。這是因?yàn)锳ttention-LSTM模型中,單向的長短期記憶網(wǎng)絡(luò)做不到將語義前文對后文進(jìn)行反向反饋捕獲,導(dǎo)致無法充分的挖掘上下文語義信息。當(dāng)訓(xùn)練數(shù)據(jù)量較少時(shí),深度學(xué)習(xí)模型很難準(zhǔn)確學(xué)習(xí)并找到文本信息準(zhǔn)確的語義,但將單向LSTM網(wǎng)絡(luò)轉(zhuǎn)變?yōu)锽i-LSTM網(wǎng)絡(luò)時(shí),模型對文本上下文信息的挖掘能力得到很大提高,故而Attention-BiLSTM模型的微平均F1和宏平均F1優(yōu)于Attention-LSTM模型;而當(dāng)數(shù)據(jù)集較少時(shí),Attention-BiLSTM模型對文本的冗余特征和非冗余特征的容易發(fā)生誤判,故會(huì)使得分類結(jié)果錯(cuò)誤的情況發(fā)生,當(dāng)加入噪聲進(jìn)行對抗練習(xí)后,模型的健壯性有了很大改觀,所以Ad-Attention-BiLSTM模型的微平均F1值和宏平均F1值都略優(yōu)于Attention-BiLSTM模型。CNN-LSTM模型對CNN網(wǎng)絡(luò)做了改進(jìn)并與LSTM進(jìn)行了結(jié)合,但單向的LSTM缺乏對上下文語義信息深度挖掘能力,導(dǎo)致該模型性能較其它幾種模型的性能較差。Con-Att-BiLSTMs模型和Att-BiLSTMs模型都使用了雙層的Bi-LSTM網(wǎng)絡(luò)結(jié)構(gòu),但Con-Att-BiLSTMs模型在對抗訓(xùn)練擾動(dòng)結(jié)合Dropout的正則化方式對嵌入層數(shù)據(jù)進(jìn)行增強(qiáng)的基礎(chǔ)上,引入自注意力機(jī)制加強(qiáng)文本關(guān)鍵信息特征權(quán)重并使用雙層Bi-LSTM網(wǎng)絡(luò)對輸入的信息進(jìn)行提取,而且使得模型的微平均F1值和宏平均F1值皆高于其它5種模型,分別為95.80%、95.47%。當(dāng)數(shù)據(jù)集為44 800條時(shí),結(jié)論與數(shù)據(jù)量為39 200條時(shí)基本一致,因此Con-Att-BiLSTMs模型整體性能要優(yōu)于其它5種模型。
在實(shí)驗(yàn)中,將多種正則化的方式相結(jié)合不僅能使模型在做文本分類任務(wù)時(shí)得到更高的準(zhǔn)確率,還提高了詞嵌入的質(zhì)量和實(shí)驗(yàn)?zāi)P偷目乖肼暩蓴_能力,擁有更廣泛的代表性和防過擬合能力。當(dāng)數(shù)據(jù)集的數(shù)量相對較少時(shí),對文本分類也有很高的準(zhǔn)確率,但是仍然有不足之處。在對文本中的每個(gè)詞進(jìn)行遍歷時(shí),迭代過程比較緩慢,準(zhǔn)確率得到提高的同時(shí),數(shù)據(jù)集訓(xùn)練所需時(shí)間要略高于其它方法,后續(xù)研究考慮使用其它改進(jìn)方法,縮短迭代的時(shí)間并在不同的數(shù)據(jù)集上進(jìn)行驗(yàn)證。