陶永才,劉亞培,馬建紅,李琳娜,石 磊,衛 琳
1(鄭州大學 信息工程學院,鄭州 450001)2(鄭州大學 軟件學院,鄭州 450002)3(中國科學技術信息研究所,北京 100038)
E-mail:liln@istic.ac.cn
網絡的迅速發展,使得非結構化的數據成指數級增長,如何將非結構化的數據進行處理、分類、搜索與挖掘已經成為研究的熱點與難點.文本作為非結構化數據類型之一,怎么將其正確、高效的分類,也是研究熱點之一.文本分類是自然語言處理中一個比較基礎的問題,它是信息檢索、學習系統、文本挖掘、模式識別等發展的基礎.目前文本分類常用的方法有兩大類,一是基于傳統機器學習的文本分類方法,二是基于深度學習的文本分類方法.
深度學習最早由Hinton等人[1]于2006年提出,其利用無監督預訓練方法優化網絡權值的初值,再進行權值微調的方法,來解決因傳統的神經網絡隨機初始化網絡中的權值,而導致網絡易收斂到局部最小值的問題,由此開啟了深度學習的研究熱潮.相比傳統的機器學習,深度學習可通過學習一種深層非線性網絡結構,實現復雜函數逼近,表征輸入數據分布式表示,且能在樣本集很少的情況下去學習數據集的本質特征[2].
卷積神經網絡(Convolutional Neural Networks,CNN)是深度學習中的一種監督學習的方法[2].CNN中卷積層的權值共享,使得網絡中可訓練的參數變少,網絡模型復雜度降低,減少過擬合,從而獲得了更好的泛化能力,其結構可拓展性強,可以用很深的層數來增強其表達能力以處理更復雜的分類問題[3,4].CNN最早應用于圖形圖像,并在圖像處理、圖像分類等方面取得了很好的效果.2013年Mikolov等人[5]提出詞向量模型之后,使大規模的詞嵌入訓練成為可能,為CNN廣泛應用于自然語言處理,奠定了基礎.
隨著自然語言處理研究領域的不斷發展,將深度學習方法應用于文本分類處理已經成為一個不可忽視的研究趨勢.但是單一的卷積神經網絡容易忽視局部與整體之間關聯性的問題,現有論文中以增加卷積網絡深度或與其他神經網絡進行結合,來解決上述問題.本文試圖在卷積神經網絡的結構中引入新的網絡結構單元—壓縮-激發塊(Squeeze-and-Excitation block,SE block),以此來建模卷積特性通道之間的相互依賴關系來提高網絡模型的表達能力,增強局部與整體之間關聯性.并引入多頭注意力機制(Multi-Head Attention)來提升網絡的性能,提高文本分類的準確性.
自詞嵌入出現以來,神經網絡在文本處理方面迅速發展.2014年Kim Y等人[6]在預處理的詞向量訓練卷積神經網絡(CNN)進行句子級分類任務,在多個基準上取得了很好的效果.2015年Zhang X等人[7]使用字符級卷積網絡(ConvNets)對文章進行分類,在其建造的大型數據集上實現了最好的實驗結果.2016年Kim Y等人[8]通過使用字符級的輸入來代替傳統的word embedding,避免了大規模的embedding計算和低頻詞的問題,其實驗結果表明,在許多語言中,字符輸入足以進行語言建模.劉坤[9]研究了中文字符級嵌入,并提出將漢字的字符嵌入向量與詞語級別的嵌入向量結合,能提升漢字嵌入向量的質量.
隨著深度學習的發展,大量的研究者在文本分類問題上,以卷積神經網絡為基礎進行模型的改進與創新.Johnson 和Zhang[10]提出了一種單詞級別深度卷積神經網絡結構DPCNN(deep pyramid CNN),有效地表示文本中的長距離關系,該模型增加網絡深度而不增加太多的計算成本就可以獲得最佳的準確性.Joulin等人[11]提出了一種簡單高效的文本分類模型,簡稱fastText.該模型只有簡單的三層:輸入層、隱含層、輸出層.輸入層將詞向量特征進行嵌入與平均,以形成隱藏變量,再使用softmax函數來計算預定義類的概率分布.fastText的淺層結構在文本分類任務中取得了與深度網絡相媲美的精度,且在訓練時間比深度網絡更快.Zhao等[12]提出了一種基于膠囊網絡的文本分類模型,該模型先用一個卷積層提取句子的局部語義表征,然后將卷積層提取的特征替換為向量輸出膠囊,從而構建Primary Capsule層,之后利用改進的動態路由得到卷積膠囊層,繼而將卷積膠囊層的所有膠囊壓平成為一個list,輸入到全連接網絡,最后得到每個類別的概率.這是第一次將膠囊網絡應用于分本分類,在其實驗中取得了較好的結果.2018年Hu等人[13]在《Squeeze-and-Excitation Networks》一文中,通過研究通道之間的關系,引入了一種新的體系結構單元,稱之為壓縮-激發塊(Squeeze-and-Excitation block,SE block),其目標是通過明確地建模卷積特性通道之間的相互依賴關系來提高網絡模型的表達能力.這種新的網絡結構單元已經用到了圖像處理中.SE Block本身只是一個結構上的創新,并不能單獨使用.但是因為其原理的簡單性,它可以很容易被集成到不同的網絡結構中,這里我們將其應用到文本分類處理的問題中,來處理序列數據.
神經網絡中的注意力機制最初出現在圖像領域[14].注意力機制可以使得神經網絡具備專注于其輸入(或特征)子集的能力.Yang等人[15]提出了一種用于文檔分類的層次注意力機制網絡(HAN),該網絡分別在詞匯和句子兩個層次上使用注意力機制,捕捉不同層次的重要信息,這使得它在構建文檔表征時,可以分別關注更重要和不太重要內容,從而提升了文本分類的性能和準確度.Vaswani等人[16]提出以放縮點積注意力(Scaled Dot-Product Attention)為基礎,用多個平行運行的注意層組成多頭注意力(Multi-Head Attention)取代了重復層最常用的編碼器和解碼器架構,提供了一種用Attention結構完全替代傳統CNN和RNN結構的新思路,證明了注意力機制的有效性.劉月等人[17]引入注意力機制突出關鍵短語以優化特征提取的過程來進行新聞文本分類,在3個公開數據集上取得了不錯的結果.趙亞南等人[18]采用多頭自注意力機制學習序列內部的詞依賴關系來捕獲序列的內部結構,然后重利用淺層特征與多頭自注意力特征融合,并結合深度學習卷積神經網絡算法來進行文本情感極性分析.
在前人研究成果的基礎上,本文構建了CCNN-2SE-mAtt模型,其利用字符級(Char-level)詞向量作為卷積神經網絡的輸入,并引入新的網絡結構單元——壓縮-激發塊(SE block),以此來建模卷積特性通道之間的相互依賴關系來提高網絡模型的表達能力,并引入多頭注意力機制(Multi-Head Attention)對其權重進行更新計算,得到文本類別的特征向量矩陣,突出類別向量的重要程度,最后用softmax進行分類.上述模型用于 THUCNews數據集和搜狐數據集(SogouCS)的中文文本分類數據集中,具有一定的實用性與創新性.
本文結合字符級詞向量、壓縮-激發塊(SE block)和多頭注意力機制,構建一個中文文本分類模型,具體工作如下.
將詞嵌入具體化時,實際上是具體化一個嵌入矩陣.在數據預處理階段,將原始中文新聞文本按字符劃分為單個漢字與符號,構建一個大小為m的字符表,使用one-hot編碼對每個字符進行量化.然后根據輸入的文本的序列,將其轉化為對應的向量序列.輸入長度超過l0的字符都忽略,空字符或不存在于字母表中的字符用零向量替代.最后,數據通過嵌入層成為卷積層的輸入.本實驗中字符表大小m為5000,最大文本序列長度l0為700.
CNN對局部進行上下文建模,能自動抽取出一些高級特征,減少了特征工程的時間,但是其視野受限.加入壓縮-激發塊后可以對整個輸入特征進行上下文建模,感受野可以覆蓋到整個輸入特征上,能對語義信息進行補充.

壓縮-激發塊(SE block)使用全局信息來顯式地建模通道之間的動態、非線性依賴關系,可以簡化學習過程,并顯著增強網絡的表示能力.
3.2.1 壓縮(Squeeze)
利用全局平均池化(global average pooling,GAP)進行空間維度的特征壓縮,將二維H×W特征壓縮為一個實數,獲得U的每個通道的全局信息嵌入(特征向量).即經過Fsq(·)(Squeeze操作)后,輸入變成了一個 1×1×C的特征向量,特征向量的值由特征映射U確定.其計算如公式(1)所示.
(1)
其中z∈RC.
3.2.2 激發(Excitation)

s=Fex(z,W)=σ(g(z,W))=σ(W2δ(W1z))
(2)


(3)


圖1 壓縮-激發塊(SE block)Fig.1 Squeeze-and-Excitation block
注意力函數可以描述為將query和一系列key-value對映射到output,其中query、keys、values和output都是向量.
輸出計算為值的加權和,其中分配給每個值的權重由查詢的兼容性函數和對應的鍵計算.本實驗通過多個放縮點積注意力(Scaled Dot-Product Attention)操作來提取信息,拼接得到多頭注意力(Multi-Head Attention)的值.

單個注意力計算輸出如公式(4)所示.
(4)
在多頭注意力操作之前,先將Q、K、V進行一次線性變換,之后將其映射到多個不同的子空間,利用h個放縮點積注意力來進行計算,以關注不同子空間的信息,最后,將h個子空間上的注意力輸出拼接得到多頭注意力的輸出.多頭注意力其架構如圖 3所示.

多頭注意力機制(Multi-Head Attention)如公式(5)所示.
MultiHead(Q,K,V)=Concat(head1,head2,…,headh)WO
(5)

在以上模型的基礎上,本文的所提出的CCNN-2SE-mAtt文本分類模型結構如圖 4所示.

圖4 CCNN-2SE-mAtt模型結構圖Fig.4 CCNN-2SE-mAtt model structure
將原始序列文本按字符劃分為單個漢字與符號,每個字符進行量化,根據輸入的文本的序列,將其轉化為對應的向量序列,輸入到卷積層,經過兩層壓縮-激發塊(SE block),對整個輸入特征進行上下文建模,經特征重標定輸出到一維卷積層,之后經過多頭注意力在多個子空間計算其特征的重要性分布,并將其結果進行拼接,輸入到softmax分類器中來預測文本類別.
本文實驗配置如下:操作系統為Windows10,處理器為Intel(R)Core(TM)i7-8700,內存為16.0 GB,GPU為NVIDIA GTX1060 6GB,編程語言為Python 3.6,學習框架為Keras 2.2.4.
本文使用了THUCNews數據集和搜狐數據集(SogouCS)進行文本分類.THUCNews是由清華大學自然語言處理實驗室推出的新聞文本數據集,包含74萬篇新聞文檔,分為14個候選新聞類別.本文使用其中的10個類別,每個類別包含5 000個訓練樣本,500個驗證集樣本和1000條測試樣本.
搜狐新聞數據(SogouCS)是搜狐實驗室推出的新聞數據集.本文使用其中12個類別,共21614條數據.每個類別包含大約2000個訓練樣本,500個驗證集樣本和500條測試樣本.
分類模型的評測指標主要包括Precision(精確率)、Recall(召回率)、F1-Score.Precision是指預測為正的樣本中真正的正樣本所占的比率.召回率是指樣本中正例被預測正確的比率.F1-Score是綜合評價指標.各評價指標的計算分別如公式(6)-公式(8)所示:
(6)
(7)
(8)
在實驗中,不同的參數設置會影響到實驗的最終結果,這里列出部分參數,以此為基準進行實驗.實驗參數如表 1所示.

表1 模型參數設置Table 1 Model parameter setting
1)CCNN模型.以字符級詞向量輸入卷積神經網絡,然后進行文本分類,以此作為實驗的基線.
2)CCNN模型,CCNN-SE模型,CCNN-2SE模型和CCNN-3SE 模型.將這四個模型進行實驗對比,目的是為了證明在單一的字符卷積神經網絡上,引入SE block模塊后,卷積神經網絡模型在中文文本分類任務上的性能得到提升,以及SE block模塊的堆疊在一定程度上能增加文本分類的精確率、召回率以及F1-score值.
3)CCNN-SE模型和CCNN-SE-mAtt模型,CCNN-2SE 模型和CCNN-2SE-mAtt模型進行對比實驗,證明多頭注意力機制(Multi-Head Attention)在此模型中有助于文本分類.
CCNN模型、CCNN-SE模型、CCNN-2SE模型和CCNN-3SE模型分別在THUCNews數據集和在搜狐數據集(SogouCS)上的Recall(召回率)對比結果如圖 5所示.

圖5 有無SE block模型召回率對比Fig.5 Comparison of recall rate of model with and without SE block
由圖5可知,在CCNN模型上分別增加1個、2個、3個壓縮-激發塊(SE block)之后,在兩個數據集上的召回率趨勢先增加后降低.在THUCNews數據集上,CCNN-SE模型和CCNN-2SE模型的召回率均比CCNN模型的高,但是CCNN-3SE模型的召回率比CCNN模型的低.在搜狐數據集上CCNN-SE模型、CCNN-2SE模型、CCNN-3SE模型的召回率均比CCNN模型的高.這證明了壓縮-激發塊有助于提升模型性能.其中,CCNN-2SE模型分別在THUCNews數據集和搜狐數據集的召回率比CCNN模型高2.21%、4.64%,并且,CCNN-2SE模型比其他含有不同個數的壓縮-激發塊模型表現更好.
圖6和圖7分別展示了在CCNN-SE模型、CCNN-2SE模型增加了多頭注意力機制(Multi-Head Attention)后,在兩個數據集上的結果對比.

如圖6所示,在CCNN-SE模型增加了多頭注意力機制后,在THUCNews數據集的F1-score提高了0.76%,在搜狐數據集的F1-score提高了0.28%.如圖7所示在CCNN-2SE模型增加了多頭注意力機制后,在THUCNews數據集的F1-score提高了0.02%,在搜狐數據集的F1-score提高了0.25%.由此證多頭注意力機制在一定程度上提高了模型的分類性能.
6個模型分別在THUCNews數據集和搜狐數據集上分類的精確率,如表 2所示.在清華數據集上CCNN-2SE-mAtt模型分類的精確率比CCNN模型的高2.29%,在搜狐數據集上CCNN-2SE-mAtt模型分類的精確率比CCNN模型的高4.75%.
實驗結果表明,在中文新聞文本分類任務上,使用CCNN-2SE-mAtt模型比使用單一的卷積神經網絡其分類效果要更好.

表2 模型分類精確率對比Table 2 Model classification accuracy rate comparison
本文在字符級卷積網絡(Char-CNN)的基礎上引入了新的網絡單元——壓縮-激發塊(SE block),它使用全局信息來顯式地建模通道之間的動態、非線性依賴關系,可以簡化學習過程,能顯著提高網絡性能.最后引入多頭注意力機制(Multi-Head Attention)以關注多個子空間信息,提升模型分類的性能.在THUCNews數據集和搜狐數據集(SogouCS)進行訓練和測試,證明了在中文文本分類中,基于壓縮激發塊的字符級卷積網絡(CCNN-2SE-mAtt)模型優于單一的卷積神經網絡,其不僅提高了中文文本分類的精確率,更進一步證明了壓縮-激發塊(SE block)用于文本分類的可行性.在單一的卷積神經網絡中引入壓縮-激發塊(SE block),并將此結構單元用于處理自然語言處理中的文本分類問題,是本文中一個比較大的創新.在接下來的研究中,將繼續優化基于壓縮-激發結構單元的卷積神經網絡的網絡結構,來驗證能否在英文文本數據集上進行有效的文本分類實驗.并研究引入壓縮-激發塊(SE block)的卷積神經網絡能否適用于自然語言處理中的其他研究方向,如中文文本情感分析.