国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于深度學(xué)習和支持向量機的文本分類模型

2022-08-02 01:40管有慶
計算機技術(shù)與發(fā)展 2022年7期
關(guān)鍵詞:分類器卷積向量

何 鎧,管有慶,龔 銳

(南京郵電大學(xué) 物聯(lián)網(wǎng)學(xué)院,江蘇 南京 210003)

0 引 言

NLP(Natural Language Processing,自然語言處理)作為人工智能的子領(lǐng)域,其研究的重點在于實現(xiàn)人與計算機之間的信息交互,讓計算機能夠理解使用人類的語言[1]。自然語言作為人與人進行交流溝通的重要工具,常用的語言包括英語、漢語、俄語等。自然語言處理主要針對詞語、段落或者篇章進行處理。主要使用的方法分為基于規(guī)則和基于統(tǒng)計兩種?;谝?guī)則的方法是根據(jù)語言相關(guān)的規(guī)則人工對文本數(shù)據(jù)進行處理;基于統(tǒng)計的方法是通過大規(guī)模的數(shù)據(jù)集統(tǒng)計分析[2],最終實現(xiàn)對文本數(shù)據(jù)的處理。數(shù)據(jù)集的好壞對自然語言處理模型的性能有著很大影響。所以,擁有強大的數(shù)據(jù)支撐才可以更好地對文本進行進一步的處理和分析?;谥形牡淖匀徽Z言處理主要研究的內(nèi)容包括分詞、詞性標注、詞義消歧、文本分類和語言建模等,但由于機器學(xué)習的文本分類算法較為強調(diào)文本中特征詞語的選取,且屬于淺層學(xué)習方法,不能有效地繼續(xù)深層挖掘分類信息[3],基于神經(jīng)網(wǎng)絡(luò)的深度學(xué)習算法應(yīng)運而生。其中,基于深度學(xué)習的卷積神經(jīng)網(wǎng)絡(luò)模型,作為機器學(xué)習的一個重要分支,在文本分類領(lǐng)域取得了不錯的效果。將CNN(Convolutional Neural Network,卷積神經(jīng)網(wǎng)絡(luò))模型應(yīng)用于文本分類,只需要將完成預(yù)處理的文本集導(dǎo)入輸入層,通過模型訓(xùn)練,將自動生成特征詞語,大大簡化了特征詞語的選取。隨著自然語言處理技術(shù)的不斷發(fā)展,文本分類算法的研究也取得了巨大的突破。文本分類由最初依靠人工進行規(guī)則提取的方式,轉(zhuǎn)向基于機器學(xué)習的自動分類方式[4]。通過機器學(xué)習方法提取文本規(guī)則進行自動分類,將機器學(xué)習算法應(yīng)用到文本分類領(lǐng)域中。例如支持向量機[5]、神經(jīng)網(wǎng)絡(luò)[6]和決策樹[7]等機器學(xué)習領(lǐng)域的重要算法,在文本分類領(lǐng)域都得到了廣泛的應(yīng)用。已有的CNN-SVM(Support Vector Machine,支持向量機)的文本分類算法中,文獻[8]將傳統(tǒng)的卷積網(wǎng)絡(luò)更改為5個平行放置的CNN模型進行訓(xùn)練,最后采用SVM分類器輸出結(jié)果。而文獻[9]的CNN網(wǎng)絡(luò)采用一維卷積提取特征,將經(jīng)過最大池化處理的特征通過一對多的SVM分類器得出結(jié)果。文獻[10]中CNNSVM模型使用了一種特殊的卷積模塊,通過一維卷積減少輸入通道數(shù)、卷積核參數(shù)以及計算復(fù)雜度,與文獻[9]相似,依然是構(gòu)建SVM多分類器來獲得分類結(jié)果。

該文提出一種將CNN與SVM分類算法進行結(jié)合的改進模型CNNSVM。該模型一方面使用SVM替換傳統(tǒng)CNN中的softmax歸一化函數(shù)實現(xiàn)模型的分類功能,以便解決原模型泛化能力不足的問題;另一方面,相比于傳統(tǒng)CNN模型,CNNSVM模型增加了注意力機制[11],該機制的作用是對特征詞語進行精煉,選取類別代表性更強的特征詞語,以提升模型分類的準確度。

1 CNNSVM模型

CNN模型最初被應(yīng)用于圖像識別[12]和語音分析[13]領(lǐng)域。近年來,隨著NLP技術(shù)的蓬勃發(fā)展,深度學(xué)習中的CNN模型越來越多地被應(yīng)用于文本分類[14]和情感分析[15]領(lǐng)域。傳統(tǒng)CNN模型一般是由輸入層、卷積層、池化層、全連接層和輸出層構(gòu)成。其中,卷積層作為CNN模型中十分重要的一層,卷積層設(shè)計的成功與否將直接決定CNN模型的分類效果。CNN模型發(fā)展自神經(jīng)網(wǎng)絡(luò),CNN與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)最明顯的區(qū)別在于CNN模型中的卷積層和池化層。在傳統(tǒng)神經(jīng)網(wǎng)絡(luò)模型中,相鄰的兩層隱藏層往往通過全連接的方式進行相連。這就會導(dǎo)致隱藏層與隱藏層之間的權(quán)重參數(shù)數(shù)量十分巨大,隨著隱藏層中權(quán)值的不斷更新,整個神經(jīng)網(wǎng)絡(luò)的運行速度也會受到很大的影響。為解決這一問題,CNN模型在傳統(tǒng)神經(jīng)網(wǎng)絡(luò)模型的基礎(chǔ)上,增加了卷積層與池化層。通過卷積層與池化層替代部分全連接層,并且依靠CNN模型特有的權(quán)值共享和局部感知野特性,達到簡化模型的運算,提升模型訓(xùn)練效果的目的。

CNN模型最初被應(yīng)用于圖像識別領(lǐng)域,由于圖像數(shù)據(jù)是由像素點矩陣構(gòu)成,矩陣中的像素點具有稠密性,便于直接用于CNN模型進行訓(xùn)練。而在進行文本分類時,則需要將原本高維且稀疏的詞語進行向量化,使之映射到低維且稠密的詞向量空間中,才能進行模型訓(xùn)練。同時,傳統(tǒng)CNN模型使用softmax層作為輸出層,該層的本質(zhì)是一層全連接層,作用是將特征詞語通過線性組合的方式計算出不同類別的概率,最終實現(xiàn)分類。由于softmax層在針對非線性且稀疏的數(shù)據(jù)時,其分類效果不如基于傳統(tǒng)機器學(xué)習的分類算法[16]。針對這一現(xiàn)象,提出了基于CNN模型與SVM分類器組合的CNNSVM模型。該模型使用基于有監(jiān)督學(xué)習[17-18]的SVM分類器實現(xiàn)文本分類,CNN模型實現(xiàn)特征詞語的選取,從而達到簡化特征提取的目的。

除此之外,CNNSVM模型相比于傳統(tǒng)CNN模型還增加了注意力機制[19]。注意力機制源于人類感官的研究,聽覺、視覺、觸覺和味覺都存在注意力。在通過感官進行信息處理時,人類往往會選擇性地屏蔽掉一些不重要可以忽略的信息,而將更多的注意力投入在認為是重要的信息上。該技術(shù)在RNN(Recurrent Neural Networks,循環(huán)神經(jīng)網(wǎng)絡(luò))和圖像領(lǐng)域已經(jīng)有了較為成熟的應(yīng)用,在文本分類領(lǐng)域的應(yīng)用還在探索階段。

1.1 網(wǎng)絡(luò)模型結(jié)構(gòu)

CNNSVM模型在傳統(tǒng)CNN模型的池化層之后,增加注意力層,該層的主要作用是進一步提升特征詞語的選取,通過更新特征詞語的權(quán)重,從而選取出更具有類別區(qū)分能力的特征詞語。CNNSVM模型的具體結(jié)構(gòu)圖如圖1所示。

圖1 CNNSVM模型結(jié)構(gòu)示意圖

輸入層:使用訓(xùn)練集中不同類別的文本作為輸入,進行CNN模型訓(xùn)練。在將文本導(dǎo)入輸入層之前,需要針對文本進行預(yù)處理操作。預(yù)處理操作包括分詞、去停頓詞和詞語向量化處理。不同于機器學(xué)習文本分類常常使用獨熱編碼[20]進行詞語向量化,CNN模型使用基于Word2vec工具的CBOW[21](Continuous Bag-of-Words,連續(xù)詞袋)模型進行詞語向量化。

卷積層:是CNN模型中十分重要的一層,主要通過局部感知和權(quán)值共享兩個特性來完成特征詞語的選取工作。

池化層:主要工作是對卷積后的數(shù)據(jù)進行降維,從而實現(xiàn)特征的進一步提取。使用池化函數(shù)調(diào)整這一層的輸出,從維數(shù)較高的特征詞向量中提取成維數(shù)較低的文本特征向量,來替代網(wǎng)絡(luò)在該位置的輸出。常見的池化方式有最大池化和平均池化,即提取局部特征向量的平均值和最大值。

1.1.1 注意力層

注意力機制源于人類視覺,通過視覺對圖像進行全局掃描,人類往往會選擇性地屏蔽掉一些不重要可以忽略的信息,而將更多的注意力投入在認為是重要的信息上,也稱為注意力焦點。深度學(xué)習中的注意力機制本質(zhì)上與人類的選擇性視覺注意力機制類似,主要目的是將有限的注意力資源投入到對當前任務(wù)更為重要和關(guān)鍵的信息上。在文本分類的應(yīng)用環(huán)境下,可以理解為將更多的權(quán)重賦值在對文本類別區(qū)分有影響的特征詞語或句子上。同時,對于類別區(qū)分意義較小的特征詞語或句子可以減少其權(quán)重。

在CNNSVM模型中,卷積層與池化層通過對輸入層詞向量的訓(xùn)練,完成特征詞語的初步提取與降維工作。在池化層之后加入注意力層,可以更好地對特征詞語進行提煉,提取對類別區(qū)分能力更強的特征詞語。同時,減少類別區(qū)分能力較弱的特征詞語,簡化模型的參數(shù)。注意力機制的原理基于“編碼器-解碼器”結(jié)構(gòu),類似于計算機數(shù)據(jù)結(jié)構(gòu)中的“鍵-值”結(jié)構(gòu)?!熬幋a器-解碼器”結(jié)構(gòu)如圖2所示。

在圖2中,輸入數(shù)據(jù)X={x1,x2,…,xn},輸出數(shù)據(jù)Y={y1,y2,…,yn},s1,s2,…,sn表示解碼器的隱藏狀態(tài)。將編碼過程設(shè)為En,解碼過程設(shè)為De。其中輸入數(shù)據(jù)X在完成編碼后變?yōu)橹虚g語義Mid。編碼過程可以表示為:

圖2 “編碼器-解碼器”結(jié)構(gòu)

Mid=En(x1,x2,…,xn)

(1)

解碼過程實際是將中間語義Mid解碼,可以表示為:

yn=De(y1,y2,…,yn-1,Mid)

(2)

由式(2)可以看出,在求解輸出yn時需要使用中間語義Mid和前n-1項的輸出值。并且在計算每項輸出時,所使用的中間語義保持不變。那么,由于編碼器和解碼器使用中間語義Mid作為信息傳遞的唯一橋梁,便存在著兩點弊端:首先,中間語義由輸入序列計算而得,若輸入序列中存在類別區(qū)分能力較弱或?qū)ξ谋痉诸悷o幫助的噪聲詞語時,會影響模型的分類能力。其次,由于y1的數(shù)值將對y2,y3,…,yn-1的求解產(chǎn)生影響,從而導(dǎo)致詞語輸入序列的先后順序就顯得尤為重要。

為彌補“編碼器-解碼器”框架中的兩點不足,Bahdanau等人提出了基于注意力機制的“編碼器-解碼器”模型,結(jié)構(gòu)如圖3所示。

在圖3中,X={x1,x2,…,xn}來代表輸入數(shù)據(jù),Y={y1,y2,…,yn}來代表輸出數(shù)據(jù)。在增加了注意力機制的“編碼器-解碼器”模型中,不再使用統(tǒng)一不變的中間語義Mid,取而代之的是c1,c2,…,cn,n個不同的中間語義進行表示。cn的數(shù)值是由注意力權(quán)重對所有編碼器的隱藏狀態(tài)進行加權(quán)求和得到。其中,注意力機制的具體結(jié)構(gòu)如圖4所示。

圖3 基于注意力機制的“編碼器-解碼器”模型

圖4 注意力機制結(jié)構(gòu)

圖4中,每一個輸入數(shù)據(jù)xj進行編碼后將變成一一對應(yīng)的編碼器隱藏狀態(tài)hj,注意力模塊能夠自動地學(xué)習權(quán)重αij。通過αij來體現(xiàn)編碼器隱藏狀態(tài)si與解碼器隱藏狀態(tài)hj之間的相關(guān)性。中間語義cj的數(shù)值是由注意力權(quán)重對所有編碼器的隱藏狀態(tài)進行加權(quán)求和得到的,假設(shè)輸入序列的個數(shù)為n,那么計算cj的公式為:

(3)

注意力機制通過對輸入數(shù)據(jù)的不斷訓(xùn)練,調(diào)整αij的權(quán)重值,從而提高對類別區(qū)分能力較強的特征詞語的權(quán)重,最終達到提升整體分類效果的目的。除此之外,通過減小不重要特征詞語的權(quán)重,可以降低文本中非重要信息的影響力。

1.1.2 全連接層

全連接層采用全連接方式進行連接,即每個神經(jīng)元都與上一層所有的神經(jīng)元進行連接。由于采用全連接方式,所以全連接層涉及到的參數(shù)會非常多。在CNNSVM模型中,全連接層在注意力層之后,使用注意力層的輸出作為輸入。為了提升卷積神經(jīng)網(wǎng)絡(luò)的性能,全連接層一般選擇ReLu函數(shù)作為激活函數(shù)。全連接層在模型中最主要的功能是起到“分類器”的作用,傳統(tǒng)CNN模型將全連接層與softmax層結(jié)合完成分類。使用CNN模型進行文本分類時,由于輸入數(shù)據(jù)為非線性且稀疏的詞向量,針對這類數(shù)據(jù),SVM相較于softmax層有著更好的分類效果。所以在CNNSVM模型中,使用SVM分類器對softmax層進行替換,實現(xiàn)最終的文本分類。CNNSVM模型的全連接層框架如圖5所示。

圖5 全連接層結(jié)構(gòu)示意圖

圖5中,每一個神經(jīng)元都與上一層神經(jīng)進行連接。全連接層通過向前計算和反向傳播的方式來不斷更新權(quán)重系數(shù)W,使得模型達到預(yù)先設(shè)置的閾值。在全連接層中使用ReLu激活函數(shù)可以提高神經(jīng)網(wǎng)絡(luò)對模型的表達能力,解決線性不可分問題。

1.2 重要參數(shù)設(shè)置

1.2.1 詞向量維度

在預(yù)處理階段需要將文本數(shù)據(jù)集進行分詞、去停用詞和向量化處理。CNNSVM模型使用Word2vec工具中的CBOW(Continuous Bag-of-Words,連續(xù)詞袋)模型進行詞向量的訓(xùn)練,具體訓(xùn)練過程見1.2.2小節(jié)。在進行詞向量訓(xùn)練時,確定詞向量的十分重要。當詞向量的維數(shù)過高時,會使系統(tǒng)的運算次數(shù)和運行時間增加;當詞向量維數(shù)過低時,不能很好地體現(xiàn)詞與詞之間的近似關(guān)系和類別差異,影響模型進行文本分類的效果。在類似于百度百科詞條和維基百科等量級較大的語料庫中,詞向量的維數(shù)常在300到500。在某些特定領(lǐng)域的語料中維數(shù)常在200以內(nèi)。實驗中,分別通過測試32、64、128和256維,研究詞向量維數(shù)對精確率和訓(xùn)練時間的影響,從而能兼顧二者的維數(shù)進行實驗?;诓煌脑~向量維度,實驗結(jié)果如圖6所示。

圖6 詞向量維度與分類精確率和模型訓(xùn)練時間的關(guān)系

從圖6可以看出,隨著詞向量維度的增加,模型訓(xùn)練的精確度也在不斷增加。同時,模型訓(xùn)練所需要的時間也在不斷增加。通過精確率和訓(xùn)練耗時的斜率可以看出,當維度從64提升到128時,精確率增加了0.4%,但訓(xùn)練時間卻增加了約69.3%,這樣的代價并不合適。所以,在實驗中需要根據(jù)不同數(shù)據(jù)集來選取合適的詞向量維度。鑒于所用的數(shù)據(jù)集,當詞向量度從64維提升到128維時準確率只是輕微提升,所以本實驗中將詞向量的維度選擇為64維。

1.2.2 文本序列長度

模型所能輸入的最大序列長度也將對模型時間的分類效果起到一定的影響作用。因此,在要針對文本序列的長度進行調(diào)整,以便CNNSVM優(yōu)化模型能夠更好地進行文本分類。當文本數(shù)據(jù)作為輸入進入卷積神經(jīng)網(wǎng)絡(luò)模型進行訓(xùn)練時,需要先將文本長度與預(yù)先設(shè)置的最大長度進行比較。若文本長度大于預(yù)先設(shè)置的閾值,按閾值將文本分割成若干個文本,文本長度小于閾值時,需要使用空格字符進行填充。通過實驗進行分析,確定最佳的閾值長度。具體實驗結(jié)果如圖7所示。

圖7 確定最大文本序列長度

在圖7中可以看出,最大文本序列長度過低,會導(dǎo)致模型無法捕捉足夠的數(shù)據(jù)特征,精確率降低;當最大文本序列長度過大,會導(dǎo)致系統(tǒng)出現(xiàn)過擬合的情況,同時也會導(dǎo)致模型訓(xùn)練時間過長,精確率也會出現(xiàn)降低和不穩(wěn)定的情況。綜上,實驗中將最大文本序列閾值設(shè)置為600。

1.2.3 模型中其他參數(shù)

在構(gòu)建CNNSVM模型的過程中,除了確定詞向量的維數(shù)和輸入的最大文本序列長度外,還有許多參數(shù)需要預(yù)先設(shè)置,再次進行說明:

通過1.2.1和1.2.2節(jié)可以確定詞向量維數(shù)為64,輸入的最長序列長度為600。CNNSVM模型中,卷積核的長度為5,卷積核個數(shù)為256,卷積核寬度與詞向量維數(shù)一致為64。實驗使用的數(shù)據(jù)集包括訓(xùn)練集和測試集,文本種類為8。全連接層神經(jīng)元個數(shù)為128。為防止模型出現(xiàn)過擬合,加入dropout層,其中dropout保留參數(shù)為0.5。過擬合是指模型過分依賴訓(xùn)練集中的特征數(shù)據(jù),使用訓(xùn)練集進行測試時分類的準確率很高,但當運行新的數(shù)據(jù)集時,分類效果差別較大。

2 實驗結(jié)果與分析

為評估該算法的性能,在相同數(shù)據(jù)集的情況下,使用傳統(tǒng)CNN模型、CNN與NBC分類器結(jié)合的模型與該文提出的CNNSVM模型進行對比實驗。通過精確率和召回率進行分析。

精確率是指正確分類的文本占所有文本的百分比,其定義如式(4)所示:

(4)

其中,TP表示分類正確的文本,(TP+FP)表示被正確分類的文本和被錯誤分類的文本。

召回率作為一項評估文本分類系統(tǒng)從數(shù)據(jù)集中分類成功度的指標,用來體現(xiàn)分類算法的完備性,數(shù)值越高代表算法的成功度越高。具體定義如式(5)所示:

(5)

其中,TP表示被正確分類的文本數(shù)量,F(xiàn)N表示應(yīng)當被分到錯誤類別中的文本的數(shù)量。

實驗是在安裝了Windows10專業(yè)版操作系統(tǒng),內(nèi)存為16 GB,CPU主頻為2.8 GHz的PC機上進行的。主要使用的軟件環(huán)境是基于Python3.6.7內(nèi)核和Pycharm 2018.12.5版本。具體實驗結(jié)果如圖8和圖9所示。

圖8和圖9中,CNN-NBayes代表CNN模型與NBC分類器結(jié)合的文本分類模型。從精確率和召回率這兩個指標來看,CNNSVM的結(jié)果相比于傳統(tǒng)CNN模型和CNN與NBC分類器結(jié)合的模型要好一些。傳統(tǒng)CNN模型的分類效果不如CNN-NBayes,但是相比于傳統(tǒng)的機器學(xué)習分類算法來說,準確性要更好一些。原因在于基于卷積神經(jīng)網(wǎng)絡(luò)的分類模型可以更充分地對文本的特征進行提取,因而獲得了更好的特征詞向量,使得模型最終的分類效果有所提升。

圖8 不同分類算法的精確率

圖9 不同分類算法的召回率

3 結(jié)束語

提出了一種基于CNN與SVM相結(jié)合的文本分類模型,即CNNSVM模型。該模型主要使用SVM分類器替換傳統(tǒng)CNN中的softmax歸一化函數(shù)實現(xiàn)模型的分類功能,以解決原模型泛化能力不足的問題。其次,相比于傳統(tǒng)CNN模型,CNNSVM模型增加了注意力機制,提高了模型對特征詞語的選取能力,同時也減少了模型參數(shù)數(shù)量。相比于傳統(tǒng)CNN模型,提升了模型分類的準確性和運行效率。

猜你喜歡
分類器卷積向量
基于全卷積神經(jīng)網(wǎng)絡(luò)的豬背膘厚快速準確測定
少樣本條件下基于K-最近鄰及多分類器協(xié)同的樣本擴增分類
向量的分解
學(xué)貫中西(6):闡述ML分類器的工作流程
基于圖像處理與卷積神經(jīng)網(wǎng)絡(luò)的零件識別
基于深度卷積網(wǎng)絡(luò)與空洞卷積融合的人群計數(shù)
基于AdaBoost算法的在線連續(xù)極限學(xué)習機集成算法
向量垂直在解析幾何中的應(yīng)用
向量五種“變身” 玩轉(zhuǎn)圓錐曲線
顺平县| 涿州市| 通许县| 高州市| 龙山县| 泰安市| 江安县| 衡山县| 卢湾区| 广河县| 五大连池市| 乐清市| 桃园县| 邵武市| 诸城市| 天等县| 汾阳市| 肥西县| 灵宝市| 双流县| 五指山市| 南宁市| 定结县| 德保县| 内乡县| 桦南县| 教育| 陕西省| 凤翔县| 嘉鱼县| 崇明县| 宁陕县| 获嘉县| 渭南市| 北流市| 循化| 岗巴县| 荣成市| 资兴市| 临泽县| 灯塔市|