張小川,桑瑞婷,周澤紅,劉連喜
(重慶理工大學計算機科學與工程學院,重慶 400054)
近年來,隨著自然語言處理研究的不斷深入,短文本作為互聯(lián)網(wǎng)中廣泛存在的一種文本表示形式,扮演著越來越重要的角色。短文本的分類已成為一個研究熱點。目前,中文領(lǐng)域的文本分類技術(shù)發(fā)展迅速,但是中文的特殊性和復雜性使其仍面臨較多挑戰(zhàn)[1]。傳統(tǒng)的文本分類任務通常使用基于概率統(tǒng)計的方法或機器學習的方法來完成[2]。其中,前者如張玉芳等[3]提出一種基于 TFIDF改進的文本分類算法。而后者是近年來的主流方法,其重點在于選取合適的特征來表征文本,從人工標注類別的文本中提取特征,用于分類器的訓練和構(gòu)建,最終利用機器學習方法獲得文本的類別[4],如張寧等[5]提出的使用 KNN算法的文本分類。黃挺等[6]提出一種基于情感詞圖模型的方法,將Page Rank算法引入計算中,使用SVM進行微博語料的情感分析。這些文本分類算法大多數(shù)都采用人工的方法進行特征提取。Bader B W等[7]提出隱含語義分析法對文本表示進行降維。呂超鎮(zhèn)等[8]提出了基于LDA特征擴展的短文本分類方法,對文本的深層語義進行捕獲。Wang S等[9]利用了二元文法(Bigram)來捕獲更多的上下文信息來改善文本分類的效果。隨著深度學習研究的深入,為文本分類以及其他NLP問題提供了新的思路。Bengio Y等[10]用深度學習的方法建立語言模型,隨后由 Mikolov T等提出的 CBOW[11](Continuous Bag-of-Words)和 Skip-Gram[12]模型,不僅改進了詞向量模型訓練的效率,還能將單詞直接映射到低維連續(xù)的向量空間上,為自然語言處理任務進入深度學習提供了基礎(chǔ)。其中,卷積神經(jīng)網(wǎng)絡(convolutional neural network,CNN)在情感分析和文本分類領(lǐng)域有著很好的應用[13-17]。文獻[13]提出了一個可以同時利用基于特定任務調(diào)整的詞向量和靜態(tài)的預訓練詞向量的卷積神經(jīng)網(wǎng)絡模型,用于句子級別的文本分類任務。文獻[14]改進了CNN的結(jié)構(gòu),進行了2次卷積操作,并提出了動態(tài)K-max pooling池化策略,返回每一個feature maps中最大的K個值。文獻[15]受圖像有RGB、CMYK多通道的啟發(fā),將句子視為圖像,完成文本分類。文獻[16]對卷積神經(jīng)網(wǎng)絡情感分析中的參數(shù)進行了詳細分析。文獻[17]將卷積神經(jīng)網(wǎng)絡應用到中文微博觀點分類中。本文提出的結(jié)合雙模式通道和詞嵌入的卷積神經(jīng)網(wǎng)絡WCA-DCNN是在文獻[13]提出的用于文本分類的卷積神經(jīng)網(wǎng)絡模型基礎(chǔ)上進行改進的。
但是,在短文本中,詞向量的表示無法獲取更多語義的特征,同時卷積神經(jīng)網(wǎng)絡的輸入特征在短文本領(lǐng)域中也不夠豐富,在訓練過程中,對文本噪聲又十分敏感。如果輸入的詞向量表示在語義上不夠準確,同時特征稀疏,將會使得訓練過擬合,導致分類效果下降。針對此問題,本文擬使用基于雙通道卷積神經(jīng)網(wǎng)絡模型,改進短文本分類效果。
對卷積神經(jīng)網(wǎng)絡中文本分類方法存在的輸入數(shù)據(jù)表達不準確和特征稀疏的問題,下面引入詞性概率因子和場景系數(shù)因子,構(gòu)成雙通道輸入。
本節(jié)將詳細介紹如何使用詞性概率因子α來改進詞向量訓練,展示基于場景權(quán)重因子β的不同模型的改進文本矩陣表達方式。
1.1.1 詞性概率因子α
由于短文本語義特征的稀疏性,導致對文本的詞性因素不敏感,從而影響后續(xù)分類效果。本文利用短文本中不同詞性的詞對短文本的貢獻度,以此提高文本表示的精確度,將單詞的詞性概率與單詞進行拼接,構(gòu)成“單詞-詞性系數(shù)對”(Word-coefficient part of speech,Word-CPOS),例如(中國,0.21),(民族,0.44),進而將原始文本轉(zhuǎn)化為Word-CPOS序列,以此作為詞向量模型的輸入。
本文提出詞性概率因子α,用以量化不同詞性的詞對文本的貢獻度。實際上,針對單詞詞性分為名詞、動詞、形容詞、副詞和其他詞性,假設α的取值分別為 α1、α2、α3、α4、α5,且 k的計算方法為:

式中:N=num(n)+num(v)+num(adj)+num(adv)+num(other),α1+α2+α3+α4+α5=1。以num(n)、num(v)、num(adj)、num(adv)、num(other)分別表示名詞、動詞、形容詞、副詞、其他詞性詞的個數(shù);N表示文本經(jīng)過分詞操作后的單詞個數(shù)。
1.1.2 詞向量場景因子β
詞向量工具word2vec包括CBOW模型和Skip-gram模型。其中,CBOW對小型數(shù)據(jù)比較合適,Skip-gram對大型語料表現(xiàn)更好。2個模型的切詞效果偏重有所不同,根據(jù)使用場景的不同收益也隨之變化。因此,本文構(gòu)造并引入場景權(quán)重因子β,β與語料的規(guī)模相關(guān),其構(gòu)造方法如式(2)所示:

式中:β1代表基于CBOW訓練模型的詞向量表示權(quán)重;β2代表基于SkipGram訓練模型的詞向量表示權(quán)重;Z代表語料規(guī)模的內(nèi)存大小,以GB為單位。
1.1.3 引入α和β后的文本矩陣A
假設文本中一句話為 S=(x1,x2,…,xN),其中xi表示文本中的一個單詞,用詞性概率標注獲取每個詞的詞性概率 Q=(w1,w2,…,wN),然后拼接為 Word-CPOS序列 SQ=((x1,w1)(x2,w2),…,(xn,wN))。將 SQ輸入預訓練的 Word-CPOS模型,每個 Word-CPOS項都將被轉(zhuǎn)化為 n維的Word-CPOS向量sqn,則這句話會被轉(zhuǎn)化為N×n維矩陣。由于短文本中句子不止一條,需要對短文本中的句子進行級聯(lián)操作,從而獲得文本矩陣A。最后,根據(jù)語料大小,選擇場景權(quán)重因子β,得到Word-CPOS輸入向量。其具體流程如圖1所示。
將基于原始詞向量構(gòu)造的原始文本矩陣和上節(jié)的文本矩陣A相結(jié)合,就形成網(wǎng)絡的雙模式通道輸入,其整體神經(jīng)網(wǎng)絡結(jié)構(gòu)如圖2所示。

圖1 輸入文本表示方法

圖2 WCA-DCNN網(wǎng)絡結(jié)構(gòu)
1.2.1 雙通道輸入向量矩陣
由于原始短文本都存在不規(guī)范的問題,導致詞性概率標注不準確。因此,訓練出來的Word-CPOS向量也會有表達不準確的情況,如果直接輸入卷積神經(jīng)網(wǎng)絡,則會造成模型過擬合。同時,短文本特征不夠豐富,若使用CBOW和SkipGram同時訓練詞向量,則可以進行特征補充,從而豐富輸入特征。綜上,本文使用雙模式通道輸入策略,在考慮場景權(quán)重因子的前提下,在通道一中輸入原始文本詞向量矩陣 L1=i×[x1,x2,…,xn],在通道二中輸入 Word-CPOS詞向量矩陣 L2=i×[sq1,sq2,…,sqn]。其中,xn為文本中第 n個詞的詞向量;sqn為文本中第n個Word-CPOS序列的詞向量;n為短文本中單詞的個數(shù)。
1.2.2 卷積神經(jīng)網(wǎng)絡結(jié)構(gòu)
卷積神經(jīng)網(wǎng)絡結(jié)構(gòu)包括卷積層、池化層、全鏈接層和softmax層等4層。
1)卷積層
卷積層通過卷積核對輸入層的詞向量進行卷積操作,對每個固定大小的窗口進行操作,產(chǎn)生一個抽象特征輸出。當對文本進行卷積操作時,一般選取h×n維大小的卷積核,其中k為設定的詞向量維度,h代表每一次進行卷積操作選取的單詞個數(shù)。本文選取卷積核大小為 3、4、5(h=3、4、5)的3組卷積核。卷積操作表示為:

其中,ci表示經(jīng)過卷積操作得到的第i個特征值;f(·)表示激活函數(shù) relu;W1、W2分別表示卷積核在兩個模式通道上的權(quán)重參數(shù)矩陣,W1,W2∈Rhk;h×k代表卷積核窗口的大小,每掃描過一個高為h,維度為k的詞序列區(qū)域就會產(chǎn)生一個特征值;L1,i:i+h代表文本中第 i個詞到 i+h個詞的詞向量矩陣;L2,i:i+h代表文本中第 i個詞到 i+h個詞的Word-CPOS向量矩陣;b代表卷積層的偏置項。對短文本中每個窗口中的詞向量矩陣進行卷積操作可以得到一個特征圖,表示為:

其中,N代表短文本中的單詞個數(shù);h為卷積窗口的長度;c代表短文本表示成的詞向量矩陣通過卷積操作所形成的特征圖。
2)池化層
池化層通過設定池化區(qū)域固定的步長進行采樣。假設池化區(qū)域的高為h,寬為m,則將整個特征圖分為若干個m×h的子區(qū)域,然后對每個子區(qū)域進行Max-pooling池化操作,再輸出池化后相應的特征值:

最終,提取的文本特征拼接在一起形成抽象文本特征,可表示為:

其中,假設各組卷積核的數(shù)量都為m;cpi,j表示當卷積核高度為i時,池化層從該卷積核大小卷積得到的第j個特征。
3)全鏈接層
為了將特征進一步抽象,同時挖掘更深層次的語義,池化層的輸出將作為最后全鏈接層的輸入,表示為:

其中:c′為池化得到的向量;W′為全鏈接層的權(quán)值參數(shù)矩陣;b′代表全鏈接層的偏置項;f′(·)表示激活函數(shù)Relu;最終,將 c″拉直轉(zhuǎn)換為一個長向量 ^c。
4)Softmax層
為了得到分類的類別估計,需要使用分類函數(shù)softmax對 ^c。進行歸一化操作。具體過程如下:

其中,ωi與bi分別為全鏈接層的對應輸出為類別為i的參數(shù)與偏置,n為類別數(shù)。
假設輸入文本為Xk,它所屬類別為yk,θ為模型參數(shù),則有 p(yk)=P(yk|Xk,θ)。采用隨機梯度下降算法來最小化負對數(shù)似然函數(shù),每一次訓練通過反向傳播來更新網(wǎng)絡中的各個參數(shù),直到模型達到擬合。則網(wǎng)絡訓練的目標函數(shù)為:

其中N為訓練樣本規(guī)模。
本文使用的語料分別為新聞和酒店評論。其中,新聞語料是網(wǎng)易的中文新聞語料庫中整理得到的6 000條平衡語料,分為文化和經(jīng)濟2個類別,每個類別各3 000條,大小為656 MB。酒店評論使用譚松波在攜程網(wǎng)上收集整理的一個不平衡語料,其中包含正向評論7 000和負向評論3 000條,大小為1.12 GB。對于這個兩組語料,各抽取80%的文本作為訓練集,20%文本為測試集。
不同于英文,中文需要提前對其進行分詞處理。根據(jù)文獻[18]的結(jié)論,就像是把圖像分割成一個個像素一樣,語言也可以分割成一個個字來進行深度學習。首先,對原始語料進行清洗,去掉標點符號、英文字符及其他特殊字符,保證語料的規(guī)范性。然后,用jieba工具對語料進行分詞操作。最后,對語料進行詞性概率標注,構(gòu)造Word-CPOS向量。
本文詞向量的訓練使用未拼接的語料庫,Word-CPOS向量的訓練使用經(jīng)過詞性概率拼接后的語料庫。本文采用Google的開源工具word2vec獲得文本詞向量表示,其中包含了SkipGram和CBOW方法。在此同時使用2個方法來進行詞向量訓練,供后續(xù)對比實驗使用。并統(tǒng)一使用skipgram方法對詞性拼接矩陣進行訓練,根據(jù)場景權(quán)重因子對卷積神經(jīng)網(wǎng)絡的輸入文本表示進行權(quán)重設定。詞向量與Word-CPOS向量訓練參數(shù)如下:文本表示向量的維度100維;上下文窗口大小為10;向量訓練迭代次數(shù)為5次。
卷積神經(jīng)網(wǎng)絡中參數(shù)和函數(shù)設置如表1所示。

表1 實驗參數(shù)設置
使用Relu作為激活函數(shù),采用AdamOptimizer方法作為梯度更新規(guī)則,濾波器個數(shù)采用單因子變量法實驗確立最優(yōu)參數(shù)為100,卷積窗大小為3、4、5。同時,為了避免出現(xiàn)過擬合的現(xiàn)象、提高模型的泛化能力,Hinton[19]提出通過 dropout提高神經(jīng)網(wǎng)絡結(jié)構(gòu)的性能。通過隨機地忽略卷積層中的神經(jīng)元來平均預測概率[20],同時還可以降低隱層神經(jīng)元之間的相互作用,優(yōu)化模型的結(jié)構(gòu)。因此,設置dropout值為經(jīng)典取值0.5,訓練迭代次數(shù)為30。
實驗通過準確率(precision)、召回率(recall)、F1值3個指標來評價相似度計算結(jié)果,具體定義如下:

其中,TP表示將正類預測為正類的數(shù)目;FN表示將正類預測為負類的數(shù)目;FP表示將負類預測為正類的數(shù)目;TN表示將負類預測為負類的數(shù)目。準確率用于評價文本相似度計算的準確性,召回率用于評價文本相似度計算的查全性,F(xiàn)1值則均衡以上兩方面,用于綜合評價。
2.5.1 實驗過程構(gòu)思
為了驗證本文提出的WCA-DCNN對短文本分類的有效性,將本文方法與機器學習方法和多種卷積神經(jīng)網(wǎng)絡模型進行對比實驗。其中,對于機器學習方法,選取了用TF-IDF表示文本的KNN算法進行短文本分類。根據(jù)詞向量初始化方法的不同,選取了多種用于對比的經(jīng)典卷積神經(jīng)網(wǎng)絡,分別為:隨機初始化詞向量的 Random-CNN、用word2vec工具方法初始化詞向量的CBOW-CNN和SkipGram-CNN。此外,為了驗證詞性概率對實驗結(jié)果的影響,本文還選取了只以Word-CPOS向量輸入的WC-CNN,同時選取使用詞向量表示和Word-CPOS向量表示作為雙通道輸入的WC-DCNN,以驗證雙通道的有效性。最后,選取引入詞向量場景因子β的WCA-DCNN,以驗證該權(quán)重因子對分類結(jié)果的影響。以上7種不同文本分類方法在表2的2個測試集下進行對比實驗,結(jié)果如表2所示。
2.5.2 實驗對比分析
表2展示了使用數(shù)據(jù)集在各個模型上進行訓練后獲得的分類效果。通過對比KNN和Random-CNN,發(fā)現(xiàn)使用卷積神經(jīng)網(wǎng)絡在分類性能上有一定的提升。

表2 不同方法的分類準確性對比
通過分別對比CBOW-CNN、SkipGram-CNN和WC-CNN,發(fā)現(xiàn)結(jié)合詞性概率特征的WC-CNN的性能更優(yōu),F(xiàn)1值在2個數(shù)據(jù)集上分別提升了0.012、0.009,證明結(jié)合詞性概率的詞向量訓練可以改善短文本分類效果。通過對比WC-CNN和WC-DCNN的各項指標,證明了基于雙通道的輸入分類效果要優(yōu)于單通道的。最后,對比WC-DCNN和WCA-DCNN,驗證引入場景權(quán)重因子后F1值在2個數(shù)據(jù)集上分別提升了0.010、0.011,能夠進一步提升卷積神經(jīng)網(wǎng)絡的分類能力。
2.5.3 迭代次數(shù)及準確率分析
圖3、4分別體現(xiàn)了各個文本分類模型在2個數(shù)據(jù)集上前25輪迭代的分類準確率。

圖3 新聞數(shù)據(jù)集實驗前25輪迭代結(jié)果

圖4 酒店數(shù)據(jù)集實驗前25輪迭代結(jié)果
從圖中可以看出:引入Word-CPOS序列的模型,其優(yōu)勢從第5輪迭代就體現(xiàn)出來了,同時每輪迭代效果都比其他模型更優(yōu)。進一步分析發(fā)現(xiàn):相比單通道輸入,雙通道模型輸入的特征更加豐富,能得到更好的分類效果,同時需要的訓練時間更長,模型不會因為噪音過早陷入過擬合。因此,WCA-DCNN能夠進一步提升分類的準確率。
本文提出了一種基于雙通道的卷積神經(jīng)網(wǎng)絡模型WCA-DCNN,將其應用到短文本分類領(lǐng)域。通過詞性概率拼接,考慮每個詞性對文本的貢獻度,進而精確文本的表示。并考慮應用場景,引入場景權(quán)重因子,使用不同的詞向量模型進行訓練。最后,由原始詞向量矩陣和Word-CPOS向量矩陣構(gòu)成雙通道的輸入,有效地解決了輸入噪音造成的文本分類不準確的問題,并且在分類準確率、召回率和F1值上明顯高于傳統(tǒng)文本分類方法。下一步將針對一些復雜語法結(jié)構(gòu)的短文本進行研究,從而進一步提高短文本分類的準確性。