張善文,王 振,王祖良
(西京學院信息工程學院,西安 710123)
小麥條銹病嚴重影響了小麥的產(chǎn)量與質(zhì)量,進行病害預測是病害防治的關鍵步驟。小麥條銹病是小麥病害中最容易發(fā)生、且發(fā)生范圍廣、影響較為嚴重的一種病害,其發(fā)生和發(fā)展與冬季溫度、初春降水量、土壤溫度和濕度等很多環(huán)境因素關系密切相關[1-2]。目前,有很多基于環(huán)境信息的小麥條銹病預測方法。張雪雪等[3]歸納和總結了作物病蟲害預測模型,并對后續(xù)研究的關鍵問題和預測技術發(fā)展趨勢進行了描述;陳萬權等[4]分析了中國小麥條銹病的發(fā)生規(guī)律和原因,為作物病害預測提供了依據(jù);聶臣巍[5]構建了一種基于貝葉斯網(wǎng)絡模型的小麥條銹病預測方法,并在甘肅省東南部地區(qū)的2010-2012年的小麥條銹病數(shù)據(jù)庫上進行驗證,結果表明在小麥返青期至乳熟期的條銹病、白粉病、赤霉病和紋枯病的發(fā)生概率分別為62.92%、63.18%、79.48%和94.75%;劉偉昌[6]提出了基于灰色關聯(lián)分析和模糊數(shù)學的小麥銹病發(fā)生模型,該模型對4月上旬及5月中旬小麥條銹病的預測結果與實際值吻合度達到 93.72%;姚曉紅等[7]提出一種基于統(tǒng)計學方法的小麥條銹病的預測模型,其最高預測準確率為91%;Wang等[8]利用反向傳播網(wǎng)絡與不同的轉(zhuǎn)移函數(shù)、訓練函數(shù)和學習函數(shù)、徑向基網(wǎng)絡、廣義回歸網(wǎng)絡和概率神經(jīng)網(wǎng)絡進行了小麥條銹病預測方法研究,結果表明,基于徑向基網(wǎng)絡的預測結果最好,預測率準確率為91%;李登科等[9]利用小麥條銹病發(fā)生的程度與氣象條件的關系,預測小麥條銹病,在關中和陜南地區(qū)的最高預測率準確率分別為79.2%和82.8%。實際小麥病害預測數(shù)據(jù)來源于小麥生長的環(huán)境因子、農(nóng)業(yè)類科研機構和企業(yè)的數(shù)據(jù)庫、以及從農(nóng)業(yè)類網(wǎng)站中抓取的大量小麥病害文本數(shù)據(jù)[10-11]。這些數(shù)據(jù)是海量、多源、異構、含噪聲、冗余度大,且結構化、非結構化和半結構化并存的數(shù)據(jù)。由于上述傳統(tǒng)的病害檢測和預測方法沒有充分利用這些數(shù)據(jù)之間相互聯(lián)系和相互制約,所以實際預測準確率較低[12-13]。
如何從海量復雜的小麥病害相關大數(shù)據(jù)中提取有用的作物病害知識,是病害預測系統(tǒng)的關鍵問題[14]。知識圖譜(Knowledge Graph,KG)能夠從海量多源異構數(shù)據(jù)中抽取結構化知識[15-17],能夠描述現(xiàn)實世界中存在的實體以及實體之間的關系[18],已被成功應用于智慧農(nóng)業(yè)領域[19-20]。Liu等[21]從知識表示、提取、融合和推理4個方面分析了當前病蟲害知識的構建方法,介紹了作物病害KG在專家系統(tǒng)、搜索引擎和知識問答系統(tǒng)中的應用,總結了作物病害KG中存在的問題和面臨的挑戰(zhàn);王娟[22]采用案例推理方法構建了一個煙草病害防控模型,并在案例檢索過程中結合 KG的思想,提高了病害檢索的效率;夏迎春[23]開發(fā)了一種基于知識表示的農(nóng)業(yè)病蟲害知識問答系統(tǒng),該系統(tǒng)包括知識問答模塊以及作物病害KG展示模塊,取得了較好的效果。
在大數(shù)據(jù)的推動下,深度學習已被成功應用于小麥病害預測中[24]。長短時記憶神經(jīng)網(wǎng)絡(Long Short-Term Memory, LSTM)是一種時間遞歸深度學習網(wǎng)絡,適合于處理和預測時間序列中間隔和延遲相對較長的重要事件[25-27]。LSTM 為解決作物病害預測問題提供了新的思路。Xiao等[28]利用Aprioro算法得到了天氣因素與棉花害蟲發(fā)生的關聯(lián)規(guī)律,提出了一種基于LSTM的棉田病蟲害預測方法,驗證了LSTM網(wǎng)絡在解決農(nóng)作物病蟲害預測問題上具有很大的優(yōu)勢。KG與LSTM結合能夠發(fā)揮各自強大的優(yōu)勢[29]。為了提高小麥條銹病的預測準確率,本文提出了一種基于KG和雙向長短時記憶網(wǎng)絡(Bi-directional Long Short-Term Memory,Bi-LSTM)結合的小麥條銹病預測方法,該方法利用KG能夠?qū)⑴c病害相關的多源異構環(huán)境數(shù)據(jù)轉(zhuǎn)化為低維連續(xù)的向量,保存KG中的語義信息,從而得到實體的向量表示,然后利用 Bi-LSTM 提取病害預測的深層次特征,最后利用大量觀測樣本對所提出的方法進行試驗驗證,以期為小麥條銹病預測系統(tǒng)提供參考。
關中地區(qū)條銹病春季平均始見期時間為2月4日,最晚為5月21日,數(shù)據(jù)采集約為140d,采集地點依次為寶雞、西安、咸陽、渭南等地。小麥條銹病相關資料來自陜西省植物保護總站,采集陜西省關中地區(qū)各市2010-2017年小麥條銹病的環(huán)境信息;氣象資料來自陜西省氣象信息中心,采集2010-2017年陜西省8個市氣象站上年10月-第二年 5月氣溫、降水量、相對濕度等資料,各個單項數(shù)據(jù)項為 5 d采集的數(shù)據(jù)平均值作為小麥種植區(qū)氣象資料序列。為了能夠精準預測,選擇與小麥條銹病發(fā)生影響最大的因素進行試驗,包括土壤的最低濕度、最高濕度、平均濕度和溫度、空氣最低濕度、最高濕度、平均濕度、平均溫度、雨日、降雨量、光照日數(shù)、平均風速、平均風向、平均風力、最低蒸發(fā)量、最高蒸發(fā)量、平均蒸發(fā)量等用于構建小麥條銹病KG。該KG由2010-2017年的小麥條銹病的相關數(shù)據(jù)抽取而成。共取得60 000個實體。
除了以上實際數(shù)據(jù)外,利用Python編程語言編寫的語料采集工具從中國農(nóng)業(yè)信息網(wǎng)、興農(nóng)網(wǎng)、蔬菜網(wǎng)以及百度百科等多個語料庫中抓取關于小麥條銹病的 300個詞條作為語料,并將這些語料使用GBK編碼的形式進行文本文件存儲。由于直接獲取的詞條為非結構化文本,難以直接對其數(shù)據(jù)進行利用。因此使用自然語言處理的開源工具 LTP中的使用分詞、詞性標注和依存句法這3個模塊對語料進行預處理,得到的結果以標注文件XML的格式進行存儲。
在KG構建過程中,使用一種上下混合模式的構建方法。該方法融合了自底向上和自頂向下 2種構建方式,通過不斷迭代優(yōu)化,最終生成滿足要求的領域知識圖譜。對于 KG模式層設計不僅采用通常的自頂向下的構建方法,而且與自底向上的構建方法相融合,形成一種自頂向下為主,自底向上為輔的優(yōu)勢互補的構建過程。所構建小麥病害KG其基本元素為氣候因素、發(fā)病原因、治理方案、發(fā)病癥狀、發(fā)病地區(qū)、傳播途徑和相關數(shù)據(jù)等,具體包含60 000個實體,從中抽取出86 500條具體的實體關系,知識實體關系圖譜示例如圖1所示。
小麥病害KG是根據(jù)小麥病害實體、實體間關系相互連接起來所形成的一種網(wǎng)絡結構。三元組是KG的一種通用表示形式,可將KG中的每一條小麥病害知識直觀表示為<頭實體,關系,尾實體>。小麥病害實體(頭實體或尾實體)作為KG中最基本的元素,主要由病害、環(huán)境信息、癥狀、防治手段、部位等構成;關系存在于不同的頭實體或尾實體之間,主要包含類別、病害表現(xiàn)、病因、發(fā)病原理、預防措施、農(nóng)藥作用等。小麥條銹病KG構建過程:首先對病害檢測知識和元數(shù)據(jù)知識進行表達,以實體聯(lián)系方式將病害檢測知識和元數(shù)據(jù)知識進行有效組織和管理;然后利用病害知識和元數(shù)據(jù)進行本體層構建與實體層構建,包含數(shù)據(jù)獲取與處理(清洗、融合等)、本體層構建、實體層構建等過程;最后構建 KG。圖 2a為小麥條銹病KG構建流程圖,圖2b為構建的KG的一個實體實例。
本文通過動態(tài)映射矩陣嵌入到模型學習 KG中實體和關系的低維特征向量。其過程描述為:首先將實體和關系映射到不同的空間中,為每個實體和關系定義兩個向量,一個表征實體或關系,另一個用來構造動態(tài)映射矩陣;然后利用詞向量計算工具word2vec將每個三元組中的頭實體、尾實體和關系轉(zhuǎn)換為低維特征向量,三元組中的關系是從實體集的頭實體到實體尾實體的語義表達。設頭實體、關系和尾實體的向量分別表示為h、r和t,通過不斷調(diào)整h、r和t,使(h+r)盡可能與t相等,即h+r≈t;最后通過使用2個投影矩陣Mrh和Mrt將頭實體h和尾實體t分別投影到關系空間,并將每個關系的投影矩陣分解為兩個向量的乘積,得到得分函數(shù):

式中 Mrh=+ Im*n和 Mrt= rptp+與實體和關系均相關,通過向量運算轉(zhuǎn)換,rp、tp和hp都是映射向量,Im*n是單位矩陣,dr(h,t)為約束對實體和關系建模。
基于動態(tài)映射矩陣嵌入模型的 KG的知識嵌入過程如圖 3所示。首先提取小麥條銹病描述文本中的病害特征詞;然后構建KG;再將KG中的知識轉(zhuǎn)化為低維連續(xù)的特征向量;最后將病害特征向量與相關知識實體進行匹配,根據(jù)得分函數(shù)獲取關聯(lián)程度,并進行排序。圖 3中,最后得到的結果是由式(1)得到的病害特征向量與實體之間的關聯(lián)性概率。

圖3 小麥條銹病KG的知識嵌入過程Fig.3 Knowledge embedding process of wheat stripe rust KG
LSTM由sigmoid神經(jīng)網(wǎng)絡層和成對乘法操作組成,通過門控單元可以對單元添加和刪除信息,通過 3個控制門(輸入門、遺忘門和輸出門)控制不同時刻的狀態(tài)和輸出,有選擇地決定信息是否通過。其單元結構如圖4所示。
在圖4中,A表示sigmoid神經(jīng)網(wǎng)絡層,圓形操作框?代表點積運算、⊕代表求和運算,相同維數(shù)的兩個向量經(jīng)過圓形操作框后,乘以或相加相應的元素,正方形的節(jié)點代表“激活操作”,有2種激活方式:σ函數(shù)和tanh雙曲正切函數(shù)。若兩條線在箭頭方向上融合在一起,它們就簡單地堆疊在一起;若一行被分成 2行,它們會被復制到相同的兩行中。

圖4 LSTM的單元結構Fig.4 Cell structure of LSTM
LSTM能夠避免長期依賴問題,但可能丟失很多與病害預測相關的信息。雙向LSTM(Bi-LSTM)能夠利用過去的若干輸入和后面若干輸入進行預測,該模型不僅解決了長期依賴問題,而且能夠以正向LSTM與反向LSTM方式提取序列數(shù)據(jù)特征,實現(xiàn)時間序列的長期記憶,得到的預測結果比 LSTM更加準確。由于作物病害預測只能以當前環(huán)境因子和過去一段時間的環(huán)境因子預測當前時刻的作物病害發(fā)生的概率,所以采用Bi-LSTM模型能夠提取與作物病害相關的環(huán)境因子特征,進行小麥病害預測。設在時刻t經(jīng)過前向LSTM和后向LSTM后得到前向輸出和后向輸出,合并記為ht=[]作為該隱含層的輸出,則環(huán)境因子與小麥病害發(fā)生的關系概率可以表示為

式中X為輸入數(shù)據(jù),y為病害類型,雙曲正切函數(shù)tanh作為激勵函數(shù),Whz和Whz為 Bi-LSTM 的權值,bz為Bi-LSTM的偏差,權值和偏差都為待訓練的參數(shù)。
為了防止訓練模型產(chǎn)生過擬合,在Bi-LSTM中的非循環(huán)部分加入dropout。通過反向傳播算法優(yōu)化交叉熵損失函數(shù)L(θ):

式中θ為模型參數(shù),Xi為第i個訓練樣本,y為病害類型,n為訓練樣本數(shù)。
針對“小麥條銹病發(fā)生因素多、復雜、隨時間變化”特性,提出一種基于KG和Bi-LSTM相結合的小麥條銹病預測模型。其模型結構如圖5所示。
首先,利用詞向量計算工具word2vec將每個KG中的每個三元組中的實體和關系轉(zhuǎn)換為低維特征向量;
第二,將得到的向量作為Bi-LSTM的輸入,提取作物病害環(huán)境因子特征;
第三,利用注意力機制對提取的特征進行特征融合。注意力層對Bi-LSTM提取的特征進行加權變換,突出重要病害相關數(shù)據(jù)的貢獻,提高模型預測的準確性。其計算過程為

式中 H ={h1,h2,...,hn}表示 Bi-LSTM 生成的特征向量序列,w為訓練學習的參數(shù)向量,M、a和r′分別為激勵后的融合特征向量、注意力矩陣和與環(huán)境信息中特定屬性高度相關的特征向量, H*表示變換后的特征向量。

圖5 小麥條銹病預測模型Fig.5 Prediction model of wheat stripe rust diseases
第四,對H進行tanh操作:H與wT相乘,通過Softmax得到注意力矩陣a,H與a相乘得到狀態(tài)信息加權,進一步通過 tanh操作得到的值(在?1~1之間),用于病害預測的特征向量H*。
最后,通過 SoftMax分類器預測病害。將注意力層的輸出值H*輸入SoftMax分類器進行病害預測,并將其更改為“0”或“1”,作為預測結果。其中“0”表示“無病預測值”,“1”表示“有病預測值”。模型的損失函數(shù)定義為

式中D表示由樣本數(shù)據(jù)組成的訓練集, (x(i),y(i))表示訓練集中第i個樣本數(shù)據(jù),x(i)為10維向量,y(i)只有“0”和“1”2種值,“0”和“1”分別表示“無病預測值”和“有病預測值”,p(y=,θ)表示病害預測的概率,即預測值與非病態(tài)的樣本數(shù)據(jù) (x(i),y(i))。
預測精度ACC指對于給定的驗證數(shù)據(jù)集,模型正確預測的樣本數(shù)與總樣本數(shù)之比:

式中TP為被模型預測為正的正樣本,TN為被模型預測為負的負樣本,F(xiàn)P為被模型預測為正的負樣本,F(xiàn)N為被模型預測為負的正樣本。
從60 000個實體中抽取出86 500條實體關系圖,組成86 500個三元組,用于病害預測。采用10折交叉驗證法進行小麥條銹病預測試驗,則驗證集規(guī)模為8 650個三元組。將本文方法與其他 5種病害預測方法進行比較:基于自適應判別深度置信網(wǎng)絡(Deep Belief Networks,DBN)[24],基于時間序列的神經(jīng)網(wǎng)絡預測方法(Neural Networks, NN)[30]和基于時間序列和RBF網(wǎng)絡的植物病害預測方法(Time Series and RBF Networks, TSRBF)[31]以及基于長短時記憶網(wǎng)絡(Long Short-Term Memory,LSTM)和雙向 LSTM(Bi-directional Long Short-Term Memory, Bi-LSTM)[28]的作物病害預測方法。5種比較方法DBN、NN、TSRBF、LSTM和Bi-LSTM方法都是直接利用小麥條銹病的環(huán)境信息數(shù)據(jù)進行病害預測,沒有利用KG轉(zhuǎn)換成的向量數(shù)據(jù)。試驗設備配置及環(huán)境:32G內(nèi)存, Intel Core i5-4200U CPU @2.30 GHz;GPU GEFORCE GTX 1080ti;Ubuntu14.0,深度學習架構是Tensorflow1.7.0和Keras,包括LSTM。
試驗結果如圖6所示,圖6a、b為訓練集的預測精度,圖6c、d為測試集的預測精度。由于使用了Dropout,一些節(jié)點被抑制。隨著迭代次數(shù)的增加,精度線出現(xiàn)抖動,但驗證集的精度高于訓練集,且不存在明顯的過擬合現(xiàn)象。當?shù)螖?shù)為280時,Bi-LSTM模型在訓練集上的準確率為90.27%,在驗證集上的準確率為94.38%。

圖6 預測精度和loss隨迭代次數(shù)的變化Fig.6 Prediction accuracy and loss with the number of iterations
將Bi-LSTM模型在2個數(shù)據(jù)集上進行試驗比較:1)直接利用小麥條銹病的環(huán)境信息數(shù)據(jù)進行病害預測;2)利用KG轉(zhuǎn)換成的向量數(shù)據(jù),在驗證集上的對比結果如圖7所示。從圖7中能夠看出,引入KG后能夠有效提升模型的預測精度,當?shù)螖?shù)為280時,引入KG后模型的預測精度為94.63%,而直接利用環(huán)境信息數(shù)據(jù)的預測精度為88.24%。結果說明本文提出的方法是有效的。表1為利用6種方法,進行10折交差驗證法50次試驗得到的平均預測精度及運行時間。

圖7 引入KG和未引入KG的預測精度比較Fig.7 Prediction accuracy on two datasets with KG and without KG

表1 6種方法的平均預測精度及運行時間Table 1 Average prediction accuracy and running time of six methods
從表 1可以看出,本文方法的精度最高,且遠高于其他方法,Bi-LSTM次之。其原因是,KG充分利用了環(huán)境信息與小麥條銹病之間以及不同環(huán)境信息之間的相互作用和影響,其他預測方法完全基于輸入的環(huán)境信息數(shù)據(jù),可能會引入不相關的環(huán)境因素和噪聲等,導致預測精度低。Bi-LSTM和LSTM模型的準確性高于DBN的主要原因是它可以學習一系列樣本數(shù)據(jù)的變化規(guī)律,以及這些變化規(guī)律對病害預測的影響,提高了預測的準確性和可靠性。Bi-LSTM或LSTM的訓練時間和測試時間小于NN和TSRBF的原因是Bi-LSTM和LSTM可以將類別信息引入模型訓練中,使訓練具有監(jiān)督作用。
針對小麥病害預測難題,提出了一種基于知識圖譜(Knowledge Graph, KG)和雙向長短時記憶網(wǎng)絡(Bi-directional Long Short-Term Memory, Bi-LSTM)相結合的小麥條銹病預測模型。首先,構建小麥條銹病KG,由KG整合小麥條銹病發(fā)生的環(huán)境信息資源;第二,利用word2vec將KG的知識轉(zhuǎn)換為低維特征向量;第三,利用Bi-LSTM模型提取小麥條銹病預測的魯棒性特征,進行病害預測;最后,利用小麥條銹病發(fā)生相關的歷史天氣和環(huán)境信息等病害發(fā)生數(shù)據(jù)進行了驗證。結果表明,KG和Bi-LSTM相結合能夠預測小麥條銹病,預測結果為93.21%。該方法為小麥條銹病防治提供技術支持。未來的研究是壓縮KG和Bi-LSTM,以便應用于軟硬件受限的移動設備。