馮 帥 許童羽,2 周云成,2 趙冬雪 金 寧 王郝日欽
(1.沈陽農(nóng)業(yè)大學(xué)信息與電氣工程學(xué)院,沈陽 110161; 2.沈陽農(nóng)業(yè)大學(xué)遼寧省農(nóng)業(yè)信息化工程技術(shù)中心,沈陽 110161)
在農(nóng)業(yè)智能問答系統(tǒng)中,由于大量的知識文本數(shù)據(jù)具有稀疏性強、噪聲大及類別繁雜等特點,導(dǎo)致所構(gòu)建的問答系統(tǒng)的準(zhǔn)確率較低。因此,利用計算機技術(shù)提取準(zhǔn)確的文本特征、實現(xiàn)知識文本的自動分類是構(gòu)建農(nóng)業(yè)智能問答系統(tǒng)的關(guān)鍵技術(shù)環(huán)節(jié)。從農(nóng)業(yè)文本數(shù)據(jù)中提取出水稻的草害藥害、病蟲害以及栽培管理等數(shù)據(jù)是典型的文本分類問題。目前K最近鄰(K-nearest neighbor,KNN)[1]、樸素貝葉斯(Naive Bayesian,NB)[2]以及支持向量機(Support vector machine,SVM)[3]等機器學(xué)習(xí)方法是進行文本分類的常用方法。文獻[4]采用樸素貝葉斯算法實現(xiàn)了對農(nóng)業(yè)文本的自動分類,識別率較高,但該方法缺乏較好的特征提取能力。文獻[5]采用粒子群算法優(yōu)化KNN算法的特征權(quán)重,構(gòu)建PSOKNN文本分類模型。文獻[6-7]根據(jù)農(nóng)業(yè)文本數(shù)據(jù)特征構(gòu)建農(nóng)業(yè)行業(yè)詞庫,并通過特征詞篩選和權(quán)重計算構(gòu)建一種基于線性支持向量機的中文農(nóng)業(yè)文本分類模型,該方法并未考慮數(shù)據(jù)集線性不可分的情況,存在一定的局限性。農(nóng)業(yè)文本具有數(shù)據(jù)冗余性、稀疏性和規(guī)范性差等特征,采用傳統(tǒng)的機器學(xué)習(xí)方法對大數(shù)據(jù)量的農(nóng)業(yè)文本進行分類難度較大,且適應(yīng)性較差,特征工程復(fù)雜。
隨著計算機技術(shù)的迅猛發(fā)展,深度卷積神經(jīng)網(wǎng)絡(luò)(Deep convolutional neural networks,DCNN)[8]、循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent neural network,RNN)[9]和膠囊網(wǎng)絡(luò)(CapsNet)[10]等深度學(xué)習(xí)技術(shù)逐漸成為主流分類方法[11-16]。該技術(shù)能夠自動實現(xiàn)圖像和文本關(guān)鍵特征的提取,無需復(fù)雜的特征工程,與分類過程結(jié)合,所構(gòu)建的模型具有較強的適應(yīng)性和遷移性[17-18]。目前,國內(nèi)外學(xué)者采用深度學(xué)習(xí)技術(shù)在英文和中文文本分類上進行了大量研究[19-23]。相比傳統(tǒng)的文本分類方法,深度學(xué)習(xí)技術(shù)在文本分類中具有更好的分類效果。但在文本分類過程中仍存在文本特征提取不準(zhǔn)確的問題,如忽略了文本的位置特征等。此外,也未見對網(wǎng)絡(luò)層次加深所導(dǎo)致的文本分類性能變差的原因進行研究與分析的報道。
鑒于此,本文借鑒現(xiàn)有研究成果,提出一種基于深度卷積神經(jīng)網(wǎng)絡(luò)的水稻知識文本分類方法?;赗esNet[24]和Inception V[25]網(wǎng)絡(luò)結(jié)構(gòu)的基本原理,以Top-1準(zhǔn)確率為判斷標(biāo)準(zhǔn),分別從網(wǎng)絡(luò)模塊結(jié)構(gòu)和網(wǎng)絡(luò)層次進行分析,篩選具有最佳特征提取性能的CNN網(wǎng)絡(luò)結(jié)構(gòu),以提高精準(zhǔn)率、召回率、F1值和正確率為目標(biāo),將篩選出的CNN網(wǎng)絡(luò)結(jié)構(gòu)與CapsNet相結(jié)合,建立水稻知識文本分類模型,以期為水稻知識文本的精準(zhǔn)分類提供科學(xué)和理論依據(jù)。
本文通過采用Python爬蟲框架,爬取知網(wǎng)專家在線系統(tǒng)和種植問答網(wǎng)等關(guān)于水稻病蟲害、草害藥害以及栽培管理等中文文本問答數(shù)據(jù)。同時,對所獲數(shù)據(jù)進行初步人工篩選,最終獲得14 527條有效數(shù)據(jù),其中水稻病蟲害、草害藥害、栽培管理和其他數(shù)據(jù)分別為5 640、1 335、6 060、1 492條。水稻知識數(shù)據(jù)主要用于文本分類網(wǎng)絡(luò)的模型訓(xùn)練與測試,每次試驗從數(shù)據(jù)集中隨機抽取80%作為訓(xùn)練集,10%作為驗證集,剩余10%作為測試集。
1.2.1文本分詞處理
相對英文文本,中文文本的處理相對復(fù)雜。中文字與字之間沒有間隔,并且單個漢字具有的意義也明顯弱于詞組,因此本研究采用Jieba方法[26]對水稻知識文本進行分詞處理,并去除文本中無用符號和停用詞等。與此同時,中文分詞結(jié)果深受分詞詞庫的影響,為提高水稻知識文本分詞精度,減少錯分、漏分和誤分情況,本文在搜狗農(nóng)業(yè)語料庫基礎(chǔ)上構(gòu)建水稻相關(guān)語料庫,進而擴大Jieba分詞基礎(chǔ)詞庫,提高對水稻病蟲害、草害藥害和栽培管理等專業(yè)詞匯的辨識度。
1.2.2文本向量化處理
由于網(wǎng)絡(luò)模型無法對自然語言進行直接訓(xùn)練學(xué)習(xí),并且中文文本語句中存在大量的語義信息、上下文依賴信息和語序信息等,直接采用中文文本將無法保留這些信息的完整性,因此將中文文本轉(zhuǎn)換為多維且連續(xù)的向量至關(guān)重要。本研究采用Word2Vec[27]的Skip-Gram模型對水稻知識文本進行向量化處理。
建立特征提取層網(wǎng)絡(luò)是解決文本分類問題的基礎(chǔ),而CNN在圖像和文本特征提取問題上取得了較好的提取精度。ResNet是CNN的典型代表,其殘差模塊(包括直接映射和殘差部分)的設(shè)計理念使得隨著網(wǎng)絡(luò)層數(shù)的增加,網(wǎng)絡(luò)發(fā)生退化的現(xiàn)象得以解決,且在ILSVRC 2015競賽中其分類和特征提取的效果上得到了充分肯定[28]。圖1為適用于文本分類的ResNet-18網(wǎng)絡(luò)結(jié)構(gòu)。其中nConv1D,m等表示尺寸為n、通道數(shù)為m的卷積核;Maxpooling1D,/2表示步長為2的最大池化層;FC,4表示通道數(shù)為4的全連接層。
ResNet-18網(wǎng)絡(luò)多用于圖像分類,其采用多個3×3的二維卷積核Conv2D從圖像矩陣的行維度和列維度進行特征提取,但文本向量是由規(guī)定長度的詞向量按一定順序構(gòu)建的向量矩陣,所以從矩陣的行維度卷積(即從左至右移動)沒有實際意義。因此采用多個尺寸為n的一維卷積核(Conv1D)僅從向量矩陣的列維度進行卷積。但由圖1可知,ResNet-18被采用一維最大池化方法(Maxpooling1D)的池化層分割為3部分,前兩部分由17個尺寸為7和3,通道數(shù)為8、16、32和64的卷積層構(gòu)成,后一部分僅采用1個通道數(shù)為4的全連接層。顯然直接將上述ResNet網(wǎng)絡(luò)結(jié)構(gòu)用于水稻知識文本特征提取并不合適。首先相比圖像具有顏色和形狀等規(guī)律性特征,水稻知識每一類數(shù)據(jù)均由幾十個甚至更多的關(guān)鍵詞組成,生成的文本向量具有一定復(fù)雜性,因此僅采用[3 Conv1D,3 Conv1D]結(jié)構(gòu)的殘差模塊無法較為精準(zhǔn)地提取文本特征。其次水稻知識文本向量具有較大離散性和稀疏性,直接采用18個權(quán)重層的ResNet網(wǎng)絡(luò)結(jié)構(gòu)易造成過擬合。鑒于此,本研究對ResNet的殘差模塊結(jié)構(gòu)和網(wǎng)絡(luò)層次進行設(shè)計與分析。
按照Inception V系列網(wǎng)絡(luò)結(jié)構(gòu)原理,面向卷積通道對ResNet的殘差模塊進行更改與設(shè)計。首先將ResNet的單通道卷積組調(diào)整為多通道卷積組,用以減少文本特征的表征性瓶頸(即減少信息損失),其次通過增加尺寸為1的卷積核對文本向量進行降維,并加入非線性,進而降低網(wǎng)絡(luò)模型參數(shù)和提高網(wǎng)絡(luò)的表達能力,因此共設(shè)計了4種結(jié)構(gòu)的殘差模塊,如表1所示。
表1 面向通道的4種殘差模塊結(jié)構(gòu)Tab.1 Channel-oriented four residual module structures
為對比殘差模塊結(jié)構(gòu)對文本分類的影響,共配置了4種水稻知識文本分類網(wǎng)絡(luò),如表2所示,并通過后續(xù)試驗分析,篩選分類性能較高的殘差結(jié)構(gòu)。在保持較優(yōu)殘差結(jié)構(gòu)不變的前提下,通過增加殘差模塊數(shù)量探究網(wǎng)絡(luò)層次對分類精度的影響。
表2 基于4種殘差模塊的網(wǎng)絡(luò)結(jié)構(gòu)Tab.2 Network structure based on four kinds of residual modules
采用Word2Vec中的Skip-Gram模型對水稻知識文本進行向量化處理,詞向量維度為100,訓(xùn)練窗口尺寸設(shè)置為5。同時與One-Hot[29]、TF-IDF[30]、Hashing[31]向量化模型進行對比分析。對4種模型訓(xùn)練得到的文本向量進行淺層神經(jīng)網(wǎng)絡(luò)建模,其精準(zhǔn)率、召回率和F1值的宏平均值和正確率如表3所示。
表3 4種文本向量化建模結(jié)果Tab.3 Results of four kinds of text vectorization modeling %
由表3可知,4種基于文本向量化方法構(gòu)建的淺層神經(jīng)網(wǎng)絡(luò)中,Word2Vec方法相比其他方法具有最高的分類精度,正確率為86.44%,Hashing方法的分類效果最差。這可能是由于One-Hot所產(chǎn)生的向量維度較高,存在稀疏性,影響了神經(jīng)網(wǎng)絡(luò)的分類效果,TF-IDF和Hashing雖然考慮字詞間的語義信息,但問題也較為明顯,這2種方法沒有解決向量維度高和數(shù)據(jù)稀疏的問題,并且隨著提取連續(xù)字的集合的增大,維度將會變得更高。從每一類的分類效果來看(圖2),基于4種向量化方法的淺層神經(jīng)網(wǎng)絡(luò)在栽培管理和病蟲害上分類效果較好,在其他2個類別上效果較差,原因在于草害藥害和其他類別的數(shù)據(jù)量較小。但相較而言,Word2Vec在草害藥害和其他2個類別上向量化效果較好,網(wǎng)絡(luò)模型能較為準(zhǔn)確地提取到一定的文本特征,因此本研究采用Word2Vec模型構(gòu)建文本向量作為后續(xù)研究的數(shù)據(jù)基礎(chǔ)。
采用Word2Vec生成的4類14 527條水稻知識文本向量作為樣本,隨機選取80%數(shù)據(jù)作為訓(xùn)練集,10%作為驗證集,并根據(jù)表2中4種模塊結(jié)構(gòu),分別構(gòu)建分類模型,開展相關(guān)試驗與分析。采用Top-1準(zhǔn)確率作為評價指標(biāo)(Top-1準(zhǔn)確率為判斷概率最大的類別與實際類別相符的準(zhǔn)確率)。A-NN、B-NN、C-NN和D-NN的Top-1準(zhǔn)確率分別為99.52%、99.11%、99.59%和99.38%。
可知,基于4種殘差模塊構(gòu)建的網(wǎng)絡(luò)模型均具有較好的分類精度,Top-1準(zhǔn)確率均達95%以上,其中殘差模塊C-NN所構(gòu)建的分類模型具有最高的分類精度,Top-1準(zhǔn)確率為99.59%,殘差模塊D-NN、A-NN和B-NN的分類性能逐漸降低。這可能是由于殘差模塊C-NN在各個通道卷積的第1層均采用了尺寸為1的卷積核,其能夠在一定程度上增加非線性激勵,提高了網(wǎng)絡(luò)的表達能力,同時卷積通道數(shù)的增加使卷積核的數(shù)量增大,能夠更充分地從數(shù)據(jù)中獲取更多的文本特征。因此殘差模塊C-NN具有最佳的文本特征提取能力。與此同時,本研究在保持殘差模塊C-NN的基本結(jié)構(gòu)不變的基礎(chǔ)上,通過增加殘差模塊的數(shù)量(即增大網(wǎng)絡(luò)深度)進行進一步訓(xùn)練與分析,結(jié)果如表4所示。
表4 基于不同殘差模塊數(shù)量的網(wǎng)絡(luò)分類性能Tab.4 Network classification performance based on number of different residual modules
由表4可以看出,針對水稻知識文本樣本,在保持殘差結(jié)構(gòu)相同的情況下,網(wǎng)絡(luò)Ⅲ的分類效果最佳,Top-1準(zhǔn)確率為99.79%,網(wǎng)絡(luò)Ⅰ和Ⅱ的分類效果略差,說明當(dāng)殘差模塊較少時,可適當(dāng)增加模塊數(shù)量,提高文本分類精度。但在網(wǎng)絡(luò)Ⅲ的基礎(chǔ)上,再增加殘差模塊數(shù)量時,網(wǎng)絡(luò)的整體性能開始趨于飽和,分類精度有所下降??赡茉蛟谟谒局R數(shù)據(jù)中存在“共享詞匯”,隨著殘差模塊的增加,卷積數(shù)增大,模型訓(xùn)練得到一定共享詞匯等的非主要文本特征,從而影響模型測試精度。
但是如果采用上述分類網(wǎng)絡(luò)直接用于水稻知識文本分類,均需要采用池化層進行下采樣操作。雖然池化層具有降低特征維度、減小模型參數(shù)等作用,但是文本特征經(jīng)池化層操作后所得到的特征為標(biāo)量,這將會導(dǎo)致文本特征向量的矢量方向信息和文本整體與詞組之間的關(guān)聯(lián)信息丟失(即文本的位置特征丟失),影響模型分類精度。而CapsNet采取向量進、向量出的訓(xùn)練模式,能夠充分地保留文本向量特征。這與池化層的下采樣操作截然相反。與此同時,CapsNet首先采用Squash激活函數(shù)對特征向量進行壓縮處理,保留向量的模長信息,從而能夠表達特征向量所包含的信息強度。其次采用Dynamic Routing(動態(tài)路由方法)對向量進行聚類分析,強化特征向量中的相似特征,弱化離群特征,輸出更具有表達能力的文本特征。因此本研究采用膠囊網(wǎng)絡(luò)(CapsNet)替代池化層,并結(jié)合前文的4層殘差網(wǎng)絡(luò)結(jié)構(gòu),構(gòu)建基于深度卷積神經(jīng)網(wǎng)絡(luò)的水稻知識文本分類模型,簡稱為RIC-Net,其網(wǎng)絡(luò)架構(gòu)如圖3所示。
由圖3可知,該網(wǎng)絡(luò)將Word2Vec生成的文本向量作為模型輸入,通過特征提取層提取文本特征,生成文本特征矩陣,并采用CapsNet替代池化層,對文本特征矩陣進行進一步篩選,最后經(jīng)由全連接層和Softmax構(gòu)成分類器,實現(xiàn)水稻知識文本的精準(zhǔn)分類。
在RIC-Net模型中,特征提取層的卷積濾波器數(shù)量分別為8、16、32和64,CapsNet的輸出數(shù)量和維度均為50,動態(tài)路由輪數(shù)為3,在全連接層中FC1和FC2神經(jīng)元個數(shù)分別設(shè)置為128和4。另外,采用Nadam算法(Nesterov-accelerated adam)[32]對模型進行訓(xùn)練,初始學(xué)習(xí)率為0.002,一階和二階指數(shù)衰減率分別為0.9和0.999。同時,經(jīng)多次試驗得出,經(jīng)過50代訓(xùn)練,網(wǎng)絡(luò)模型的訓(xùn)練損失均收斂到穩(wěn)定值。為對比本文方法的分類效果,利用同一樣本數(shù)據(jù),分別訓(xùn)練FastText、BiLSTM、Atten-BiGRU、RCNN、DPCNN和TextCNN等6種常用文本分類模型,訓(xùn)練誤差結(jié)果如圖4所示。
由圖4可以看出,隨著訓(xùn)練次數(shù)的增加,各個模型的訓(xùn)練誤差均呈現(xiàn)不同程度的降低,當(dāng)降低到一定程度后訓(xùn)練損失均收斂到穩(wěn)定。在訓(xùn)練初始階段,RIC-Net的訓(xùn)練誤差下降最快,說明RIC-Net能夠較為精準(zhǔn)地提取文本特征,模型更易收斂。同時,RIC-Net、TextCNN和RCNN訓(xùn)練效果較好,當(dāng)訓(xùn)練到45次時不僅達到收斂狀態(tài),且訓(xùn)練誤差在0~0.036之間,基本達到訓(xùn)練要求。
采用測試集分別對RIC-Net和其他6種文本分類方法進行測試與分析,并以精準(zhǔn)率、召回率、F1值以及正確率作為模型分類性能評價指標(biāo)。評價結(jié)果如表5所示。
表5 不同分類網(wǎng)絡(luò)的測試結(jié)果比較Tab.5 Comparison of test results with different classification networks %
由表5可知,與FastText、BiLSTM、Atten-BiGRU、RCNN、DPCNN和TextCNN等6種分類模型相比,RIC-Net在栽培管理、病蟲害、草害藥害和其他類別上均具有較高的分類性能,對水稻知識的4種文本類型分類的精準(zhǔn)率、召回率和F1值分別不小于95.17%、95.83%和95.50%,在測試集的正確率方面,RIC-Net同樣高于其他模型,正確率為98.62%。這是由于借鑒了ResNet和Inception V的基本思想,采用多通道和殘差模塊的結(jié)構(gòu)構(gòu)建特征提取層,精準(zhǔn)提取水稻知識文本特征,同時將CapsNet替換池化層,保留了詞組間相對位置特征,從而提高了模型分類精度。
從整體測試結(jié)果來看,相比數(shù)據(jù)量較大的病蟲害分類結(jié)果,其他和草害藥害的分類精度較低,說明增大類別樣本量,能夠進一步提高模型分類精度。但從數(shù)據(jù)量較小的其他和草害藥害分類結(jié)果來看(圖5),RIC-Net分類的精準(zhǔn)率、召回率和F1值略高于其他6種模型。說明RIC-Net在樣本量較少的情況下,也具有較高分類精度。
測試結(jié)果同時表明,相比栽培管理、病蟲害和草害藥害的分類結(jié)果,7種網(wǎng)絡(luò)模型在其他類別上分類性能最低,原因在于在其他類別中存在多種繁雜的水稻相關(guān)知識點,因此該類文本中主要的關(guān)鍵詞種類較多,缺乏一定的統(tǒng)一性,從而導(dǎo)致模型提取的特征不顯著,降低了分類精度。但從圖6可直觀地看出,相比其他模型,RIC-Net在其他類別中能夠取得較好的分類結(jié)果,說明該模型具有較好的魯棒性。
(1)相比One-Hot、TF-IDF和Hashing方法,采用Word2Vec方法對水稻知識文本數(shù)據(jù)進行向量化處理能夠較好地保留文本語句中的語義和上下文依賴關(guān)系等信息的完整性。
(2)在ResNet的基礎(chǔ)上,分別對其殘差模塊結(jié)構(gòu)和網(wǎng)絡(luò)層次進行改進設(shè)計,以便在對水稻知識文本分類過程中提高模型獲取文本特征的能力。對9種分類網(wǎng)絡(luò)結(jié)構(gòu)的對比分析表明,采用4層C結(jié)構(gòu)的殘差模塊作為水稻知識文本分類模型的基礎(chǔ)網(wǎng)絡(luò)結(jié)構(gòu)能夠較為精準(zhǔn)地提取文本特征,Top-1準(zhǔn)確率達到99.79%。
(3)本文所設(shè)計的水稻知識文本分類模型能夠較好地對不同樣本量和不同復(fù)雜程度的水稻知識數(shù)據(jù)進行精準(zhǔn)分類。與FastText、BiLSTM、Atten-BiGRU、RCNN、DPCNN和TextCNN等6種模型相比,本文模型對水稻病蟲害、草害藥害、栽培管理和其他4種文本類別上均具有較高的分類性能,分類的精準(zhǔn)率、召回率和F1值分別不小于95.17%、95.83%和95.50%,正確率為98.62%,滿足實際應(yīng)用需求。