楊文濤,雷雨琦,李星月,鄭天成
1.華中科技大學(xué)集成電路學(xué)院,武漢 430074
2.湖北大學(xué)知行學(xué)院人文學(xué)院,武漢 430011
隨著自然語言處理研究的不斷發(fā)展,文本分類作為其重要內(nèi)容,被廣泛應(yīng)用于信息檢索、新聞分類、情感分析、垃圾郵件過濾等領(lǐng)域[1-4]。隨著互聯(lián)網(wǎng)的普及,文本數(shù)據(jù)的規(guī)模不斷的擴增[5]。在大數(shù)據(jù)時代,如何精準進行文本信息的分類成為當(dāng)代研究的焦點[6]。
基于深度學(xué)習(xí)的文本分類的研究主要圍繞文本表示、特征提取和特征分類三個方面。針對文本表示一般采用詞嵌入方式,Google團隊提出了Word2Vec[7]詞向量訓(xùn)練工具,可以從大規(guī)模沒有標注的語料中高效地生成詞的向量表示,并提供了CBOW和SKip-gram這兩種模型。Pennington等人[8]提出Glove模型,基于全局詞頻統(tǒng)計的詞表征工具,考慮文本的局部信息和整體信息。然而,Word2Vec 與Glove 文本表示是靜態(tài)的映射關(guān)系,沒有考慮到在不同語境下詞匯含義不同的問題,因此Google 團隊在Transformer 模型[9]的基礎(chǔ)上,提出了BERT(bidirectional encoder representations from transformers)模型[10],動態(tài)生成詞匯的向量表示,解決了一詞多義的問題。但是BERT模型最初為英文設(shè)計,對于中文文本分類,它忽略了中文特有的兩個重要信息:讀音、筆畫,在一定程度上降低了模型的準確性。本文在BERT模型的基礎(chǔ)上,融合五筆輸入表示漢字的筆畫,充分表示漢字的語義信息;通過拼音輸入表示漢字讀音,解決中文的多音詞問題。
在特征提取領(lǐng)域,卷積神經(jīng)網(wǎng)絡(luò)[11]與循環(huán)神經(jīng)網(wǎng)絡(luò)[12]的結(jié)合在文本分類中層出不窮。Lai等人[13]提出了一種循環(huán)卷積神經(jīng)網(wǎng)絡(luò)用于文本分類,該模型選擇的是BiRNN和CNN的結(jié)合,利用了兩種模型的優(yōu)點,提升了文本分類的性能。但是,RNN 存在梯度消失和梯度爆炸等問題,為此,Zhang 等人[14]提出了LSTM 和CNN 的混合模型,文獻[15]提出了CNN 和LSTM 的混合模型。為了更好地獲取文本的上下文特征,文獻[16]提出了BiLSTM-CNN方法,采用BiLSTM模型獲得兩個方向的表示,然后通過卷積神經(jīng)網(wǎng)絡(luò)將兩個方向的表示組合成一個新的表達式。然而,上述模型沒有考慮到長文本中可能包含部分與目標主題無關(guān)的信息導(dǎo)致模型誤判問題。為此,本文提出了門控機制動態(tài)的融合BiLSTM提取的全局特征信息與CNN 提取的局部特征信息,通過組合局部特征信息與全局特征信息,提高了長文本分類的準確性。
為了兼顧文本表示和文本特征提取,提高基于深度學(xué)習(xí)的中文長文本分類準確性。本文提出基于CIMBERT與BLCG相結(jié)合的中文文本分類。本文的貢獻如下:
(1)在BERT 模型的基礎(chǔ)上,通過拼音輸入法與五筆輸入法融入了讀音與筆畫兩個重要的漢字信息,增強了漢字的語義信息,解決了中文常見的多音詞問題。
(2)提出門控機制動態(tài)的組合BiLSTM提取的全局特征信息與CNN 提取的局部特征信息,解決了長文本中部分文本偏離主題,導(dǎo)致模型誤判的問題,提升長文本分類的準確性。
在THUCNews與Sogou數(shù)據(jù)集上的實驗表明,本文提出的分類模型精度較高。
本文提出的模型由輸入層、文本表示層、信息提取層和分類層4 部分組成。其中,對于輸入層,獲取輸入文本的拼音嵌入向量與五筆嵌入向量,通過融合層與字嵌入向量進行融合,得到的融合嵌入向量與位置嵌入向量相加,作為整個模型的輸入。文本表示層使用BERT模型對輸入層傳入的向量進行文本表示。信息提取層首先使用BiLSTM提取文本的全局特征信息,然后通過CNN 提取文本的局部特征信息。為了避免在長文本中,部分文本偏離目標主題導(dǎo)致的模型誤判,使用門控機制動態(tài)地結(jié)合全局特征信息與局部特征信息,提高分類的準確性。最后將門控輸出結(jié)果通過分類層獲取最終的分類結(jié)果。模型的整體架構(gòu)如圖1所示。
圖1 系統(tǒng)模型架構(gòu)Fig.1 System model architecture
在輸入層中,首先獲取輸入文本的字嵌入向量、拼音嵌入向量與五筆嵌入向量,三種向量通過融合層獲取融合嵌入向量,最后與位置嵌入向量進行相加,作為模型的輸入。下面將詳細介紹如何獲取拼音嵌入向量、五筆嵌入向量與融合嵌入向量。
1.1.1 拼音嵌入向量
在輸入向量中引入拼音嵌入向量是為了解決多音漢字的識別問題。本文采用開源的pypinyin 包生成指定漢字的拼音,構(gòu)建了自定義拼音字母數(shù)字對應(yīng)表,將拼音字母轉(zhuǎn)化為數(shù)字,并在拼音字符最后拼接讀音,每個漢字對應(yīng)的拼音向量長度為8,如果長度不夠使用0進行填充。通過拼音向量的引入,可以有效地區(qū)分多音漢字不同的語義。最后,通過CNN 將初始的拼音向量轉(zhuǎn)化為拼音嵌入向量。獲取拼音嵌入向量的方法如圖2所示。
圖2 拼音嵌入向量生成Fig.2 Procedure of creating Pinyin embedding vector
1.1.2 五筆嵌入向量
在輸入向量中引入筆畫信息是為了充分表示漢字的語義信息。五筆輸入完全依據(jù)筆畫和字形特征對漢字進行編碼,是典型的形碼輸入法,可以表示漢字的筆畫信息。本文使用98 版五筆構(gòu)建漢字五筆對應(yīng)表,通過漢字五筆對應(yīng)表獲取漢字的五筆表示,然后使用字母數(shù)字對應(yīng)表獲取數(shù)字向量,最后通過CNN 將初始的五筆向量轉(zhuǎn)化為五筆嵌入向量。漢字的五筆嵌入向量獲取如圖3所示。
圖3 五筆嵌入向量生成Fig.3 Procedure of creating Wubi embedding vector
1.1.3 融合嵌入向量
漢字的字嵌入向量可以通過詞表對應(yīng)獲取,當(dāng)獲得了漢字的字嵌入向量、拼音嵌入向量、五筆嵌入向量后,按列維度進行拼接,最后通過全連接層進行降維,得到融合嵌入向量。與位置嵌入向量進行相加,作為整個模型的輸入向量,融合嵌入向量的獲取如圖4所示。
圖4 融合嵌入向量生成Fig.4 Procedure of creating fusion embedding vector
文本表示層用于將輸入文本表示為特征向量。本文采用BERT模型進行文本表示。BERT模型通過由雙向Transformer 模型組成,可以根據(jù)上下文信息動態(tài)地生成詞匯的向量表示,解決了一詞多義的問題,BERT模型的結(jié)構(gòu)如圖5所示。
圖5 BERT模型圖Fig.5 Structure of BERT model
圖5 中,Ei表示當(dāng)前語句中第i個詞,Trm 表示Transformer模型,Ti為第i個詞對應(yīng)的特征向量。
信息提取層采用BiLSTM 模型提取文本的全局特征信息,使用CNN提取文本的局部特征信息。最終,為了解決長文本中可能出現(xiàn)的部分文本偏移目標主題導(dǎo)致模型誤判的問題,本文提出了門控機制動態(tài)組合全局特征信息與局部特征信息,解決了上述問題。
1.3.1 BiLSTM模型
本文使用BiLSTM 提取文本的全局特征信息。BiLSTM 包含了前向傳播與反向傳播LSTM,分別從正向和反向獲取文本的全局信息。LSTM 單元如圖6 所示,LSTM由遺忘門、輸入門、輸出門以及內(nèi)部記憶單元組成。
圖6 LSTM模型圖Fig.6 Structure of LSTM
對于BiLSTM,每一時刻t,都有前向傳播的LSTM和反向傳播的LSTM分別計算出隱藏層ht和ht′,然后對ht與ht′進行拼接,作為t時刻的BiLSTM的輸出,見公式(1):
對于整個BiLSTM,可以得到輸出為:
1.3.2 CNN模型
本文采用CNN提取文本的局部特征信息。CNN主要包含了卷積層和池化層。卷積層是CNN 模型的核心,它包含若干個卷積核,通過卷積核與輸入向量的卷積操作進行特征的提取。池化層的目的是對卷積結(jié)果進行采樣,減小卷積向量的大小,避免過擬合。池化方法分為最大池化和平均池化。在文本分類中,最大池化可以保留文本的關(guān)鍵信息。
1.3.3 門控機制
在長文本分類中,文本中常常攜帶著與目標主題無關(guān)的信息,甚至部分文本與其他主題有關(guān),在使用CNN做局部特征提取時可能會提取到其他的主題信息,導(dǎo)致模型的誤判,因此,保留全局特征信息是非常有必要的。在本文中,提出了一種門控機制,可以動態(tài)地對局部特征信息與全局特征信息分配權(quán)重并相加。通過門控機制可以有效地提高長文本分類的準確度。門控機制的計算公式見公式(3)~(5):
其中,M為CNN輸出的向量,H為BiLSTM輸出的hn與h1′的拼接,α1為H的權(quán)重,W與b分別表示權(quán)重矩陣與偏置向量,Z表示經(jīng)過門控機制最終的向量輸出。
將門控機制輸出的向量Z分別經(jīng)過全連接層進行降維,并最終由Softmax函數(shù)決定輸出的標簽類別,分類層的計算見公式(6):
其中,a表示當(dāng)前標簽種類,Wk、Wa與bk、ba分別表示對應(yīng)的權(quán)重矩陣與偏置向量。
為了驗證分類模型的性能,本文模型的實驗平臺為Ubuntu20.04 操作系統(tǒng),硬件為Intel?Xeon?Platinum 8350C,16×2.6 GHz 處理器、43 GB 內(nèi)存、RTX 3080 Ti顯卡,模型采用Python 編程語言實現(xiàn),版本為3.7,使用深度學(xué)習(xí)的框架為Pytorch 1.10.0,編碼工作主要使用Pycharm開發(fā)工具進行完成。具體實驗環(huán)境如表1所示。
實驗選取了THUCNews 數(shù)據(jù)集與Sogou 語料庫作為實驗的數(shù)據(jù)集。
THUCNews 為THUCTC 數(shù)據(jù)集的子數(shù)據(jù)集,包含了運動、金融等10 類標簽數(shù)據(jù),每個標簽選取了5 000的訓(xùn)練數(shù)據(jù)與1 000 的測試數(shù)據(jù),總訓(xùn)練集數(shù)據(jù)和總測試集的數(shù)據(jù)數(shù)量分別為50 000和10 000。
Sogou 語料庫由搜狗實驗室提供,包含了Sogou CA與Sogou CS兩個數(shù)據(jù)集,本文過濾了其中數(shù)據(jù)較少的類別以及較短的數(shù)據(jù),保留了運動、健康、環(huán)境等10個類別,每個類別包含10 000 的訓(xùn)練數(shù)據(jù)與2 000 的測試數(shù)據(jù)。
數(shù)據(jù)集經(jīng)過處理后統(tǒng)計信息如表2所示。
表2 數(shù)據(jù)集概況Table 2 Dataset overview
本文選取的評價指標為文本分類領(lǐng)域通用的評測標準:準確率、精確率、召回率和F1-score。
在測試數(shù)據(jù)中,F(xiàn)P表示實際為負、但是被預(yù)測為正的樣本數(shù)量,TN表示實際為負、但是被預(yù)測為負的樣本數(shù)量,TP 表示實際為正、但是被預(yù)測為正的樣本數(shù)量,F(xiàn)N表示實際為正、但是被預(yù)測為負的樣本的數(shù)量。
準確率為分類正確的樣本占總樣本個數(shù)的比例,準確率Acc的數(shù)學(xué)定義見公式(7):
精確率表示測試集中預(yù)測為正類正確的比率,由測試樣本中預(yù)測正確的正例樣本數(shù)量除以所有預(yù)測為正例的樣本總數(shù)得到,精確率P的計算公式為:
召回率表示原有樣本中有多少正例被預(yù)測,由原有樣本中預(yù)測為正例的樣本數(shù)除以樣本中總正例的個數(shù)得到,召回率R計算公式為:
F1-score 是評價分類文本的綜合標,F(xiàn)1-score 的計算公式為:
為了驗證提出的長文本分類模型的合理性與有效性,本文在THUCNews數(shù)據(jù)集與Sogou語料庫下進行不同的文本分類模型進行對比測試。本文提出的模型具體的超參數(shù)如表3所示。
表3 模型超參數(shù)設(shè)置Table 3 Parameters setting
將提出模型和以下7種文本分類模型進行對比評估。
(1)BERT:使用BERT 模型對數(shù)據(jù)集進行預(yù)訓(xùn)練并提取深層特征后,使用全連接層將生成的對應(yīng)向量輸入一個Softmax函數(shù)進行計算得到分類結(jié)果[10]。
(2)ChineseBERT:在BERT 模型的基礎(chǔ)上,在輸入層融入了中文拼音和漢字圖片特征,在一定程度上優(yōu)化了中文的文本分類任務(wù)[17]。
(3)RCNN:由RNN 與CNN 相結(jié)合的文本分類模型,首先采用BiLSTM 對文本的特征向量進行提取,再將其與嵌入層輸出的詞向量進行拼接,然后經(jīng)過一層卷積后實現(xiàn)對文本的分類[16]。
(4)BERT_RCNN:使用BERT進行詞向量化后輸入到RCNN模型中進行文本分類[18]。
(5)CNN_LSTM:由CNN與LSTM相結(jié)合的文本分類,分別使用CNN 與LSTM 來局部特征提取與全局特征提取,最后進行文本分類[15]。
(6)ERNIE:由百度團隊提出的一種知識增強語義的預(yù)訓(xùn)練模型,核心由Transformer構(gòu)成,在多個NLP中文任務(wù)上有優(yōu)異的表現(xiàn)[19]。
(7)RoBERTa:在BERT 模型的基礎(chǔ)上做了增強,擁有更大的模型參數(shù)以及更多的訓(xùn)練數(shù)據(jù),對BERT模型很多細節(jié)進行了優(yōu)化[20]。
具體的對比實驗結(jié)果如表4、表5所示。
表4 THUCNews數(shù)據(jù)集上各模型實驗結(jié)果比較Table 4 Comparison of experimental results of several models on THUCNews 單位:%
表5 Sogou數(shù)據(jù)集上各模型實驗結(jié)果比較Table 5 Comparison of experimental results of severalmodels on Sogou 單位:%
根據(jù)表4 和表5 所示的實驗結(jié)果發(fā)現(xiàn):本文提出的模型對比現(xiàn)有的文本分類模型,在THUCNews 數(shù)據(jù)集和Sogou語料庫準確率和F1-score分別達到了97.63%、97.68%與95.43%和95.49%,在所有對比實驗?zāi)P椭斜憩F(xiàn)最優(yōu),驗證了本文提出模型的有效性。
文本的模型主要包含兩個部分:融合漢字輸入法的BERT、含門控機制的長短期記憶卷積網(wǎng)絡(luò)。為了分別驗證兩個網(wǎng)絡(luò)對文本分類結(jié)果都具有積極的效果,設(shè)計了如下幾組對照實驗,其中,BERT_pinyin為在BERT模型中融入了拼音輸入;BERT_wubi為在BERT中融合了五筆輸入;BERT_BLCG 為BERT 模型與BLCG 模型的組合;BERT_pinyin_BLCG 為融合拼音輸入的BERT 模型與BLCG 模型組合;BERT_wubi_BLCG 為融合五筆輸入的BERT 模型與BLCG 模型組合。具體的實驗結(jié)果如表6、表7所示。
表6 THUCNews數(shù)據(jù)集在局部模型對比實驗結(jié)果Table 6 Comparative experimental results of partial models on THUCNews 單位:%
表7 Sogou數(shù)據(jù)集在局部模型實驗結(jié)果比較Table 7 Comparison of experimental results of partial models on Sogou 單位:%
由表6、表7 數(shù)據(jù)可知,對于整個CIMBERT_BLCG來說,模型的兩個部分CIMBERT 與BLCG 對模型都具有積極的影響,具體如下:
(1)CIMBERT:由CIMBERT與BERT的實驗對比可知,在THUCNews與Sogou兩個數(shù)據(jù)集上,模型F1值的提升分別為1.18與1.03個百分點,同時,CIMBERT_BLCG相較于BERT_BLCG來說,模型的F1值提升分別為0.59與0.49 個百分點,說明了CIMBERT 相比于BERT 更能表征中文語義。在CIMBERT_BLCG中,去除CIMBERT模型后,剩下的BLCG 模型與CIMBERT_BLCG 模型相比F1值在兩個數(shù)據(jù)集上分別下降了2.54與2.09個百分點,驗證了CIMBERT模型對整體具有很大的積極效果。
(2)BLCG:由RCNN 與BLCG、BERT_RCNN 與BERT_BLCG 對比實驗可知,在THUCNews 與Sogou 兩個數(shù)據(jù)集上,F(xiàn)1 值提升分別為0.52 與0.37 個百分點以及0.38與0.63個百分點,說明BLCG模型在一定程度上優(yōu)化了RCNN模型。在CIMBERT_BLCG中,去除BLCG模型后,僅剩的CIMBERT 模型與CIMBERT_BLCG 相比F1值在兩個數(shù)據(jù)集上分別下降了1.17與0.76個百分點,驗證了BLCG模型對整體具有積極效果。
(3)拼音輸入與五筆輸入:由表中數(shù)據(jù)可知,在同等條件下,融合拼音輸入相較于五筆輸入,模型的準確率略高,在一定程度上說明在模型中融合拼音嵌入更能表征漢字的語義信息,但在整體上拼音輸入與五筆輸入相輔相成,都是不可或缺的。
總體來說,本文提出的CIMBERT 與BLCG 的文本分類模型在THUCNews 數(shù)據(jù)集與Sogou 語料庫上訓(xùn)練結(jié)果有較好的表現(xiàn)。主要通過在輸入層融合了拼音與五筆輸入法,并在信息提取層用過門控機制動態(tài)地組合全局特征向量與局部特征向量。最后通過實驗驗證了本文提出的模型的合理性。
本文針對中文的長文本分類,提出了融合漢字輸入法的BERT 與BLCG 的文本文本分類模型。使用融合拼音輸入和五筆輸入的BERT模型進行中文文本表示,融合中文的語義信息,解決了中文多音字的問題。在信息提取層首先使用BiLSTM進行全局特征的提取,然后通過CNN 進行局部特征的提取,為了解決長文本中部分文本與目標主題無關(guān)導(dǎo)致的誤判問題,提出了門控機制,動態(tài)地組合全局特征信息與局部特征信息。最后通過分類器進行分類。實驗表明,本文提出的模型準確率與F1-score均優(yōu)于其他的深度學(xué)習(xí)文本分類模型。
在未來的工作中,需要解決以下幾個問題:(1)CIMBERT_BLCG 模型相較其他模型時間復(fù)雜度高,訓(xùn)練時間較長,未來會設(shè)計并行計算減少模型訓(xùn)練時間。(2)本文提出的分類模型聚焦于增強中文語義,減少與主題無關(guān)信息對模型判斷的干擾,未來希望能夠?qū)⒛P陀糜谝恍┨囟▓鼍暗亩涛谋痉诸愔?。?)在BERT 模型中融合拼音、五筆輸入法,提升了模型的效果,未來會考慮四角碼等更多的輸入方式,以增強模型漢字語義信息,提升模型準確率。