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