王芝輝,王曉東
(國防科技大學 計算機學院,長沙 410072)
在大數據時代背景下,網絡中積累的歷史數據,以及數以億計的網民每天產生的新數據,使互聯網數據規模爆發式增長,這其中包含了文本數據、聲音數據、圖像數據等多樣化的數據形式。而在各種數據中,文本數據所占比例最大、數量最多,如何處理和利用海量文本數據顯得尤為重要。此類數據雖然數量巨大,但如果只是單純地存儲并不能產生實際價值,同時也并非所有文本都具有實際價值或對特定用戶有意義,因此,海量文本分析是實現大數據理解和價值發現的重要手段。
人工神經網絡技術是從信息處理角度對人腦神經元進行抽象,建立簡單模型,按不同連接方式組成不同網絡的技術。研究者于20世紀40年代建立神經網絡及其數學模型,之后又提出了感知器等更完善的神經網絡模型。隨著研究的進一步深入,此后研究者又提出性能更好的Hopfield網絡模型,以及多層前饋神經網絡的學習算法,推動了人工神經網絡的發展,并使其在眾多領域得到成功應用。
面對海量文本數據分析的需求以及人工神經網絡技術迅速發展和廣泛應用的現狀,基于人工神經網絡的文本分析成為目前重要的研究方向。作為海量文本處理的關鍵技術,文本分類可以根據具體需要將文本劃分成不同的類別,從而方便進一步分析和應用。近年來人工神經網絡在文本分類問題中取得了顯著效果,進一步促進了兩者的結合和發展。在此環境下,本文介紹不同結構的人工神經網絡在文本分類中的應用及發展歷程,比較其在常用數據集上的分類效果,同時展望未來的發展方向。
文本分類問題是自然語言處理中一個經典問題,也是文本分析的常用方法。該問題定義為:對于一篇文檔,是將其劃入預先定義的多個類別中的某一個或幾個。作為處理海量文本數據的關鍵技術,它能夠幫助用戶更好地組織文本、挖掘文本信息,方便用戶準確地定位所需的信息。
以在線社交網絡上對文本分類的應用需求為例,主要有以下類型:
1)基于內容的主題分類[1]。文本的內容通常涉及社會中的多個方面,如政治、經濟、體育、娛樂、軍事等,可根據文本的內容將其劃分為不同的領域,用戶再根據自身的需求選擇其中的某一個或者某幾個領域的文本數據做進一步處理。這種需求下的分類類別通常是多個,可能達到十幾個。一篇文本很可能同時涉及多個領域的內容,因此,根據用戶需要,分類結果可以是只有一個標簽,只屬于某一類別,也可以擁有多個標簽,劃入與文本最相關的多個類別。
2)基于觀點的情感極性分類。對于社會熱點新聞,網民及公共媒體經常在社交網絡中發表自己的觀點看法,對于書籍和影視作品等也有對應的大量評論數據。根據網民的觀點,可以對他們的情感態度進行分類:積極或是消極,支持或是反對,以及保持中立態度。對于這種分類需求,分類類別通常只有2類或3類,也可根據情感態度的強弱做更細的劃分。
分類前的一個重要步驟是文本數據預處理。預處理過程如下:
1)分詞處理,將連續的文字流切分成單獨的詞匯,對于英文只需通過空格和標點即可完成,對于中文則較為復雜,常用的工具為結巴分詞,分詞的效果對文本分類的效果影響很大,是后續流程的基礎。
2)去除停止詞,目的是將一些輔助性文字刪除,一般都是通過查一個對應表來完成。
3)詞性標注,判斷單詞的詞性,如名詞、動詞等
4)還原詞根,對于中文,預處理已經完成,對于英文,由于單詞有詞形的變化,如名詞的單復數、動詞的時態等,因此還需要還原詞根。
文本分類本質上與其他分類問題是一致的,是根據待分類數據的特征進行匹配從而劃歸到正確的類別,因此,核心問題就可轉化為如何選取文本的特征以保證有效和快速地分類。最原始的方法是詞匹配法,僅根據文檔中是否出現了與類名及其近義詞語相同的詞來判斷文檔的類別,這種方法簡單,但是分類效果卻很差。進一步則是利用知識工程的方法為每個類別定義大量的推理規則,根據文檔是否滿足規則來判斷類別,此時與特定規則的匹配程度就是文本的特征。這種方法準確度比詞匹配法高了很多,但缺點也很明顯,一是分類效果嚴重依賴于規則的質量,而推理規則是由用戶制定的,高質量的規則需要專家制定,大幅提升了人力成本;另一個缺點則是完全不具備推廣性。之后則是統計學習方法的思想,讓機器像人類一樣通過對大量同類文檔的觀察來總結經驗,作為分類的特征和依據,也稱為機器學習,并已經成為目前文本分類領域的主流方法[2]。
機器學習方法的發展,起初是傳統的樸素貝葉斯、Rocchio、KNN[3]、決策樹等算法,這些方法與之前的方法相比有著很好的分類效果,但是文本表示的特征表達能力很弱,而且耗時耗力,成本很高。之后隨著計算能力的提升和人工神經網絡的興起,基于神經網絡的深度學習方法逐漸成為研究的主要方向。
對于文本分類的結果,主要有2個評價指標:
1)準確率,也稱為精度,是指檢索出的相關文本數與檢索出的文本總數的比率,衡量的是分類的查準率。
2)召回率,是指檢索出的相關文本數與文本庫中所有相關文本的比率,衡量的是文本的查全率。
上述2個指標是相互影響的,最理想的情況下是兩者都高,但是在一般情況下,一個指標高,另一個指標就會低。
在文本分類中,神經網絡是一組連接的輸入輸出神經元,輸入神經元代表詞條,輸出神經元代表文本類別,神經元之間的連接都有相應的權值。在訓練階段,通過正向傳播算法、反向修正算法等多種算法調整權值,可使測試文本能夠根據調整后的權值準確地學習,從而得到多個不同的神經網絡模型,然后將一篇未知類別的文本依次通過這些神經網絡模型得到不同的輸出值,并通過比較最終確定文本的類別。應用神經網絡可以利用網絡結構自動獲取文本特征解決分類問題[4],避免了繁雜的人工特征工程。
卷積神經網絡(Convolutional Neural Network,CNN)本質上就是多層卷積運算,外加對每層的輸出用非線性激活函數做轉換。在傳統的前饋神經網絡中,網絡把每個輸入神經元與下一層的輸出神經元相連接,這種方式也被稱作是全連接層。而在卷積神經網絡中,則是用輸入層的卷積結果來計算輸出,這相當于局部連接,每塊局部的輸入區域與輸出的一個神經元相連接,對每一層應用不同的濾波器,然后匯總結果。
文獻[5]將卷積神經網絡應用到文本分類問題中,提出了TextCNN模型。如圖1所示,該模型的結構為:輸入層是一個表示句子的矩陣,每一行是句子中一個單詞的詞向量,此處使用的是Google的word2vec[6],卷積層由若干個濾波器組成,在最大池化層之后,利用SoftMax函數處理池化層的輸出進行分類。該文也嘗試了2種不同形式的通道,分別是動態和靜態詞向量,其中一個通道在訓練時動態調整而另一個不變。

圖1 TextCNN模型示意圖Fig.1 TextCNN model schematic diagram
文獻[7]在TextCNN模型的基礎提出了改進的DCNN模型,模型仍然是基于卷積的,在每一層卷積操作之后增加一個最大池化操作,同時對池化層進行了優化,不是傳統地選出最大值,而是動態地選出最大的k個值。
利用卷積神經網絡做文本分類時,需要先選擇一定尺寸的滑動窗口,然后使用濾波器每次選取一個特征組成特征圖,最后利用池化操作選擇出最重要的特征用于分類。對于該過程,滑動窗口大小的
選取是關鍵,如果過小則會導致不能獲取長距離的語句信息,如果過大則會導致數據十分稀疏。
為解決滑動窗口尺寸的問題,與DCNN的動態池化不同,文獻[8]提出的MVCNN模型利用尺寸動態改變的濾波器來處理文本,獲得長度不同的子句,從而可以提取多粒度的短語特征。此外,詞向量對于句子的表示以及分類效果有著很大的影響,該文結合了skip-gram、GloVe[9]和C&W[10]3種表現較好的詞向量方法,將它們看作單詞的不同表示,從而可以包含比單一詞向量更為豐富的信息,提取出更高質量的語句特征,進而提高分類效果。
上文介紹的模型都是在單詞或者短語層面上對文本進行處理。文獻[11]則將卷積神經網絡模型直接用于字符層面,提取出更高層次的抽象概念,提出char-CNN模型。該文首先構建字母表,使用one-hot編碼的69個字符外加一個全零向量,共70個字符。同時提出large和small兩種規模的神經網絡,都由6個卷積層和3個全連接層總共9層神經網絡組成,使用一維卷積神經網絡。從字符層面分類的優點是不需要使用預訓練的詞向量和語法句法結構等信息,而且容易推廣到所有語言。
在一段文本中,每個單詞并不是完全獨立的,詞與詞之間是連續的,文本的語義與單詞的順序也是有關系的。但是利用卷積神經網絡解決文本分類時并沒有考慮到詞序問題,對語義的理解存在偏差。時間遞歸神經網絡(Recurrent Neural Network,RNN)是一種對序列數據建模的神經網絡,即一個序列當前的輸出不僅與當前的輸入有關,與前面的輸出也有關,因此,具有記憶功能的RNN可以很好地解決文本分類問題,而可以學習長期依賴信息的LSTM更是一種應用十分廣泛的時間遞歸神經網絡,其中的交互神經網絡層如圖2所示。

圖2 LSTM重復模塊中的交互神經網絡層Fig.2 Interactive neural network layer in repetitive LSTM module
LSTM雖然可以保存序列信息,但是后面信息的重要性要強于前面的信息,然而在一段文本中對分類結果起重要作用的信息并不一定出現在后半部分,雙向LSTM則是從2個方向對文本進行處理從而可以更好地包含每個單詞的上下文信息,因此,利用LSTM進行分本分類應用更為廣泛。此外,在LSTM的研究及應用過程中衍生出了許多改進,其中門控循環單元(Gated Recurrent Unit,GRU)可以捕獲更長距離的依賴信息,因此也得到了廣泛的應用。
為進一步提高語句表示的效果,文獻[12]提出了一種樹形的長短期記憶網絡模型Tree-LSTM,與標準LSTM隱藏狀態由當前輸入和前一階段隱藏狀態組成相比,Tree-LSTM的當前隱藏狀態由當前的輸入向量和任意個子單元的隱藏狀態組成。標準LSTM模型可以看作是該模型的特例,即每個節點只存在單個子單元。該模型在語義相關性測試和情感分類中都取得了較好的效果。
文獻[13]提出密集連接的雙向LSTM(DC-Bi-LSTM)模型用于文本分類。對于輸入的一段文本,首先使用雙向LSTM進行編碼,并將隱藏狀態序列作為每一層的reading memory。原始輸入作為第1層的reading memory,然后將原始輸入和第1層的輸出位置做級聯操作,作為第2層的輸入,以此類推,最終得到第n層的輸出并作最后分類的特征表示。該模型解決了梯度消失和過擬合問題,最多可成功訓練20層并且需要的參數較少。
CNN利用最大池化層可以很好地判斷文章中的重要單詞,但是滑動窗口尺寸的選擇是一個問題,同時CNN也缺乏學習與順序相關的知識的能力,而RNN可以順序建模,但是無法以并行的方式提取特征,同時也是有偏模型。考慮到2種網絡的特點,研究者從不同角度將兩者結構進行了結合,提出了多種新的分類模型。
文獻[14]提出了RCNN模型,在學習語句表示時運用時間遞歸神經網絡的雙向循環結構來最大限度獲取文本信息,然后利用卷積神經網絡的最大池化層判定哪個特征在文本分類中起著更重要的作用。該模型通過結合RNN的遞歸結構和CNN的最大池化層,同時利用了2種神經網絡的優點。
文獻[15]提出了C-LSTM模型。首先在大量無標簽文本數據預訓練得到的詞向量上構建CNN,學習N-Gram的更高級表示,然后從更高層次的語句表示中學習與次序有關的知識,將經過卷積操作得到的特征窗口組織成有序的形式,把相同濾波器提取到的特征放在一起,然后依次排列作為LSTM的輸入,從而綜合利用CNN和RNN的優勢。
文獻[16]提出BLSTM-2DPooling和BLSTM-2DCNN模型。首先用雙向LSTM網絡將文本轉化為向量形式,然后使用二維的最大池化操作獲得長度固定的向量,再利用二維卷積操作獲取輸入文本的特征表示用于分類。通過雙向LSTM網絡處理文本可以獲取文本較完整的上下文信息,然后利用卷積和最大池化操作提取出最重要的信息。
文獻[17]將基于CNN的“region embedding+pooling”模式引入到LSTM中,使得RNN在對全局的把控以及訓練時間上都得到了優化。優化主要體現在以下3個方面:
1)消除了詞向量層,直接使用one-hot作為輸入。
2)增加了池化,LSTM模型的一個缺點是最后一個隱層必須很好地概括全局,但是文本很長時很難達到,因此,此處不再以最后的向量作為輸出,而是以每個時刻的輸出共同進行池化來得到一個全局性的輸出。
3)分塊,將長段的文本分為若干個小段落,每個段落用LSTM來進行特征提取,然后用前面提到的池化操作來處理。
文獻[18]將一個卷積層建在LSTM上,提出了DSCNN模型。對于單個語句,首先使用LSTM處理詞向量來獲取語句內部長距離的依賴信息,隱藏單元被抽取出來組成低級別的表示,然后用一個含有不同尺寸的濾波器和最大池化操作的卷積層來提取用于分類任務的特征。對于文章的建模,首先使用LSTM對每個子語句進行建模,然后在第1個LSTM層和卷積層之間添加第2個LSTM層來編碼不同語句之間的依賴信息。
結構遞歸神經網絡是一類用結構遞歸的方式構建的網絡,在自然語言處理的神經網絡分析方法中常用于解析語句。單個詞的語義向量空間廣泛被用作特征,但它不能很好地表示長語句的意義,因此,語義向量空間的組合性得到研究者的廣泛關注。在此背景下,文獻[19]提出了RNTN模型,模型將任意長度的短語作為輸入,把短語表示成詞向量和解析樹,然后用相同的張量組合函數計算高層節點的向量。文獻[20]提出DRNN模型,將多個遞歸層堆積在一起,在每一層都有一個額外的處理結構,在前向傳播過程中,信息會通過每一層的這一結構。結構中的每一個節點都將它的隱藏狀態傳遞給下一層的對應部分,可以看作是前向反饋和遞歸網絡的結合。結構遞歸神經網絡在構建句子表示方面具有很好的效果,但是也取決于文章的樹結構,而且時間復雜度較高,不適合構建長語句或者文檔。
預訓練的詞向量給文本分類效果帶來了很大的改善,但也存在局限性,它們僅包含模型第1層的先驗知識,網絡的其余部分還需要重新訓練。在計算機視覺領域中,預訓練整個模型以獲得初級和高級特征已經采用多年,通常預訓練模型是在ImageNet大型數據集上訓練圖像分類而獲得的。受此啟發,將語言建模作為預訓練任務得到了廣泛探索。ELMo[21]和OpenAI Transformer[22]模型經實驗證明可以取得良好的效果。文獻[23]提出的基于雙向Transformer的模型BERT則進一步提高了多項自然語言處理任務的性能。因此,預訓練模型將會在自然語言處理領域造成廣泛而深刻的影響。
文獻[24]提出了快速的文本分類器fasttext,其由word2vec衍生而來,模型架構與word2vec的CBOW架構類似,同時還引入了層次SoftMax和N-Gram特征。該模型的優點是在保證分類效果的情況下能夠快速地學習和完成分類任務。
文獻[25]提出分層注意網絡模型HAN。鑒于在文章結構中是單詞組成語句、語句組成文章這種分層機制,因此,在文章表示中也采用先構建語句表示,再將語句表示合并為文檔表示的分層結構。此外,根據不同的單詞和語句在文檔中的重要性不同,提出了單詞級別和語句級別2種不同的注意力機制,對不同的獨立單詞和語句賦予不同的重要性,從而更好地提升文本分類效果。
將詞轉化為向量有2種常用方式,其中考慮語法順序的方法表現更好但是需要更長的訓練時間,特別是數據集非常大或者計算資源有限時無法使用。文獻[26]提出一種深度無序模型DAN,首先取與輸入的字符序列相關的詞向量的平均值,然后將平均值傳入一個或多個前向反饋層,并在最后的表示層中進行分類。模型還可以通過在計算平均值前隨機丟棄一些向量實現性能優化。
本節主要列出了文本分類任務中常用的公開數據集以及各類神經網絡模型在這些數據集上的分類效果,以分類的準確率作為評價的依據。數據集中既包括了電影評論MR[27]、SST-1[28]、SST-2、主觀性測試Subj[29]等分類類別較少的情感極性測試數據集,同時也包括新聞分類20NewsGroup[30]、AG、Sogou[31]、問題分類TREC[32]、商品評分Amazon[33]等分類結果較多的數據集。具體分類效果如表1所示。

表1 各類神經網絡模型的分類準確率對比Table 1 Comparison of classification accuracy of various neural network models %
分析表1中數據可知,對于分類類別較少的情感極性測試數據集,采用密集連接的雙向LSTM的DC-Bi-LSTM模型表現最為出色,即使在五分類的SST-1和六分類的TREC數據集上的準確率也與最好效果十分接近。此外,使用雙向LSTM的BLSTM-2DCNN模型的表現也較為突出。由此可見,雙向LSTM對于文本表示效果較好,既獲取了長距離的依賴信息,其雙向的結構又可以更好地包含每個詞的上下文信息。但由于結構復雜,雙向LSTM通常需要很長的訓練時間,訓練成本高,在數據集規模較大的情況下這個問題尤為突出。
對于新聞分類數據集,從表1中可以看出fasttext模型取得了很好的效果,該模型的優點在于結構簡單,而且分類效果也相對令人滿意,在對時效性要求較高的情況下是不錯的選擇。
相較于圖像領域,CNN在文本分類方面并不具備明顯的優勢,雖然與傳統的分類方法相比性能已有了較大的提升,但即使對結構進行改進之后效果依然要比LSTM差,這可能與文本數據本身的特點有關。即便如此,CNN在文本方面依然可以發揮重要的作用,從表1中數據可以看出,將CNN與RNN結合之后在某些數據集上可以達到所有模型中的最佳效果,因此,在探索新的網絡結構時也是不可忽視的一部分。
上述實驗結果基本都是利用英文數據集進行實驗,但這些模型同樣也適用于中文數據集,而且也能達到很好的效果。在應用神經網絡進行文本分類時,首先要通過空間向量模型將文本轉化為由數字組成的向量,然后再利用各種結構的神經網絡對向量進行處理獲得最終的分類結果。因此,中文文本分類與英文的差別主要在于數據的預處理部分以及轉化后所獲得的詞向量。應用上述模型解決中文文本分類時,需要利用中文的語料庫和word2vec等工具訓練得到可用的詞向量,BERT預訓練模型開發者也已公布了中文模型,可以供研究者直接使用。數據集方面常用的主要有清華大學和復旦大學整理的新聞分類數據集以及用于情感分析的新浪微博數據集和京東商品評論數據集等。
本文總結當前用于文本分類任務的主流神經網絡,介紹不同網絡的應用和研究進展,并對比其在常用數據集上的分類效果。分析結果表明,卷積神經網絡[34]、時間遞歸神經網絡[35]和以OpenAI Transformer為代表的預訓練模型分類效果較好,而預訓練模型在特征抽取和并行計算方面的綜合表現更為優異,是未來的主要發展趨勢。同時,對三者各取所長進行組合,以及借鑒神經網絡在圖像領域的研究成果,也將是文本分類方法的改進方向。