路昌煒,于龍昆,呂 程,閔江洪
(南昌大學(xué)信息工程學(xué)院,江西 南昌 330031)
隨著我國互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,人工智能在如今多項領(lǐng)域取得了快速發(fā)展和廣泛應(yīng)用,并且越來越深入到居民日常生活中,如人臉識別、智能家居、地圖導(dǎo)航、無人駕駛等。如今人們越來越習(xí)慣使用手機或計算機在互聯(lián)網(wǎng)上獲取全世界的各類新聞信息,尤其在中文社交媒體上會產(chǎn)生大量的文本數(shù)據(jù)信息,為了使民眾能夠快速且準確地獲得期望的文本內(nèi)容,如何實現(xiàn)對文本進行準確高效的分類成為了自然語言處理中的一大目標。
文本分類的方法可分為根據(jù)規(guī)則[1]以及基于機器學(xué)習(xí)和基于深度學(xué)習(xí)進行分類。根據(jù)規(guī)則分類即先定義規(guī)則再人為將文本數(shù)據(jù)進行分類,但這種方法較為古老,需要對此類文本信息所屬的領(lǐng)域有著深入的了解,不僅成本較大還容易受主觀因素影響,而且隨著科技發(fā)展數(shù)據(jù)規(guī)模越發(fā)龐大,所以靠人為來分類的方法逐漸減少。于是人工智能領(lǐng)域的機器學(xué)習(xí)分類方法逐漸嶄露頭角,近年來,深度學(xué)習(xí)方法更是如雨后春筍的被發(fā)明出來,各類神經(jīng)網(wǎng)絡(luò)能夠通過不斷學(xué)習(xí)迭代來挖掘文本深層特征。
本文基于ERNIE(Enhanced Representation Through Knowledge Tntegration)模型和DPCNN (Deep Pyramid Convolutional Neural Networks for Text Categorization)相結(jié)合成ERNIE-DPCNN模型,并基于清華大學(xué)自然語言處理實驗室提供的THUCNews構(gòu)建數(shù)據(jù)集,通過對比實驗證明了本文所提出的方法和模型的有效性。
詞向量表示即以向量的形式表示每個詞。Word2Vec[2]一度是詞向量表示的重要方法,通過目標詞的上下文關(guān)系來得到該詞的詞向量表示,主要方法為CBOW[3](Continuous Bag Of Words)和Skip-gram[4],COBW可以通過上下文的詞來預(yù)測目標詞得到詞向量,Skip-gram則是通過目標詞來預(yù)測周圍詞得到詞向量。GloVe[5]( Global Vectors for Word Representation)利用全局矩陣分解和局部上下文窗口方法,可以把局部信息和全局信息結(jié)合起來。雖然Word2Vec和Glove這兩種方法都能有效的將每個詞的詞向量表示出來,但顯然它們對每個詞的詞向量表示是固定的,無法表示一個詞的其它意思,更別說中文詞匯里有相當數(shù)量的多義詞,比如這兩種表示方法下“蘋果”公司和水果中的“蘋果”的詞向量表示是相同的,但顯然是不準確的。于是ELMo[6](Embedding from language model)采用了雙向模型來預(yù)測目標詞,在正向模型中,先用目標詞前面的詞來預(yù)測目標詞,再在反向模型中利用目標詞后面的詞來預(yù)測目標詞,順利解決了多義詞表示的問題。2018年, 谷歌公司提出了BERT(Bidirectional Encoder Representations from Transformers)模型[7],該模型大幅提升了許多自然語言處理任務(wù)的實驗效果,幾乎刷新了當時各項任務(wù)指標,但是BERT模型同樣存在缺陷,即難以學(xué)到詞或短語的完整語義,缺乏對句子的全局建模。之后,清華大學(xué)和百度基于BERT模型分別提出了兩種ERNIE模型。清華大學(xué)提出的ERNIE[8]則是將知識圖譜引入到BERT模型中增強語義表示,主要由文本編碼器(T-Encoder)和知識編碼器(K-Encoder)兩部分構(gòu)成,其結(jié)構(gòu)如圖1。
圖1 清華ERNIE結(jié)構(gòu)
本文使用的為百度提出的ERNIE[9]模型,該模型改進了新的遮蓋機制(mask),BERT在預(yù)訓(xùn)練中采用隨機掩蓋掉單個的字,而ERNIE采用掩蓋某個詞或短語以增強模型對語義的識別作用。例如:南昌是江西的省會,ERNIE不像BERT模型一樣對該句中的某個字進行掩蓋,而是掩蓋南昌和江西這個詞,讓模型學(xué)會了南昌與江西的關(guān)系如圖2。
圖2 ERNIE與BERT的mask機制對比
幾個經(jīng)典的機器學(xué)習(xí)分類方法主要有邏輯回歸、樸素貝葉斯[10]、隨機森林[11]、支持向量機[12,13]等?;谏疃葘W(xué)習(xí)如卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)等的分類方法開始出現(xiàn)。Kim提出了基于改進卷積神經(jīng)網(wǎng)絡(luò)以更適應(yīng)于對文本數(shù)據(jù)進行分類的TextCNN[14],然而卷積神經(jīng)網(wǎng)絡(luò)對于長文本的特征提取有著明顯缺陷。之后,由于RNN本身適合處理長文本數(shù)據(jù),Lai提出了一種基于文本分類任務(wù)上的RNN模型[15],以最后一個隱狀態(tài)作為句子向量,因此能夠更好的表達上下文信息。Hochreiter等人基于RNN提出了LSTM[16],解決了長文本序列中容易出現(xiàn)的梯度消失問題。Kyunghyun等人啟發(fā)于LSTM提出GRU[17](Gated Recurrent Unit)模型,同樣解決了梯度消失問題,并且在數(shù)據(jù)集不大時該模型能起到比LSTM更好的效果。本文所使用的DPCNN是RieJohnson等提出的一種基于CNN結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)[18],相比于CNN,DPCNN能快速有效的提取文本中的遠程關(guān)系特征。
近年來,在預(yù)訓(xùn)練模型基礎(chǔ)上進行訓(xùn)練并對垂直任務(wù)進行微調(diào)的神經(jīng)網(wǎng)絡(luò)訓(xùn)練方式在許多自然語言處理項目上取得較好的效果。比如高等人提出的基于注意力機制和DPCNN模型[19],能有效提高情感分析分類的評估指標,李利用BERT-DPCNN模型更高效的提高了垃圾彈幕的識別能力[20]。本文所使用到的ERNIE是一種預(yù)訓(xùn)練語言表示的新方法,其本質(zhì)與BERT相同,將數(shù)據(jù)集在大語料環(huán)境下預(yù)訓(xùn)練得到的模型上根據(jù)具體任務(wù)進行微調(diào)從而將目標輸入表示為一個固定大小的特征向量進行分類。本文使用 ERNIE 模型與DPCNN兩種模型相結(jié)合的方式來進行文本分類方法研究。
ERNIE的結(jié)構(gòu)與BERT相同都是基于雙向自注意力機制的編碼器部分(Encoder),主要包含多頭注意力和前饋神經(jīng)網(wǎng)絡(luò),其結(jié)構(gòu)如圖3。
圖3 Transformer編碼器結(jié)構(gòu)
(1)
把多次運算得到的Attention矩陣橫向拼接起來,接著乘以權(quán)重矩陣壓縮成一個矩陣,單頭注意力Headi的計算公式如式(2)所示:
(2)
多頭注意力機制的計算公式如式(3)所示
Multi-head Attention(Q,K,V)=
Concat(Head1,Head2…Headn)W0
(3)
其中,Concat函數(shù)將多個頭的計算結(jié)果進行拼接,W0是拼接時使用的權(quán)重矩陣。
Feed Forward層其實就是一個簡單的全連接神經(jīng)網(wǎng)絡(luò),由兩層全連接層及ReLU激活函數(shù)組成,計算公式如式(4)所示
FFN(x)=max(0,xW1+b1)W2+b2
(4)
在Add &Norm 層中,Add為殘差連接,Norm為層正則化,設(shè)輸入為x,其輸出公式如式(5)~(6)所示
LayerNorm(x+Multi-head Attention(x))
(5)
LayerNorm(x+FeedForward(x))
(6)
由于有些文本過長的原因,神經(jīng)網(wǎng)絡(luò)可能會出現(xiàn)結(jié)構(gòu)復(fù)雜、梯度消失、梯度爆炸等問題,DPCNN網(wǎng)絡(luò)可以在不增加太多計算成本的情況下增加網(wǎng)絡(luò)深度獲得更好的性能,彌補了CNN不能通過卷積獲得文本長距離的依賴關(guān)系,DPCNN主要由文本區(qū)域嵌入層(Redion embedding)和數(shù)個卷積塊組成,每個卷積塊包含兩個卷積核為3的卷積函數(shù),結(jié)構(gòu)如圖4。
圖4 DPCNN結(jié)構(gòu)圖
DPCNN使用的是輸出與輸入的卷積長度相等的等長卷積,然后為兩端補零,等長卷積后,再固定feature map的數(shù)量進行池化。在每個卷積塊后結(jié)束之后,對特征合集做一個池化, 其中短連接的作用與殘差連接類似避免網(wǎng)絡(luò)深度變深而性能下降。設(shè)置pool_size=3, stride=2,使每個卷積核的維度減半,形成一個金字塔結(jié)構(gòu),因此DPCNN對全局特征的提取能力得到了大幅增強如圖5。
圖5 每次池化后每層的計算時間減半
本實驗使用了兩組公開的中文新聞類數(shù)據(jù)集。
1)THUCNews數(shù)據(jù)集(簡稱cnews):抽取了清華大學(xué)自然語言處理實驗室推出的THUCNews數(shù)據(jù)集中的20萬條新聞數(shù)據(jù)作為本次實驗的數(shù)據(jù)集,等量的劃分為finance(財經(jīng))、stocks(股票)、education(教育)、science(科學(xué))等十個類別,并按照8:1:1分為訓(xùn)練集16萬條,測試集2萬條和驗證集2萬條見表1。
表1 THUCNews數(shù)據(jù)集設(shè)置
表2 搜狐新聞數(shù)據(jù)集設(shè)置
2)news_sohusite_xml數(shù)據(jù)集(簡稱nsx):來自搜狐新聞數(shù)據(jù)(SogouCS)[21],由搜狐新聞2012年6月到7月期間國內(nèi)、國際、體育、社會、娛樂等18個頻道的新聞數(shù)據(jù)。本文從中選取了其中娛樂、教育、IT、體育、四類合計4萬條數(shù)據(jù)并按照8:1:1分為訓(xùn)練集32000條,測試集4000條和驗證集4000條見圖2。
本實驗環(huán)境見表3。
表3 實驗環(huán)境
本實驗參數(shù)見表4。
表4 實驗參數(shù)
(7)
(8)
(9)
(10)
為了驗證本文提出的 ERNIE-DPCNN 模型在文本分類上的效果,本文基于cnews、nsx兩組數(shù)據(jù)集共各進行了八組對比實驗。
實驗(1):該實驗使用谷歌提出的BERT作為下游任務(wù)模型,再連接全連接層將輸出向量輸入Softmax 分類器得到分類結(jié)果;
實驗(2):該實驗使用百度提出的ERNIE作為下游任務(wù)模型,再連接全連接層將輸出向量輸入Softmax分類器得到分類結(jié)果見表5。
表5 BERT與ERNIE的結(jié)果對比
由表5可知,將實驗(1)與實驗(2)進行對比,發(fā)現(xiàn)ERNIE通過改進了掩蓋機制比BERT具有更好的性能。
實驗(3):BERT-CNN:該實驗使用BERT進行詞向量表示,再連接CNN提取特征并進行分類,CNN卷積核的大小為(2,3,4),每個尺寸的卷積核個數(shù)為256;
實驗(4):BERT-LSTM:該實驗使用BERT進行詞向量表示,再連接LSTM提取特征并進行分類,本文設(shè)定雙向LSTM每層包含256個神經(jīng)元;
實驗(5):BERT-DPCNN:該實驗使用BERT進行詞向量表示,再連接DPCNN提取特征并進行分類,本文設(shè)定DPCNN卷積核的大小為3,個數(shù)為250;
實驗(6)~(8)則分別將實驗(3)~(5)的BERT模型替換為 ERNIE模型,其余參數(shù)均相同。各模型的宏精確率、宏召回率、宏F1值以及各模型的訓(xùn)練時長結(jié)果見表6、7。
表6 各模型評估指標結(jié)果
將實驗(3)~(5)和實驗(6)~(8)進行對比,證明在連接相同的神經(jīng)網(wǎng)絡(luò)進行分類時,ERNIE仍具有比BERT更好的性能,將實驗(3)~(5)和實驗(6)~(8)分為兩組進行對比時,證明DPCNN在對詞向量進行特征提取和分類時比其它神經(jīng)網(wǎng)絡(luò)具有更好的分類效果,足夠達到模型普適性的性能提升。表7統(tǒng)計了各模型所用時長,可以看出采用ERNIE的模型相較于BERT模型略有進步,體現(xiàn)了ERNIE在改進掩蓋機制后的效率有所提升。將所有實驗的準確率進行對比如圖6。
表7 各模型所用時長
圖6 各模型準確率對比
對比所有實驗的準確率,ERNIE代替BERT后效果提升十分明顯,DPCNN也具有一定的提升效果。綜合上述結(jié)果,選取本文提出的ERNIE-DPCNN模型在cnews數(shù)據(jù)集中的各類別詳細預(yù)測結(jié)果的準確率表示見圖7。
圖7 ERNIE-DPCNN各類別準確率
由上圖可知體育分類有著最高的評估指標,作者認為因為體育新聞中的詞語如“籃球”、“足球”等詞語具有十分鮮明的特色,結(jié)合本文所使用的ERNIE能夠?qū)W習(xí)到更好的語義表達,故此分類的準確度最高??偟膩碚f,ERNIE-DPCNN模型在處理中文文本數(shù)據(jù)時具有更好的性能,在宏精確率、宏召回率和宏F1值和準確率幾個重要指標中均有著不同程度的提升。證明了本文提出的ERNIE-DPCNN結(jié)合模型的有效性。
本文針對文本分類問題,在兩個新聞類數(shù)據(jù)集上進行對比實驗證明本文提出的 ERNIE-DPCNN 模型的檢測效果。結(jié)果表明本文方法的檢測效果均優(yōu)于其它分類模型。本文創(chuàng)新點主要在于結(jié)合了ERNIE和DPCNN模型,實驗證明該模型適用于中文文本分類,使用ERNIE模型代替BERT在預(yù)訓(xùn)練好的基礎(chǔ)上進行微調(diào)使得中文文本數(shù)據(jù)集的準確度有著較大提升。
然而,本文提出的模型也存在一些問題,其一,由于新聞標題的精簡性,該數(shù)據(jù)集中絕大部分數(shù)據(jù)為中短文本數(shù)據(jù),很難有效體現(xiàn)出該模型對長文本數(shù)據(jù)的識別能力,故未來需要在數(shù)據(jù)集中添加足夠的長文本數(shù)據(jù)以完善數(shù)據(jù)集。其二,由于模型結(jié)構(gòu)的復(fù)雜度,尤其是對多達二十萬條數(shù)據(jù)的數(shù)據(jù)集訓(xùn)練時每次訓(xùn)練的時間較長,如何在保證實驗指標不下降的基礎(chǔ)上縮短實驗時間成本也是本文未來需要解決的問題。