陳巧紅,王 磊,孫 麒,賈宇波
(浙江理工大學 信息學院,杭州 310018)
隨著Internet的大規(guī)模普及和上網(wǎng)人數(shù)的急劇增加,網(wǎng)絡上每天產(chǎn)生的各種短文本數(shù)量也呈指數(shù)式的增長.互聯(lián)網(wǎng)短文本是指那些較短的文本形式,一般不超過500 字,例如用戶商品評論,短博客等.并且這種半結構或無結構化互聯(lián)網(wǎng)文本信息具有稀疏性、實時性、不規(guī)范性、流行語不斷出現(xiàn)等特征.互聯(lián)網(wǎng)短文本分類作為信息處理關鍵技術之一,在信息檢索和知識挖掘領域已經(jīng)取得很大進展[1].
國內(nèi)外眾多學者針對短文本分類的研究主要體現(xiàn)在以下兩個方面,文本數(shù)據(jù)的特征表示和算法模型的選擇與改進.Kim Y[2]使用卷積神經(jīng)網(wǎng)絡對英文電影評論進行分類,只使用了一層卷積一層最大池化最后接Softmax 全連接得出分類模型,該方法雖然利用了深度學習模型,但是隱藏層太淺,不足以提取出更高層特征.黃文明[3]等提出將K 近鄰運用在文本加權上,對初始文本通過一定的權重采樣,最后運用K 近鄰分類器得出分類模型,但此方法面對現(xiàn)如今海量的數(shù)據(jù)集運算量過高,訓練時間太長,實際生產(chǎn)效果不好.
針對上述方法存在的特征表示問題以及提取文本高層特征效果不佳問題.本文提出一種全新的文本表示(N-of-DOC)方法.該方法首先將整個訓練集經(jīng)過文本預處理得到詞向量特征,運用信息增益、基尼不純度和卡方檢驗[4-6]從短語特征中提取出整個訓練集的高質(zhì)量特征,最后在每一篇文檔上提取出的短語特征必須由從全部訓練集提取出的特征線性表示.為了能進一步提取出文本的高層特征,本文在卷積神經(jīng)網(wǎng)絡模型上進行了改進,卷積層采用最大卷積,池化層采用最大池化.這種模型加強了文本數(shù)據(jù)中詞與詞、文本與文本之間的關系,在短文本的分類精度和分類速度上都有顯著提高,面對現(xiàn)如今海量的數(shù)據(jù)進行快速且高精度的分類有著深遠意義.
本文所設計的基于卷積神經(jīng)網(wǎng)絡短文本分類模型架構主要包括以下6個方面:數(shù)據(jù)的收集、數(shù)據(jù)預處理、每篇文檔全新的特征表示、卷積神經(jīng)網(wǎng)絡filter 層、K-max 池化層、Softmax 分類層.整個架構模型的流程圖如圖1所示.
圖1 模型架構設計
本文實驗所用到的數(shù)據(jù)主要是Sougou 語料庫提供的文本數(shù)據(jù)(總共包括9 大類)和使用爬蟲庫,在電影網(wǎng)站爬取的一部分電影評論二分類短文本數(shù)據(jù).
通過數(shù)據(jù)收集層得到的原始數(shù)據(jù)不能直接作為卷積神經(jīng)網(wǎng)絡(CNN)的輸入層輸入給模型進行計算,需要進行預處理操作,預處理過程主要包括以下兩部分.
(1)中文的特殊性,中文分詞操作需要采取相應的分詞算法進行分詞,本文采用的是python的分詞庫(jieba)來進行分詞,該分詞庫包含三大優(yōu)勢,1、基于Trie 樹結構實現(xiàn)高效的詞圖掃描,具有查找速度快的優(yōu)勢.2、采用動態(tài)規(guī)劃查找最大概率路徑,對句子進行雙向切分查找,可以有效避免過多形容詞、副詞等對句子切分,計算概率帶來的影響.3、對于未登錄詞,采用了漢字成詞能力的HMM模型,對于本文的網(wǎng)絡數(shù)據(jù)集可以有效避免未登錄詞對分詞造成的影響.在分詞處理過程中,采用了并行化處理,加速文本分詞的速度[7].
(2)去除停用詞對于中文是必不可少的一件事,因為停用詞對于一篇文檔來說,它幾乎不能給該篇文檔帶來任何信息量,而且去除停用詞可以減少文本冗余使文本分類更加準確[8].
為了降低文本表示的維度和減少計算的復雜度,本文提出的全新文本特征表示模型解釋如下:
(1)本文通過將整個訓練集經(jīng)過文本預處理得到短語特征,運用信息增益、基尼不純度、和卡方檢驗從短語特征中提取出整個訓練集的高質(zhì)量特征,最后在每一篇文檔上提取出的短語特征必須由從全部訓練集提取出的高質(zhì)量特征線性表示.抽象成數(shù)學模型表示如下:
T(Dj)為具體的某一篇文檔經(jīng)過線性表示篩選后的短語,Dj為每一篇文檔經(jīng)過文本分詞預處理后的短語,θj為線性表示這篇文檔的篩選系數(shù).
(2)經(jīng)過上述方法對每一篇文檔提取出的特征短語,本文采用了gensim 庫中的Word2Vec[9]將其訓練成一個300 維的向量.相對于詞袋模型表征短語,詞向量模型避免了詞袋模型高稀疏性的特點,而且在卷積操作過程中,若是詞袋模型表征短語,就意味著卷積大部分卷到的都是一些全零數(shù)字,失去了卷積的意義,而詞向量模型則完全可以避免這方面帶來的影響.最后詞向量模型還可以采用分布式訓練,加速算法的訓練過程.
經(jīng)過全新的文本特征表示層后,每一篇文檔都有相應的高質(zhì)量特征線性表示,每一篇文檔此時是一個K×300的矩陣,K表示本篇文檔提取出的高質(zhì)量特征個數(shù),300 是本文設定的一個向量維度.將其輸入給卷積的filter 層,實驗過程中卷積的窗口設定為3×300、4×300、5×300、6×300 四種濾波器核,卷積的步長設定為1,經(jīng)過filter 層后的文檔矩陣表示分別為(K-3+1)×1、(K-4+1)×1、(K-5+1)×1、(K-6+1)×1.卷積公式如下:
其中,A為 被卷積矩陣,K為卷積核,B為卷積出來的結果.
在本文的實驗過程中,池化層作為一個降維操作,進一步降低了文本的向量維度.從特征提取的層面思考池化層,可以認為池化層也是一層特征提取.本文通過實驗不斷嘗試K-max 池化窗口的大小,實驗發(fā)現(xiàn),經(jīng)過卷積之后的矩陣向量,K-max的窗口大小調(diào)整為和卷積之后的矩陣向量大小一致最優(yōu).因為本文的數(shù)據(jù)集是文本數(shù)據(jù),若池化操作還像圖像處理過程一樣,采用局部池化,這只能影響到一句短文本中的一部分詞語,失去了全局的一個信息捕獲,而且卷積操作已經(jīng)是對一句短文本的局部信息卷積,最后,采用這種方式池化,也可以有效避免短文本長短不一帶來的影響.
卷積神經(jīng)網(wǎng)絡的最后一層一般采用的都是全連接方式,通過上一層的K-max 池化層處理后的文本特征向量經(jīng)過矩陣的concat和reshape之后,送入Softmax 分類器,用來預測類別概率.K-max 池化后經(jīng)過concat 和reshape 后得到m個訓練集數(shù)據(jù),形式如下,{(X(1),Y(1))(X(2),Y(2))···(X(m),Y(m))},X(i)代表輸入的特征,Y(i)代表文本類別.由于本文不僅在二分類數(shù)據(jù)集上進行了實驗,也在多分類數(shù)據(jù)集上進行了實驗,所以在全連接層后的分類器公式分別如下:
(1)二分類實驗采取sigmoid 函數(shù),閾值為0.5.
式中,θ代表模型參數(shù),通過對θ的訓練可以找到最小代價函數(shù)J(θ),其公式如下:
(2)多分類實驗采取Softmax 函數(shù).
文本分類的評測標準采用了準確率、精確率、召回率、F1 值作為指標,在計算精確率和召回率時,需要用到混淆矩陣,根據(jù)分類結果可建立混淆矩陣見表1.
表1 分類結果混淆矩陣
(1)準確率在文本分類算法中表示的是分類正確的文檔數(shù)除以整個訓練集的文檔總數(shù),計算公式如下:
(2)精確率是分類器正確判斷為該類的樣本數(shù)與分類器判斷屬于該類的樣本總數(shù)之比,體現(xiàn)了系統(tǒng)分類結果的準確程度.計算公式如下:
(3)召回率是分類器正確判斷為該類的樣本數(shù)與屬于該類的樣本總數(shù)之比,體現(xiàn)了系統(tǒng)分類結果的完備性.計算公式如下:
(4)由于只有基本指標評價分類性能,存在缺陷,要全面反映分類性能需要結合基本指標衍生綜合指標,刻畫分類性能,本文采用的是F-測度值,計算公式如下:
其中,β是調(diào)整參數(shù),用于調(diào)整精確率P與召回率R在計算公式中的比重.在本文的使用中,取β=1,則得到F1值.
實驗使用傳統(tǒng)機器學習(K 近鄰,支持向量機,邏輯斯特回歸,樸素貝葉斯)的分類準確率與本文的分類準確率做對比,同時也對比了精確率、召回率、F1 值.K 近鄰文本分類,除了使用本文所提到的全新的文本表示模型(N-of-DOC)來表示一篇文檔之外,還外加一個閾值,即每篇文檔必須有5個以上的相同詞的訓練文本,才進行文本相似性的比較,找出相似距離最近訓練文本,查看該篇文檔屬于哪類最多,判定測試文本最終為哪個類別.對于支持向量機和邏輯斯特回歸分類,使用本文的這種全新文本表示模式(N-of-DOC)方法提取詞特征,采用Word2Vec 訓練詞向量作為文本特征向量,作為模型的輸入層構造分類器,得出最后分類結果.
在卷積神經(jīng)網(wǎng)絡的短文本分類實驗中,不同模型有著不同的準確率,精確率,召回率,F(xiàn)1 值,取所有模型各自最好的分類得分值作為實驗對比,各分類算法得分值大小如表2所示.
由表2 可知采用不同的分類方法對于互聯(lián)網(wǎng)短文本的分類結果影響很大,使用本文提出的改進的卷積神經(jīng)網(wǎng)絡分類方法的正確率可以達到92%以上,分類效果明顯好于傳統(tǒng)的分類器,精確率、召回率、F1 值相應的也比傳統(tǒng)分類方法效果更優(yōu).K 近鄰分類器在本文使用的短文本語料庫中分類效果最差,正確率只有60%.而支持向量機、邏輯斯特回歸、樸素貝葉斯分類器的分類準確率也是只達到了74%-85%之間.相比于本文提出的改進的卷積神經(jīng)網(wǎng)絡模型算法,不管在準確率、精確率、召回率、F1 值上都低,這是因為傳統(tǒng)機器學習是一種淺層的算法模型,很大程度上依賴于特征工程的處理,而卷積神經(jīng)網(wǎng)絡模型是一種深度學習模型,隨著隱藏層的增加,提取更高層的特征能力也就越強.
表2 電影評論二分類性能比較
傳統(tǒng)機器學習模型和改進的卷積神經(jīng)網(wǎng)絡模型在電影二分類數(shù)據(jù)集上的準確率、精確率、召回率、F1 值顯示如圖2所示.
傳統(tǒng)機器學習(K 近鄰,支持向量機,邏輯斯特回歸,樸素貝葉斯)和本文提出的改進的卷積神經(jīng)網(wǎng)絡模型在多分類數(shù)據(jù)集上的準確率、精確率、召回率、F1 值如表3所示.
傳統(tǒng)機器學習(K 近鄰,支持向量機,邏輯斯特回歸,樸素貝葉斯)和本文提出的改進的卷積神經(jīng)網(wǎng)絡模型在多分類數(shù)據(jù)集上的準確率、精確率、召回率、F1 值如圖3所示.
通過表3 可以看出在多分類任務上同樣是使用基于本文提出的改進的卷積神經(jīng)網(wǎng)絡分類方法的準確率最高,分類準確率平均在90% 以上,精確率、召回率、F1 值相比于傳統(tǒng)機器學習效果更優(yōu).其中K 近鄰的分類準確率平均在70% 左右,精確率、召回率、F1 值也是最低的.支持向量機和邏輯斯特回歸的分類準確率平均在80%左右,樸素貝葉斯分類器略微提高一點,分類準確率平均在84%左右.取得上述效果的原因,可以總結如下兩點:1)本文使用了gensim 工具包提供的Word2Vec 訓練詞向量,生成的詞向量比簡單的詞袋模型生成的向量更能代表詞組之間的特征.2)通過本文提出的全新的文本表示模型(N-of-DOC)對于深度學習更加適合,更加有利于卷積神經(jīng)網(wǎng)絡提取出更高層的特征.
圖2 電影評論二分類性能顯示
表3 SOUGOU 語料庫多分類性能比較
圖3 Sougou 語料庫多分類性能展示
本文通過提出一種全新的文本表示模型(N-of-DOC),借助Word2Vec 訓練詞向量,將其表示出的詞向量特征作為改進的卷積神經(jīng)網(wǎng)絡模型的輸入.該方法不僅能解決文本向量的維數(shù)災難、局部最優(yōu)解以及過學習問題,而且有利于卷積神經(jīng)網(wǎng)絡組合低層特征形成更加抽象的高層表示.將傳統(tǒng)機器學習分類方法與本文提出的改進的卷積神經(jīng)網(wǎng)絡文本分類方法進行對比實驗,彌補了傳統(tǒng)機器學習文本分類方法的不足,提高了文本分類的準確率.
在今后的研究中,由于本文的方法雖然在深度學習上使用了tensorflow的GPU 加速功能,但對于文本處理還需很長時間,面對今后海量的數(shù)據(jù)分類實用性比較低.因此,在今后的工作中,如何采用分布式平臺進行深度學習的互聯(lián)網(wǎng)短文本分類將是筆者的研究重點,不僅能在分類精度上可以做到顯著提高,在分類速度上也可以提高效率.