馮 帥 許童羽,2 周云成,2 趙冬雪 金 寧 王郝日欽
(1.沈陽農業大學信息與電氣工程學院,沈陽 110161; 2.沈陽農業大學遼寧省農業信息化工程技術中心,沈陽 110161)
在農業智能問答系統中,由于大量的知識文本數據具有稀疏性強、噪聲大及類別繁雜等特點,導致所構建的問答系統的準確率較低。因此,利用計算機技術提取準確的文本特征、實現知識文本的自動分類是構建農業智能問答系統的關鍵技術環節。從農業文本數據中提取出水稻的草害藥害、病蟲害以及栽培管理等數據是典型的文本分類問題。目前K最近鄰(K-nearest neighbor,KNN)[1]、樸素貝葉斯(Naive Bayesian,NB)[2]以及支持向量機(Support vector machine,SVM)[3]等機器學習方法是進行文本分類的常用方法。文獻[4]采用樸素貝葉斯算法實現了對農業文本的自動分類,識別率較高,但該方法缺乏較好的特征提取能力。文獻[5]采用粒子群算法優化KNN算法的特征權重,構建PSOKNN文本分類模型。文獻[6-7]根據農業文本數據特征構建農業行業詞庫,并通過特征詞篩選和權重計算構建一種基于線性支持向量機的中文農業文本分類模型,該方法并未考慮數據集線性不可分的情況,存在一定的局限性。農業文本具有數據冗余性、稀疏性和規范性差等特征,采用傳統的機器學習方法對大數據量的農業文本進行分類難度較大,且適應性較差,特征工程復雜。
隨著計算機技術的迅猛發展,深度卷積神經網絡(Deep convolutional neural networks,DCNN)[8]、循環神經網絡(Recurrent neural network,RNN)[9]和膠囊網絡(CapsNet)[10]等深度學習技術逐漸成為主流分類方法[11-16]。該技術能夠自動實現圖像和文本關鍵特征的提取,無需復雜的特征工程,與分類過程結合,所構建的模型具有較強的適應性和遷移性[17-18]。目前,國內外學者采用深度學習技術在英文和中文文本分類上進行了大量研究[19-23]。相比傳統的文本分類方法,深度學習技術在文本分類中具有更好的分類效果。但在文本分類過程中仍存在文本特征提取不準確的問題,如忽略了文本的位置特征等。此外,也未見對網絡層次加深所導致的文本分類性能變差的原因進行研究與分析的報道。
鑒于此,本文借鑒現有研究成果,提出一種基于深度卷積神經網絡的水稻知識文本分類方法。基于ResNet[24]和Inception V[25]網絡結構的基本原理,以Top-1準確率為判斷標準,分別從網絡模塊結構和網絡層次進行分析,篩選具有最佳特征提取性能的CNN網絡結構,以提高精準率、召回率、F1值和正確率為目標,將篩選出的CNN網絡結構與CapsNet相結合,建立水稻知識文本分類模型,以期為水稻知識文本的精準分類提供科學和理論依據。
本文通過采用Python爬蟲框架,爬取知網專家在線系統和種植問答網等關于水稻病蟲害、草害藥害以及栽培管理等中文文本問答數據。同時,對所獲數據進行初步人工篩選,最終獲得14 527條有效數據,其中水稻病蟲害、草害藥害、栽培管理和其他數據分別為5 640、1 335、6 060、1 492條。水稻知識數據主要用于文本分類網絡的模型訓練與測試,每次試驗從數據集中隨機抽取80%作為訓練集,10%作為驗證集,剩余10%作為測試集。
1.2.1文本分詞處理
相對英文文本,中文文本的處理相對復雜。中文字與字之間沒有間隔,并且單個漢字具有的意義也明顯弱于詞組,因此本研究采用Jieba方法[26]對水稻知識文本進行分詞處理,并去除文本中無用符號和停用詞等。與此同時,中文分詞結果深受分詞詞庫的影響,為提高水稻知識文本分詞精度,減少錯分、漏分和誤分情況,本文在搜狗農業語料庫基礎上構建水稻相關語料庫,進而擴大Jieba分詞基礎詞庫,提高對水稻病蟲害、草害藥害和栽培管理等專業詞匯的辨識度。
1.2.2文本向量化處理
由于網絡模型無法對自然語言進行直接訓練學習,并且中文文本語句中存在大量的語義信息、上下文依賴信息和語序信息等,直接采用中文文本將無法保留這些信息的完整性,因此將中文文本轉換為多維且連續的向量至關重要。本研究采用Word2Vec[27]的Skip-Gram模型對水稻知識文本進行向量化處理。
建立特征提取層網絡是解決文本分類問題的基礎,而CNN在圖像和文本特征提取問題上取得了較好的提取精度。ResNet是CNN的典型代表,其殘差模塊(包括直接映射和殘差部分)的設計理念使得隨著網絡層數的增加,網絡發生退化的現象得以解決,且在ILSVRC 2015競賽中其分類和特征提取的效果上得到了充分肯定[28]。圖1為適用于文本分類的ResNet-18網絡結構。其中nConv1D,m等表示尺寸為n、通道數為m的卷積核;Maxpooling1D,/2表示步長為2的最大池化層;FC,4表示通道數為4的全連接層。
ResNet-18網絡多用于圖像分類,其采用多個3×3的二維卷積核Conv2D從圖像矩陣的行維度和列維度進行特征提取,但文本向量是由規定長度的詞向量按一定順序構建的向量矩陣,所以從矩陣的行維度卷積(即從左至右移動)沒有實際意義。因此采用多個尺寸為n的一維卷積核(Conv1D)僅從向量矩陣的列維度進行卷積。但由圖1可知,ResNet-18被采用一維最大池化方法(Maxpooling1D)的池化層分割為3部分,前兩部分由17個尺寸為7和3,通道數為8、16、32和64的卷積層構成,后一部分僅采用1個通道數為4的全連接層。顯然直接將上述ResNet網絡結構用于水稻知識文本特征提取并不合適。首先相比圖像具有顏色和形狀等規律性特征,水稻知識每一類數據均由幾十個甚至更多的關鍵詞組成,生成的文本向量具有一定復雜性,因此僅采用[3 Conv1D,3 Conv1D]結構的殘差模塊無法較為精準地提取文本特征。其次水稻知識文本向量具有較大離散性和稀疏性,直接采用18個權重層的ResNet網絡結構易造成過擬合。鑒于此,本研究對ResNet的殘差模塊結構和網絡層次進行設計與分析。
按照Inception V系列網絡結構原理,面向卷積通道對ResNet的殘差模塊進行更改與設計。首先將ResNet的單通道卷積組調整為多通道卷積組,用以減少文本特征的表征性瓶頸(即減少信息損失),其次通過增加尺寸為1的卷積核對文本向量進行降維,并加入非線性,進而降低網絡模型參數和提高網絡的表達能力,因此共設計了4種結構的殘差模塊,如表1所示。

表1 面向通道的4種殘差模塊結構Tab.1 Channel-oriented four residual module structures
為對比殘差模塊結構對文本分類的影響,共配置了4種水稻知識文本分類網絡,如表2所示,并通過后續試驗分析,篩選分類性能較高的殘差結構。在保持較優殘差結構不變的前提下,通過增加殘差模塊數量探究網絡層次對分類精度的影響。

表2 基于4種殘差模塊的網絡結構Tab.2 Network structure based on four kinds of residual modules
采用Word2Vec中的Skip-Gram模型對水稻知識文本進行向量化處理,詞向量維度為100,訓練窗口尺寸設置為5。同時與One-Hot[29]、TF-IDF[30]、Hashing[31]向量化模型進行對比分析。對4種模型訓練得到的文本向量進行淺層神經網絡建模,其精準率、召回率和F1值的宏平均值和正確率如表3所示。

表3 4種文本向量化建模結果Tab.3 Results of four kinds of text vectorization modeling %
由表3可知,4種基于文本向量化方法構建的淺層神經網絡中,Word2Vec方法相比其他方法具有最高的分類精度,正確率為86.44%,Hashing方法的分類效果最差。這可能是由于One-Hot所產生的向量維度較高,存在稀疏性,影響了神經網絡的分類效果,TF-IDF和Hashing雖然考慮字詞間的語義信息,但問題也較為明顯,這2種方法沒有解決向量維度高和數據稀疏的問題,并且隨著提取連續字的集合的增大,維度將會變得更高。從每一類的分類效果來看(圖2),基于4種向量化方法的淺層神經網絡在栽培管理和病蟲害上分類效果較好,在其他2個類別上效果較差,原因在于草害藥害和其他類別的數據量較小。但相較而言,Word2Vec在草害藥害和其他2個類別上向量化效果較好,網絡模型能較為準確地提取到一定的文本特征,因此本研究采用Word2Vec模型構建文本向量作為后續研究的數據基礎。
采用Word2Vec生成的4類14 527條水稻知識文本向量作為樣本,隨機選取80%數據作為訓練集,10%作為驗證集,并根據表2中4種模塊結構,分別構建分類模型,開展相關試驗與分析。采用Top-1準確率作為評價指標(Top-1準確率為判斷概率最大的類別與實際類別相符的準確率)。A-NN、B-NN、C-NN和D-NN的Top-1準確率分別為99.52%、99.11%、99.59%和99.38%。
可知,基于4種殘差模塊構建的網絡模型均具有較好的分類精度,Top-1準確率均達95%以上,其中殘差模塊C-NN所構建的分類模型具有最高的分類精度,Top-1準確率為99.59%,殘差模塊D-NN、A-NN和B-NN的分類性能逐漸降低。這可能是由于殘差模塊C-NN在各個通道卷積的第1層均采用了尺寸為1的卷積核,其能夠在一定程度上增加非線性激勵,提高了網絡的表達能力,同時卷積通道數的增加使卷積核的數量增大,能夠更充分地從數據中獲取更多的文本特征。因此殘差模塊C-NN具有最佳的文本特征提取能力。與此同時,本研究在保持殘差模塊C-NN的基本結構不變的基礎上,通過增加殘差模塊的數量(即增大網絡深度)進行進一步訓練與分析,結果如表4所示。

表4 基于不同殘差模塊數量的網絡分類性能Tab.4 Network classification performance based on number of different residual modules
由表4可以看出,針對水稻知識文本樣本,在保持殘差結構相同的情況下,網絡Ⅲ的分類效果最佳,Top-1準確率為99.79%,網絡Ⅰ和Ⅱ的分類效果略差,說明當殘差模塊較少時,可適當增加模塊數量,提高文本分類精度。但在網絡Ⅲ的基礎上,再增加殘差模塊數量時,網絡的整體性能開始趨于飽和,分類精度有所下降。可能原因在于水稻知識數據中存在“共享詞匯”,隨著殘差模塊的增加,卷積數增大,模型訓練得到一定共享詞匯等的非主要文本特征,從而影響模型測試精度。
但是如果采用上述分類網絡直接用于水稻知識文本分類,均需要采用池化層進行下采樣操作。雖然池化層具有降低特征維度、減小模型參數等作用,但是文本特征經池化層操作后所得到的特征為標量,這將會導致文本特征向量的矢量方向信息和文本整體與詞組之間的關聯信息丟失(即文本的位置特征丟失),影響模型分類精度。而CapsNet采取向量進、向量出的訓練模式,能夠充分地保留文本向量特征。這與池化層的下采樣操作截然相反。與此同時,CapsNet首先采用Squash激活函數對特征向量進行壓縮處理,保留向量的模長信息,從而能夠表達特征向量所包含的信息強度。其次采用Dynamic Routing(動態路由方法)對向量進行聚類分析,強化特征向量中的相似特征,弱化離群特征,輸出更具有表達能力的文本特征。因此本研究采用膠囊網絡(CapsNet)替代池化層,并結合前文的4層殘差網絡結構,構建基于深度卷積神經網絡的水稻知識文本分類模型,簡稱為RIC-Net,其網絡架構如圖3所示。
由圖3可知,該網絡將Word2Vec生成的文本向量作為模型輸入,通過特征提取層提取文本特征,生成文本特征矩陣,并采用CapsNet替代池化層,對文本特征矩陣進行進一步篩選,最后經由全連接層和Softmax構成分類器,實現水稻知識文本的精準分類。
在RIC-Net模型中,特征提取層的卷積濾波器數量分別為8、16、32和64,CapsNet的輸出數量和維度均為50,動態路由輪數為3,在全連接層中FC1和FC2神經元個數分別設置為128和4。另外,采用Nadam算法(Nesterov-accelerated adam)[32]對模型進行訓練,初始學習率為0.002,一階和二階指數衰減率分別為0.9和0.999。同時,經多次試驗得出,經過50代訓練,網絡模型的訓練損失均收斂到穩定值。為對比本文方法的分類效果,利用同一樣本數據,分別訓練FastText、BiLSTM、Atten-BiGRU、RCNN、DPCNN和TextCNN等6種常用文本分類模型,訓練誤差結果如圖4所示。
由圖4可以看出,隨著訓練次數的增加,各個模型的訓練誤差均呈現不同程度的降低,當降低到一定程度后訓練損失均收斂到穩定。在訓練初始階段,RIC-Net的訓練誤差下降最快,說明RIC-Net能夠較為精準地提取文本特征,模型更易收斂。同時,RIC-Net、TextCNN和RCNN訓練效果較好,當訓練到45次時不僅達到收斂狀態,且訓練誤差在0~0.036之間,基本達到訓練要求。
采用測試集分別對RIC-Net和其他6種文本分類方法進行測試與分析,并以精準率、召回率、F1值以及正確率作為模型分類性能評價指標。評價結果如表5所示。

表5 不同分類網絡的測試結果比較Tab.5 Comparison of test results with different classification networks %
由表5可知,與FastText、BiLSTM、Atten-BiGRU、RCNN、DPCNN和TextCNN等6種分類模型相比,RIC-Net在栽培管理、病蟲害、草害藥害和其他類別上均具有較高的分類性能,對水稻知識的4種文本類型分類的精準率、召回率和F1值分別不小于95.17%、95.83%和95.50%,在測試集的正確率方面,RIC-Net同樣高于其他模型,正確率為98.62%。這是由于借鑒了ResNet和Inception V的基本思想,采用多通道和殘差模塊的結構構建特征提取層,精準提取水稻知識文本特征,同時將CapsNet替換池化層,保留了詞組間相對位置特征,從而提高了模型分類精度。
從整體測試結果來看,相比數據量較大的病蟲害分類結果,其他和草害藥害的分類精度較低,說明增大類別樣本量,能夠進一步提高模型分類精度。但從數據量較小的其他和草害藥害分類結果來看(圖5),RIC-Net分類的精準率、召回率和F1值略高于其他6種模型。說明RIC-Net在樣本量較少的情況下,也具有較高分類精度。
測試結果同時表明,相比栽培管理、病蟲害和草害藥害的分類結果,7種網絡模型在其他類別上分類性能最低,原因在于在其他類別中存在多種繁雜的水稻相關知識點,因此該類文本中主要的關鍵詞種類較多,缺乏一定的統一性,從而導致模型提取的特征不顯著,降低了分類精度。但從圖6可直觀地看出,相比其他模型,RIC-Net在其他類別中能夠取得較好的分類結果,說明該模型具有較好的魯棒性。
(1)相比One-Hot、TF-IDF和Hashing方法,采用Word2Vec方法對水稻知識文本數據進行向量化處理能夠較好地保留文本語句中的語義和上下文依賴關系等信息的完整性。
(2)在ResNet的基礎上,分別對其殘差模塊結構和網絡層次進行改進設計,以便在對水稻知識文本分類過程中提高模型獲取文本特征的能力。對9種分類網絡結構的對比分析表明,采用4層C結構的殘差模塊作為水稻知識文本分類模型的基礎網絡結構能夠較為精準地提取文本特征,Top-1準確率達到99.79%。
(3)本文所設計的水稻知識文本分類模型能夠較好地對不同樣本量和不同復雜程度的水稻知識數據進行精準分類。與FastText、BiLSTM、Atten-BiGRU、RCNN、DPCNN和TextCNN等6種模型相比,本文模型對水稻病蟲害、草害藥害、栽培管理和其他4種文本類別上均具有較高的分類性能,分類的精準率、召回率和F1值分別不小于95.17%、95.83%和95.50%,正確率為98.62%,滿足實際應用需求。