楊文浩,劉廣聰,羅可勁
(廣東工業(yè)大學計算機學院,廣東 廣州 511400)
隨著互聯網技術在21世紀的高速發(fā)展,文本數據從傳統(tǒng)的實體化向數字化、虛擬化轉變。微博、新浪等新聞媒體每時每刻都產生著來自不同領域的新聞文本數據,這些文本往往蘊含大量的信息。怎樣對這些文本進行數據挖掘成為學術界研究的重點問題,其中如何準確、高效地對這些文本進行標簽分類成為學者們研究的熱點。
文本分類方法主要有3種:基于規(guī)則的方法、基于機器學習的方法和基于深度神經網絡的方法[1]?;谝?guī)則的方法主要是依靠專家定制的一系列規(guī)則來對文本進行分類,但規(guī)則的構建往往需要大量的語言學知識且費時費力,分類的準確率也有很大的波動。后來隨著統(tǒng)計學習方法的發(fā)展,學者們逐漸把機器學習方法運用到文本分類任務上。這種方法要把文本轉化成計算機能夠理解的格式,并攜帶著足夠的原生文本信息,最后交給K-鄰近、支持向量機等分類器來完成標簽分類[2]。如何將文本在轉換成計算機能夠理解的格式的同時又最大化地保留文本的原生信息就成了研究的熱點,學者將其稱為特征工程。詞袋模型[3]用于文本表示時存在的維度災難和特征稀疏等問題,特征工程往往困難重重且需要經驗豐富的專家進行,成本很高。
隨著計算機計算能力的提升,學者們將深度神經網絡運用在圖像處理和語音識別領域中并取得了驚人的成果,很多學者也開始把深度神經網絡運用到自然語言處理領域[4-5]。Bengio等[6]在2003年提出了神經網絡語言模型,將文本中的每個詞通過神經網絡映射為實數向量并稱為詞向量。相比于用詞袋模型來表示文本,詞向量擁有更低的維度和更好的文本特征表達能力。卷積神經網絡(CNN)和循環(huán)神經網絡(RNN)使得人們可以使用多層神經網絡大量地學習文本數據來自動獲取文本特征從而免去人工特征工程,端到端地解決自然語言處理中的各種問題。
Kim[7]提出了基于CNN和詞向量的短文本分類模型,Bagheri等[8]則利用RNN來對短文本進行二分類,都取得了比機器學習方法更優(yōu)越的性能。但基于CNN的模型由于卷積核大小的限制只能捕捉文本局部的上下文信息,對于長文本例如新聞文本的分類往往效果不佳[9]?;赗NN的模型在處理過長的文本時也會產生遺忘上下文關系的問題,且RNN在T時刻的輸入要依賴T-1時刻的輸出這個機制決定了基于RNN的模型無法并行計算,計算效率不高。
2017年,Bryan McCann等人使用機器翻譯任務訓練語料在一個Encoder-Decoder框架上進行預訓練,然后將訓練好的模型遷移到其他自然語言處理任務上再訓練,在各項任務中都得到了更好的效果。后來為了進行無監(jiān)督的訓練,Peters等[10]提出了ELMo模型,在預訓練的過程使用了語言模型。2018年,Devlin等[11]提出了BERT預訓練語言模型,將自注意力機制[12-13]融入到語言模型中進一步地提升了預訓練語言模型的表征能力。BERT預訓練語言模型不但可以并行計算,解決了RNN類模型計算效率不高的問題,而且在多個自然語言處理任務上都取得了好成績。但BERT模型在對文本進行挖掘時只考慮了全文的上下文關系,忽略了局部上下文關系。
針對上述問題,文本提出一種在BERT預訓練語言模型的基礎上融合多層等長卷積和殘差連接的新聞標簽分類模型。在提升計算效率的同時最大限度獲取全文的上下文關系和局部文本特征,提升BERT模型的文本特征捕獲能力。
本文使用的模型由BERT預訓練語言模型、初始語義提取層、深度等長卷積、前饋神經網絡組成。首先將新聞文本中的字向量、位置向量之和輸入到BERT模型中,獲取新聞文本中的全文上下文信息。然后,將BERT模型的輸出輸入到初始語義提取層獲取文本的局部語義。隨后,通過池化層擴大局部語義的提取范圍,再通過2層等長卷積提取擴大范圍后的局部語義特征,不斷重復上述過程來獲得最終新聞文本的表示向量??紤]到模型中卷積層的深度,加入殘差連接來解決梯度彌散問題。最后,通過一個前饋神經網絡層來獲得新聞文本的最佳分類標簽。模型結構如圖1所示。
圖1 DPCNN-BERT 模型結構
BERT為了利用Transformer[14]編碼器里自注意力機制的卓越表征能力,在訓練過程中提出了“掩碼(Masked)預測任務”。Masked預測任務將訓練語料中15%的詞進行遮蓋(Mask)。在被Mask的所有詞中有80%的詞被真正Mask,10%的詞不做Mask而是被隨機替換成另一個詞,剩下10%的詞不做Mask仍然保留真實的詞。然后訓練模型對Mask的詞作出正確的判斷?!癕asked預測任務”將語言模型中的生成問題轉換為預測問題,既解決了引入注意力機制所帶來的信息泄露問題,又增強了模型的魯棒性。同時,BERT借鑒了Skip-thoughts中提出的句子預測問題,提出了“鄰接句子預測任務”來訓練模型獲得句子級別的表征能力。具體做法為隨機地將2個句子組合成一個序列輸入到模型中來判斷這2個句子是否鄰近,即為一個二分類問題,50%的幾率2個句子鄰近,50%的幾率不鄰近。預訓練完畢后,BERT語言模型處理遷移任務輸入語料的過程如下:
首先,將輸入本文X=(x1,x2,x3,…,xN)通過詞表查詢(WQ)和位置編碼(PE)后作為BERT的輸入:
Xinput=WQ(X)+PE
(1)
其中,PE表示每個輸入字符的位置編碼,當輸入文本中出現相同的字符時,它們通過自注意力機制得到的輸出也會相同,即使它們在文本中的語義不同。位置編碼則避免了這種情況,讓模型捕捉輸入文本的位置信息。因此需要對輸入文本進行位置編碼:
(2)
(3)
式中:pos表示字符在序列中的位置;dmodel表示WQ(x)的維度,當字符在文本中的位置為奇數時用PE(pos,2i)對其進行位置編碼,位置為偶數時用PE(pos,2i+1)進行編碼。
然后,為了捕捉輸入序列的上下文關系,輸入文本進行位置編碼后再經過自注意力機制層:
(4)
式中:Q=XinputWQ、K=XinputWK、V=XinputWVQ、V、K分別稱為查詢向量、值向量、鍵向量;WQ、WK、WV分別為Q、K、V的權重矩陣。經過自注意力機制的處理,序列中每個字符都包含了其他字符的信息。
隨后,為了讓訓練更穩(wěn)定,對自注意力機制的輸出進行殘差連接[15]和標準化處理[16-17]:
Xoutput=Xinput+Attention(Q,K,V)
(5)
(6)
式中:μ和σ分別為Xoutput的均值和標準差,ε為防止σ為0導致分母為0的參數,α和β作為模型可訓練參數的一部分彌補歸一化過程中所損失的信息。標準化處理將數據進行歸一化,在訓練模型時尋找最優(yōu)解的過程會變得更平緩、更容易收斂到最優(yōu)解。殘差連接在訓練深度神經網絡的時候能避免梯度消失和梯度爆炸的問題。
最后,將標準化處理后的數據輸入到全連接神經網絡中,再進行一次殘差連接和標準化處理后輸出。整個結構如圖2所示。
圖2 BERT結構
初始語義提取層的基本組成單元如圖3所示。使用多個大小相同的卷積核對文本局部上下文信息進行初步提取,單個卷積核的處理過程如下:
圖3 初始語義提取層基本單元
首先,將BERT模型的輸出組成為N×K的矩陣X,其中N為輸入文本的長度,K為BERT模型輸出向量的維度。
然后,通過大小為3×K的卷積核來提取矩陣X的特征:
ci=f(w·x(i:i+2)+b),ci∈R
(7)
式中:x(i:i+2)表示第i個詞到第i+2個詞,一共3個詞,w為卷積核中可訓練的參數矩陣,b為固定的偏置,f為非線性激活函數Relu。單個卷積核對矩陣X的提取特征分別要對x(1:3),x(2:4),…,x(N-2:N)進行卷積操作得到特征表示,得到矩陣X的最終表示C。
C=[c1,c2,…,cN-2];C∈R1×(N-2)
(8)
初始語義提取層的網絡結構如圖4所示,用L個卷積核對BERT模型的輸出進行卷積,得到初始語義提取層的輸出結果Y∈RL×(N-2),然后,再將Y進行降維,按照其第一維展開成為Y′∈R1×(L×(N-2))作為深度等長卷積的輸入。
圖4 初始語義提取層網絡結構
文本序列經過普通卷積后會損失序列長度,導致文本序列信息的丟失,為了保留文本序列的信息,使用等長卷積對文本序列進行處理。深度等長卷積的基本組成單元如圖5所示。等長卷積為了讓文本序列在卷積前和卷積后的序列長度保持一致,在序列的兩側各進行P個0填充(PAD)來彌補卷積操作帶來的長度損失,其中P=(k-1)/2,k為卷積核的大小,且卷積步長為1。序列第i個位置的輸入及其左右相鄰(k-1)/2位置輸入的信息經過等長卷積后為第i個位置的輸出。等長卷積的每個輸出都包含了范圍為k的局部上下文信息。每多疊加一層等長卷積就能捕捉到更大范圍的上下文語義,但如此低效的疊加方式會讓網絡層數變得非常深,所以每疊加2層的等長卷積層就添加一層大小為3、步長為2的池化層。每經過一層池化后,每個位置的輸出能捕捉的上下文范圍就擴大一倍且序列長度縮短一半。由于模型疊加了多個深度等長卷積層,模型的層數變得非常深,將池化層的輸出通過殘差連接[15]到等長卷積層的輸出來減輕訓練過程中發(fā)生的梯度爆炸或梯度消失問題。
圖5 深度等長卷積基本單元
深度等長卷積的網絡結構如圖6所示,每通過一個基本單元(2次等長卷積和1次池化),輸入向量的長度就縮短一半。通過M個基本單元后,形狀為R1×(L×(N-2))的輸入向量被壓縮為R1×L作為深度等長卷積的輸出Z,其中:M=log2(N-2),L為初始語義提取層中卷積核個數。
圖6 深度等長卷積網絡結構
最后,再將Z輸入到一個前饋神經網絡得到預測標簽。其中,前饋神經網絡的輸入層神經元個數為L,輸出層神經元個數為新聞標簽個數。
本文實驗數據來源于THUCTC(http://thuctc.thunlp.org/)中文文本分類數據集THUCNews。其中包含20萬條新聞及標簽數據,是根據新浪新聞RSS訂閱頻道2005—2011年間的歷史數據篩選過濾生成。包含財經、房產、股票、教育、科技、社會、時政、體育、游戲、娛樂,一共10個類別,每個類別2萬條數據。數據集結構如表1所示。
表1 數據集結構
本文的實驗環(huán)境為: Ubuntu18.04操作系統(tǒng),CUDA10.1,cudnn 8;AMD 2600X處理器, Nvidia GTX 1080Ti并行計算核心;內存16 GB,顯存11 GB;編譯平臺Pycharm Community,Python3.8,Pytorch1.3.1。 BERT 的參數量隨著文本長度的增加呈現接近線性變化的趨勢,在1080Ti上,文本長度設置為150個字左右已經是極限。模型超參數如表2所示。
表2 超參數設置
分類任務有3種常用的評判指標,準確率(Precision)、召回率(Recall)和F1值(F1-score)。3種評判指標計算方法如下:
(9)
(10)
(11)
為了驗證DPCNN-BERT模型在中文新聞文本分類上的優(yōu)越性,在使用相同的數據集的情況下,使用主流文本分類模型TextCNN、TextRNN、TextRCNN、Transformer作為基線系統(tǒng)進行對照。其中基線系統(tǒng)以字為模型輸入單位,使用了GitHub開源的以搜狗新聞作為訓練語料的預訓練詞向量作為系統(tǒng)輸入,維度為300維(https://github.com/Embedding/Chinese-Word-Vectors),并在訓練中不對詞向量進行微調。
表3顯示了不同模型的精確率、召回率和F1值。從表3可以看出,本文提出的DPCNN_BERT模型在精確率、召回率和F1值上都好于對比模型。其中TextCNN模型的分類效果稍好于TextRNN模型,表明在該文本分類任務上,對于局部文本特征的依賴要強于長期上下文特征。而融合了CNN和RNN的TextRCNN模型要好于TextRNN模型,表明了CNN在捕捉長期上下文特征方面能力不強。作為BERT的基本架構Transformer模型的分類效果遠遠差于DPCNN-BERT模型,說明了Transformer結構需要大量的語料進行預訓練才能獲得比較好的效果。
表3 不同模型的分類效果
為了對比模型在分類標簽上的表現,本文利用雷達圖顯示不同分類標簽在不同模型上的F1值,如圖7所示。
圖7 不同標簽在不同模型上的F1值
DPCNN-BERT模型在10種分類標簽上都處于較高水平,說明該模型在新聞文本分類的性能高于其他模型,具體分析如下:
1)所有模型在體育類、教育類新聞的分類表現上差異最小,說明這2類新聞文本特征明顯,所有模型都能較好地捕捉這2類新聞的特征。對這2類文本進行二分類時可以使用參數較少的模型來分類。
2)所有模型都在時政、科技、股票類新聞的分類表現上較差,說明模型對這3種文本的擬合度較差,文本特征不夠明顯,需要提供更多的數據供模型挖掘文本特征。
3)基于注意力機制的Transformer模型在娛樂、房產、社會、游戲類文本上和其他對比模型差距并不明顯,說明注意力機制會更關注這幾類文本特征,而忽略科技、股票類文本特征。
4)TextRCNN并不是在所有分類上結果都好于TextCNN,說明在股票和時政類新聞中,局部文本特征更為重要。長期文本特征在科技、游戲類新聞中更為重要。
為了進一步分析本文模型對新聞標簽分類任務的增益效果,用BERT預訓練語言模型加前饋神經網絡作為基線模型(BERT-ORI)與本文模型(DPCNN-BERT)進行對比實驗,結果如圖8所示。BERT-ORI模型和DPCNN-BERT模型在新聞標簽分類任務上F1值分別為0.9398和0.9467,表明BERT預訓練語言模塊在本文模型中對新聞標簽分類任務起到了主要的增益效果。加入了初始語義提取層和深度等長卷積后,模型在新聞標簽分類任務上的F1值繼續(xù)提升了0.69%。
圖8 模型對新聞標簽分類任務的增益效果
針對THUCNews的新聞文本標簽細粒度分類任務,本文提出了DPCNN-BERT模型,在考慮到不同類別的新聞在分類中可能對長遠的上下文信息和局部文本信息的依賴不相同,BERT預訓練語言模型可以獲得新聞文本的長遠的上下文信息和句子級別的信息,初始語義提取層和深層的等長卷積網絡可以獲得局部的上下文信息。在THUCNews分類任務上進行的實驗結果表明,本文的DPCNN-BERT模型在文本分類任務上取得了較高的準確率、召回率和F1值,相較于TextCNN、TextRNN、TextRCNN和Transformer這4種模型有一定的優(yōu)越性。但本文方法也存在一些不足之處,如模型針對中文文本的特征表示能力不足、模型參數大且訓練緩慢。針對中文文本的特征表示能力不足可以使用ERNIE[18-19]預訓練語言模型來替代BERT預訓練語言模型進行改善。針對訓練緩慢問題可以用ALBERT[20]預訓練語言模型來替代BERT語言模型改善。同時也可以在初始語義提取層融入注意力機制[21]和循環(huán)神經網絡的變體GRU[22-23]單元,在進一步加強模型文本特征提取能力的同時減少訓練的參數。