?

基于電子病歷的作物病蟲害關聯挖掘及智能診斷

2023-12-16 04:08徐暢張領先喬巖
關鍵詞:病歷圖譜處方

徐暢,張領先*,喬巖

(1.中國農業大學信息與電氣工程學院,北京市,100083;2.北京市植物保護站,北京市,100029)

0 引言

作物病蟲害是制約農業可持續發展的主要因素之一,也是影響作物產量和品質的主要原因[1],借助人工智能技術研究作物病蟲害自動檢測問題已成為目前的研究熱點。作物病蟲害研究需要大量的實測數據,目前相關研究主要集中在兩個方面,一是基于深度學習的計算機視覺技術[2],通過顯微圖像、多光譜圖像、高光譜圖像和遙感圖像等成像技術無損地診斷作物病蟲害;二是基于傳統機器學習的多源數據融合技術,通過傳感器、氣象站和物聯網等硬件技術監測作物病蟲害的影響因子[3]。但是它們均會受到數據獲取困難、技術實施成本高以及作物病蟲害發生態勢復雜等因素的限制。

由北京市“植物診所”形成的電子病歷為數字化賦能作物病蟲害挖掘與決策提供了新的思路[4-5],也是小農戶與現代農業有效銜接的重要措施。作物病蟲害是病原物、寄主作物和環境條件相互作用而產生的(3 個要素的關系被稱為作物病蟲害三角關系,簡稱病三角原理)[6]。而電子病歷中每條處方代表一個真實病蟲害發生“點”,包含“病原物—寄主—環境”三者及其相關關系的重要信息。通過電子病歷挖掘,可以多角度揭示作物病蟲害關聯關系及其變化規律。

目前生物醫學研究領域已有較為深入的探索[7],多項研究證明處方數據具有回溯性和可預測性及輔助構建臨床決策支持系統的能力[8]。但是,農業領域電子病歷應用還處于起步階段。PEMRs 作為一種未得到充分利用的多模態數據源,可以通過挖掘歷史數據的潛在價值,發現新知識,因此對其進行深入挖掘具有一定的研究意義。中國農業大學張領先團隊已在基于電子病歷的作物病蟲害智能診斷與處方推薦進行了初步探索[9],徐暢等[4,10]基于處方結構化信息出發,利用Stacking 集成學習和優化的LightGBM 實現了不同場景下番茄作物的病蟲害診斷;丁俊琦等[5,11]和張領先等[12]基于處方的非結構化信息利用深度學習模型實現了多種作物的處方推薦。然而,作物病蟲害發生原因復雜多變,各種因子相互關聯、相互影響。因此僅從統計數據來確定特征和病蟲害間更深層次的關系是一項困難的任務。如何高效地挖掘處方大數據并輔助后續作物病蟲害研究,目前還是亟待解決的問題。

知識圖譜、機器學習和預訓練語言模型等人工智能技術發展為解決上述現實難點和痛點帶來了新的契機,利用信息技術手段開展作物處方數據的管理和服務是一項前所未有的嘗試。早期作物病蟲害關聯挖掘最常見的兩種研究思路:一是利用Meta 等分析方法系統分析公開發表的研究[13];二是利用農業物聯網和傳感器采集溫濕度、風、光照等環境因子,結合機器學習模型探究區域范圍影響病蟲害的關鍵因素[14-15]。

知識圖譜(knowledge graph,KG)的本質是一個由大量實體及其之間的關系組成的大規模知識庫,用于可視化描述知識資源及其載體,挖掘、分析、構建、繪制和展示知識及它們之間的相互聯系[16]。知識圖譜作為一種語義網絡,具有可擴展性強、支持智能應用等優點[17-18]。隨著大數據和深度學習的發展,改善了人工開具處方效率低和成本高的問題,以BERT[19]為代表的預訓練語言模型可以利用大規模文本數據的自監督性質來構建預訓練任務,輔助抽取出良好的文本特征為文本分類提供了有效的方法[20],為基于處方文本數據進行診斷提供了可行性。同時以K-近鄰(K-nearest neighbor,KNN)為代表的機器學習算法可以快速從大量數據中挖掘能夠代表一類事物的規律,從而對事物進行預測和分類[21]。

針對上述問題,基于電子病歷中的結構化數據構建作物病蟲害知識圖譜,將復雜的數據可視化,利用半結構化數據和領域知識對知識圖譜進行增強,并存儲于Neo4j 圖數據庫。

進一步知識圖譜的挖掘可從以下3 個方面展開:高發病蟲害、病蟲害間的關聯關系、相似病蟲害發現,轉化為計算機領域的查找“熱”(popular)的節點,聯系鏈路發現、相似節點等關聯挖掘問題,利用GDS 與機器學習模型相結合解決。在此基礎上基于電子病歷中的非結構化文本數據(問診記錄),將病蟲害診斷轉化為文本分類問題,利用BERT 算法挖掘文本特征后利用CNN 實現文本分類,模擬植物醫生診斷思維模式[22]。

1 作物病蟲害知識圖譜的構建

1.1 作物病蟲害多源數據采集與預處理

本研究數據主要包括3 部分,分別是:北京市植物保護站提供的作物病蟲害處方數據,Plantwise 網站總結歸納的農業技術明白紙,百度百科、中國農業信息網、興農網以及蔬菜網等權威網站。

1.1.1 處方數據

2012 年,北京首次引入了國際應用生物科學中心植物診所的先進概念。植物醫生基于雙向信息流的原則和有害生物綜合防治(integrated pest management,IPM)原則為農戶提供個性化精準的作物病蟲害問診服務,問診過程形成標準的處方,通過3 級數據驗證程序后錄入數據庫。

1.1.2 農業技術明白紙

以動態數據為導向,處方數據庫每年更新,明白紙每年進行動態開發和修訂,共完成了覆蓋全市22 種主要作物在內的127 種病蟲害的明白紙,以農業防治和高效、低毒的化學農藥等綠色防控技術為主,形成了一套動態、綠色、高效的病蟲害解決方案庫,基本實現了對主要作物常見病蟲害問題的全覆蓋。

1.1.3 權威網站

選擇百度百科、中國農業信息網、興農網以及蔬菜網等權威網站,利用XPath 解析網頁提取結構化數據,作為知識圖譜的補充數據。

針對以上多源數據,將其劃分為結構化數據和文本數據兩部分,借助深度學習、知識計算和可視化等大數據分析技術進行預處理,并轉化為統一表示形式。對結構化數據進行數據清洗、描述統計、數據分析、圖表展示、數據編碼和特征提取等;對文本數據進行數據清洗、中文分詞、去停用詞、詞頻統計、特征處理和特征提取等。將預處理后的多源數據作為后續構建病蟲害知識圖譜、關聯挖掘及智能診斷的數據源,整體流程如圖1 所示。

圖1 基于電子病歷的作物病蟲害知識圖譜構建及關聯挖掘Figure 1 Construction of crop pest knowledge graph and correlation mining based on electronic medical records

1.2 知識圖譜構建整體流程

作物病蟲害知識圖譜的構建流程如圖2 所示,將作物病蟲害領域知識拓撲的構建歸納為數據獲取、本體層構建、實體層構建和知識加工。作物病蟲害領域知識圖譜的構建過程分為4 步:首先,根據領域知識、文獻閱讀和病蟲害三角原理初步設計本體層;第2 步通過實體識別、關系抽取等技術進行知識提取,從大量半結構化或非結構化的作物病蟲害數據中提取知識圖譜的元素,如實體和關系等,補充完善本體層;第3 步,通過知識融合消除歧義,并鏈接知識庫和作物病蟲害領域的實體,以此增強知識的邏輯和表達能力,并通過不斷的調整和融合,完成實體層構建。最后,借助本體推理完成作物病蟲害領域知識圖譜的構建。

圖2 作物病蟲害知識圖譜的構建流程Figure 2 Construction process of knowledge graph of crop pests and diseases

1.3 知識圖譜本體層構建

以常見的20 種作物病蟲害為主要研究對象,在充分參考主要數據源的基礎上,通過設計全面細粒度揭示病蟲害的本體概要模型,為進一步詳細設計本體模型奠定了基礎。

病蟲害領域本體概要模型圖如圖3 所示。作物病蟲害本體模型的設計與構建應與領域特點緊密結合,且該領域本體模型應具有可復用性。圖3 從核心描述對象——作物病蟲害出發,根據病蟲害三角原理為核心向外擴展。

圖3 作物病蟲害領域本體模型概要圖Figure 3 Summary of crop pest and disease domain ontology model

1.4 知識圖譜實體層構建

將已有實體層數據進行清洗整理,按照1.3 節中設計的本體層框架導入。但是對于多源異構數據,通常會出現在實際場景中對應多種表達方式,例如縮寫簡寫等,這種現象會導致融合后的數據存在大量冗余數據。

因此本研究進一步進行了實體消歧等數據處理操作。將清理整理后的數據,按照設計好的本體層框架導入,通過Neo4j 查詢語言Cypher 來檢索數據,得到知識圖譜部分內容如圖4 所示。

圖4 作物病蟲害知識圖譜部分展示Figure 4 Part of the crop pest knowledge graph

2 基于知識圖譜的關聯挖掘

2.1 作物病蟲害數據分析

基于知識圖譜,結合對處方數據的統計分析,探究各種實體(作物病蟲害、所屬區、作物、發育階段、受害部位、發生比重、主要癥狀、田間癥狀分布、診斷結果)之間的關系,利用Neo4j 圖數據庫實現高效的關聯關系查詢和挖掘,如圖5 所示。根據知識圖譜統計分析,管理者可以對北京市整體或區域施行宏觀把控,例如:順義區保護地蔬菜病蟲害以番茄晚疫病、灰霉病、黃瓜霜霉病、角斑病為主,發生程度為輕—中等發生,其中春季保護地番茄病毒病輕度發生;白粉病、葉霉病、瓜類角斑病、瓜類霜霉病在部分棚室中等發生;其他病蟲害偏輕發生。保護地蟲害輕—偏重發生,其中煙粉虱春季輕發生,夏秋季輕—中等發生;紅蜘蛛、薊馬、蚜蟲等小型害蟲中等至偏重發生。當前生產菜農預防意識增強,物理預防措施越來越完善。通過提前定植,錯過害蟲發生高峰期,生產上采取阻斷傳播途徑,創造不利于病源、蟲源繁殖和傳播環境條件,對防止病蟲害發生有一定作用。

圖5 作物病蟲害知識圖譜實體關系展示Figure 5 Demonstration of entity relationship of knowledge graph of pests and diseases

2.2 基于BERT-CNN 的文本分類算法

BERT 是采用Transformer Encoder block 進行連接的預訓練語言模型,Transformer 中的多頭注意力(Multi-Head)可以讓網絡捕捉更豐富的信息。BERT-CNN 模型是通過BERT 語言模型生成詞向量,即得到每句的文本表示后(768 維向量),進一步使用CNN 提取文本特征,最后將每條文本經過全連接層進行分類輸出,模型結構如圖6 所示。

圖6 BERT 算法框架Figure 6 Framework of BERT algorithm

輸入文本X=[X1,X2…Xn],經過輸入層得到向量形式E(X),在經過編碼層后,得到基于BERT模型的動態詞向量矩陣T=[T1,T2…Tn]。由于詞向量維度過大,需要對其進行降維,以達到提取特征的目的。

將BERT 的輸出Ti輸入CNN 的卷積層,卷積核在動態詞向量矩陣T=[T1,T2…Tn]上通過上下滑動來提取特征,其中卷積核的長度主要用于捕獲d個詞之間的關系,最后得到特征映射矩陣Ci=[C1,C2…Cn-d+1],計算公式如公式(1)所示。

利用CNN 的最大池化層提取主要的局部特征,得到文本特征Mi,最后輸入全連接層中。

為避免過擬合,通常會在全連接層后接一個Dropout,其作用是以一定的概率丟棄神經元,將其置為0。

通過softmax(Mi)實現文本分類,如公式(3)所示。

式中:Wi——卷積核的權重矩陣;

b——偏置項。

2.3 基于Neo4j 和機器學習的關聯挖掘

2.3.1 中心性與重要性——度中心性(Degree centrality)算法

度中心性是在網絡分析中刻畫節點中心性最直接的度量指標[23],一個節點的節點度越大就意味著這個節點的度中心性越高,由此可確定圖中的最重要節點。對于一個擁有g個節點的無向圖,節點i的度中心性是i與其他g-1 個節點的直接聯系總數,節點i的度中心度表示如公式(4)所示。

2.3.2 目標最短路徑——Dijkstra 算法

Dijkstra 算法是從一個頂點到其余各頂點的最短路徑算法。它是從起始點開始,采用貪心算法的策略,每次遍歷到起始點距離最近且未訪問過的頂點的鄰接節點,直到擴展到終點為止。輸入有向圖G=(V,E),起始頂點s∈V,并且每條邊e∈E的長度e均為非負值,輸出從s到v的最短路徑的長度dist(s,v)。

2.3.3 相似性——KNN 算法

GDS 的KNN 可以用于大型圖的全局推斷,根據圖中的接近程度,節點屬性,社區結構,重要性等來確定節點之間的相似性。KNN 的度量選擇由節點屬性類型驅動,選擇為jaccard 相似度進行相似度的計算,如公式(5)所示。

3 試驗分析

3.1 試驗環境及試驗數據

以Neo4j 社區版5.5.0 為圖數據庫構建和存儲知識圖譜,Neo4j 圖數據科學2.3 為Neo4j 圖形算法版本,以Cypher 形式進行關聯挖掘。BERT 相關模型使用NVIDIA Quadro P2000 GPU(5 GB)進行訓練,并基于Pytorch 的Python 深度學習庫實現,訓練共4 個Epoch(每個Epoch 約1 800 次迭代),batch_size 設置為16,學習率設置為3×10-5。本研究選取2019 年3 月25 日至2021 年6 月13 日的45 833 條數據作為電子病歷多模態數據的來源,并按照6:2:2 的比例劃分訓練集、驗證集和測試集。

3.2 評價指標

基于GDS 實現的算法采用AUCPR(area under the precision—recall curve),即“精度—召回率曲線下面積”為評價指標?;贐ERT 的病蟲害多分類模型采用準確率(Accuracy)以及宏平均(Macro avg)和加權平均(Weighted avg)的精確度(Precision)、召回率(Recall)和F1值(F1-score)的作為評價指標。

3.3 試驗結果與分析

3.3.1 基于度中心性算法的病蟲害“熱”點發現

在GDS 的應用中,需要計算外度(out-degree)中心性,即計算從一個節點發出的關系。表1 是使用度中心性來計算每種病蟲害使用的藥物處方數量,黃瓜霜霉病、黃瓜白粉病、蚜蟲、番茄晚疫病和粉虱作為病蟲害發生的“熱”點,可進一步基于此提前實現病蟲害預警或處方推薦。

表1 病蟲害“熱”點分析Table 1 Analysis of “popular” points of pests and diseases

3.3.2 基于Dijkstra 算法的病蟲害間目標最短路徑發現

基于構建的作物病蟲害知識圖譜,利用Dijkstra 算法可以挖掘存在聯系的實體的所有鏈路。例如,涉及同一病蟲害的癥狀可能不存在直接的關聯,但通過最短路徑的計算可以發現隱藏的聯系鏈路,相應挖掘出重要的癥狀,為相似病蟲害診斷提供關鍵路徑。由于Dijkstra 算法支持加權關系,在比較路徑時考慮了屬性信息。圖7(a)為使用Dijkstra 目標最短路徑算法尋找到的病蟲害“番茄灰霉病”和“番茄晚疫病”之間的最短路徑,圖7(b)為“薊馬”“粉虱”“白粉虱”和“煙粉虱”之間最短路徑。

圖7 病蟲害間的最短路徑圖Figure 7 A map of the shortest paths between pests and diseases

3.3.3 基于KNN 算法的相似病蟲害發現

在作物病蟲害知識圖譜應用中,首先利用快速隨機投影(fast random projection,FastRP)算法實現圖嵌入,進一步利用KNN 算法通過jaccard 計算某兩個病蟲害節點的相似性,將Top-K 限制為1,得到每個節點的最相似的配對,試驗的結果見表2。

表2 病蟲害相似度分析Table 2 Similarity analysis of pests and diseases

其中番茄晚疫病和黃瓜霜霉病以及粉虱和白粉虱都具有較高的相似性,高達0.8 以上。

3.3.4 基于BERT-CNN 的病蟲害診斷

基于BERT 挖掘的文本信息作為CNN 和RNN 分類模型的輸入,構建基于BERT-CNN 和BERTRNN 的多分類模型,實現作物病蟲害的精準診斷。

試驗結果如表3 所示,針對常見的20 種病蟲害,BERT-CNN 在我們的特定任務上表現效果最好,其綜合診斷準確率可以達到0.931 3,同時宏平均和加權平均的F1-score 達到0.876 5 和0.931 4,相比于原始的BERT 模型準確率、宏平均的F1-score 和加權平均的F1-score 分別提升0.48%、3.76%和0.57%,進一步說明能有效提取文本信息并實現分類。

表3 BERT、BERT-CNN 和BERT-RNN 的對比結果Table 3 Comparison of BERT,BERT-CNN and BERT-RNN

表4 展示了BERT-CNN 對20 種病蟲害診斷的詳細試驗結果,其中75%的病蟲害的診斷F1-score 可以達到80%以上,對于番茄根結線蟲的診斷效果最佳,F1-score 可以高達0.984 2。

表4 基于BERT-CNN 的病蟲害診斷結果Table 4 Diagnosis results based on BERT-CNN

對于表2 中相似度最高的番茄晚疫病和黃瓜霜霉病具有較好的區分能力,可以滿足實際的診斷需求。

4 結論

針對作物品種及病蟲害種類繁多、作物病蟲害與特征間的關聯關系復雜和研究數據獲取困難等難點,結合電子病歷多模態數據的特點,探究人工智能技術在作物病蟲害關聯挖掘中的應用。電子病歷的數據包括結構化和非結構化數據,根據不同模態數據的優勢對電子病歷進行深入挖掘,其中利用結構化數據構建知識圖譜,并結合非結構化數據和領域知識進行知識增強,可以直觀可視化病蟲害的概況。

為了挖掘潛在信息,進一步基于知識圖譜進行關聯挖掘,結合度中心性算法、Dijkstra 算法和KNN 算法實現“熱”點發現、最短路徑發現和相似病蟲害發現,為后續診斷和推薦應用提供支撐。在此基礎上,利用非結構化數據基于BERT-CNN 模型提取文本特征并實現病蟲害診斷,并與BERT 和BERT-RNN 進行比較。試驗證明BERT-CNN 模型的分類效果最優,對于常見的20 種病蟲害的綜合診斷準確率可以達到0.931 3。本文的主要創新點在于對電子病歷大數據進行數據挖掘并輔助作物病蟲害診斷,可以模擬植物醫生的思維模式實現智能化服務,輔助早期智能決策與主動防控。未來將構建多模態數據集開展后續研究。

猜你喜歡
病歷圖譜處方
強迫癥病歷簿
繪一張成長圖譜
“大數的認識”的診斷病歷
人間處方
補腎強身片UPLC指紋圖譜
為何要公開全部病歷?
解決因病致貧 大小“處方”共用
主動對接你思維的知識圖譜
村醫未寫病歷,誰之過?
處方
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合