王渤茹,范 菁,張王策,李晨光,倪 旻
(1.云南民族大學 電氣信息工程學院, 云南 昆明 650500;2.云南民族大學 云南省高校信息與通信安全災備重點實驗室, 云南 昆明 650500)
文本分類是自然語言處理領域中一個經典問題[1].隨著機器學習的發(fā)展,形成了基于人工特征的分類模型,該模型中特征選擇是關鍵的一個步驟[2].面對海量的短文本信息,獲得有價值的信息,進行準確的分類是自然語言處理領域的一個熱點.
新聞標題相對于一般的短文本特征更少,在新聞標題的超短文本分類中最關鍵的問題是對文本特征的提取.由于新聞標題屬于超短文本的特殊性,單獨采用常規(guī)的機器學習特征選擇算法提取特征效果并不好[3].采用LDA主題模型對新聞標題進行特征擴展也沒有得到很好的效果.2013年提出word2vec方法可以對詞語進行稠密向量表示,在向量空間中找到距離最相近的詞,并且距離最相近的詞表示的語義是相近的[4],用距離最近的一個詞對新聞標題進行擴展.Fp-growth算法也能有效挖掘需要的信息.
傳統(tǒng)的機器學習算法有著共同的局限性:維度災難、過擬合,在有限的樣本上性能好,對復雜函數的有限表達導致其在大規(guī)模分類問題的泛化能力被制約[5-6].深度神經網絡克服傳統(tǒng)機器學習中的一些缺陷,通過多層神經網絡訓練使得模型具備良好的特征學習能力[7].
因為新聞標題特征過少和高維稀疏,通過一些方式對標題特征進行擴展[8].本次選用3種方式對新聞標題擴展,1種方式通過word2vec訓練詞向量尋找與新聞標題詞語在空間上最接近的特征詞進行標題擴展,第2種種方式通過Fp-growth算法挖掘外部語料庫的頻繁項集.調用關聯(lián)規(guī)則挖掘算法,進行頻繁詞項的關聯(lián)分析.第3種是通過字向量和詞向量兩種不同的向量表示形式.
word2vec模型的建立是為在訓練后得到神經網絡中隱藏的參數矩陣,而不是處理新的預測任務[9].訓練得到的隱藏層參數是word2vec去學習的詞向量[10].采用這種方式訓練出的詞向量,使得相似上下文的詞語在詞向量空間也非常接近[11].word2vec模型可以將文本中的每個詞語映射成一個稠密的,固定長度的向量.這些詞構成一個詞向量空間,可以使用余弦距離或者歐式距離,根據詞之間的距離判斷詞語語義上的相近程度[12].
word2vec主要有CBOW和Skip-Gram兩種模型[13-14].這2種模型十分相似,CBOW模型可以通過輸入周圍n-1個詞來預測詞本身,而Skip-Gram模型可以根據詞本身來預測周圍的詞.本次使用word2vec模型中的CBOW模型訓練生成詞向量和字向量.使用外部語料庫wiki語料庫,對語料庫進行預處理,接著用CBOW的方法訓練詞向量.
預訓練的詞嵌入向量,除了將它們輸入到神經網絡之外,還有一個重要用途,就是利用向量之間的相似度函數Similarity(w1,w2)計算2個詞語之間的相似度.訓練出的詞向量可以查看詞匯空間上距離最近的詞,距離上相近的詞在語義上也相似[15].定義兩個詞語的語義相似度為2個詞向量的余弦相似性,計算公式如下所示:
(1)
其中vw1·vw2表示2個向量的內積,‖vw1‖表示向量vw1模的長度.‖vw2‖表示向量vw2模的長度.
在訓練標題集數量很大的情況下,可以得到的詞向量質量越高,利用詞向量計算詞語的空間相近詞質量越高.基于word2vec模型對短文本進行詞嵌入擴展可以解決其稀疏性[16].預訓練出詞向量后,找出與標題詞匯距離最相近的詞作為新聞標題擴展詞匯.雖然擴展詞匯描述了與標題不同的事件,但是所擴展的詞匯與原標題屬于同一個類別,因此對于標題分類仍可以輔助判斷.
Fp-growth算法使用一種壓縮的數據結構FP-Tree,該算法通過給定的源數據進行2次掃描,將數據信息存儲在樹結構中[17].Fp-growth算法挖掘語料庫的頻繁項集不需要創(chuàng)建候選集,且只需要遍歷兩次數據集.第1次掃描是統(tǒng)計詞語的支持度,詞語按照支持度降序排列,第2次掃描是構建FP樹,挖掘頻繁項集[18].當挖掘完包含某個詞語的頻繁項集時,F(xiàn)P樹就不會遍歷這個元素項,它所占用的內存空間會立馬釋放[19].
1.2.1 對新聞標題進行頻繁詞項特征擴展
此次對NLPCC2017的新聞標題進行分類,其中有18類新聞標題,所以本次爬取了18類新聞網站的文章,挖掘出每類新聞網站中的頻繁詞項,再通過置信度從頻繁詞項中計算出與每個詞語相關性最高的一些詞語,對新聞標題進行擴充.由關聯(lián)性高的詞語加入到新聞標題中,可以緩解新聞標題的特征稀疏性.采用FP-growth算法挖掘頻繁詞項集的具體步驟如下:
步驟1 分別爬取18類新聞網站的文章,定義集合A={d1,d2,…,dn}為某類新聞文章的數據集,對爬取的新聞語料進行預處理,包括分詞、去掉停用詞,過濾冗余信息.
步驟2 第1次遍歷每類新聞語料,統(tǒng)計每類新聞語料中特征詞出現(xiàn)的次數.創(chuàng)建頭指針表,移除頭指針表中小于指定支持度的詞語.
步驟3 第2次遍歷每類新聞語料時,初始化FP樹為空集[20].將特征詞按出現(xiàn)的次數從高往低重新進行過濾和排序.更新FP樹,更新頭指針列表.按順序創(chuàng)建頻繁項條件FP樹,根據頻繁項前綴路徑計算頻繁項集,加入到頻繁項集合.
1.2.2 基于置信度的特征擴展
所提取到的頻繁詞語集中,求出每個詞語與頻繁詞項中其他相關詞語的置信度,基于置信度的新聞標題特征詞擴展的步驟如下:
1) 從獲取的頻繁詞語集中,選出對標題分類貢獻最大的前k個特征為原始特征,由獲取頻繁詞項集的置信度,計算出新聞標題中1個詞語出現(xiàn)時與它相關的置信度較大的幾個詞.置信度的計算方法為當頻繁詞語A出現(xiàn)的情況下,頻繁詞語B會以一定的概率出現(xiàn),B出現(xiàn)的概率成為A->B的置信度,記為confidence(A->B).計算公式如以下所示:
confidence(A->B)=p(B|A)=sup(A∪B)/sup(A)
.
(2)
2) 遍歷關聯(lián)規(guī)則集合,對于每個規(guī)則,隨著置信度閾值的增加,頻繁項集的數目越來越少.基于置信度擴展的新聞標題算法描述如表1所示.
表1 基于置信度擴展的新聞標題算法描述
卷積神經網絡不同于傳統(tǒng)的機器學習方法,它從大量的新聞標題中自主學習復雜,高維,非線性的特征[21].卷積神經網絡在自然語言中取得了很好的表現(xiàn)這是由于其具有捕獲空間,時間結構的局部相關性特征能力[22].
結合卷積神經網絡設計一款基于字向量和詞向量混合的雙路卷積神經網絡.由于新聞標題特征過少,長度一般在20個字以內[23].通過將擴展后的詞向量和字向量分別輸入到卷積神經網絡中進行特征的提取,增大對特征的表達效果,提高對新聞標題的分類效果,其中字嵌入向量包含的信息是每個字都可以獨立的作為一個詞的假設下成立的.
典型的卷積神經網絡由輸入和輸出以及多個隱藏層構成,隱藏層通常由卷積層、池化層和全連接層組成[24].卷積層和池化層配合組成卷積組,逐層學習新聞標題局部到全局的特征[25].卷積層是卷積神經網絡的核心,具有權值共享和局部連接的特征[26].卷積公式為s(t)=(X·W).其中X為擴展后標題詞向量的輸入和字向量的輸入,W為卷積核,操作符(·)表示卷積,二維卷積如下公式所示:
(3)
得到的結果作為激活函數的輸入,經過激活函數處理后為ci,j=f(s(i,j)+b),b為偏置項,激活函數f常為sigmoid非線性激活函數或tanh非線性激活函數,relu非線性激活函數,因為sigmoid、tanh函數存在計算代價大,梯度消失等缺點,本次卷積神經網絡選擇relu非線性激活函數.
新聞標題經過雙路卷積后,通過最大池化函數組合所有的局部特征ci,j產生最大值.對于n個卷積核,生成n個特征向量,選用幾種不同大小的卷積核,生成不同類型的特征向量.全連接層處于卷積神經網絡的最后[27].通過多層的卷積層與池化層處理后,將原始數據映射到隱含的特征空間[28].將不同卷積核得到的不同類型特征向量連接起來,再將字向量和詞向量2種不同表達方式得到的特征向量拼接起來.
此次結合字向量與詞向量設計實現(xiàn)了雙路卷積神經網絡的新聞標題分類模型,從兩種不同的向量表示中分別抽取文本特征,極大地豐富了新聞標題的特征信息.字向量和詞向量混合的雙路卷積神經網絡模型如圖1所示.
第1層為輸入層,把擴展后的新聞標題分別劃分成不同字和不同詞語輸入到雙路CNN模型中,輸入新聞標題均為數字化處理后的字和詞.第2層為embedding層,embedding將數字化后得到每個數轉換為預先訓練好的字向量和詞向量,將數字化的輸入形式變?yōu)橄蛄康妮斎胄问?第3層為雙路卷積神經網絡的卷積層,向量經過卷積核后非線性映射,主要負責提取句子層的特征.第4層池化層,提取卷積層中的最大的幾個特征.第5層特征拼接,將字向量和詞向量提取的特征進行拼接.第6層分類器,分類器根據新聞標題提取的特征,將新聞標題分類結果輸出.
例如,學校可以以班級為單位建立QQ群,由群管理員邀請學生家長加入,使家?;踊顒幼兊酶痈咝?。尤其是在社會節(jié)奏極快的當下,學生家長要忙于自己的本職工作,因此便少有時間能夠同教師和校方就子女的教育問題及在校表現(xiàn)等進行溝通。而當QQ群建立之后,家長便可以通過這一線上溝通工具同教師、校方就子女的學習問題以及在校表現(xiàn)進行線上溝通,這樣便縮短了家庭教育同學校教育之間的距離。
傳統(tǒng)的基于深度學習的文本分類方法在提取完特征后會常采用softmax損失函數作為代價函數實現(xiàn)文本分類,本次提出采用雙路神經網絡提取特征與決策森林的方法結合實現(xiàn)新聞標題分類.
決策森林是決策樹的組合形式[29].使用決策森林的方法對新聞標題進行分類,需要從輸入的詞向量和字向量結合的雙路卷積神經網絡提取到文本特征,隨后采用決策森林分類.在傳統(tǒng)的決策樹中,分裂節(jié)點是二值的,即它決定了經過這個節(jié)點以后是向左走還是右走,并且結果一旦確定不能更改,這導致網絡有可能在當前節(jié)點上是最優(yōu)的,但是最后的分類效果并不是最優(yōu)的.本次使用深度學習和決策森林結合的分類模型,在神經網絡的訓練過程中,使用梯度下降法對決策森林的分裂參數進行調整.采用概率決策森林的模型[30],其中dn為決策節(jié)點,π為葉子節(jié)點最終的預測函數.即每個節(jié)點的分裂代表1個分裂概率,采用sigmoid函數作為分裂節(jié)點對應的概率值.
sigmoid函數把輸入到樹形結構的值壓縮在(0,1)開區(qū)間中.使用概率來劃分左右子樹,當左子樹為激活函數的概率值,右子樹就為剩余的概率值.數據集中的新聞標題經過特征提取后可表示為向量Wk,決策樹每個節(jié)點的分裂函數如下公式:
(4)
其中f(x;θ)的公式為如下所示,theta表示樹形結構的分裂參數.
f(x;θ)=θΤx
.
(5)
根據樹形結構的深度,l↙n表示l屬于節(jié)點n的左子樹情況為真,l↘n表示l屬于節(jié)點n的右子樹的情況為真,N表示總共的節(jié)點數.樹的每個節(jié)點的路由決策見圖2所示.樣本x到達某葉子節(jié)點的概率如下公式所示:
(6)
(7)
卷積神經網絡中每個節(jié)點單元的輸出作為分離節(jié)點決策函數(d1,d2,d3,...,dn)的輸入參數,決策采用sigmoid函數.知道決策函數后,可以計算其路徑函數,每棵樹的根節(jié)點,其路徑賦予的值是1,然后乘以該節(jié)點的決策函數值d,得到左節(jié)點的路徑函數為(1*d),右邊子節(jié)點的路徑函數值為1*(1-d),以此類推,可以計算出每棵決策樹的路徑函數.
最終的損失函數定義為L(θ,π;x,y)=-log(PT[y|x,θ,π]),利用反向傳播法,更新節(jié)點的分裂參數theta和葉子節(jié)點的分布參數π的值.
實驗數據是公開數據集NLPCC2017新聞標題數據集,包括entertainment、food、travel、world、history、tech、military、story、essay、sports、game、discovery、finance、car、fashion、society、regimen、baby 18個新聞標題類,其中history、military、baby、world、tech、game、society、sports、travel、car、food、entertainment、finance、fashion類分別有10 000個訓練樣本,discovery、story、regimen、essay類別分別有4 000個訓練樣本,總共有156 000個訓練樣本.驗證集和測試集樣標題總共有36 000個,此次選擇18 000個作為驗證集新聞標題,18 000個作為測試集新聞標題.
僅用單一詞向量表示新聞標題,采用卷積神經網絡對擴展后的新聞標題進行分類,訓練集和驗證集準確率隨迭代次數變化如下圖3所示,驗證集的準確率達76.6%.標題擴展后的單一詞向量在卷積神經網絡中對新聞標題進行分類,訓練集損失值隨迭代次數變化如下圖4所示.從圖中可以看出當迭代次數為5 100左右的時候,損失速度逐漸變緩直至最后收斂.
用字詞向量表示新聞標題,采用雙路卷積神經網絡對擴展后的新聞標題分類,訓練集和驗證集準確率隨迭代次數變化如下圖5所示,驗證集的準確率達79.8%.標題擴展后的字詞混合向量在雙路卷積神經網絡中分類,訓練集損失值隨迭代次數變化如下圖6所示.從圖中可以看出當迭代次數為4 600左右的時候,損失速度逐漸變緩直至最后收斂.對擴展后的新聞標題進行字詞混合兩種向量表示的雙路卷積神經網絡與一種詞向量表示的卷積神經網絡方法進行對比,結果表明使用字詞混合的雙路卷積神經網絡比單一詞向量表示的神經網絡驗證集準確率提高約3%.
用字詞向量表示新聞標題,采用深度神經決策森林方法對擴展后的新聞標題分類,訓練集和驗證集準確率隨迭代次數變化如下圖7所示,標題擴展后在深度神經決策森林模型上驗證集的準確率達到82.2%.標題擴展后的字詞混合向量使用深度神經決策森林方法分類,訓練集損失值隨迭代次數變化如下圖8所示.從圖中可以看出當迭代次數為2 600左右的時候,損失速度逐漸變緩直至最后收斂.
評判標準除準確率外,還有精確率、召回率、f1-score值以及混淆矩陣.用以上深度學習方法預測測試集新聞標題分類,預測結果的對比情況如表2所示.
表2 預測結果對比 %
從測試集結果看,使用字詞混合的雙路卷積神經網絡比單一詞向量的卷積神經網絡在準確率、精確率、召回率以及F1-score上高,表明使用字詞混合的雙路卷積神經網絡可以增加新聞標題的句子特征.使用深度神經決策森林方法比其他兩種方法取得的準確率、精確率、召回率、F1-score高,表明使用概率決策森林方法比深度學習中softmax分類函數在新聞標題分類問題上表現(xiàn)出更好的分類優(yōu)勢.
首先針對新聞標題特征較少的問題,使用3種方法擴展;其次雙路卷積神經網絡可以自主提取新聞標題的特征,在分類算法方面,決策森林表現(xiàn)出分類優(yōu)勢,將2種方法結合提出深度神經決策森林算法.從新聞標題分類的實驗結果看,此次提出的方法優(yōu)于僅使用卷積神經網絡方法和雙路卷積神經網絡方法.
由于故事類和歷史類,故事類和社會類,養(yǎng)生類和食物類,娛樂類和時尚類,它們之間劃分的界限不是很清晰,在新聞標題分類的過程中容易混淆;其次標題類別數較多、有些標題沒有明顯特征,還有受歧義詞等影響,造成一些標題分類判斷錯誤.本次使用的深度神經決策森林方法為之后的深度神經網絡與機器學習方法相結合實現(xiàn)端到端融合的文本分類提供一些思路.
針對新聞標題分類存在的問題,將來打算在以下幾個方面進行研究:
1) 中文分詞,中文分詞對未登錄的詞識別和歧義詞切分較為棘手,有待改善算法來解決.
2) 未來引入更大的語料庫,對詞向量進行更理想的表示.
3) 短文本的特征擴展進行進一步研究.
4) 深度神經網絡中參數的調節(jié)問題.在訓練過程中參數調節(jié)是至關重要的,參數確定的越好,最后的訓練模型越好,準確率越高.
5) 大量文本處理需要很久的時間,海量數據分類效率比較低,未來可以使用分布式平臺使算法的時間效率提高.
6) 深度學習中的一些方法與機器學習中決策森林方法實現(xiàn)端到端融合的模型可以進一步的研究.