張小川 余林峰 桑瑞婷 張宜浩
摘 要:應(yīng)用卷積神經(jīng)網(wǎng)絡(luò)分類文本是自然語言處理領(lǐng)域的研究熱點(diǎn),針對(duì)神經(jīng)網(wǎng)絡(luò)輸入矩陣只提取詞粒度層面的詞向量矩陣,忽略了文本粒度層面整體語義特征的表達(dá),導(dǎo)致文本特征表示不充分,影響分類準(zhǔn)確度的問題。本文提出一種結(jié)合word2vec和LDA主題模型的文本表示矩陣,結(jié)合詞義特征和語義特征,輸入卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行文本分類,以豐富池化層特征,達(dá)到精確分類的效果。對(duì)本文提出模型進(jìn)行文本分類實(shí)驗(yàn),結(jié)果表明,本文算法相比傳統(tǒng)特征輸入的卷積神經(jīng)網(wǎng)絡(luò)文本分類,在F度量值上取得一定程度的提升。
關(guān)鍵詞:卷積神經(jīng)網(wǎng)絡(luò);主題模型;LDA;word2vec
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A
1 引言(Introduction)
在網(wǎng)絡(luò)普及信息爆炸的現(xiàn)代社會(huì),主流信息平臺(tái)累計(jì)的信息量都以指數(shù)形式增長(zhǎng);其中占據(jù)絕大比重的是短文本數(shù)據(jù)。研究應(yīng)用新的文本處理技術(shù),對(duì)短文本數(shù)據(jù)進(jìn)行分析挖掘有著廣闊的前景和意義。
短文本分類是自然語言處理領(lǐng)域的基礎(chǔ)工作,廣泛應(yīng)用于信息檢索、網(wǎng)絡(luò)知識(shí)挖掘和情感分析等領(lǐng)域。目前針對(duì)分類算法的研究方興未艾,現(xiàn)有方法中,基于CNN卷積神經(jīng)網(wǎng)絡(luò)模型的分類算法應(yīng)用廣泛,該算法或以one-hot向量,或以word2vec詞向量,為相對(duì)獨(dú)立的文本特征輸入,通過濾波矩陣將文本特征轉(zhuǎn)化為分類特征進(jìn)行分類[1]。
上述方法著重短文本詞義特征進(jìn)行分類,詞義和語義不屬一個(gè)概念,詞義為單個(gè)詞語的含義,詞義構(gòu)成語義,但不代表語義,語義則是由多個(gè)詞語按一定順序關(guān)聯(lián)起來,表達(dá)一個(gè)整體意思,只依據(jù)詞義的分類將導(dǎo)致特征表示不充分的問題。因此文本分類應(yīng)以豐富的特征表示為前提,輸入特征矩陣包含詞義特征和語義特征,將有助于權(quán)衡短文本分類準(zhǔn)確度。
2 文本分類技術(shù)(Text classification)
短文本的分類研究主要解決兩類問題,短文本特征表示是第一類問題,應(yīng)用于短文本特征的分類模型是第二類問題。
2.1 文本表示
文本表示主要基于兩大類方法,從文本挖掘深度的角度,第一類基于文本表層信息提取,One-Hot獨(dú)熱編碼,使用N維詞典向量來對(duì)文本進(jìn)行表示,向量存在0/1兩種數(shù)值,取決于文本中詞語出現(xiàn)與否,出現(xiàn)為1,不出現(xiàn)為0,是目前最簡(jiǎn)單的文本特征表示方法[2]。第二類基于深層信息提取,Mathew J等[3]利用LDA主題模型訓(xùn)練短文本的潛在語義空間表示-主題分布,構(gòu)建基于主題分布的特征向量表示。Bojanowski P等[4]提出word2vec將詞匯看作是原子對(duì)象,注重詞匯的上下文,通過兩層神經(jīng)網(wǎng)絡(luò)挖掘詞語共現(xiàn)度對(duì)詞義進(jìn)行向量表示,克服了短文本缺乏上下文聯(lián)系的問題。唐明等[5]利用TF-IDF算法計(jì)算每篇文檔中詞的權(quán)重,并結(jié)合word2vec詞向量生成文檔向量,提高了單個(gè)詞對(duì)整篇文檔的影響力。
2.2 分類模型
文本分類模型的研究主要有機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的方法,Duan Y等[6]提出一個(gè)利用樸素貝葉斯學(xué)習(xí)支持向量機(jī)的文本分類方法。對(duì)文本預(yù)處理結(jié)果進(jìn)行特征降維,然后訓(xùn)練支持向量機(jī)SVM模型用于文本分類。張志飛等[7]利用LDA模型生成主題,一方面區(qū)分相同詞的上下文,降低權(quán)重;另一方面關(guān)聯(lián)不同詞以減少稀疏性,增加權(quán)重。采用KNN方法對(duì)自動(dòng)抓取的標(biāo)題短文本數(shù)據(jù)進(jìn)行分類。深度學(xué)習(xí)分類模型中,CNN卷積神經(jīng)網(wǎng)絡(luò)模型對(duì)文本分類任務(wù)適應(yīng)性好,Johnson,R等[8]直接對(duì)one-hot向量進(jìn)行卷積運(yùn)算訓(xùn)練CNN模型,不需要預(yù)訓(xùn)練得到word2vec或GloVe等詞向量表征,以減少網(wǎng)絡(luò)需要學(xué)習(xí)的參數(shù)個(gè)數(shù)。Nguyen,T.H等[9]假設(shè)了所有文本元素的位置已知,每個(gè)輸入樣本只包含一種關(guān)系,探索了CNN在關(guān)系挖掘和關(guān)系分類任務(wù)中的應(yīng)用。
上述文本表層信息提取的方法應(yīng)用成熟,但易導(dǎo)致數(shù)據(jù)高維、特征表征性差的問題,而提取文本語義特征的LDA模型,忽略了詞義特征的相互關(guān)系,訓(xùn)練詞向量的word2vec,則忽略了整體語義的表達(dá)。若分別以上述表示特征為CNN輸入矩陣,將導(dǎo)致低準(zhǔn)確率的分類效果。
3 改進(jìn)的短文本分類算法(Improved algorithm)
本文提出一種改進(jìn)短文本特征表示的方法,結(jié)合word2vec詞向量與LDA主題向量,從詞粒度和文本粒度兩個(gè)層面表示短文本特征矩陣,特征矩陣輸入卷積神經(jīng)網(wǎng)絡(luò),通過卷積神經(jīng)網(wǎng)絡(luò)加強(qiáng)詞與詞、文本與文本之間的聯(lián)系,進(jìn)行高準(zhǔn)確的文本分類。word2vec依據(jù)滑動(dòng)窗口內(nèi)的詞語共現(xiàn)信息,將特征提取細(xì)化到詞粒度,建模每個(gè)詞語獨(dú)立的詞向量,語義向量完全由詞向量簡(jiǎn)單疊加組合,忽略了詞語間相互關(guān)聯(lián)的整體語義表達(dá),弱化了詞項(xiàng)間差異性;LDA通過概率模型構(gòu)建文本的主題分布,主題分布體現(xiàn)文本的整體語義信息,若結(jié)合主題語義特征,將豐富卷積神經(jīng)網(wǎng)絡(luò)池化層特征,為分類器提供準(zhǔn)確的分類特征。分類效果準(zhǔn)確率不高。
3.1 算法流程
CNN的文本分類模型,主要分為三層處理,包括文本表示、神經(jīng)網(wǎng)絡(luò)和分類評(píng)估,以及五個(gè)操作,文本預(yù)處理層、文本特征表示、卷積網(wǎng)絡(luò)層、最大化層、Soft分類層、分類結(jié)果、分類評(píng)測(cè),其算法流程如圖1所示。
3.2 文本預(yù)處理
分本預(yù)處理是對(duì)文本數(shù)據(jù)的基礎(chǔ)操作,能清洗原始數(shù)據(jù)中不規(guī)則的數(shù)據(jù)成分,便于文本后續(xù)進(jìn)行特征提取和表示,通常包括以下處理:
(1)對(duì)原始文本數(shù)據(jù)進(jìn)行中文分詞處理,本文采用基于Python的結(jié)巴分詞工具,可以根據(jù)句法和語法高效切分詞語,保證詞語完整性和原子性。
(2)分詞結(jié)果包含原句中標(biāo)點(diǎn)符號(hào),符號(hào)本身不具有任何詞項(xiàng)含義,因此利用正則式去除分詞結(jié)果中的標(biāo)點(diǎn)符號(hào),如:“,?!丁贰钡?。
(3)停用詞往往造成數(shù)據(jù)冗余,導(dǎo)致分類模型偏差,采用Stopword.txt停用詞表去除分詞結(jié)果中停用詞。
3.3 文本特征表示
文本特征表示是對(duì)短文本數(shù)據(jù)的向量化建模,以體現(xiàn)文本中表征性強(qiáng)、計(jì)算價(jià)值高的文本特征。Word2Vec從詞粒度層面,挖掘詞義對(duì)文本進(jìn)行精細(xì)語義表達(dá),LDA從文本粒度層面,通過概率模型構(gòu)建文本的主題分布,著重文本整體語義的表達(dá)。兩者通過向量拼接的方式,構(gòu)建包含詞義和語義的特征矩陣,從兩個(gè)層面保證文本特征的完整性。
3.3.1 訓(xùn)練詞向量
Word2vec能快速構(gòu)建詞語的詞向量形式,詞向量的每一維的值代表一個(gè)具有一定的語義和語法上解釋的特征,其核心框架包括CBOW和Skip-gram兩種訓(xùn)練模式,CBOW依據(jù)上下文決定當(dāng)前詞出現(xiàn)的概率,但短文本上下文信息缺失,此模式不適用。Skip-gram采用跳躍組合的方式學(xué)習(xí)詞項(xiàng)規(guī)則,更能適應(yīng)短文本特征稀疏的需要。
其中,為語料庫中任意出現(xiàn)的詞項(xiàng),即通過跳躍組合構(gòu)建出現(xiàn)的概率。詞向量訓(xùn)練時(shí)文本,輸出任意詞語的N維向量表現(xiàn)形式。
為語料庫中任意文本,為該文本詞項(xiàng)k的權(quán)重特征值。
3.3.2 訓(xùn)練主題向量
LDA主題模型通過先驗(yàn)概率的主題建模,分析文本隱含語義主題,語義主題體現(xiàn)文本隱含語義,是對(duì)文本深層特征的直接提取。利用LDA訓(xùn)練短文本語料庫,輸出文本—主題、主題—詞語矩陣,兩個(gè)矩陣[10]。LDA模型初始化參數(shù)配比,見表1。
其中,反應(yīng)文本中隱含主題的先驗(yàn)分布,反應(yīng)隱含主題下詞的先驗(yàn)分布,Niters Gibbs為模型迭代次數(shù),K為主題維數(shù),以上參數(shù)均為多次實(shí)驗(yàn)經(jīng)驗(yàn)值配比。模型訓(xùn)練結(jié)束輸出語料庫任意文本的主題分布矩陣。
其中,為文本M對(duì)應(yīng)的主題概率向量,M為語料庫大小,N為向量維度,數(shù)量與詞向量維度相同。
3.3.3 向量拼接
改進(jìn)的短文本表示方法,采用向量拼接的方式,將詞向量與主題向量疊加一起,形成新的輸入矩陣,即包含詞義特征又包含整體語義特征。
其中,為向量拼接操作,輸入矩陣W表示文本對(duì)應(yīng)的詞向量,z表示文本對(duì)應(yīng)的主題分布向量,以此作為CNN卷積層輸入數(shù)據(jù),有助于分類準(zhǔn)確性。
3.4 卷積神經(jīng)網(wǎng)絡(luò)
CNN是一種優(yōu)化的前饋神經(jīng)網(wǎng)絡(luò),核心在于輸入矩陣與不同卷積核之間的卷積運(yùn)算,池化卷積結(jié)果作為分類運(yùn)算的數(shù)據(jù)特征。因此卷積神經(jīng)網(wǎng)絡(luò)主要由卷積層、池化層、分類層組成,結(jié)構(gòu)如圖2所示。
3.4.1 卷積層
卷積層目的是應(yīng)用卷積運(yùn)算,提取任意輸入矩陣隱含高階特征的過程[11]。通過不同高度卷積核在上滑動(dòng)計(jì)算,得到不同卷積核的卷積序列,卷積序列構(gòu)成特征面,其中l(wèi)表示卷積核高度,a表示文本向量維度。實(shí)際是利用輸入與進(jìn)行內(nèi)卷積的結(jié)果集,再加上偏置得到的結(jié)果,具體過程如圖3所示??紤]到預(yù)處理后的短文本數(shù)據(jù)包含較少數(shù)量特征詞語的特點(diǎn),設(shè)置卷積窗口為5,卷積步長(zhǎng)為1,實(shí)驗(yàn)效果最好。
圖3中,f是激活函數(shù)tanh,用于對(duì)卷積結(jié)果作平滑。其目的在于為神經(jīng)網(wǎng)絡(luò)引入非線性,確保輸入與輸出之前的曲線關(guān)系。卷積層結(jié)果是經(jīng)過多個(gè)卷積核的特征面集合H。
h為不同高度詞向量序列經(jīng)過不同卷積核形成的新特征面,同時(shí)作為下一層池化層輸入神經(jīng)元。
3.4.2 池化層
池化層就是對(duì)高維的特征面集合進(jìn)行降采樣操作,防止過度擬合,以及提高計(jì)算性能。池化過程一般將輸入特征劃分為若干個(gè)大小的子區(qū)域,每個(gè)子區(qū)域經(jīng)過池化,常用的池化做法是max-pooling,對(duì)應(yīng)輸出相應(yīng)池化操作后的值。
對(duì)每一卷積核提取的特征面進(jìn)行操作,最后每一個(gè)卷積核對(duì)應(yīng)一個(gè)值,把這些值拼接起來,就得到一個(gè)表征該句子的新特征量。
3.4.3 分類層
池化層輸出M個(gè)數(shù)據(jù)的新特征量及對(duì)應(yīng)的類別組合,其形式如,其中輸入特征為進(jìn)過前兩層處理得到的特征向量,為文本類別。對(duì)于給定測(cè)試集文本向量x,可以通過softmax函數(shù)進(jìn)行分類:
exp表示以e為底數(shù)的指數(shù)函數(shù),Ф為估值參數(shù),取值由最小代價(jià)函數(shù)估算,公式如下:
函數(shù)的返回值為C個(gè)分量的概率值,每個(gè)分量對(duì)應(yīng)于一個(gè)輸出類別的概率,以此劃分該文本所屬類型信息,完成分類。
4 實(shí)驗(yàn)分析(Experimental analysis)
為了驗(yàn)證CNN和LDA主題模型的短文本分類模型的有效性,本文以搜狗實(shí)驗(yàn)室新聞標(biāo)題為短文本實(shí)驗(yàn)數(shù)據(jù),選擇標(biāo)簽范圍內(nèi)的Film、Food、Manga、Entertainment、Constellation、Military六大類新聞數(shù)據(jù),以8:2為訓(xùn)練測(cè)試比例劃分不同類別數(shù)據(jù)集,如表2所示,Dss(Data set size)表示不同類別數(shù)據(jù)集大小,[Ds](Dictinary size)表示數(shù)據(jù)集對(duì)應(yīng)詞典大小,Train表示訓(xùn)練集大小,Test表示測(cè)試集大小。
詞向量維度體現(xiàn)文本詞義特征,主題向量維度體現(xiàn)文本語義特征,兩向量的有效拼接,依賴于詞向量維度與LDA主題向量維度保持一致,不同維度對(duì)分類準(zhǔn)確率影響不同,一般在[100,200],實(shí)驗(yàn)以5為跨度值,驗(yàn)證維度的具體選取過程,如圖4所示。
圖4中顯示,兩向量維度取150,分類準(zhǔn)確度最高。
Ye Zhang等[12]通過不同數(shù)據(jù)集上網(wǎng)格搜索的差異性,測(cè)試了卷積神經(jīng)網(wǎng)絡(luò)的不同參數(shù)配比對(duì)分類文本的影響,實(shí)驗(yàn)顯示針對(duì)小規(guī)模數(shù)據(jù)集,卷積核數(shù)一般等同于詞向量維度,數(shù)目過大將導(dǎo)致池化層數(shù)據(jù)特征離散化,卷積核的窗口高度應(yīng)設(shè)置為3×150、4×150、5×150,其他模型參數(shù)如表3所示,為經(jīng)驗(yàn)配比。
文本經(jīng)過卷積層和池化層操作,由原始的輸入特征矩陣,轉(zhuǎn)化為維度為360的特征向量,便于下一步的特征分類。
驗(yàn)證改進(jìn)算法有效性,設(shè)置Method1為基于one-hot的卷積神經(jīng)網(wǎng)絡(luò)分類算法,Method2為基于詞向量的卷積神經(jīng)網(wǎng)絡(luò)分類算法,Method3為改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)分類算法,從算法的分類準(zhǔn)確率進(jìn)行比較(表4)。
實(shí)驗(yàn)結(jié)果顯示,分類準(zhǔn)確率受數(shù)據(jù)集大小和輸入數(shù)據(jù)特征的影響,改進(jìn)的方法分類準(zhǔn)確率最高達(dá)到91.2%,平均意義上,方法三比方法二準(zhǔn)確率提高了2.8%,比方法一提高了19.8%,證明了改進(jìn)的方法確實(shí)提高了文本分類的準(zhǔn)確率。
5 結(jié)論(Conclusion)
本文改進(jìn)的短文本分類方法,豐富了卷積神經(jīng)網(wǎng)絡(luò)輸入矩陣特征,提出了結(jié)合詞粒度層面的詞向量和語義粒度層面的主題向量的具體改進(jìn)方法,提高了傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)輸入矩陣,特征表示不充分,影響文本分類效果的問題,通過實(shí)驗(yàn)對(duì)比分析,進(jìn)一步驗(yàn)證了豐富輸入矩陣改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)文本分類的有效性,為基于卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行文本的研究提出了新的思路。
參考文獻(xiàn)(References)
[1] Wang P,Xu B,Xu J,et al.Semantic expansion using word embedding clustering and convolutional neural network for improving short text classification[J].Neurocomputing,2016,174(PB):806-814.
[2] Mathew J,Radhakrishnan D.An FIR digital filter using one-hot coded residue representation[C].Signal Processing Conference,2000,European.IEEE,2008:1-4.
[3] Carrera-TrejoV,SidorovG,Miranda-Jiménez S,et al.Latent Dirichlet Allocation complement in the vector space model for Multi-Label Text Classification[J].Cancer Biology & Therapy,2015,7(7):1095-1097.
[4] Bojanowski P,Grave E,Joulin A,et al.Enriching Word Vectors with Subword Information[J].EMNLP 2016,2016:26-27.
[5] 唐明,朱磊,鄒顯春.基于Word2Vec的一種文檔向量表示[J].計(jì)算機(jī)科學(xué),2016,43(6):214-217.
[6] Duan Y.Application of SVM in Text Categorization[J].Computer & Digital Engineering,2012,22(7):318-321.
[7] 張志飛,苗奪謙,高燦.基于LDA主題模型的短文本分類方法[J].計(jì)算機(jī)應(yīng)用,2013,33(6):1587-1590.
[8] Johnson R,Zhang T.Effective Use of Word Order for Text Categorization with Convolutional Neural Networks[J].Computer Science,2014,51(3):16-19.
[9] Nguyen,T.H.,Grishman,R.Relation Extraction:Perspective from ConvolutionalNeural Networks[C].The Workshop on Vector Space Modeling for Natural Language Processing,2015:39-48.
[10] BLEI D M,NG A Y,JORDAN M I.Latent Dirichlet Allocation[J].the Journal of Machine Learning Research,2003,3:993-1022.
[11] Kim Y.Convolutional Neural Networks for Sentence Classification[J]. Eprint Arxiv,2014,196(6):27-30.
[12] Zhang Y,Wallace B.A Sensitivity Analysis of(and Practitioners Guide to)Convolutional Neural Networks for Sentence Classification[J].Computer Science,2015,12(2):134-137.
作者簡(jiǎn)介:
張小川(1965-),男,博士,教授.研究領(lǐng)域:人工智能,計(jì)算機(jī)軟件.
余林峰(1992-),男,碩士生.研究領(lǐng)域:人工智能.本文通信作者.
桑瑞婷(1992-),女,碩士生.研究領(lǐng)域:自然語言處理.
張宜浩(1982-),男,博士生.研究領(lǐng)域:自然語言處理.