和志強(qiáng),楊 建,羅長玲
(河北經(jīng)貿(mào)大學(xué)信息技術(shù)學(xué)院,石家莊050061)
隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,信息以文本、圖片、視頻、音頻等多種方式進(jìn)行廣泛傳播,在眾多傳播方式中文本仍舊是人們獲取信息的主要方式[1]。目前,文本信息的表現(xiàn)方式已呈現(xiàn)出多樣化,迄今為止則衍生出包括微博、新聞簡訊、標(biāo)題摘要、事件評(píng)論等在內(nèi)的多種類型,與之前長文本相比,具有詞數(shù)少、數(shù)量大、實(shí)時(shí)性強(qiáng)等特點(diǎn)。網(wǎng)絡(luò)上海量短文本信息與當(dāng)前社會(huì)的熱點(diǎn)事件緊密相關(guān),對(duì)這些信息進(jìn)行有效分類管理,有助于政府、企業(yè)了解政治、經(jīng)濟(jì)、文化等領(lǐng)域發(fā)生的最新變化,更好地做到輿情疏導(dǎo)、危機(jī)公關(guān)、產(chǎn)品營銷等[2]。因此,這些海量短文本數(shù)據(jù)極具研究價(jià)值,如何實(shí)現(xiàn)對(duì)海量短文本高效、準(zhǔn)確分類并獲得有價(jià)值信息,已成為學(xué)界亟待解決的研究課題。
目前,針對(duì)短文本分類問題的研究,主要可分為2個(gè)方面,即:文本向量化表示和分類模型。其中,文本向量化表示重點(diǎn)包括向量空間模型(Vector Space Model, VSM)[3]和基于文本分布式表示兩種方法。前者是基于文本表層信息的提取,只限于對(duì)詞頻的簡單統(tǒng)計(jì)、計(jì)算,常存在特征矩陣稀疏、維度高、詞匯鴻溝等問題[4]。而后者是對(duì)文本深層信息的提取,根據(jù)詞匯的概率分布獲取詞匯語義信息。文獻(xiàn)[5]利用大規(guī)模語料訓(xùn)練Word2vec模型,學(xué)習(xí)文本中詞匯間潛在的語義關(guān)聯(lián),在詞匯粒度層面提取特征,得到詞向量,解決矩陣稀疏、無語義特征問題。文獻(xiàn)[6-8]利用LDA主題模型提取文章主題,在文本粒度層面擴(kuò)展文本特征。文獻(xiàn)[9-10]在Word2vec向量的基礎(chǔ)上,結(jié)合TFIDF算法對(duì)詞向量進(jìn)行加權(quán),以考慮詞匯在不同類別中的重要程度。
文本分類模型中,深度學(xué)習(xí)模型的分類效果一般要優(yōu)于傳統(tǒng)的機(jī)器學(xué)習(xí)算法。總地來說,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)就常常用來獲取鄰近詞匯間的關(guān)聯(lián),注重捕捉文本局部特征[11]。 循環(huán)神經(jīng)網(wǎng)絡(luò) (Recurrent Neural Network,RNN)作為一種序列模型,可以由前向后讀取文檔詞匯,并可以對(duì)獲取的語義信息進(jìn)行記憶,因此RNN模型可以在獲取文本局部特征的基礎(chǔ)上捕捉到更廣范圍內(nèi)的特征信息。相比于CNN模型,RNN模型更適合處理短文本這種序列化數(shù)據(jù),然而RNN模型在實(shí)際處理文本數(shù)據(jù)過程中,常出現(xiàn)梯度爆炸和梯度消失的問題。為解決梯度消失問題,文獻(xiàn)[12]對(duì)RNN模型做出改進(jìn),提出了長短時(shí)記憶模型(Long and short time memory model, LSTM)。 類似RNN,LSTM模型也按照文檔輸入順序?qū)W習(xí)詞匯間的特征信息。文檔中詞匯的正確理解要依賴于上下文信息,因此文獻(xiàn)[13]提出雙向循環(huán)神經(jīng)網(wǎng)絡(luò)處理短文本數(shù)據(jù)能夠更充分抓取上下文關(guān)聯(lián)信息。
在文本向量化過程中通常只單獨(dú)考慮詞匯的詞義特征或者文本的語義特征,然而詞義和語義概念不同,詞義代表單個(gè)詞匯的意思,而語義是多個(gè)詞匯按照一定順序綜合表達(dá)的意思[14],因此為了豐富文本特征信息,文章對(duì)短文本向量化表示方法加以改進(jìn),結(jié)合Word2vec、LDA與TF-IDF三種模型,分別在詞匯粒度和文本粒度兩個(gè)層面提取文本特征,并計(jì)算詞匯TF-IDF值,對(duì)多維詞匯向量進(jìn)行加權(quán),以表現(xiàn)詞匯的重要程度。將3種算法獲取的文本特征組合成為向量矩陣。另外,利用雙向LSTM作為分類模型,既能解決RNN梯度消失問題,又能從2個(gè)方向充分捕捉上下文特征信息。
文章設(shè)計(jì)的短文本分類模型將Word2vec、TFIDF與LDA三種模型提取的特征向量組合成輸入矩陣,輸入到BiLSTM中利用隱藏層節(jié)點(diǎn)獲取短文本內(nèi)部的關(guān)聯(lián)關(guān)系,最后利用softmax分類器對(duì)神經(jīng)網(wǎng)絡(luò)層的輸出進(jìn)行類別判定。主要包括文本預(yù)處理、向量化表示、神經(jīng)網(wǎng)絡(luò)層及分類與評(píng)估四部分,算法設(shè)計(jì)流程如圖1所示。
圖1 算法流程圖Fig.1 Algorithm flow chart
文本預(yù)處理是文本分類過程中基礎(chǔ)、且重要的一項(xiàng)操作,訓(xùn)練數(shù)據(jù)的質(zhì)量對(duì)分類準(zhǔn)確程度有很大影響。本次設(shè)計(jì)的文本預(yù)處理主要包括:分詞、去停用詞與去低頻詞。
研究可知,中文分詞不同于英文分詞,詞與詞之間沒有明顯的界限,本文利用jieba分詞軟件將文本切割為若干個(gè)有意義的詞語,并使用含有36 000余個(gè)常用詞條的分詞字典以提高分詞的正確率。文本分詞得到的詞組中通常包括一些高頻但無意義的詞語、標(biāo)點(diǎn)符號(hào),如“一會(huì)兒”、“的”、“了”、“?!钡?,這些被統(tǒng)稱為停用詞。為保證文本特征的有效性,利用停用詞表過濾掉這些干擾項(xiàng),保留有價(jià)值的特征項(xiàng);詞組還包括部分出現(xiàn)頻率低、對(duì)分類結(jié)果影響小的低頻次分項(xiàng),考慮到處理的數(shù)據(jù)為短文本,所以去掉出現(xiàn)次數(shù)為1的詞匯,在一定程度上降低了特征維度。
文本向量化指的是將一篇文檔表示為一個(gè)向量或矩陣的形式,主要是基于詞的向量化[15]。利用大規(guī)模語料訓(xùn)練Word2vec模型,將每個(gè)單詞表示為n維向量,再結(jié)合TF-IDF算法、LDA主題模型提取的詞匯權(quán)重向量和文檔主題向量,實(shí)現(xiàn)文本的向量化表示。對(duì)此可展開研究論述如下。
1.3.1 Word2vec 模型
Word2vec是一種輕量級(jí)神經(jīng)網(wǎng)絡(luò),能夠簡單、高效地將詞語映射為一個(gè)低維、稠密的向量。語料集則構(gòu)成一個(gè)巨大的詞向量空間,每個(gè)詞向量映射為其中的一個(gè)點(diǎn),此后則可通過計(jì)算向量點(diǎn)間的距離來判斷詞匯間的相似性。該模型包括:CBOM(Continuous Bag-of-Word Model) 和 Skip-gram(Continuous Skip-gram Model)兩種訓(xùn)練方式,兩者都包括輸入層、投影層和輸出層三層網(wǎng)絡(luò),主要區(qū)別在于:前者通過上下文信息預(yù)測(cè)當(dāng)前詞匯,而后者是通過當(dāng)前詞匯信息預(yù)測(cè)上下文,兩者網(wǎng)絡(luò)結(jié)構(gòu)分別如圖2、圖3所示。
圖2 CBOM網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 The network structure of CBOM
圖3 Skip-gram網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 The network structure of Skip-gram
由于短文本中詞匯數(shù)量較少,上下文信息缺失,故本次設(shè)計(jì)使用Skip-gram方式來獲取包含上下文詞義信息的詞向量,訓(xùn)練參數(shù)見表1。設(shè)置窗口大小為5,語料庫中包括27 243 978個(gè)詞匯,經(jīng)訓(xùn)練得到167 299個(gè)100維的詞向量。以“伊拉克”為例,查看與其詞義相關(guān)聯(lián)的詞匯集合如圖4所示,可以看出訓(xùn)練結(jié)果良好。
表1 Word2vec訓(xùn)練參數(shù)Tab.1 The training parameters of Word2vec
圖4 Word2vec模型詞義相關(guān)度Fig.4 Word relevance of Word2vec model
Skip-gram預(yù)測(cè)上文詞匯概率的表示公式為:
其中,wn表示語料集中的一個(gè)詞匯;c為滑動(dòng)窗口的大??;wn-c,wn-c+1,…,wn+c-1,wn+c為根據(jù)wn預(yù)測(cè)的前后2?c個(gè)詞匯。
假設(shè)文檔dm為文檔集D={d1,d2,…,dm,…,dM}中的任意一篇文檔,dm有詞匯集合W={w1,w2,…,wn,…,wN}, 利用 Word2vec 訓(xùn)練得到的詞向量對(duì)文檔dm進(jìn)行文本向量化,文檔dm轉(zhuǎn)化為一個(gè)N?V的二維矩陣,文檔集D則表示為一個(gè)M?N?V的三維矩陣。由此可得對(duì)應(yīng)的數(shù)學(xué)表述如下:
其中,M表示文檔集中文檔總數(shù);N表示每篇文檔的詞匯數(shù)量;V表示W(wǎng)ord2vec模型訓(xùn)練得到的詞向量的維度。
Word2vec模型將詞匯映射為包含上下文詞義信息的V維詞向量,很好地解決了one-hot編碼方式出現(xiàn)的詞匯鴻溝問題,而且有效降低了特征維度,避免了維度災(zāi)難問題。然而Word2vec模型無法區(qū)分詞匯在文檔中的重要程度,所以接下來研究將利用TF-IDF算法計(jì)算詞匯的權(quán)重,為詞向量進(jìn)行加權(quán)。
1.3.2 TF-IDF 算法
TF-IDF模型廣泛應(yīng)用于信息檢索、搜索引擎中,其主要思想為:若某一詞匯wn在一類文檔Di(Di?D)有很高的出現(xiàn)頻率,而在其它類文檔中很少出現(xiàn),則認(rèn)為該詞匯能夠代表該類文章,具有良好的類別區(qū)分能力。該模型主要包括:詞頻(Term frequency,TF) 和逆文檔頻率(Inverse document frequency,IDF)兩部分。這里,TF表示某個(gè)詞wn在文檔dm中出現(xiàn)的頻率,IDF則代表該詞的類別區(qū)分度,其數(shù)學(xué)公式可表示為:
其中,fn,m表示詞wn在文檔dm中出現(xiàn)的次數(shù);表示文檔dm中出現(xiàn)的詞匯總數(shù);為文檔集包含的文檔數(shù)量;表示出現(xiàn)詞wn的文檔數(shù)量,為避免因語料集中不包括詞wn,出現(xiàn)分母為零的情況,為分母添加一個(gè)常量,同時(shí)減小常量的影響,故分母設(shè)置為
TFIDF權(quán)重即為TF與IDF的乘積??偨Y(jié)來說,詞wn的重要性與其在文檔中的出現(xiàn)頻率成正比增加,同時(shí)也與其在語料集中的出現(xiàn)頻率成反比下降。經(jīng)計(jì)算可得文檔集的權(quán)重矩陣的數(shù)學(xué)公式如下:
1.3.3 LDA 主題模型
LDA是一種無監(jiān)督學(xué)習(xí)的主題概率生成模型,其核心思想為:每篇文檔含有若干個(gè)隱含主題,每個(gè)隱含主題又包含一個(gè)與該主題相關(guān)的詞匯集合。LDA主題模型主要包括2個(gè)多項(xiàng)式分布:文檔-主題分布θ和主題-詞匯分布φ。 前者表示各個(gè)主題在文檔中出現(xiàn)的概率分布;后者表示每個(gè)詞匯在主題中出現(xiàn)的概率分布。該模型的設(shè)計(jì)結(jié)構(gòu)如圖5所示,其中α、β、K分別表示:文檔中主題分布的先驗(yàn)分布(Dirichlet分布)的參數(shù)、主題中詞匯分布的先驗(yàn)分布(Dirichlet分布)的參數(shù)、主題個(gè)數(shù)。這3個(gè)參數(shù)均需手動(dòng)設(shè)置。
圖5 LDA模型結(jié)構(gòu)Fig.5 Structure of LDA model
短文本集經(jīng)LDA主題模型訓(xùn)練后,輸出文檔-主題矩陣、主題-詞匯矩陣[6],以概率形式體現(xiàn)文檔隱含的語義特征,是對(duì)文檔深層特征的直接提取。經(jīng)實(shí)驗(yàn)檢驗(yàn),本次設(shè)計(jì)LDA主題模型的參數(shù)設(shè)置見表2。
表2 LDA主題模型參數(shù)Tab.2 Parameters of LDA topic model
其中,iter為迭代次數(shù),主題數(shù)量K設(shè)置與Word2vec的維度相同,以便進(jìn)行模型組合,最后得到文檔-主題矩陣向量L,用此表示語料庫中每篇文檔K個(gè)主題的概率分布。研究推得其數(shù)學(xué)運(yùn)算公式如下:
1.3.4 模型組合
改進(jìn)的短文本向量化表示方法主要對(duì)3種模型提取的文本特征進(jìn)行組合,首先利用計(jì)算的TFIDF值對(duì)Word2vec詞向量進(jìn)行加權(quán),再將Word2vec詞向量與LDA主題向量進(jìn)行拼接構(gòu)成新的向量矩陣,使其包含詞匯語義信息的同時(shí)又包含文檔的主題信息,則文檔集中文檔m的向量化表示則可寫作如下形式:
自然語言是典型的序列數(shù)據(jù),RNN目前已經(jīng)常應(yīng)用于序列數(shù)據(jù)的處理和預(yù)測(cè)。RNN能夠記憶之前學(xué)習(xí)的信息,并利用之前的信息對(duì)當(dāng)前輸出施加影響,刻畫一個(gè)當(dāng)前輸出與之前信息的關(guān)系。典型的RNN結(jié)構(gòu)及其時(shí)序展開結(jié)構(gòu)如圖6所示。
圖6 RNN結(jié)構(gòu)圖Fig.6 Structure of RNN
由圖6可以看出,當(dāng)前t時(shí)刻RNN的輸入除了來自輸入層的xt,還包括之前時(shí)刻隱藏層的狀態(tài)st-1,而當(dāng)前時(shí)刻隱藏層的狀態(tài)st,不僅作為當(dāng)前時(shí)刻輸出層的輸入,還被RNN記憶下來作為下一時(shí)刻隱藏層st+1的輸入,RNN正是基于以上原理對(duì)序列數(shù)據(jù)實(shí)現(xiàn)處理。理論上該神經(jīng)網(wǎng)絡(luò)模型可以處理無限長的序列,然而在實(shí)際應(yīng)用中訓(xùn)練RNN時(shí)容易出現(xiàn)梯度爆炸和梯度消失的問題,使得RNN無法應(yīng)對(duì)長距離的影響,導(dǎo)致其處理長序列的結(jié)果并不理想。針對(duì)研究中可能面臨的梯度問題,一般通過設(shè)置梯度閾值來解決梯度爆炸問題,當(dāng)梯度值超過該閾值時(shí)直接進(jìn)行截取;而對(duì)于梯度消失問題,則流行使用對(duì)RNN做出改進(jìn)的LSTM。
LSTM在RNN的基礎(chǔ)上新增一種自我連接的CEC(Constant Error Carrousel)單元來記憶長距離信息,并引入門(gate)機(jī)制來對(duì)輸入、輸出信息進(jìn)行限制管理。門實(shí)際上是一層全連接層,其輸入為一個(gè)向量,輸出一個(gè)取值范圍在[0,1]之間的實(shí)數(shù)向量,LSTM的設(shè)計(jì)結(jié)構(gòu)如圖7所示。
圖7 LSTM結(jié)構(gòu)圖Fig.7 Structure of LSTM
由圖7可知,LSTM主要包括記憶單元c、輸入門i、遺忘門f以及輸出門o。其中,遺忘門f和輸入門i用來控制記憶單元的輸入信息,決定之前時(shí)刻單元狀態(tài)Ct-1和當(dāng)前時(shí)刻網(wǎng)絡(luò)輸入xt的保留比例。輸出門o用來控制單元狀態(tài)Ct輸入到當(dāng)前時(shí)刻輸出值ht的信息量。LSTM工作過程主要涉及各符號(hào)的闡釋解讀見表3。其中將用到如下數(shù)學(xué)公式:
表3 符號(hào)解釋說明表Tab.3 Symbolic interpretation
通常情況下,文檔中每個(gè)詞匯語義的正確理解不但依賴于之前的元素,而且還與之后的元素密切相關(guān)。比如下面這句話:“我的硬盤壞了,我想____一個(gè)新硬盤?!?,要補(bǔ)全這句話,若只考慮前面的元素信息,則橫線處可以填:“修一下”、“買一個(gè)”、“扔掉”等,具有很大的不確定性。若同時(shí)考慮橫線前后的元素信息,則選擇填“買”的概率較大。LSTM為單向神經(jīng)網(wǎng)絡(luò)只能從前往后傳輸狀態(tài)信息,而不能獲取后文對(duì)當(dāng)前詞匯的影響,因此,本次設(shè)計(jì)使用2個(gè)方向相反的雙向LSTM來充分捕捉詞匯的上下文信息,最大限度理解當(dāng)前詞匯的語義信息,其網(wǎng)絡(luò)結(jié)構(gòu)如圖8所示。
圖8 BiLSTM結(jié)構(gòu)圖Fig.8 Structure of BiLSTM
可以看出,BiLSTM神經(jīng)網(wǎng)絡(luò)最后輸出Hn由2個(gè)單向、反向的LSTM輸出結(jié)果拼接得到,其拼接公式為:
本文利用22萬余條新聞簡訊作為實(shí)驗(yàn)數(shù)據(jù),數(shù)據(jù)集中涉及13個(gè)欄目的分類新聞,從中選擇affairs、economic、education、game 等 8 類新聞,并將其以8:2的比例劃分為訓(xùn)練集和測(cè)試集。經(jīng)統(tǒng)計(jì)部分文檔,發(fā)現(xiàn)分詞后大部分文檔由100~200個(gè)詞匯組成,文檔詞匯數(shù)目分布如圖9所示,在完成預(yù)處理操作后文檔保持在100詞左右,故本次設(shè)計(jì)對(duì)文檔長度進(jìn)行標(biāo)準(zhǔn)化,保證每篇文檔詞匯數(shù)目為100,超出部分進(jìn)行截?cái)啵蛔銊t補(bǔ)0。
圖9 文檔詞匯數(shù)目分布圖Fig.9 Document vocabulary number distribution
實(shí)驗(yàn)參數(shù)的合理設(shè)置對(duì)實(shí)驗(yàn)結(jié)果有直接影響,Word2vec模型與LDA主題模型的訓(xùn)練參數(shù)已在上文列出,神經(jīng)網(wǎng)絡(luò)部分的參數(shù)設(shè)置見表4。參數(shù)調(diào)整過程中使用固定參數(shù)的方法,分別對(duì)LSTM層單元數(shù)、Dense層單元數(shù)、丟棄率等參數(shù)進(jìn)行了對(duì)比實(shí)驗(yàn),并利用EarlyStopping機(jī)制對(duì)val_acc值進(jìn)行監(jiān)控,當(dāng)準(zhǔn)確率不再上升時(shí)則停止訓(xùn)練,以避免過擬合、不收斂等問題,同時(shí)可以加快學(xué)習(xí)速度,提高調(diào)參效率。
表4 神經(jīng)網(wǎng)絡(luò)參數(shù)設(shè)置Tab.4 Neural network parameter setting
為驗(yàn)證WTL-BiLSTM模型的有效性,分別與基于詞向量的 LSTM模型(Word2vec LSTM,WLSTM)、雙向 LSTM模型(Word2vec BiLSTM ,WBiLSTM)及傳統(tǒng)機(jī)器學(xué)習(xí)算法SVM進(jìn)行如下的對(duì)比實(shí)驗(yàn)研究。
首先與基于神經(jīng)網(wǎng)絡(luò)的分類算法進(jìn)行對(duì)比,實(shí)驗(yàn)中各模型的參數(shù)設(shè)置保持一致。圖10~圖15分別為W-LSTM、W-BiLSTM、WTL-BiLSTM的損失函數(shù)變化趨勢(shì)和分類準(zhǔn)確率,利用Python繪圖模塊matplotlib繪制得到。在圖10~圖15中,train_~和val_~分別表示訓(xùn)練集和測(cè)試集。對(duì)比三者損失函數(shù)變化圖發(fā)現(xiàn),基于詞向量的雙向LSTM模型(WBiLSTM)下降到穩(wěn)定值的速度最快,文章設(shè)計(jì)的模型(WTL-BiLSTM)下降到穩(wěn)定值的速度稍慢,但相對(duì)其它2種模型最后訓(xùn)練得到的損失函數(shù)值最小,即說明分類效果最優(yōu)。通過對(duì)比分類準(zhǔn)確率圖也可以發(fā)現(xiàn),3種模型分類準(zhǔn)確率從高到低依次為:WTL-BiLSTM模型、W-BiLSTM模型和W-LSTM模型。
圖10 W-LSTM損失函數(shù)變化圖Fig.10 Change graph of WLSTM loss function
圖11 W-LSTM分類準(zhǔn)確率Fig.11 Classification accuracy of W-LSTM
圖12 W-BiLSTM損失函數(shù)變化圖Fig.12 Change graph of WBiLSTM loss function
圖13 W-BiLSTM分類準(zhǔn)確率Fig.13 Classification accuracy of W-BiLSTM
圖14 WTL-BiLSTM損失函數(shù)變化圖Fig.14 Change graph of WTLBiLSTM loss function
本次實(shí)驗(yàn)還與SVM算法進(jìn)行對(duì)比,實(shí)驗(yàn)思路按照文獻(xiàn)[9]的處理方法,利用TFIDF權(quán)重對(duì)Word2vec模型訓(xùn)練的詞向量進(jìn)行加權(quán),然后將文檔中的加權(quán)詞向量累加后作為文檔向量,最后輸入到SVM中實(shí)現(xiàn)分類,算法運(yùn)行后的分類準(zhǔn)確率對(duì)比見表5。根據(jù)分類準(zhǔn)確率對(duì)比發(fā)現(xiàn),本次設(shè)計(jì)模型的分類效果要遠(yuǎn)遠(yuǎn)優(yōu)于傳統(tǒng)機(jī)器學(xué)習(xí)算法。
表5 各分類模型分類準(zhǔn)確率Tab.5 Classification accuracy of each classification model
文章提出一種基于雙向LSTM神經(jīng)網(wǎng)絡(luò)的短文本分類算法,從文本向量化表示和分類模型兩方面分別提供了改進(jìn)。文本向量化表示融合Word2vec模型、TFIDF模型與LDA主題模型,豐富了文本特征信息。分類模型則采用雙向的LSTM從詞匯前后兩個(gè)方向充分提取上下文信息。通過實(shí)驗(yàn)對(duì)比發(fā)現(xiàn),文章提出算法的分類效果要優(yōu)于只利用Word2vec模型進(jìn)行文本向量化的 LSTM模型、BiLSTM模型。另外還與傳統(tǒng)機(jī)器學(xué)習(xí)算法SVM進(jìn)行了比較,本次設(shè)計(jì)的算法同樣優(yōu)于SVM模型,進(jìn)一步驗(yàn)證了本次設(shè)計(jì)改進(jìn)文本向量化表示和分類模型的有效性。