胡春濤,夏玲玲*,張 亮,王 超,韓 旭
(1.江蘇警官學院 計算機信息與網絡安全系,江蘇 南京 210031;2.南京市玄武分局,江蘇 南京 210000)
近年來,由于神經網絡強大的特征自動分析能力,在自然語言處理與圖像識別等方面有著極為廣泛的應用,其高準確率、高自動化的特性吸引了越來越多的學習者,也推動了人工智能行業的進一步發展。作為自然語言處理的一項重要應用,輿情信息處理技術也因神經網絡的推動而發展。類似于開采出的原油需要進一步的提煉和加工才能獲得不同種類、不同用途的產品,輿情信息處理的首要任務就是將文本數據分類,篩選出有價值的信息。隨著TensorFlow,Keras等深度學習框架的相繼推出,初學者能夠很容易地上手并搭建起一個基本的神經網絡模型,應用于文本分類等一系列任務。然而,模型的通用性給研究者帶來便利的同時,卻降低了模型適用特定分類任務的準確性,導致現有框架在特定文本分類任務上難以取得良好的效果,尤其是在處理具有個性化需求的分類任務時,只能作為基線模型使用。因此需要模型設計者根據不同分類任務相應地改變神經網絡的結構,將不同的神經網絡有側重地進行融合和重組,提高模型對于特定信息的捕捉能力和語義的理解能力,從而使模型在準確率、召回率、F1值、收斂速度、遷移能力等方面相比于普通框架具有顯著的提高。
在文本分類領域研究早期,主要采用向量空間模型、情感詞典等方法。朱華宇等人[1]提出一種基于向量空間模型的中文文本分類方法,通過特征提取、空間降維、層次分類和分類器訓練等技術實現分類。姚清耘[2]提出一種基于向量空間模型的中文文本聚類方法,在搜狗實驗室的開源語料上得到了較好的聚類結果。郭葉[3]提出將句中詞語傾向值加權求和以及選用支持向量機兩種方法,并在特征選取和規則后處理方面進行了改進,使準確率和召回率有較大提高。周城[4]提出基于情感詞典的分類方法,發現該方法性能上優于基于文本分類的方法。近年涌現出一批將經典深度神經網絡應用于文本處理任務的研究。Hochreiter等人[5]設計了長短期記憶網絡模型(long short-term memory,LSTM),但結構的復雜性導致LSTM的計算代價比較高。Cho等人[6]提出一種LSTM的替代方案—門限循環單元(gated recurrent unit,GRU)。GRU模型相比LSTM模型,結構簡單,可以提高模型的訓練速度,并且還能解決RNN存在的梯度消失問題。除了使用循環神經網絡以外,也有一些將卷積神經網絡(convolution neural network,CNN)用于文本特征提取的研究。Kim等人[7]將預訓練好的詞向量作為輸入,利用CNN實現情感分類。Kalchbrenner等人[8]提出一種動態卷積神經網絡(dynamic convolution neural network,DCNN)模型用于句子特征學習,并取得了較好的效果。但這些都只是使用單層神經網絡,特征提取能力、編碼能力較弱。因此,需要結構更加復雜的神經網絡的組合。陳潔等人[9]提出使用并行混合神經網絡模型,將文本映射成字符級詞向量并組成句子矩陣,對句子矩陣分別連接雙向GRU和CNN,并分別后接注意力層、池化層,將兩個網絡的輸出向量進行拼接,得到句子的特征表示,最后使用全連接神經網絡作為分類器,模型在AI Challenger2018用戶評論情感數據集上最高準確率達到0.868 2,F1值達到0.865 6。該方法僅通過不同網絡的并行處理獲得對文本的不同表示,未能對文本實現更加復雜的抽象和提取。劉月等人[10]提出利用CNN提取短語序列的特征表示,利用N-LSTM(nested long short-term memory)學習文本的特征表示,引入注意力機制,突出關鍵短語以優化特征提取,使模型不但能捕捉句子局部特征及上下文語義信息,還能突出輸入文本各部分對文本類別的影響程度,在3個公開數據集上性能比基線模型有了明顯提高。由于在文本上進行CNN操作不同于在圖像上,細小的信息損失極有可能導致結果偏差。因此CNN連接N-LSTM的方式有待改進。張沖[11]設計了Attention-Based LSTM模型用于特征提取,得到含有輸入序列節點注意力概率分布的語義編碼,并將其作為分類器的輸入,減少了特征向量提取過程中的信息丟失和信息冗余。在膠囊網絡(capsule network)應用于文本分類的研究中,Zhao等人[12]在英文語料的基礎上,將Capsule Network連接卷積網絡,受標注成本的限制,作者用單標簽數據對模型進行訓練,并在多標簽數據上進行測試,在訓練了5.8k的數據后,發現Capsule Network的性能遠遠高于LSTM、CNN等單一神經網絡。該文僅在英文語料上進行了實驗,忽略了中文分詞、語法結構對分類結果產生的影響,在文中未能解釋膠囊網絡性能更優的根本原因。
而膠囊網絡的發展也經歷了從提出到愈發多樣的過程。Sabour等人[13]于2017年首次提出了膠囊網絡,它將神經元的輸入由標量變為向量,通過動態路由調整參數加強網絡對特征的整合能力。2018年Hinton等人[14]提出使用期望最大化路由(EM routing)的矩陣膠囊網絡,該實驗通過圖像數據表明膠囊網絡還能有效學習物體不同視點的變化。其實,膠囊網絡的本質就是聚類算法思想在模型中的實現。Sabour等人提出的動態路由是基于K-Means算法的實現,文獻[14]則是將高斯混合模型(GMM)融合到特征整合過程中,通過期望最大化路由對網絡參數及進行調整。上述這些使用膠囊網絡或基于原始網絡改進的模型都在各自的任務上取得了較好的效果,具有廣闊的應用前景。
當前膠囊網絡多用于英文語料的分類,鑒于中文和英文在語法、語義結構等方面存在差異,文中在中文語料上對模型的結構進行相應改進。在總結上述方法的優缺點后,構建了LSTM連接膠囊網絡的文本分類模型,其中膠囊網絡基于K-Means動態路由算法試驗,并與多個基線模型進行比較,通過準確率、召回率、F1值等指標來評價模型性能優劣。
文中爬取了“今日頭條”公開的新聞數據集,原始數據集總共分為15大類,包括民生、文化、娛樂、體育、財經、房產、汽車、教育、科技、軍事、旅游、國際、證券、農業、電競。由于平臺自身數據不均衡,證券類新聞數量明顯少于其他類別,因此將證券類劃歸入財經類,使得數據分布較為均勻,表1為各類別的樣本數據統計情況。
模型第一層去除停用詞后將詞語編碼成詞向量。文中使用的詞向量模型word2vec基于“Zhihu_QA知乎問答”語料訓練,將詞語轉化為256維的向量。
第二層在詞向量層上添加雙向LSTM對文本進行編碼。經統計,文本平均長度為276,通過計算將神經元個數設置為300可以覆蓋99%的文本長度。為避免過擬合,在兩層LSTM中間添加隱藏層,將20%的權重歸為零。
第三層在雙向LSTM后接膠囊網絡,設置輸入膠囊的個數為64。
第四層在膠囊網絡之后連接全連接網絡層,用softmax函數輸出分類結果,模型結構如圖1所示。
為了便于比較,文中所有模型均使用相同數據集,并設計了CNN單模型,雙向LSTM單模型,和胡西祥[15]提出的雙向LSTM連接CNN的融合模型,在同等條件下使用控制變量的方法對多組結果進行比較。
第一組將CNN單模型、雙向LSTM單模型與LSTM連接CNN的模型進行比較,其中CNN均使用一維卷積,卷積核個數設置為64,通過多次實驗發現卷積核大小設置為3*256時模型取得最高F1值,后接全連接網絡使用softmax函數作為分類器,借以證明融合神經網絡模型的分類效果是否優于單模型。
第二組將含有膠囊網絡的模型與雙向LSTM連接CNN進行比較,借以證明膠囊網絡[16]在文本特征提取能力方面是否優于卷積神經網絡。
仔細分析一中的Capsule層,得到如圖2所示的膠囊網絡內部結構。
其中包含多層的膠囊層,每一層都被分成許多組向量神經元(膠囊),因此每個神經元具有長度和方向的概念。在文本中,長度用來衡量某個詞存在的概率,方向代表該詞的各種屬性(如位置、語意特征、語境含義等)。圖2中每個底層膠囊對應4個變換矩陣,即對底層神經元進行四個維度信息的提取。由于文本長度通常是不固定的,使用權值共享的膠囊網絡,即對于固定的上層膠囊Sj,它與所有底層膠囊連接的變換矩陣是共用的,如圖2中u1和u2共享同一個W1。
低級別的向量神經元需要決定如何將其經過不同維度提取的輸出向量發送到更高一級的向量神經元,該過程由耦合系數c來決定,耦合系數c本質上是一個權重,定義了低層神經元到高層神經元的概率分布,采用“動態路由”算法[13]進行更新。下面通過對該算法的介紹將更有利于說明膠囊網絡相比CNN在傳播原理上的差異。

(1)

(2)
其中,c為耦合系數,一層膠囊網絡所有的耦合系數和為1,即圖2中c11+c21+c12+c22+c13+c23+c14+c24=1。該耦合系數由動態路由(routing softmax)算法迭代更新,且softmax函數中的bij初始化為0,耦合系數cij計算方式如式(3)[13]所示:
(3)

(4)

膠囊網絡使用Squash作為激活函數,輸出v的計算方式如式(5)[13]所示:
(5)
該激活函數前一部分是輸入向量sj的縮放尺度,后一部分是sj的單位向量,既保留了輸入向量的方向,又將輸入向量的模壓縮到[0,1)之間,能有效避免梯度爆炸問題的出現。在整個網絡中,耦合系數cij通過動態路由進行更新,而整個網絡其他參數包括Wij在內都需要根據損失函數進行更新。在損失函數方面,文中使用多分類對數損失函數(categorical_crossentropy),優化器使用Adam。
表2將膠囊網絡和卷積網絡的傳播過程進行對比,進一步分析其差異。

表2 膠囊網絡和卷積網絡傳播對比
動態路由算法的運行邏輯可以做如下解釋:
初始化讓所有bij初始化為0,目的是為了保證耦合系數cij的均勻分布,同時說明低層的向量神經元要傳輸到哪個高層神經元是不確定的。
動態路由就是找到每個低層神經元最有可能傳輸到哪個高層神經元,具體到實例就是含有“華為”和“小米”的句子最有可能屬于科技、文化或是其他類別。動態路由在每一次循環中都做了歸一、預測、加總、壓縮和更新五個步驟。
起初由于bij全為0,那么:
(6)


(7)

(8)

(9)

(10)
通過耦合系數cij進行加權求和:
(11)
(12)
加權求和可以理解成“華為”和“小米”等多個低層神經元共同作用得到融合多個語義的高層語義類別s1,s2。
壓縮,即單位化語義類別向量:
(13)
(14)
通過預測結果更新參數bij,就是從“華為”和“小米”推出科技或文化類別的可能性。
(15)
(16)


圖3 計算vj和的向量一致性更新cij
最后用softmax函數更新概率分布,由“華為”推出科技類的概率:
(17)
(18)
最終b11>b12,即c11>c12,b21>b22,即c21>c22,故兩個詞路由到科技類的概率變大。圖2中演示了4種變換矩陣,即向量神經元有四種不同的方向,可以從4個維度對信息進行提取,如語義、位置、上下文語境、詞語類別等,原理和上述相同。
重復以上預測,加權,壓縮,更新的步驟,直到每個耦合系數cij趨于穩定。
圖4展示了膠囊網絡內部向量神經元經過一個維度矩陣變換的傳播過程。

圖4 膠囊網絡內部傳播過程示意圖

不同模型的最優分類結果如表3所示。

表3 不同模型最優分類結果
對比模型1和模型2發現,單模型BiLSTM分類性能優于CNN。對比模型2和模型3發現融合模型的分類性能要高于單模型,LSTM適用于對文本信息進行編碼,CNN相比而言更適用于對特征進行提取。對比模型3和模型4發現連接膠囊網絡的模型在精確率和召回率兩方面均優于連接CNN的模型,其原因主要有以下幾點:
(1)CNN使用特征檢測器,從一維的向量序列中提取局部模式,并使用最大值池化減少參數數量。但作為一個空間不敏感模型,CNN在處理文本中更長更復雜的結構和語句順序時(例如倒裝,前置等復雜結構),就會由于卷積核長度的限制而難以提取到有關特征。
(2)CNN的池化操作會丟失一些空間信息,尤其是對高層信息的池化。在對圖像的操作中,池化能在保證圖像重要特征不缺失的情況下減少參數,使得全連接層能以較少的參數,較高的準確率完成分類任務。但在自然語言處理中,語義并不像圖像特征,可能一個詞語順序的顛倒就會導致整句語義的變化。因此池化容易忽略蘊藏在文本中的細節特征,造成最后分類結果的誤差,池化操作如圖5所示。

圖5 池化操作示意圖
池化操作類似于兩層網絡之間的信使,它告訴下一層在輸入圖片的左上角最大值是2,右上角最大值是4,但不知道這個2和4是具體從哪里來的。就好比在池化文本信息時,只提取了特征性最強的信息,但忽略了文本蘊含的語句結構信息。
(3)膠囊網絡通過變換矩陣和耦合系數去自動學習哪些是文本重要信息,重要的信息其輸出的概率(耦合系數)更大,次要信息輸出的概率較小。因此能夠實現對信息的有效鑒別和提取。另外,膠囊網絡不受特征檢測器結構和大小的限制,能夠學習文本整體與部分的內在空間關系,自動歸納出新的感受域,從而讓網絡能靈活地學習文本內在復雜的關系結構。正如Hinton[14]所說,膠囊網絡不僅用來捕捉特定變體的特征,更是用來捕捉特征及其變體的可能性。因此訓練膠囊網絡的目的不僅在于檢測特征,還在于學習變體,相比于CNN更適合對文本信息的特征提取。
在中文新聞分類數據集標注準確和分布均勻的基礎上,針對卷積神經網絡不能有效提取復雜語意結構和池化操作容易丟失大量特征信息等問題,使用了膠囊網絡代替CNN并提出了一種LSTM連接Capsule Network的多網絡融合模型。通過對比實驗有效證明了膠囊網絡在文本特征提取能力上相較于CNN的優勢。在后續的工作中,將嘗試使用BERT(bidirectional encoder representation from transformers)模型對中文文本的每個字給出一個動態向量表示,并結合膠囊網絡進一步改善模型的分類效果。