侯雪亮,李 新,陳遠(yuǎn)平
1(中國科學(xué)院 計(jì)算機(jī)網(wǎng)絡(luò)信息中心,北京 100190)
2(中國科學(xué)院大學(xué),北京 100049)
在NLP 領(lǐng)域中,與文本分類算法相關(guān)的研究受到了越來越多的關(guān)注.文本分類的目的是通過對文本信息的挖掘與處理,來解決信息紊亂的問題,從而能幫助用戶更加精準(zhǔn)地定位所需信息,并可根據(jù)已定的類別集合將其判定為已知的某一類.目前,在新聞推薦、情感評(píng)價(jià)、郵件分類等領(lǐng)域受到廣泛應(yīng)用.文本分類的特點(diǎn)在于能在文本數(shù)據(jù)量不明確和復(fù)雜的情況下,根據(jù)預(yù)先確定的類別信息,輸出成有價(jià)值的信息.
隨著machine learning 和deep learning 等研究方法的不斷完善,文本分類問題的解決路徑也從先前的向量空間模型(VSM)逐步轉(zhuǎn)移至機(jī)器學(xué)習(xí)和深度學(xué)習(xí)結(jié)合的方法上來[1].在深度學(xué)習(xí)網(wǎng)絡(luò)中,卷積神經(jīng)網(wǎng)絡(luò)CNN 可以識(shí)別出文本中預(yù)言性的n元語法;卷積結(jié)構(gòu)支持有相似成分的n元語法共同分享其預(yù)測行為,即使是在預(yù)測的過程中遇見未曾登錄過的特定n元語法也是可以的;而層次化CNN 每層則著眼在句子中更長的n元語法,這樣模型還可以對非連續(xù)的n元語法更加敏感,可以對文本分類的效果產(chǎn)生顯著的影響[2].
但是目前的主要研究均集中在長文本和富文本上,對于短文本的研究較少.短文本相比較于長文本和富文本而言,其所含的信息量較少,無法采用統(tǒng)計(jì)學(xué)觀點(diǎn)進(jìn)行詞向量分析,傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)對短文本的分類效果較差,尤其是對于標(biāo)簽值較少的短文本而言,比如新聞標(biāo)題分類、知識(shí)庫分類等,其詞匯量往往不到50 個(gè),而標(biāo)簽值默認(rèn)只有一個(gè)(相互獨(dú)立的分類標(biāo)簽)[3].所以,本文提出了一種應(yīng)用于短文本分類的模型,利用TextRank 算法提取短文本中的關(guān)鍵詞,然后進(jìn)行值序列化分析和特征重構(gòu),然后在基于FastText 和TextCNN的混合短文本分類模型中進(jìn)行類別向量的輸出.對比實(shí)驗(yàn)表明,在短文本的分類實(shí)驗(yàn)上,該模型較傳統(tǒng)方法而言,在準(zhǔn)確率和處理速度上均有明顯提升.
關(guān)于文本分類的模型主要分3 大類:基于概率統(tǒng)計(jì)、基于幾何和基于統(tǒng)計(jì),如神經(jīng)網(wǎng)絡(luò)、貝葉斯方法、KNN、決策樹(Decision Tree)、支持向量機(jī)(Support Vector Machines,SVM)等.
基于概率的文本模型的核心思想是,假設(shè)待分類的文本是D,它所屬的類別集是C={c1,c2,c3,···,cm},基于概率模型的文本分類就是對1≤i≤n計(jì)算出對應(yīng)的條件概率(ci|d),并且將條件概率中出現(xiàn)的最大的類別看作是該待分類文本的類別.當(dāng)前,基于概率的文本分類模型應(yīng)用最廣的是樸素貝葉斯分類器[4].
樸素貝葉斯分類器(NaiveBayes)是一種較簡單的分類算法,它的思想基礎(chǔ)是對于指定的待分類項(xiàng),求解出該項(xiàng)出現(xiàn)條件下,類別出現(xiàn)的概率P,哪個(gè)類別的概率最大,就視為該待分類項(xiàng)歸屬于哪個(gè)[5,6].基于貝葉斯分類器的貝葉斯規(guī)則如式(1):
其中,C和D是隨機(jī)變量.
首先計(jì)算文本d在每個(gè)給定類別下的概率P(ci|d),其后根據(jù)概率值的比較,概率最大的對應(yīng)的類別即為文本d所屬類別.我們對文本d的計(jì)算如下:
先驗(yàn)概率P(ci)的計(jì)算如式(3):
其中,N(ci)是 train 樣本中文本類別ci的樣本數(shù)量,N為train 樣本的總數(shù),P(ci)表示類別ci在訓(xùn)練集中所占的比例.
概率P(d|ci)是基于貝葉斯假設(shè)得出的:文本d中各詞組間是相互獨(dú)立的.因?yàn)楸硎颈缓喕?所以這就是“樸素”的緣由.事實(shí)上,詞組并不是真正意義上的相互獨(dú)立,實(shí)驗(yàn)只是假設(shè)存在獨(dú)立性.在實(shí)際應(yīng)用中,樸素貝葉斯仍可在文本分類的處理中有較好的分類效果.該假設(shè)給出了計(jì)算聯(lián)合概率的方法,并且聯(lián)合概率可用條件概率乘積來表示.
P(d|ci)的計(jì)算公式如式(4):
其中,tk表示含有n個(gè)詞組的表Vi中的某一詞組,所以,計(jì)算P(d|ci)轉(zhuǎn)為計(jì)算詞組表V中每個(gè)詞組在每個(gè)類別下的概率P(tk|ci).
基于幾何的模型方法是以向量空間模型為基本出發(fā)點(diǎn),把文本表示為多維的空間向量,其為多維空間里的一個(gè)點(diǎn).構(gòu)建一個(gè)擁有分類性質(zhì)的超平面,它能把劃分出各個(gè)類別.其中最經(jīng)典的分類器是支持向量機(jī),而最簡單的SVM 本質(zhì)上就是一個(gè)二分類器,可以用來區(qū)分常見的正反例數(shù)據(jù).SVM 可以構(gòu)建一個(gè)區(qū)分類別的N維空間的決策超平面[6,7],并且該超平面可以平行移動(dòng),且不會(huì)造成錯(cuò)誤的分類.因此,為了保證預(yù)測時(shí)的穩(wěn)定性和魯棒性,我們會(huì)希望該超平面與樣本的距離足夠大,即該超平面能夠在邊界區(qū)域的中界上.這個(gè)理論最初是由Vapnik 等人提出的,并被發(fā)展成經(jīng)典的統(tǒng)計(jì)機(jī)器學(xué)習(xí)理論,在二分類問題上擁有非常高效的處理能力.
SVM 中采用了結(jié)構(gòu)風(fēng)險(xiǎn)最小原則,這項(xiàng)原則的提出是以support vector 為基礎(chǔ),在多維空間里確定一個(gè)能把樣本分成兩個(gè)類別,且具有最大邊緣值,達(dá)到最大化的分類精確度,這樣的超平面為最優(yōu)超平面[8].
在NLP 研究領(lǐng)域中,基于統(tǒng)計(jì)學(xué)習(xí)的方法稱為了主流,其中最典型的就是K最近鄰分類算法(KNN).它是一種基本的分類與回歸方法.其基本思想是,給定測試用例,用距離去度量找出訓(xùn)練數(shù)據(jù)中和它最近的K個(gè)實(shí)例,然后用這K個(gè)最近鄰的實(shí)例來做預(yù)測處理,最終確定測試用例的類別[6–9].
KNN 算法的過程描述:
1)計(jì)算測試用例和各個(gè)訓(xùn)練用例間的距離;
2)對上述計(jì)算得出的距離進(jìn)行排序;
3)選擇距離絕對值最小的K個(gè)用例;
4)計(jì)算這K個(gè)用例對應(yīng)類別的頻率;
5)選擇頻率最高的類別作為該測試用例的類別.
從短文本中對關(guān)鍵詞進(jìn)行提取,首先需要考慮到短文本與長文本的不同之處在于,在短文本里每個(gè)關(guān)鍵詞的頻數(shù)較小,傳統(tǒng)的關(guān)鍵詞提取模型如SKE、RAKE、LDA 和TF-IDF 等則需對大量文本采用統(tǒng)計(jì)學(xué)分析,從而得到相應(yīng)的詞頻向量.所以在短文本中關(guān)鍵詞的提取方法可以用TextRank 進(jìn)行處理.
TextRank 模型時(shí)主要用于文本的排序算法,它是基于圖特征構(gòu)建的,并有Google 的PageRank 模型演化而來.其主要思想就是構(gòu)建一個(gè)特征圖,把文本里出現(xiàn)的詞看作節(jié)點(diǎn),邊與邊連接,并且節(jié)點(diǎn)和權(quán)重一一對應(yīng),權(quán)重高的節(jié)點(diǎn)可以作為關(guān)鍵字[10,11].
TextRank 的計(jì)算公式如下:
其中,d是阻尼系數(shù),取值范圍0 到1,它表示從圖中某一點(diǎn)指向任意點(diǎn)的概率,一般取0.85.用TextRank算法估計(jì)各點(diǎn)的得分時(shí),需給圖中的點(diǎn)初始化任意的數(shù)值,并且遞歸計(jì)算達(dá)到收斂,即圖中任意點(diǎn)的誤差率小于極限值時(shí)就視為達(dá)到收斂,一般情況極限值取0.0001[12].
TextRank 在短文本中關(guān)鍵詞提取的算法如下:
1)將短文本T進(jìn)行分割:
2)進(jìn)行分詞和處理詞性標(biāo)注,將停用詞等過濾掉,只留下詞性的部分詞:
3)構(gòu)建詞圖,候選關(guān)鍵詞構(gòu)成節(jié)點(diǎn)集合V.實(shí)驗(yàn)采用了共現(xiàn)關(guān)系連接任意兩個(gè)節(jié)點(diǎn),并約定兩節(jié)點(diǎn)間有邊當(dāng)且僅當(dāng)其對應(yīng)的詞在長度是K的窗口里共現(xiàn).
4)由TextRank 公式,進(jìn)行迭代傳播各個(gè)節(jié)點(diǎn)的權(quán)重值.
5)將權(quán)重倒序排列,TopN的詞作為待選keyword.
6)在上個(gè)步驟中獲取T個(gè)詞后,標(biāo)記原始的文本,若發(fā)現(xiàn)產(chǎn)生相鄰詞組,則組合為多詞關(guān)鍵詞.
我們對關(guān)鍵詞進(jìn)行向量化處理,并采用了相關(guān)性分析,以此能夠?qū)σ陨袭a(chǎn)生的關(guān)鍵詞特征向量重構(gòu).首先在相關(guān)性分析方法的選擇上,采用斯皮爾曼相關(guān)系數(shù)(Spearman’s rank correlation coefficient),又叫秩相關(guān)系數(shù),對變量間的秩次作分析,對變量的分布不做規(guī)定,是非參數(shù)統(tǒng)計(jì)方法.與之類似的還有皮爾遜相關(guān)系數(shù)(Pearson correlation coefficient),但相比之下,斯皮爾曼相關(guān)系數(shù)擁有更廣泛的適用范圍,并且更契合本文的目的,因此我們用Spearman 秩系數(shù)來分析統(tǒng)計(jì)特征間的相關(guān)性[13].
Spearman’s 系數(shù)ρ 的取值范圍為[?1,1].當(dāng)ρ=?1 時(shí),兩種統(tǒng)計(jì)特征負(fù)相關(guān),當(dāng)ρ=1 時(shí),兩種統(tǒng)計(jì)特征正相關(guān),當(dāng)ρ=0 時(shí),兩種統(tǒng)計(jì)特征不存在相關(guān)性.
Spearman 相關(guān)系數(shù)的計(jì)算公式如下:
其中,N表示樣本總量,和分別表示X,Y的均值.
考慮到我們需對詞向量中各個(gè)特征之間的相關(guān)性關(guān)系進(jìn)行分析,所以我們采用了Spearman’s 的秩相關(guān)系數(shù),并且,更進(jìn)一步設(shè)置了各特征之間的系數(shù)閾值,規(guī)定短文本數(shù)據(jù)新特征由系數(shù)小于閾值的統(tǒng)計(jì)特征決定.
本文實(shí)驗(yàn)中根據(jù)短文本的數(shù)據(jù)特征值進(jìn)行關(guān)鍵詞提取,并創(chuàng)建相關(guān)的詞向量,采用Spearman 相關(guān)系數(shù)進(jìn)一步分析各個(gè)統(tǒng)計(jì)特征間的關(guān)聯(lián)性,最后,我們基于相關(guān)性分析的結(jié)果組成新的詞向量特征.這種基于關(guān)鍵詞提取算法創(chuàng)建短文本的特征空間,可以生成低密度的文本向量,對短文本的分類效果起到顯著的影響.
在本次實(shí)驗(yàn)中,我們提出了一種基于多神經(jīng)網(wǎng)絡(luò)混合的短文本分類模型[14],融合了TextCNN 和FastText兩種神經(jīng)網(wǎng)絡(luò).
FastText 模型分為3 方面:模型架構(gòu)、層次Softmax和n-gram 特征.模型架構(gòu)是一個(gè)線性模型.它首先需要輸入詞序列到輸入層中,再把字向量級(jí)別的n元語法向量組成模型的新特征向量;從inputlayer 到hiddenlayer的過程中,模型把詞信息用文本來完成表示,反饋到線性模型分類中,在outputlayer 中采用Softmax 完成類的概率分布計(jì)算[15].
原始的FastText 模型有輸入層、隱藏層以及輸出層,我們的目的是想讓其應(yīng)用在短文本內(nèi)容的分類任務(wù)上,我們對該模型的輸入層進(jìn)行了改進(jìn),添加了計(jì)算模型,即先使用TextRank 算法對短文本內(nèi)容進(jìn)行關(guān)鍵詞提取處理,然后計(jì)算關(guān)鍵詞向量化間的相關(guān)系數(shù),這一步采用Spearman 進(jìn)行實(shí)現(xiàn).最后,根據(jù)Spearman’s秩相關(guān)系數(shù)分析詞向量內(nèi)部各個(gè)特征之間的相關(guān)性,并選取若干個(gè)特征向量作為輸入.這部分輸入后續(xù)會(huì)經(jīng)過n-gram 處理得到新的詞序列特征,傳到隱藏層中.改進(jìn)后的FastText 模型架構(gòu)圖如圖1.
圖1 改進(jìn)后的FastText 模型架構(gòu)圖
圖1中,模型的輸入(x1,x2,x3,···)是詞序列或短文本,單層的神經(jīng)網(wǎng)絡(luò)作為hiddenlayer,最終模型的輸出是輸入數(shù)據(jù)所屬不同類別的概率向量.
在實(shí)際實(shí)驗(yàn)中,由于n-gram 易產(chǎn)生冗余詞條,為此,我們將詞條進(jìn)行條件過濾.在inputlayer 中加入TF-IDF模型,這樣能保存有價(jià)值的詞向量,構(gòu)建新的特征向量.通過映射到hiddenlayer 中,在求解完最大似然函數(shù)后做Softmax 處理,構(gòu)建哈夫曼樹[16].
在這個(gè)過程中,葉子節(jié)點(diǎn)表征著類別,在構(gòu)建非葉子節(jié)點(diǎn)時(shí)要選擇左右分支,若用邏輯回歸表示概率,如下式所示:
其中,σP表示正類別的概率,σN表示負(fù)類別概率,θ為模型中哈夫曼樹節(jié)點(diǎn)的一個(gè)參數(shù),構(gòu)建的哈夫曼樹中每個(gè)類別均有一條路徑,即訓(xùn)練樣本的特征向量Xi和類別標(biāo)簽Yi在哈夫曼樹均會(huì)有對應(yīng)的路徑進(jìn)行表示.換句話說,我們對Xi的類別進(jìn)行預(yù)測,本質(zhì)上就是計(jì)算Xi屬于標(biāo)簽Yi的概率,正如下式所示:
其中,l是樣本詞向量數(shù)量,wj是詞向量.
在TextCNN 模型的中,我們對其進(jìn)行了改進(jìn)[17].由于短文本中句子的長度有所不同,因此,我們使用padding 操作獲得固定長度n.這樣我們可以保證對于句子里的每個(gè)標(biāo)記信息,都可以擁有固定的維數(shù)d.因此,我們的輸入是一個(gè)二維矩陣:(n,d).
首先,我們將對輸入進(jìn)行卷積運(yùn)算.卷積是過濾器和輸入之間的特殊運(yùn)算,可將其視為逐元素相乘的運(yùn)算過程.在模型中,我們有k個(gè)濾波器,而且大小為二維矩陣(f,d).現(xiàn)在輸出將是k個(gè)列表.每個(gè)列表的長度為n–f+ 1.列表中的元素均為標(biāo)量,第二維采用了詞潛入的維.我們使用不同大小的過濾器,以從文本輸入中獲取豐富的功能.
其次,實(shí)驗(yàn)對模型的卷積運(yùn)算輸出max-pooling 操作.對于k個(gè)列表,我們將得到k個(gè)標(biāo)量.
第三,我們將連接標(biāo)量以形成最終特征.它是一個(gè)固定大小的向量.它與我們使用的過濾器的大小無關(guān).
最后,我們將使用線性層將這些特征投影到每個(gè)定義的標(biāo)簽上.
多模型神經(jīng)網(wǎng)絡(luò)框架的提出主要是根據(jù)分治原則用來解決復(fù)雜的問題.前人主要利用它解決分類問題,包括臉部的圖像分類和非平衡問題.它將原始集分為多個(gè)集合,最后進(jìn)行策略合并來輸出分類的結(jié)果.本文提出引入的多神經(jīng)網(wǎng)絡(luò)的目的與之類似,主要采用不同類型的神經(jīng)網(wǎng)絡(luò)特點(diǎn)彌補(bǔ)單一類型神經(jīng)網(wǎng)絡(luò)的缺點(diǎn).
改進(jìn)后的TextCNN 模型結(jié)構(gòu)圖如圖2.
圖2 改進(jìn)后的TextCNN 模型結(jié)構(gòu)圖
給定一個(gè)輸入input1={Ci|w1,w2,w3,···,wn},即每個(gè)輸入由一個(gè)類別Ci和若干詞wn組成的句子構(gòu)成,其中Ci是該輸入數(shù)據(jù)的目標(biāo)類別,每個(gè)輸入僅有一個(gè),對應(yīng)這個(gè)輸入的一個(gè)方面.比如輸入“國際| 美國總統(tǒng)特朗普9月11日宣布國會(huì)議員人選將不再限制綠卡持有量”,其中“國際”代表著該輸入的目標(biāo)類別,象征著該輸入的一個(gè)特定屬性.而本文主要解決的問題就是在未知類別屬性下,通過對語句的識(shí)別與理解,將該短語正確的劃分到給定的類別中.但是由于短文本分類中存在很多棘手的問題,比如輸入信息不足,類別向量太少,噪音太大等,導(dǎo)致短文本分類一直處于較低的準(zhǔn)確水平.我們嘗試將原始輸入數(shù)據(jù)進(jìn)行關(guān)鍵詞特征重構(gòu),通過對短文本的詞義分析進(jìn)行挖掘重要特征,并采用更適合多分類的模型進(jìn)行向量輸出.在已知原始輸入input1={Ci|w1,w2,w3,···,wn}的情況下,通過特征重構(gòu)得到input2=其中是通過對詞義分析而得到的特征詞,用以表征該輸入的多個(gè)類別信息,用作對Ci的有效補(bǔ)充.在上述輸入例句中,可將“特朗普”、“美國”、“總統(tǒng)”、“國會(huì)”、“綠卡”等關(guān)鍵詞特征進(jìn)行重構(gòu)提取.
在區(qū)域ri中,其長度為h,我們將每個(gè)詞映射成m維的值向量,從而可將區(qū)域表示成ri={x1,x2,x3,···,xh}.把文本里每個(gè)區(qū)域作為TextCNN 的輸入矩陣,并對該區(qū)域進(jìn)行卷積運(yùn)算[18],卷積核的長度為l:
式中,w∈Rm×l是模型的卷積核權(quán)重值,而b∈R則是模型的偏置項(xiàng)數(shù)據(jù),在這個(gè)模型中通過卷積層,每個(gè)區(qū)域均可獲取區(qū)域ri對 應(yīng)的特征圖c∈Rh?l+1:
在區(qū)域ri中,采用max-over-time pooling 對局部特征進(jìn)行采樣,提取特征圖的有效信息[18],即=max{c},下采樣的信息圖可表示為:
我們假設(shè)了兩種文本分類算法可以應(yīng)用于不同的處理場景.如上文所述,TextCNN 和FastText 都可以用來進(jìn)行文本分類,但解決的問題存在區(qū)別,TextCNN 在短文本分類中較重視詞向量,作文本分析或者主題分析較合適,但由于TextCNN 需對詞向量進(jìn)行多次卷積運(yùn)算,導(dǎo)致運(yùn)行時(shí)間較長.所以從模型結(jié)構(gòu)角度來說,FastText 采用了更加簡單而又高效的文本分類以及表征學(xué)習(xí)方法,所以在文本分類中的多標(biāo)簽值問題中更為合適,且運(yùn)行耗時(shí)很短,但是在短文本中由于缺少更多信息的補(bǔ)充,導(dǎo)致算法的準(zhǔn)確度大幅降低.
因此,我們利用TextCNN 來處理單標(biāo)簽分類與短文本工作,用FastText 來處理多關(guān)鍵詞的主題分類工作.優(yōu)化后的神經(jīng)網(wǎng)絡(luò)框架如圖3所示,不同于傳統(tǒng)的單一任務(wù)處理工作,本模型將原始集進(jìn)行分而治之,分別采用TextCNN 和FastText 進(jìn)行文本的處理工作,并在合并層進(jìn)行類別向量的融合:
在多神經(jīng)網(wǎng)絡(luò)混合的短文本分類模型框架中,在輸入層部分,數(shù)據(jù)來源有兩個(gè)類型:“標(biāo)簽值+多關(guān)鍵詞”作為多分類,“標(biāo)簽值+短文本”作為文本分析.簡言之,這個(gè)模型的輸入主要有多關(guān)鍵詞和短文本構(gòu)成.FastText 模型負(fù)責(zé)處理多關(guān)鍵詞特征,而TextCNN 負(fù)責(zé)處理短文本內(nèi)容.
我們采用Softmax 函數(shù)處理文本的類別輸出:
其中,W為權(quán)重矩陣,b為偏置項(xiàng),我們用最小化的交叉熵優(yōu)化混合模型,交叉熵計(jì)算如下:
式中,D為訓(xùn)練集文本數(shù)據(jù),C為數(shù)據(jù)的類別樹,y是待分類短文本句子的預(yù)測性類別,為短文本的實(shí)際類別,λ∥θ∥2為式子的交叉熵正則項(xiàng).
圖3 多神經(jīng)網(wǎng)絡(luò)混合的短文本分類模型框架
兩種神經(jīng)網(wǎng)絡(luò)模型的輸出在合并層進(jìn)行融合,形成短文本類別的向量輸出,合并層的具體融合方式如式所示執(zhí)行,C1和C2分別表示兩種分類算法的中間輸出向量,代表混合短文本分類模型中關(guān)鍵詞和短文本各自的影響力,由于C1和C2都是用來表征文本類別向量,所以它們的維數(shù)是一致的.它們按照影響比例進(jìn)行相加,其中 β參數(shù)負(fù)責(zé)控制FastText 和TextCNN 模型對最終類別向量輸出的影響效力,β的數(shù)值越大,即表示混合模型中FastText 模型的類別輸出向量對短文本類別向量的影響力就越高;反之,混合模型中TextCNN模型的類別輸出向量對短文本類別向量的影響力就越高.
在文本分類模型框架中加入Dropout 的目的是將其應(yīng)用于詞向量的分類中,能夠使得模型降低對于噪音的敏感度,防止因噪音導(dǎo)致過擬合[19].在某種程度上,Dropout 可作為文本數(shù)據(jù)增強(qiáng)的方法,將詞向量修剪得更為準(zhǔn)確.
傳統(tǒng)的短文本處理方法有RNN、LSTM、GRU、RCNN 等模型,一般通過Doc2Vec 或者lDA 模型將文本轉(zhuǎn)換成一個(gè)固定緯度的特征向量,然后再基于抽取的特征訓(xùn)練一個(gè)分類器.
FastText 模型相比于其他模型,在訓(xùn)練速度和算法準(zhǔn)確率上有了更好的表現(xiàn),主要做了如下改進(jìn):
層次Softmax:針對有大量類別的數(shù)據(jù)集或者是類別不均衡分布的數(shù)據(jù)集,FastText 模型的層次Softmax技巧通過對標(biāo)簽信息進(jìn)行編碼,可以縮小模型預(yù)測的目標(biāo)數(shù)量.該技巧建立在Huffman 編碼的基礎(chǔ)上,用來表征類別的樹形結(jié)構(gòu),當(dāng)類別數(shù)為K,word embedding大小為d時(shí),計(jì)算復(fù)雜度可以從O (Kd)降到O (dlog(K)),使得模型的計(jì)算效率更高.
n-gram:相比于傳統(tǒng)方法采用的詞袋模型不能考慮詞之間的順序,FastText 模型加入了n-gram 特征,通過對詞序的記錄進(jìn)行區(qū)分詞的信息,使得模型的可讀性更強(qiáng),提高了短文本的語義理解能力.模型把所有的n-gram 哈希到buckets 數(shù)量的桶中,并共享一個(gè)向量,這樣既保證了在查找時(shí) O (1)的效率,也把內(nèi)存消耗控制在O (buckets?dim)范圍內(nèi).
Subwords:subwords 可以理解為是字級(jí)別的ngram,它豐富了詞表示的層次,對相同字信息能夠有更好的語義相似性識(shí)別能力.這種技巧對低頻詞生成的詞向量效果會(huì)更好,并且對于訓(xùn)練詞庫之外的單詞,也可以構(gòu)建詞向量.
FastText 模型的架構(gòu)中只有一層的隱藏層和輸出層,保證了模型在CPU 上能實(shí)現(xiàn)分鐘級(jí)的訓(xùn)練,更容易在工程應(yīng)用上進(jìn)行部署.但是也正因此,模型只能對單個(gè)標(biāo)簽進(jìn)行分類,在做多標(biāo)簽處理時(shí),模型也僅會(huì)隨機(jī)選一個(gè)label 進(jìn)行模型的更新,導(dǎo)致其他信息被忽略,不適合做多標(biāo)簽的分類應(yīng)用.
TextCNN 模型是CNN 模型的一個(gè)變種,可以充分發(fā)揮CNN 的并行計(jì)算能力,訓(xùn)練速度更快,在保留了原始CNN 的特點(diǎn)之外,還加入了對文本特征的抽取能力.TextCNN 采用一維卷積來獲取句子的n-gram 特征表示,具有很強(qiáng)的文本淺層特征抽取能力.模型可以識(shí)別出任務(wù)里具有語言性的n元語法,在預(yù)測過程中遇見未登錄的特定n元語法時(shí),它的卷積結(jié)構(gòu)還可以讓有相似元素的n元語法分享預(yù)測的行為,并且層次化的CNN 的每一層都關(guān)注著句子里更長的n元語法,使得模型可以對非連續(xù)的n元語法更加敏感.TextCNN通過調(diào)整卷積核的高度,可以對綜合詞匯的多種時(shí)序信息進(jìn)行靈活處理,提高了模型對文本的解讀能力.
模型對數(shù)據(jù)的整體處理流程為:文本序列中的詞和詞組構(gòu)成特征向量,特征向量通過線性/非線性變換映射到中間層,中間層再映射到標(biāo)簽數(shù)據(jù)上,輸出文本對應(yīng)的標(biāo)簽值.本文中混合模型其實(shí)是兼顧了文檔向量和特征抽取的能力,保證了模型在遇到復(fù)雜多變的數(shù)據(jù)集時(shí)的多態(tài)性.
FastText 模型的輸入層到隱藏層部分,主要生成用來表征文本的向量;模型的隱藏層到輸出層是一個(gè)Softmax 線性的多類別分類器.它更適用于分類類別非常大且數(shù)據(jù)集足夠大的情況,當(dāng)類別數(shù)較小或數(shù)據(jù)集較小時(shí)容易導(dǎo)致過擬合.而TextCNN 采用了max pooling操作,可以保證文本的特征的位置與旋轉(zhuǎn)不變性,強(qiáng)特征的提取效果不受其位置所限制.此外,max pooling能夠減少模型參數(shù)數(shù)量,有利于減少過擬合問題.但是這也容易導(dǎo)致TextCNN 丟失特征的位置信息,并且無法記錄同一特征的強(qiáng)度信息.
此外,FastText 模型為了保證句子詞向量的相似性(模型要求詞向量按照相同的方向更新),沒有添加正則項(xiàng),從而導(dǎo)致模型的泛化能力減弱.而TextCNN使用預(yù)訓(xùn)練產(chǎn)生的詞向量作embedding layer,并且在本文實(shí)驗(yàn)中采用混合向量(基于字向量、靜態(tài)詞向量、動(dòng)態(tài)詞向量)進(jìn)行文本中詞信息的表示,能夠捕捉到更多的語義信息,以此來減少數(shù)據(jù)集的影響,提高模型的準(zhǔn)確率.同時(shí),TextCNN 在池化層后加了全臉階層和Softmax 層做分類任務(wù),并且加上了L2 正則項(xiàng)和Dropout 方法,來防止模型的過擬合問題,最后整體使用梯度法進(jìn)行參數(shù)的更新模型的優(yōu)化.
為了確認(rèn)該短文本分類的混合模型的算法有效性,同時(shí)也為了在長文本中驗(yàn)證其效果,實(shí)驗(yàn)選擇了相關(guān)的公開數(shù)據(jù)集:
1)TTNews:短文本采用今日頭條的公開新聞數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)驗(yàn)證,數(shù)據(jù)文件中每行是一條數(shù)據(jù),以_!_符號(hào)進(jìn)行分割,文本格式內(nèi)容依次為新聞的ID 編號(hào),新聞分類編碼code,新聞分類的名稱信息,新聞標(biāo)題title 和新聞關(guān)鍵詞keyword.數(shù)據(jù)采集時(shí)間為2018年05月,共計(jì)有382 688 條,有15 種新聞?lì)悇e,每種新聞?lì)悇e對應(yīng)的數(shù)據(jù)量大小如表1所示.
表1 TTNews 數(shù)據(jù)集中類別統(tǒng)計(jì)
為了保證是短文本數(shù)據(jù)集,本次實(shí)驗(yàn)是選用兩個(gè)關(guān)鍵數(shù)據(jù):新聞分類名稱和新聞對應(yīng)的標(biāo)題,比如“news_entertainment 胡歌為林心如澄清娛樂界謠言,最后發(fā)現(xiàn)純屬烏龍”.
2)THUCNews:長文本實(shí)驗(yàn)方面,實(shí)驗(yàn)采用了清華大學(xué)的THUCNews 數(shù)據(jù)集,該數(shù)據(jù)集是由新浪新聞在2005~2011年間的所有數(shù)據(jù)經(jīng)過濾產(chǎn)生的,包含了74 萬篇的新聞文檔,均是UTF-8 純文本格式.進(jìn)一步在原始的分類基礎(chǔ)之上,劃分了14 個(gè)待選的類別:Education,Technology,Finance,Stocks,Home,Social,Games,Fashion,Current Affairs,Lottery,Real Estate,Sports,Constellation,Entertainment[20].如表2.
表2 THUCNews 數(shù)據(jù)集中類別統(tǒng)計(jì)
首先需要對上述文本數(shù)據(jù)集進(jìn)行自動(dòng)分詞,本文采用中文分詞工具NLPIR 漢語粉刺系統(tǒng),調(diào)用GitHub上開源的工具包進(jìn)行文本分詞,每個(gè)詞用空格分開.并且將數(shù)據(jù)處理為每條新聞文本為一行,每行的末尾使用“__label__”特殊字符串.
對分詞后的數(shù)據(jù)進(jìn)行清洗,去除無意義的語氣詞、特殊符號(hào)、錯(cuò)詞等,把有效數(shù)據(jù)進(jìn)行整理.我們將traindata 和testdata 按照8:2 的比例劃分,并用shuffle函數(shù)將原始數(shù)據(jù)打散.
本次實(shí)驗(yàn)我們采用了常用的評(píng)估標(biāo)準(zhǔn),包括:召回率R(Recall)、準(zhǔn)確率P(Precision)和F1-分?jǐn)?shù)(F1-score).
我們假設(shè)文本分類針對數(shù)據(jù)c1的類別劃分結(jié)果如表3所示.
表3 類別劃分結(jié)果
實(shí)驗(yàn)在類別c1的召回率計(jì)算如下式:
實(shí)驗(yàn)在類別c1的準(zhǔn)確率計(jì)算如下式:
F1-score:也稱F1 分?jǐn)?shù),是分類問題中的重要衡量指標(biāo).在計(jì)算方法上,它同時(shí)考慮了模型的精確率和召回率兩個(gè)指標(biāo),所以可將其視為準(zhǔn)確率和召回率的調(diào)和平均數(shù),最大是1,最小是0.計(jì)算方式為:
本次實(shí)驗(yàn)的對比算法包括:CNN、RNN、TextCNN、TextRNN、FastText、Seq2seqAttn、RCNN 等模型.
在混合模型的實(shí)際訓(xùn)練中,模型整體保持了較高的運(yùn)行效率,在訓(xùn)練時(shí)間上的消耗見實(shí)驗(yàn)結(jié)果表3.
FastText 模型中最重的兩個(gè)參數(shù)分別是:詞向量大小維度dim 和subwords 范圍的大小subsize.其中,dim 越大,模型就能獲得更多的信息但同時(shí)對訓(xùn)練數(shù)據(jù)的要求也就更高,而且訓(xùn)練速度也會(huì)降低,因此本實(shí)驗(yàn)中詞向量的維度dim 選100.Subwords 是單詞序列中包含最小min 到最大max 之間的所有字符串,根據(jù)本文實(shí)驗(yàn)數(shù)據(jù)我們設(shè)置為1~3 之間靈活調(diào)整,以便能夠從數(shù)據(jù)中識(shí)別出中文特有的屬性(如人名、專有名詞等信息).在訓(xùn)練參數(shù)上,本實(shí)驗(yàn)的epochs 設(shè)為10,學(xué)習(xí)率Lr 設(shè)為0.1.FastText 是基于多線程的,根據(jù)本文實(shí)驗(yàn)環(huán)境,對CPU 核數(shù)調(diào)整為16.
TextCNN 模型的輸入采用基于Word2Vec 和glove的混合詞向量,具體包括字向量、靜態(tài)詞向量和動(dòng)態(tài)詞向量.因?yàn)樵谔幚鞱LP 任務(wù)時(shí)需要對文本進(jìn)行截取,在短文本實(shí)驗(yàn)中padding 值為50,長文本實(shí)驗(yàn)中padding值為300,卷積核的尺寸filter_size 范圍區(qū)間可取(1,10),在短文本實(shí)驗(yàn)中取{2,3,4},在長文本實(shí)驗(yàn)中取{3,4,5},每個(gè)filter 的feature maps 取100,因此,短文本實(shí)驗(yàn)中的卷積層大小為50×100,長文本實(shí)驗(yàn)中卷積層大小為300×100.卷積核的數(shù)量filter_nums 范圍區(qū)間可取(100,600),dropout 范圍區(qū)間可取(0,0.5),在本文實(shí)驗(yàn)中統(tǒng)一取filter_nums 為150,dropout 取0.5.實(shí)驗(yàn)中采用ReLU 激活函數(shù)進(jìn)行處理,池化層選擇了1–max pooling,為了進(jìn)一步檢驗(yàn)?zāi)P偷男阅芩?本文實(shí)驗(yàn)采取了交叉驗(yàn)證處理.在模型的訓(xùn)練參數(shù)上,本實(shí)驗(yàn)主要設(shè)置batch_size 為64,num_epochs 為10.
本次實(shí)驗(yàn)采用短文本數(shù)據(jù)集TTNews 對算法模型進(jìn)行測試驗(yàn)證,并用長文本數(shù)據(jù)集THUCNews 對各算法模型進(jìn)行比較,進(jìn)一步驗(yàn)證所提的多神經(jīng)網(wǎng)絡(luò)混合的短文本分類模型在實(shí)驗(yàn)數(shù)據(jù)上的有效性,實(shí)驗(yàn)結(jié)果如表4和圖4所示.
從表4和圖4的實(shí)驗(yàn)結(jié)果可以看出,本文提出的多神經(jīng)網(wǎng)絡(luò)混合的短文本分類模型在TTNews 數(shù)據(jù)集和THUCNews 數(shù)據(jù)集上都取得了較好的文本分類效果.尤其是在短文本分類(TTNews 數(shù)據(jù)集)上,該模型的分類準(zhǔn)確率達(dá)到了92.03%,相比于原始的FastText模型、TextCNN 模型分別提升了13.98%、6.92%;在長文本分類(THUCNews 數(shù)據(jù)集)上,該模型的分類準(zhǔn)確率達(dá)到了95.65%,相比于原始的FastText 模型、Text-CNN 模型分別提升了1.48%、3.81%.在模型的召回率和F1 分?jǐn)?shù)等評(píng)價(jià)指標(biāo)上,也能很明顯看出混合短文本分類模型的效果相比于原始的FastText 模型、TextCNN模型均有明顯的提升效果,從而驗(yàn)證了本文提出模型的有效性.
表4 不同模型在數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果(單位:%)
圖4 不同模型在數(shù)據(jù)集上的準(zhǔn)確率、召回率和F1 均值
β超參數(shù)的主要作用在于調(diào)節(jié)關(guān)鍵詞和短文本內(nèi)容對混合分類模型最終分類向量輸出結(jié)果的影響.因此針對不同的特點(diǎn)的文本分類數(shù)據(jù)集,β參數(shù)的取值會(huì)影響到多神經(jīng)網(wǎng)絡(luò)最優(yōu)的輸出結(jié)果.在圖5中我們可以發(fā)現(xiàn),在短文本數(shù)據(jù)集TTNews 下,β在0.35 取值時(shí)整體的文本分類精確度達(dá)到了最高,在長文本數(shù)據(jù)集THUCNews 下,β在0.70 取值時(shí)整體的文本分類精確度達(dá)到了最高.產(chǎn)生這一現(xiàn)象是因?yàn)?FastText 更適合長文本分類,且對標(biāo)簽值的依賴性更高,需要輸入多個(gè)標(biāo)簽值對文本進(jìn)行劃分.而TextCNN 采用了多層神經(jīng)網(wǎng)絡(luò)和卷積層,對文本的要求度不高.實(shí)驗(yàn)結(jié)果在某種程度上也證明了神經(jīng)網(wǎng)絡(luò)分類模型中對文本大小的關(guān)聯(lián)性.
圖5 本文模型的準(zhǔn)確率與調(diào)參因子β 的變化
本文在相同數(shù)據(jù)集和相同的訓(xùn)練環(huán)境下(保證了各變量的控制條件),分析了各模型的訓(xùn)練時(shí)間,并對比分析了它們分別在短文本數(shù)據(jù)集(TTNews)和長本文數(shù)據(jù)集(THUCNews)上的實(shí)際效果,結(jié)果如圖6.
圖6 不同模型在數(shù)據(jù)集上的訓(xùn)練時(shí)間對比
從圖6可以看出,在相同的訓(xùn)練環(huán)境下,本文所提出的多神經(jīng)網(wǎng)絡(luò)混合短文本分類模型兼顧了FastText模型訓(xùn)練收斂較快的優(yōu)點(diǎn).相比于其他的神經(jīng)網(wǎng)絡(luò)模型而言,混合短文本分類模型能夠大幅降低訓(xùn)練時(shí)間,這是因?yàn)樵谔幚矶嚓P(guān)鍵詞的分類時(shí),將數(shù)據(jù)灌入了FastText模型,而短文本內(nèi)容則在TextCNN 模型中進(jìn)行分類,這樣能夠使訓(xùn)練任務(wù)得到均衡分配.
本文提出了將短文本內(nèi)容進(jìn)行關(guān)鍵詞提取并重構(gòu)短文本特征,將重構(gòu)后的特征值作為FastText 模型的輸入,原始的短文本內(nèi)容作為TextCNN 模型的輸入,并引入?yún)?shù) β將類別向量進(jìn)行調(diào)節(jié),作為融合的輸出向量進(jìn)行類別分析.在多神經(jīng)網(wǎng)絡(luò)混合的短文本分類模型中,把兩種文本分類算法進(jìn)行深度融合,針對短文本分類的特點(diǎn)進(jìn)行實(shí)質(zhì)化改進(jìn),從而兼顧了FastText 模型和TextCNN 模型的特點(diǎn).最終實(shí)驗(yàn)結(jié)果表明本文提出的多神經(jīng)網(wǎng)絡(luò)混合的短文本分類模型在短文本分類情景下的精確率、召回率和F1 分?jǐn)?shù)等指標(biāo)都表現(xiàn)出優(yōu)越的算法性能,相比其他的文本分類算法更為突出、高效.
本文的主要研究關(guān)鍵點(diǎn)在于短文本內(nèi)容的分類算法和對分類算法的融合應(yīng)用,同時(shí)也針對短文本內(nèi)容的特點(diǎn)進(jìn)行了特征重構(gòu),將分類任務(wù)均衡化來解決相應(yīng)的問題.但是對于從短文本中提取與主題關(guān)聯(lián)度契合度更高的關(guān)鍵詞這一步仍有很大的改進(jìn)空間.由于短文本內(nèi)容往往包含的信息量較少,如新聞標(biāo)題、用戶評(píng)價(jià)文本等,所以如何從信息度較低的短文本內(nèi)容中提煉出符合要求的關(guān)鍵詞是下一步需要研究的工作重點(diǎn).