徐建飛, 吳躍成
(浙江理工大學(xué)機械及其自動控制學(xué)院, 浙江 杭州 310018)
在數(shù)據(jù)爆炸的時代,如何將數(shù)據(jù)中蘊含的價值提取出來,關(guān)鍵的一個步驟就是對獲得的數(shù)據(jù)文本進行分類。新聞文本分類是自然語言處理領(lǐng)域的一個非常經(jīng)典的任務(wù),目前常用的文本分類技術(shù)[1-2]包含三大類:基于規(guī)則的算法、傳統(tǒng)機器學(xué)習(xí)算法及深度學(xué)習(xí)算法。
基于規(guī)則的算法主要是利用人工對文本提取特征進行分類,但由于近年來全球大數(shù)據(jù)儲量呈現(xiàn)爆炸式增長,而且分類方式極易受到標注人的主觀認識的影響,所以轉(zhuǎn)而利用機器學(xué)習(xí)的方法對文本數(shù)據(jù)特征進行自動標注。基于傳統(tǒng)的機器學(xué)習(xí)算法,如樸素貝葉斯算法(Naive Bayes)[3]、支持向量機(Support Vector Machine,SVM)[4]、K鄰近法(K-Nearest Neighbors,KNN)[5]等,主要通過手工提取特征輸入分類器進行訓(xùn)練,而基于傳統(tǒng)機器學(xué)習(xí)算法的文本表示通常存在高緯度、稀疏、特征信息提取不全等問題。目前,深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)模型在文本分類上表現(xiàn)出很好的分類效果,常用的深度學(xué)習(xí)模型有卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)[6]、長短期記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)[7]、雙向長短期記憶網(wǎng)絡(luò)(Bi-directional Long Short-Term Memory,BiLSTM)[8],但這些單一的傳統(tǒng)神經(jīng)網(wǎng)絡(luò)模型在文本分類領(lǐng)域的準確率表現(xiàn)不佳。為提高文本分類的準確率,本文提出了一種基于混合神經(jīng)網(wǎng)絡(luò)的文本分類模型(BERT-BiLSTM-CNN)對中文新聞文本進行分類。
深度學(xué)習(xí)的快速發(fā)展使基于深度學(xué)習(xí)的文本分類模型有了很大的提升。2014年,KIM[6]針對CNN的輸入層做了一些變換,提出了用于文本分類的卷積神經(jīng)網(wǎng)絡(luò)模型TextCNN,該模型的核心是通過不同的卷積核篩選出文本的局部關(guān)鍵信息,但忽略了上下文語義關(guān)聯(lián)性信息。HOCHREITER等[7]針對RNN(循環(huán)神經(jīng)網(wǎng)絡(luò))存在訓(xùn)練時梯度衰減、梯度爆炸,以及只能捕獲距離當(dāng)前位置較近的信息等問題,對RNN網(wǎng)絡(luò)結(jié)構(gòu)進行了改進和優(yōu)化,通過控制神經(jīng)元上的門(gate)開關(guān)時間捕獲序列長距離和短距離的依賴信息,但LSTM只能沿著一個方向掃描,無法捕獲未來的或者下文的語義信息。SCHUSTER等[8]為了更加充分地捕獲序列的語義信息,繼續(xù)對LSTM的網(wǎng)絡(luò)結(jié)構(gòu)進行優(yōu)化,從而提出了雙向的LSTM模型(BiLSTM),BiLSTM可以同時用LSTM向前和向后對整個序列進行掃描。在單標簽分類中,不管是傳統(tǒng)的RNN,還是經(jīng)過改良后的LSTM模型,在單獨進行文本分類時,準確率表現(xiàn)不佳,因此引用Google發(fā)布的基于Transformer(自注意力模型)的雙向編碼器表征量BERT[9-10]模型對中文新聞文本進行分類。其中,CNN無法有效提取文本上下文依賴,而LSTM只能捕獲整個句子的語義信息,而無法捕獲文本的局部關(guān)鍵性的特征信息。針對以上問題,本文提出了一種基于混合神經(jīng)網(wǎng)絡(luò)的新聞文本分類模型(BERT BiLSTM-RCNN)對中文新聞文本進行分類。
Google提出的BERT(Bidirectional Encoder Representation from Transformers)模型應(yīng)用在自然語言處理領(lǐng)域的各種任務(wù)中都有著非常突出的表現(xiàn),歸結(jié)于BERT網(wǎng)絡(luò)架構(gòu)能在詞向量(Word Embedding)表示中保留更豐富的語義信息。BERT模型利用Transformer架構(gòu)的編碼器部分構(gòu)造了一個多層雙向的網(wǎng)絡(luò)架構(gòu)。BERT模型結(jié)構(gòu)圖如圖1所示。
圖1 BERT模型結(jié)構(gòu)圖Fig.1 Structural diagram of BERT model
Transformer模型中的編碼端是由6個Encoder組成,解碼端是由6個Decoder組成。不僅采用多頭自注意機制從多個角度捕獲更豐富的語義信息,而且采用了殘差網(wǎng)絡(luò)架構(gòu)緩解模型梯度消失和爆炸的問題。其中,每一個Encoder的結(jié)構(gòu)都是相同的,都由輸入、多頭自注意力機制(Multi-Head Self-Attention)及全連接神經(jīng)網(wǎng)絡(luò)(Feed Forward Network)構(gòu)成,如圖2所示。
圖2 Encoder 模塊Fig.2 Encoder block
圖3中清楚地展示了“基金上半年業(yè)績排名”這句話的詞嵌入過程,Input為中文文本內(nèi)容,Token Embedding(TE)為字嵌入,Segment Embedding(SE)為段嵌入,Position Embedding(PE)為位置嵌入。三個部分的嵌入向量相加的總和就是BERT編碼器的最終輸入詞向量E。
E=TE+SE+PE
(1)
圖3中的BERT輸入有2個特殊的標記,[CLS]是文本輸入序列的開始標志符,而[SEP]是用于將文本中的句子隔開的標志符,用來區(qū)分文本中不同的句子。通過添加“A”或“B”區(qū)分句子創(chuàng)建Embedding。詞語的語序也非常重要,比如“他欠我100萬”和“我欠他100萬”,這兩句話只是兩個字的語序位置不同,但意思天差地別。因此,需要給文本中每個字添加位置編碼。圖3中,當(dāng)一個輸入序列輸入BERT時,它會一直向上移動堆棧。在每一個塊中,它會首先通過一個自我注意層再到一個前饋神經(jīng)網(wǎng)絡(luò),之后被傳遞到下一個編碼器,最后每個位置將輸出一個大小為隱藏層維數(shù)的向量。
圖3 詞嵌入過程Fig.3 Token embedding process
RNN在處理序列輸入數(shù)據(jù)上效果突出,常用于處理文本數(shù)據(jù)。該模型考慮了時序因素,通過逐詞分析文本,并將先前所有文本的語義存儲在固定大小的隱藏層中,能夠更好地捕捉上下文信息。由于傳統(tǒng)RNN在處理長序列信息時會保留較多的冗余信息和存在梯度消失和爆炸的問題,所以本文采用另一種RNN的改進算法LSTM,它可以利用時間序列對輸入進行分析,增加了輸入門、遺忘門和輸出門,可將短期記憶與長期記憶結(jié)合起來控制細胞中信息的增加或丟棄,解決了RNN無法記住距離當(dāng)前時刻更久的信息和梯度消失的問題。輸入門控制的是當(dāng)前時刻序列的輸入,遺忘門控制的是上一時刻序列中存儲的歷史信息,輸出門控制的是當(dāng)前時間序列的輸出,其結(jié)構(gòu)如圖4所示。
圖4 LSTM 模型Fig.4 LSTM model
LSTM模型各個門和狀態(tài)的計算公式如公式(2)至公式(7)所示:
ft=σ(Wxf·xt+Whf·ht-1+bf)
(2)
it=σ(Wxi·xt+Whi·ht-1+bi)
(3)
Ot=σ(Wxo·xt+Who·ht-1+bo)
(4)
(5)
(6)
ht=Ot*tanh(Ct)
(7)
為了使預(yù)測結(jié)果更加準確,對于當(dāng)前時刻的輸出可能需要若干之前狀態(tài)的輸入和若干未來狀態(tài)的輸入共同決定,因此提出一種雙向循環(huán)神經(jīng)網(wǎng)絡(luò)BiLSTM。該模型整體結(jié)構(gòu)由兩個方向相反的LSTM以疊加的方式組成,正向LSTM用來接收從前向后傳遞的信息狀態(tài),反向LSTM用來接收從后向前的信息輸入,在同一時刻將兩個LSTM的狀態(tài)輸出進行合并,作為BiLSTM當(dāng)前時刻的輸出,從而得到每一時刻的向量特征,彌補LSTM無法訪問未來的上下文信息的遺憾;BiLSTM結(jié)構(gòu)如圖5所示。
圖5 BiLSTM模型Fig.5 BiLSTM model
(8)
(9)
(10)
提到卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)時,通常會認為CNN屬于計算機視覺領(lǐng)域,是用于解決計算機視覺方向問題的模型,而后KIM[6]對CNN的輸入層做了一些的變換,提出了用于文本分類的卷積神經(jīng)網(wǎng)絡(luò)模型TextCNN。如圖6所示,TextCNN網(wǎng)絡(luò)結(jié)構(gòu)比較簡單,由若干個卷積層、max pooling、全連接層和Softmax層構(gòu)成,該模型的核心思想是使用不同尺寸的卷積核獲取文本相鄰的N-gram特征表示。首先,在卷積層使用多種尺寸的卷積核提取文本的局部特征,并將得到的特征向量輸入池化層,通過下采樣方式篩選重要特征信息,降低向量維度,減少計算量。然后,將經(jīng)過1-max pooling處理后的特征向量拼接起來,再經(jīng)過全連接層和Softmax函數(shù)進行多分類。TextCNN對文本近距離淺層特征的抽取能力較強,并且網(wǎng)絡(luò)架構(gòu)簡單,可以快速提取文本中的局部特征。
圖6 TextCNN模型Fig.6 TextCNN model
如圖7所示,本文構(gòu)造了一個基于BERT-BiLSTM-CNN的中文新聞文本分類模型,主要由詞向量表示模塊和深層文本特征提取分類模塊構(gòu)成。詞向量轉(zhuǎn)化模塊是一個基于BERT的中文預(yù)訓(xùn)練模型,將文本轉(zhuǎn)化為詞向量并進行初步特征處理;深層文本特征提取分類模塊利用BiLSTM-CNN網(wǎng)絡(luò)對上下文深層特征和局部關(guān)鍵信息進行提取,最后得到分類結(jié)果。
圖7 BERT-BiLSTM-CNN模型Fig.7 BERT-BiLSTM-CNN model
BERT-BiLSTM-CNN混合網(wǎng)絡(luò)結(jié)構(gòu)建立的具體步驟如下。
步驟1:對要進行分類的文本數(shù)據(jù)集進行預(yù)處理,得到輸入文本,記為E=(E1,E2,…,Ei,…,En),其中Ei(i=1,2,…,n)表示文本的第i個字。
步驟2:將所有的Ei輸入詞向量表示模塊,經(jīng)過語言編碼器Transformer的編碼后,將文本E進行序列特征化,輸出文本wi=(w1i,w2i,…,wni),其中wni示文本中第i句中的第n個詞的詞向量,將w1—wn詞向量拼接(w1,w2,…,wn),得到BERT詞向量表示矩陣W。
步驟3:首先,將BERT詞向量輸入深層文本特征提取分類模塊,經(jīng)過雙層BiLSTM后,文本詞向量表示的語義語法信息的依賴性進一步得到增強;其次,經(jīng)過2-gram、3-gram和4-gram等多個卷積核的卷積后,進一步提取文本中的關(guān)鍵特征和文本更深層的結(jié)構(gòu)信息;再次,在池化層中對卷積層獲得的每個特征圖進行1-max pooling的特征映射處理得到統(tǒng)一的特征值,經(jīng)過全連接層把池化后的特征連接起來,并進行softmax回歸分類,生成最終的分類特征向量;最后輸出所屬的類別。
為了驗證模型性能的優(yōu)劣,本文在公開的新浪新聞文本分類數(shù)據(jù)集THUCNews上進行了對比實驗,它是根據(jù)新浪新聞RSS訂閱頻道2005—2011年的數(shù)據(jù)中篩選過濾生成的,包含74萬篇新聞文檔,均為UTF-8的純文本格式,本次實驗使用的語料庫包含14個類別,分別為財經(jīng)、娛樂、房地產(chǎn)、游戲、股票、體育、教育、政治、科技、社會、彩票、家居、時尚和星座,每個類別包含的數(shù)據(jù)樣本不均等,共20萬條帶類別標簽的新聞數(shù)據(jù),其中抽取18萬條數(shù)據(jù)作為訓(xùn)練集,1萬條作為測試集,1萬條作為驗證集。
模型參數(shù)是模型內(nèi)部的配置變量,不同的參數(shù)設(shè)置會影響實驗結(jié)果,本文實驗對比模型包括TextCNN、BiLSTM、BERT、BERT-CNN等神經(jīng)網(wǎng)絡(luò)模型,超參數(shù)設(shè)置如表1所示。
表 1 超參數(shù)設(shè)置Tab.1 Hyperparameter setting
本次實驗環(huán)境配置如表2所示,預(yù)訓(xùn)練模型使用Hugging Face發(fā)布的BERT中文預(yù)訓(xùn)練模型。為了避免訓(xùn)練結(jié)果產(chǎn)生過擬合現(xiàn)象,本次實驗使用提前終止技術(shù)(如果每次迭代之后的損失值變化很小,在迭代一定的次數(shù)后就不再進行參數(shù)的優(yōu)化)。
表 2 實驗環(huán)境Tab.2 Experimental environment
評價指標是評價數(shù)據(jù)表現(xiàn)的標準是數(shù)據(jù)分析中非常重要的部分。對于此類標簽文本分類,常用的評價指標是宏精確率(Macro-Precision)、宏召回率(Macro-Recall)和宏F1(Macro-F1),這3個評價指標通過計算得出的結(jié)果可以直觀地觀察模型在文本分類任務(wù)中的性能表現(xiàn),因此本實驗采用以上3個評價指標進行分析。其中,宏精確率表示每個類別精確率的算術(shù)平均值,如公式(11)所示;宏召回率表示每個類別召回率的算術(shù)平均值,如公式(12)所示;宏F1表示每個類別F1值的算術(shù)平均值,如公式(13)所示。
(11)
(12)
(13)
各個模型的實驗結(jié)果如表3所示,對比TextCNN和BERT-CNN模型可以看出,分類的宏精確率和宏F1分數(shù)提高了0.73%和0.72%。對比TextRNN和BERT-BiLSTM模型可以看出,分類的宏精確率和宏F1分數(shù)提高了0.49%和0.45%。由此可以得出,在融合BERT預(yù)訓(xùn)練模型后,能夠更好地提取文本中的特征信息,所以引入BERT預(yù)訓(xùn)練模型可以提升新聞文本分類的效果。分別對比BERT-BiLSTM-CNN模型與BERT-CNN、BERT-BiLSTM的宏F1分數(shù),分別提高了0.56%和0.78%,而比TextCNN和TextRNN的宏F1分數(shù)高了1.28%和1.23%。與其他一般的深度學(xué)習(xí)模型如表3中的Transformer、BERT等模型相比,本文模型的分類效果都是最優(yōu)的。這是因為BiLSTM模型可以提取上下文的全部信息,但是無法提取文本的局部信息;而TextCNN模型可以提取文本中的關(guān)鍵信息,但是無法捕獲長距離的語義信息。本文構(gòu)建的BERT-BiLSTM-CNN同時彌補了以上兩種模型的缺點,并且實驗結(jié)果也證明了基于BERT-BiLSTM-CNN模型的新聞文本分類比一般的深度學(xué)習(xí)分類模型效果好。
表 3 THUCNews數(shù)據(jù)集實驗結(jié)果Tab.3 Model experimental results of THUCNews dataset
文本分類是NLP領(lǐng)域一個非常經(jīng)典的任務(wù),本文將多種深度學(xué)習(xí)模型融合并應(yīng)用在新聞文本分類任務(wù)上。首先利用預(yù)訓(xùn)練模型BERT對文本數(shù)據(jù)進行高緯度映射,得到嵌入向量,其次通過雙層BiLSTM對輸入文本的特征信息進行提取,可以獲取全局上下文信息,再次經(jīng)過TextCNN對其中更深層的關(guān)鍵信息提取,最后經(jīng)過softmax進行文本所屬類別的預(yù)測。與傳統(tǒng)模型相比,BERT-BiLSTM-CNN算法分類的精確率有所提升,得益于本文對詞向量轉(zhuǎn)換過程保留了更多的語義語法信息。在未來的研究中,可以通過文本數(shù)據(jù)增強和外部知識進一步增強文本特征表示、引入更為優(yōu)秀的詞向量預(yù)訓(xùn)練模型、引入對比學(xué)習(xí)和提示學(xué)習(xí)等方法,進一步提升新聞文本分類的準確度。