邱寧佳,楊長庚,王 鵬,任 濤
長春理工大學(xué) 計算機(jī)科學(xué)技術(shù)學(xué)院,長春 130022
隨著時代的發(fā)展,互聯(lián)網(wǎng)上的文本數(shù)據(jù)呈指數(shù)級增長,如何從海量的文本數(shù)據(jù)中準(zhǔn)確地識別出文章的主題類別,已成為當(dāng)下廣泛關(guān)注的問題。主題識別通過將文本處理成計算機(jī)能夠理解的數(shù)據(jù),從中提取、歸納出文本主題類別的過程,是數(shù)據(jù)挖掘領(lǐng)域的研究熱點(diǎn)之一。Blei等人[1]提出隱含狄利克雷分布(latent Dirichlet allocation,LDA)主題模型,利用文章中詞語的共現(xiàn)信息挖掘文中隱含的主題信息。Mikolov等人[2]提出Word2vec詞向量模型CBOW和Skip-gram,利用詞語的局部上下文詞訓(xùn)練獲得詞向量,能夠保留詞語的上下文語義關(guān)系。陳培新等人[3]提出一種新的文檔特征表示方法,將概率主題模型學(xué)習(xí)到的文檔主題向量與卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)學(xué)習(xí)到的文檔語義向量進(jìn)行融合,實(shí)驗(yàn)結(jié)果表明,融合后的文檔特征表示比單一向量表示具有更好的文本主題分類性能。陳文實(shí)等人[4]提出一種深度主題特征提取模型,將長短時記憶單元(long-short term memory,LSTM)提取的文檔上下文語義特征與LDA主題模型學(xué)習(xí)到的全局語義特征結(jié)合,實(shí)驗(yàn)證明這種模型能夠更全面地表征文本,提高模型的分類能力。劉心惠等人[5]提出一種基于聯(lián)合模型的文本分類方法,利用膠囊網(wǎng)絡(luò)提取文檔的局部特征,BiLSTM提取文檔的全局特征,通過將兩者融合獲得更為豐富的文本特征。Gu等人[6]將LDA主題模型學(xué)習(xí)到的潛在語義信息引入到神經(jīng)網(wǎng)絡(luò)中以改善短文本分類任務(wù)中的歧義問題。Zhou等人[7]提出一種篇章級的文檔表示方法,將文檔對應(yīng)的Word2vec詞向量表示與LDA主題模型表示進(jìn)行融合,在多個數(shù)據(jù)集上實(shí)驗(yàn)表明,這種方法能夠改善模型的分類效果。Kim[8]提出一種結(jié)構(gòu)簡單的卷積神經(jīng)網(wǎng)絡(luò)模型,使用Word2vec詞向量矩陣作為輸入文檔的向量表示,在多個實(shí)驗(yàn)任務(wù)中均取得了不錯效果。Tao等人[9]將注意力機(jī)制與卷積神經(jīng)網(wǎng)絡(luò)相結(jié)合,實(shí)驗(yàn)發(fā)現(xiàn)能夠提升分類效果。Baker等人[10]將CNN與詞向量結(jié)合應(yīng)用于生物醫(yī)學(xué)領(lǐng)域,在癌癥領(lǐng)域數(shù)據(jù)集的文本分類任務(wù)中取得了不錯效果。曾凡鋒等人[11]使用Word2vec詞向量作為文本的向量化表示,彌補(bǔ)了傳統(tǒng)詞袋模型信息損失的缺點(diǎn)。Zhou等人[12]使用CNN提取文本的局部特征,然后輸入給LSTM學(xué)習(xí)句子的長距離依賴,這種方法能夠很好地捕捉到文本的語義信息。王海濤等人[13]使用Word2vec將文本轉(zhuǎn)為為低維的向量表示,分別使用LSTM與CNN對詞向量進(jìn)行特征提取,解決深層神經(jīng)網(wǎng)絡(luò)提取特征時的特征丟失問題。蔡林森等人[14]通過計算文檔中各個詞語的權(quán)重完成詞語的向量化操作,利用CNN進(jìn)行情感分析,取得了較好的實(shí)驗(yàn)效果。賴文輝等人[15]使用詞向量把文本表示成二維矩陣,然后輸入到CNN中完成垃圾短信識別工作。Hu等人[16]提出SENet(squeeze-and-excitation networks)結(jié)構(gòu),從特征通道角度對網(wǎng)絡(luò)進(jìn)行優(yōu)化,取得了較好效果。
通過以上研究發(fā)現(xiàn),模型融合能夠彌補(bǔ)單一模型的缺陷,提高模型的整體性能。為此本文提出一種基于改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)的文本主題識別算法。首先將每個詞對應(yīng)的Word2vec詞向量與LDA主題向量進(jìn)行融合,并依據(jù)詞語對主題類別的貢獻(xiàn)度進(jìn)行加權(quán)提出詞向量融合算法;然后將SENet引入到CNN中構(gòu)建主題識別模型SECNN(squeeze and excitation convolutional neural network,SECNN),利用SENet對卷積層輸出特征圖進(jìn)行建模學(xué)習(xí),依靠其提升重要特征并抑制無用特征的性能,增強(qiáng)模型提取特征的能力;最后使用FDA評估樣本的類別表征能力,提出FDA-SGD(stochastic gradient descent based on Fisher discriminant analysis)算法對模型參數(shù)進(jìn)行優(yōu)化,完成文本主題識別工作。
Word2vec根據(jù)詞語間局部上下文語義信息的相關(guān)性生成詞向量,完成文檔固定維度的實(shí)值向量轉(zhuǎn)化,而這種向量表示存在全局語義表達(dá)缺失和無法突出詞在文檔類別中的重要性等問題。主題向量能夠通過詞在各主題中的概率分布情況完成全局語義表達(dá),Word2vec和LDA相融合能夠更好地表征文本,本文使用Word2vec融合LDA的方式改善主題識別效果,首先將每個詞對應(yīng)的Word2vec詞向量和LDA主題向量進(jìn)行歸一化,然后對向量融合的向量依據(jù)該詞對類別的貢獻(xiàn)度進(jìn)行加權(quán)處理,以突出詞語在文檔類別中的重要性。本文提出的向量融合算法如下所示:
(1)利用Word2vec中的CBOW模型訓(xùn)練語料庫得到詞向量,d表示詞向量的維度,||P為用詞向量訓(xùn)練的整個語料庫的詞表。則語料庫中的每一個詞對應(yīng)的詞向量如式(1)所示:
對于詞wordj,其對應(yīng)的Word2vec詞向量表示為xj=(pj,1,pj,2,…,pj,d)。
(2)在語料庫上采用吉布斯采樣方法訓(xùn)練LDA主題模型,得到的主題-詞矩陣φ如式(2)所示:
|φ|表示主題模型的詞表大小,o表示向量的維度,與詞向量的維度設(shè)置相同。主題-詞矩陣中的每一列可以看成是每一個詞在各個主題下的概率分布,也即是詞的主題向量。對于詞wordj,其對應(yīng)的主題向量表示為yj=(z1,j,z2,j,…,zo,j)。
(3)任意詞wordj,其對應(yīng)的詞向量表示為xj,主題向量表示為yj,考慮到詞向量和主題向量量級上的差別,這里首先將兩種向量通過2-范數(shù)進(jìn)行歸一化,然后再進(jìn)行融合。文獻(xiàn)[17]中提到關(guān)于詞向量的解釋,即詞向量可以表達(dá)語義,詞向量的相加也能表示詞義的組合。因此本文采用相加的向量融合方法,將每個詞對應(yīng)的Word2vec詞向量與主題向量分別歸一化之后相加組成新的向量表示。表示2-范數(shù),則詞wordj新的向量表示如式(3)所示:
利用融合之后的向量構(gòu)建本文主題識別任務(wù)的詞典,如下式(4)所示,||v表示詞典大小。
一篇文檔用式(4)對應(yīng)的詞向量表示為di=[v1′,v2′,…,vm′]T,m表示文檔句子長度。
(4)文本中每一個詞對文本所屬主題類別的貢獻(xiàn)度是不一樣的,原有的詞向量無法突出每個詞的重要程度,因此這里引入權(quán)重因子對詞向量進(jìn)行加權(quán)。權(quán)重因子由兩部分組成,第一是關(guān)鍵詞權(quán)重,關(guān)鍵詞是一篇文章的代表性實(shí)體,通過關(guān)鍵詞可以了解到文章的主題,其對文本所屬主題的貢獻(xiàn)度高于其他詞;第二是主題權(quán)重,在主題識別任務(wù)中,如果詞語wordj在某幾個主題中出現(xiàn)的次數(shù)比較多,而在另外幾個主題中出現(xiàn)的次數(shù)比較少,則說明該詞對文本所屬主題有一定的貢獻(xiàn)度,這一點(diǎn)在原有詞向量中是沒有體現(xiàn)出來的。因此,本文提出首先使用TextRank算法計算文本中的關(guān)鍵詞,得到關(guān)鍵詞權(quán)重,然后計算關(guān)鍵詞對應(yīng)的主題權(quán)重,將得到的關(guān)鍵詞權(quán)重與主題權(quán)重相乘組成詞的權(quán)重因子,最后將權(quán)重因子與對應(yīng)的詞向量相乘完成詞向量加權(quán)。
使用基于圖的TextRank算法從文檔di中提取關(guān)鍵詞,將文檔中每個詞映射為圖的節(jié)點(diǎn),詞語在預(yù)先設(shè)定好窗口內(nèi)的共現(xiàn)關(guān)系映射為節(jié)點(diǎn)的連邊,隨機(jī)初始化節(jié)點(diǎn)Vj和Vi的邊的初始權(quán)重wji,依據(jù)公式(5)迭代計算各節(jié)點(diǎn)的權(quán)重直到收斂,a表示阻尼系數(shù),nt(V)表示節(jié)點(diǎn)V的相鄰節(jié)點(diǎn)集合。
獲得文檔中詞語的權(quán)重之后,為了簡化計算,僅取出權(quán)重排名前k的詞來組成關(guān)鍵詞集合kword={kd1,kd2,…,kdk}。針對于每一篇文檔,通過式(6)獲取詞wordj的權(quán)重因子g(wordj),權(quán)重因子代表了該詞的重要程度。
計算文本中關(guān)鍵詞所對應(yīng)的主題權(quán)重,主題權(quán)重反應(yīng)的是詞語在不同主題中的分布情況,主題權(quán)重越大,則說明詞語在各個主題中的分布差異越大,相應(yīng)的,對主題識別的貢獻(xiàn)度也就越大,主題權(quán)重的計算如式(7)所示:
其中,ηj表示詞wordj的主題權(quán)重,b表示主題類別數(shù),df(bi,wordj)表示類別bi中包含詞語wordj的文本個數(shù),df(D,wordj)表示在整個語料庫D中包含詞語wordj的文本個數(shù)。
詞語wordj的加權(quán)詞向量表示如式(8)所示:
其中,vj表示加權(quán)后的詞向量,符號代表按元素乘,則文檔di的加權(quán)詞向量表示為di=[v1,v2,…,vm]T。
本文在后續(xù)的模型訓(xùn)練的過程中采用動態(tài)的詞向量訓(xùn)練方法,即在模型的訓(xùn)練過程中把詞向量也作為可優(yōu)化的參數(shù),詞向量隨著模型訓(xùn)練動態(tài)地進(jìn)行調(diào)整和優(yōu)化,使之更好地適應(yīng)任務(wù)。由于該算法是采用先訓(xùn)練Word2vec詞向量與主題向量再將兩者進(jìn)行融合的方式,在獲取文檔中詞對應(yīng)的詞向量時只需在詞典中找到該詞對應(yīng)融合之后的詞向量,然后將該詞的權(quán)重因子與詞向量相乘即可獲得文檔中詞對應(yīng)的加權(quán)詞向量,所以獲取詞對應(yīng)加權(quán)詞向量的時間主要花費(fèi)在了計算該詞的權(quán)重因子上,而權(quán)重因子的計算與當(dāng)前的文檔長度相關(guān),因此該算法的時間復(fù)雜度為O(n)。
此算法得到的文檔向量比單一的Word2vec詞向量表示更能表征文本,使用此算法獲得的文檔向量作為神經(jīng)網(wǎng)絡(luò)的特征表示進(jìn)行學(xué)習(xí),有助于提升模型的性能。
卷積神經(jīng)網(wǎng)絡(luò)通過多個不同大小的卷積核實(shí)現(xiàn)對輸入文檔內(nèi)容的特征提取,不同卷積核產(chǎn)生的大量特征圖會對主題識別產(chǎn)生不同的影響。向量融合后,文檔的語義特征分布具有不確定性,為了讓模型更關(guān)注于對主題識別任務(wù)有益的特征,將SENet中的SE模塊引入到卷積神經(jīng)網(wǎng)絡(luò)中,設(shè)計出適用于主題識別任務(wù)的SECNN模型,對特征圖的重要程度進(jìn)行建模學(xué)習(xí),依據(jù)重要程度去增強(qiáng)有用特征并抑制無用特征,提高模型提取特征的能力,進(jìn)而改善主題識別效果。SECNN模型由輸入層、卷積層、SE層、池化層、全連接和Softmax層組成,模型結(jié)構(gòu)圖如圖1所示。
圖1 SECNN模型結(jié)構(gòu)Fig.1 SECNN model structure
(1)輸入層
將文檔中的每個詞對應(yīng)的詞向量進(jìn)行拼接組成文檔矩陣作為模型的輸入。對句子長度為m的文檔構(gòu)建的輸入層文檔詞向量矩陣v1:m∈?m×d如式(9)所示,d為詞向量的維度。
其中,vi∈?d表示文檔中的第i個詞對應(yīng)的d維詞向量表示,相應(yīng)的vi:i+j表示vi,vi+1,…,vi+j。對于長度小于m的文檔作必要的補(bǔ)0操作。
(2)卷積層
卷積層采用不同大小的卷積核對尺寸為m×d的詞向量矩陣進(jìn)行特征提取,卷積核的高度l分別設(shè)為3、4、5,每種高度的卷積核各輸出128個特征圖,每個文檔都設(shè)定一個固定大小的滑動窗口{v1:l,v2:l+1,…,vm-l+1:m},則高度為l的卷積核在窗口xi:i+l-1上進(jìn)行一次卷積操作,得到一個特征hi,在每一個設(shè)定的滑動窗口上進(jìn)行一輪完整的卷積后,就得到一個特征圖Y∈?m-l+1,如式(10)、(11)所示:
(3)SE層
SE模塊的特點(diǎn)是能夠?qū)μ卣魍ǖ乐g的關(guān)系進(jìn)行建模,讓模型主動學(xué)習(xí)為每個特征圖的重要性進(jìn)行賦值,突出重要特征權(quán)重而抑制對識別任務(wù)不重要特征的權(quán)重,增強(qiáng)網(wǎng)絡(luò)多特征圖中不同特征的表征能力。
每種高度的卷積核輸出特征圖的通道數(shù)為C,SE層將卷積層輸出的特征圖作為輸入,首先對特征圖的每個特征通道Yc做全局平均池化操作,得到壓縮后的特征圖zc,如式(12)所示。其是將每個二維的特征壓縮成一個一維實(shí)數(shù),這個實(shí)數(shù)某種程度上具有該特征通道的全局感受野,輸出的維度與輸入的特征通道數(shù)相匹配。
其中,W′、H′表示特征圖的尺寸,c∈{1,C}。
接著通過兩個全連接操作,訓(xùn)練參數(shù)W1和W2對每個特征通道重要程度的識別能力,突出對主題識別任務(wù)重要的特征,通過Sigmoid函數(shù)得到歸一化之后的權(quán)重向量S如式(13)所示:
其中,δ表示ReLU激活函數(shù),σ表示Sigmoid激活函數(shù),,r表示中間層的隱層節(jié)點(diǎn)數(shù)。
最后通過乘法將權(quán)重向量逐通道加權(quán)到原始特征圖上,得到最終輸出,完成在通道維度上對原始特征的重標(biāo)定,加權(quán)特征圖與原始特征圖有相同的維度大小,如式(14)所示:
其中,Sc表示相應(yīng)特征圖對應(yīng)的權(quán)重向量,符號?表示向量積運(yùn)算。
(4)池化層
通過SE層對卷積層輸出特征圖的加權(quán)處理,對帶權(quán)重的特征圖進(jìn)行最大池化操作來提取最優(yōu)特征,如式(15)所示:
即為池化層提取到的特征,每種高度下卷積核生成128個特征圖,經(jīng)過池化層之后,三種不同高度的卷積核共得到384個特征,將這些特征拼接后得到384×1的特征向量。
(5)全連接和Softmax層
將得到的特征向量作為全連接層的輸入,經(jīng)過Softmax函數(shù)進(jìn)行分類識別訓(xùn)練,全連接層輸出的節(jié)點(diǎn)數(shù)即為識別的類別數(shù),每一個節(jié)點(diǎn)分別對應(yīng)一個類別。為了防止在模型訓(xùn)練時出現(xiàn)過擬合,參考Kim[8]的策略在特征向量A上加入Dropout,即以一定的概率將特征向量中的值置為0,如式(16)所示:
其中,y表示主題識別的類別,wy為權(quán)值矩陣,by表示偏置項(xiàng),符號°表示對應(yīng)位元素相乘,r是服從Bernoulli分布的向量,其以p的概率等于1。
使用詞向量融合算法獲得文檔的向量化表示之后,輸入進(jìn)SECNN模型進(jìn)行主題識別訓(xùn)練,為了進(jìn)一步提高模型的主題識別效果,本文提出FDA-SGD算法對模型參數(shù)進(jìn)行優(yōu)化。
傳統(tǒng)的隨機(jī)梯度下降算法采取每次選擇一個樣本對模型參數(shù)進(jìn)行更新的策略,具有訓(xùn)練速度快的優(yōu)點(diǎn),但是由于每次選擇樣本的隨機(jī)性,使得模型更新迭代時并不總是向著優(yōu)化方向進(jìn)行,導(dǎo)致模型訓(xùn)練時損失函數(shù)上下波動較大,模型收斂速度慢。針對此問題,本文提出一種改進(jìn)的隨機(jī)梯度下降算法FDA-SGD,算法使用FDA計算特征的類間離散度與類內(nèi)離散度,并以此來評估特征的類別表征能力大小,即是特征的類間離散度越大、類內(nèi)離散度越小,特征的類別表征能力越大,包含這些特征的樣本類別表征能力越大。算法計算出每個樣本所含全部特征的類別表征能力大小,從樣本集中挑選出更具類別代表性的單一樣本對模型參數(shù)進(jìn)行更新,降低隨機(jī)選擇樣本致使模型向著非優(yōu)化方向進(jìn)行的概率,解決傳統(tǒng)隨機(jī)梯度下降算法模型訓(xùn)練時損失函數(shù)波動大、收斂速度慢問題。參數(shù)更新公式如式(17)所示:
其中,θ為優(yōu)化參數(shù),μ為學(xué)習(xí)率,?θJ(θ)為參數(shù)梯度。
為了衡量模型預(yù)測主題與實(shí)際主題之間的差距,使用交叉熵代價函數(shù)來對模型進(jìn)行優(yōu)化,交叉熵代價函數(shù)如式(18)所示:
其中,n表示訓(xùn)練集大小,b表示主題類別數(shù),y表示預(yù)測類別,?為實(shí)際類別,為正則項(xiàng)。
算法1FDA-SGD改進(jìn)算法
輸入:帶有類別標(biāo)簽訓(xùn)練樣本集合D={d1:e1,d2:e2,…,dn:en},ei∈E,誤差函數(shù)loss,學(xué)習(xí)率μ,迭代終止閾值p
輸出:更新后的參數(shù)θ
1.初始化樣本集中每個樣本所含特征對應(yīng)的特征值大小dλi=0
2.FDA算法求特征類別表征能力
3.計算特征的類內(nèi)散度矩陣Sw和類間散度矩陣Sb
使用FDA評估樣本的類別表征能力并挑選出更具類別表征能力的樣本進(jìn)行模型參數(shù)更新,降低模型隨機(jī)選擇樣本使其朝著非優(yōu)化方向發(fā)展的概率,進(jìn)而減小模型訓(xùn)練時損失函數(shù)的波動和加快收斂速度。
在進(jìn)行文本主題識別時,為了提高主題識別準(zhǔn)確率,本文首先使用詞向量融合算法將每個詞對應(yīng)的Word2vec詞向量與LDA主題向量進(jìn)行融合,并依據(jù)詞語對主題的貢獻(xiàn)度進(jìn)行加權(quán)處理,得到文檔的向量化表示,然后使用SECNN模型對文檔向量進(jìn)行特征提取并進(jìn)行主題識別訓(xùn)練,最后使用改進(jìn)的FDA-SGD算法對模型整體進(jìn)行優(yōu)化,完成文本主題識別任務(wù)。模型整體解決方案如圖2所示。
圖2 文本主題識別模型Fig.2 Text topic recognition model
實(shí)驗(yàn)使用公開新聞?wù)Z料庫THUCNews,包含14個主題,本文選取其中的財經(jīng)、房產(chǎn)、股票、家居、教育、科技、社會、時尚、時政、體育、游戲、娛樂12個主題進(jìn)行主題識別實(shí)驗(yàn),每個主題抽取13 000條文本,劃分的訓(xùn)練集、驗(yàn)證集、測試集分別為10 000、1 000、2 000,共計156 000條文本。
主題識別采用準(zhǔn)確率(Precision)、召回率(Recall)、F1值作為評價標(biāo)準(zhǔn),這些指標(biāo)的計算所用到的混淆矩陣如表1所示。
表1 混淆矩陣Table 1 Confusion matrix
準(zhǔn)確率是模型識別為A主題的所有結(jié)果中,模型識別正確所占的比重,如式(19)所示:
召回率是實(shí)際屬于A主題的所有結(jié)果中,模型識別正確所占的比重,如式(20)所示:
F1值是精確率與召回率的調(diào)和平均值,如式(21)所示:
實(shí)驗(yàn)采用谷歌開源TensorFlow框架,編程語言為python3.6,使用工具包Gensim在THUCNews語料庫中訓(xùn)練Word2vec詞向量和LDA主題向量,詞向量維度設(shè)為300。CNN使用3種尺寸的卷積核對文本進(jìn)行卷積操作,分別為3、4、5,每種尺寸的卷積核數(shù)量設(shè)為128。為了防止過擬合,在全連接層采用Dropout策略,Dropout概率值為0.5,即隨機(jī)選擇一半的參數(shù)丟棄。CNN模型訓(xùn)練的參數(shù)設(shè)置如表2所示。
表2 CNN參數(shù)設(shè)置表Table 2 CNN parameter setting table
實(shí)驗(yàn)1詞向量融合算法性能驗(yàn)證
為了驗(yàn)證改進(jìn)詞向量融合算法的有效性,采用四種文檔向量化方式作對比實(shí)驗(yàn),分別為單一Word2vec詞向量(W2V)和Glove詞向量(Glove)、傳統(tǒng)onehot向量(one-hot)和本文提出的融合詞向量(W2V+LDA),選擇SECNN作為主題識別模型,實(shí)驗(yàn)結(jié)果如圖3所示。
從圖3可以看出,采用onehot方法表示的主題識別結(jié)果相比而言效果最差,這種文檔表示方法忽略了詞語間的語義相關(guān)性,也沒有考慮詞語的順序,不是一種理想的文檔表示方法。Glove的準(zhǔn)確率增幅比較明顯,達(dá)到了96.0%,說明利用語料庫的全局統(tǒng)計信息與詞語間的共現(xiàn)矩陣訓(xùn)練詞向量,能夠提升準(zhǔn)確率。Word2vec的準(zhǔn)確率、召回率、F1分別為94.6%、95.0%、94.8%,整體取得了較好結(jié)果,但由于單一的Word2vec僅能表示詞語的局部上下文語義信息,與本文提出的詞向量融合算法生成的詞向量相比還是存在一定差距,而本文提出的詞向量融合算法在三個指標(biāo)值上均取得了良好表現(xiàn),說明將Word2vec詞向量與LDA主題向量進(jìn)行融合,并依據(jù)詞語對類別的貢獻(xiàn)度進(jìn)行加權(quán)處理,能夠較好地彌補(bǔ)單一Word2vec詞向量的缺陷,具有更好的文本表征能力,從而驗(yàn)證了該算法的優(yōu)越性。
圖3 不同向量的主題識別效果對比Fig.3 Comparison of topic recognition effects of different vectors
實(shí)驗(yàn)2模型主題識別性能對比
為驗(yàn)證改進(jìn)SECNN模型的有效性,分別選取支持向量機(jī)(SVM)、K最近鄰(KNN)、樸素貝葉斯(NB)、沒有引入SE層的CNN四種模型作對比實(shí)驗(yàn),詞向量均使用本文提出的融合向量,實(shí)驗(yàn)結(jié)果如表3所示。
表3 模型主題識別結(jié)果對比Table 3 Comparison of model topic recognition results %
從上述結(jié)果可以看出,在使用同一種向量化方式的前提下,神經(jīng)網(wǎng)絡(luò)模型在三個指標(biāo)值上均優(yōu)于三種機(jī)器學(xué)習(xí)模型,說明神經(jīng)網(wǎng)絡(luò)模型在主題識別任務(wù)中比傳統(tǒng)機(jī)器學(xué)習(xí)模型更有性能優(yōu)勢,具有強(qiáng)大的特征提取能力和學(xué)習(xí)能力。引入SENet后的SECNN模型相比于CNN模型,在準(zhǔn)確率、召回率、F1值三個指標(biāo)值上分別提升了1.3%、1.2%、1.3%左右,說明引入SENet到CNN中之后,可以使模型更為關(guān)注有用特征并抑制無用特征,增強(qiáng)了模型提取特征的能力,進(jìn)而也改善了主題識別效果。
為了進(jìn)一步驗(yàn)證SECNN模型的性能,分別選擇不同數(shù)量的訓(xùn)練數(shù)據(jù)在主題識別任務(wù)上做對比實(shí)驗(yàn),在每個主題下選取的訓(xùn)練數(shù)據(jù)數(shù)量從1 000到10 000之間遞增,每次增加1 000條數(shù)據(jù),共進(jìn)行10次對比,采用比較有代表性的F1值作為評價標(biāo)準(zhǔn),實(shí)驗(yàn)結(jié)果如圖4所示。
圖4 不同數(shù)據(jù)量大小的性能對比Fig.4 Model performance comparison of different data sizes
從實(shí)驗(yàn)結(jié)果可以看出,在數(shù)據(jù)量比較小的情況下,改進(jìn)神經(jīng)網(wǎng)絡(luò)模型就已經(jīng)展現(xiàn)出優(yōu)勢,尤其是隨著數(shù)據(jù)量的增加,這種優(yōu)勢逐漸加大。這是因?yàn)樯窠?jīng)網(wǎng)絡(luò)模型中的學(xué)習(xí)參數(shù)較多,需要大量的數(shù)據(jù)才能達(dá)到較好的學(xué)習(xí)效果。而傳統(tǒng)機(jī)器學(xué)習(xí)模型隨著數(shù)據(jù)規(guī)模的增大,模型的學(xué)習(xí)能力并沒有隨之增加,三種模型的F1值最高僅達(dá)到了86.7%左右,這也是傳統(tǒng)機(jī)器學(xué)習(xí)模型的一個不足。另外,與CNN模型相比,SECNN模型在7 000條數(shù)據(jù)時F1值達(dá)到94.9%左右,而CNN模型在數(shù)據(jù)量為11 000條時的F1值為95.0%左右,說明SECNN在僅相差0.1%左右F1值的情況下,所需的訓(xùn)練數(shù)據(jù)更小,證明SECNN模型具有更強(qiáng)的提取特征能力和學(xué)習(xí)能力。
實(shí)驗(yàn)3改進(jìn)FDA-SGD算法性能驗(yàn)證
為了驗(yàn)證本文改進(jìn)的FDA-SGD算法訓(xùn)練模型的穩(wěn)定性與優(yōu)化速度,選擇SGD、MBGD、BGD與本文的改進(jìn)算法進(jìn)行模型訓(xùn)練誤差變化率與主題識別F1值的比較,使用12個主題的全部數(shù)據(jù)共計156 000條文本,詞向量與主題識別模型均采用本文提出的方法,四種算法在模型訓(xùn)練時的誤差變化率比較如圖5所示,主題識別F1值隨時間的變化率比較如圖6所示。
圖5 相同迭代次數(shù)對模型訓(xùn)練穩(wěn)定性的影響Fig.5 Influence of the same number of iterations on stability of model training
圖6 不同訓(xùn)練時間下模型主題識別F1值對比Fig.6 Comparison of model topic recognition F1 values under different training times
從上述結(jié)果可以看出,BGD算法在整個模型訓(xùn)練過程中損失曲線比較平穩(wěn),模型的訓(xùn)練誤差隨著迭代次數(shù)的增加基本呈遞減趨勢,但是由于使用了全體樣本進(jìn)行訓(xùn)練,無法擺脫訓(xùn)練速度慢的缺點(diǎn)。SGD算法每次隨機(jī)選取樣本進(jìn)行參數(shù)更新,有訓(xùn)練速度快的優(yōu)點(diǎn),但隨機(jī)選擇的樣本并不能保證每次迭代更新都向著優(yōu)化方向進(jìn)行,導(dǎo)致模型訓(xùn)練時損失值波動較大且F1值較低。MBGD算法每次選擇部分樣本進(jìn)行模型訓(xùn)練,在一定程度上緩和了SGD算法每次隨機(jī)選擇一個樣本帶來的模型損失值波動大的問題,主題識別的F1值也有所提高。本文改進(jìn)的FDA-SGD算法由于采用FDA對樣本的類別表征能力進(jìn)行判斷,并選擇出更具類別代表性的樣本進(jìn)行模型參數(shù)更新,與SGD和MSGD相比損失值的波動較小,訓(xùn)練更穩(wěn)定,收斂速度更快。
為了更直觀地展示四種算法對模型訓(xùn)練的影響,截取當(dāng)FDA-SGD算法收斂時其與另外三種算法的準(zhǔn)確率比較及在相同準(zhǔn)確率情況下運(yùn)行時間比較。實(shí)驗(yàn)結(jié)果如圖7所示。
圖7 相同訓(xùn)練時間下模型主題識別準(zhǔn)確率對比Fig.7 Comparison of model topic recognition accuracy under the same training time
從實(shí)驗(yàn)結(jié)果可以看出,在訓(xùn)練時間為250 min時,F(xiàn)DA-SGD已經(jīng)收斂,準(zhǔn)確率為96%左右,與SGD、MBGD、BGD相比,準(zhǔn)確率分別提高了3.2%、1.6%、3.9%左右,其中BGD的準(zhǔn)確率最低,這是因?yàn)槠洳捎萌繑?shù)據(jù)進(jìn)行訓(xùn)練,模型更新迭代需要時間較長。在模型準(zhǔn)確率達(dá)到96%左右時,BGD算法與FDA-SGD算法的訓(xùn)練時間分別為350、250 min,與BGD算法相比,F(xiàn)DA-SGD算法的時間效率提高了28.6%左右。究其原因在于FDA-SGD算法能夠計算得到特征的類間離散度與類內(nèi)離散度,在每次訓(xùn)練時,都選擇包含最大類間離散度與最小類內(nèi)離散度特征的樣本進(jìn)行模型訓(xùn)練,降低了隨機(jī)選取樣本致使模型向著非優(yōu)化方向進(jìn)行的概率,從而提高了模型收斂速度。綜上,F(xiàn)DA-SGD算法效果更優(yōu)。
本文使用改進(jìn)的詞向量融合算法將Word2vec與LDA詞向量進(jìn)行融合,依據(jù)詞語對類別的貢獻(xiàn)度進(jìn)行加權(quán)處理,獲得語義信息更加豐富的文檔向量表示;利用引入的SENet對特征圖的重要程度進(jìn)行建模學(xué)習(xí),并在此基礎(chǔ)上搭建主題識別模型;最后使用改進(jìn)的FDASGD算法完成模型優(yōu)化工作。實(shí)驗(yàn)結(jié)果表明,改進(jìn)的詞向量融合算法具有更好的文本表征能力;SECNN模型具有更強(qiáng)的特征提取能力和學(xué)習(xí)能力;改進(jìn)的FDASGD算法具有更高的穩(wěn)定性和更快的收斂速度。