陳川
(中國計量科學研究院 北京市 100029)
隨著對外開放的飛速發(fā)展,各個國家之間進出口貿易不斷增加,牲畜類的全球流動也日益頻繁。外來物種的進入經常攜帶著各種已知或未知的傳染疾病,如果未被及時發(fā)現(xiàn),其擴散速度以及擴散范圍將難以得到有效控制,短時間內就會對人們的生活甚至社會的發(fā)展造成極大的影響。因此,準確高效的疫情風險評估與預警預報,對保護人民的生命財產安全、維護國家與社會的發(fā)展有著越來越重大意義,其重要性不言而喻。
為此,本研究從科學預防的角度出發(fā),建立了基于高并發(fā)數(shù)據(jù)庫的專家推薦系統(tǒng)。本系統(tǒng)采用半定量評估方法,根據(jù)明確的評估標準給出評分,從而保持評估過程的透明度和客觀性。組織專家?guī)斓膶<覙嫿ㄔu估因素的層次結構,并根據(jù)層次分析法對各因素進行加權,從而確定調查問卷的基本框架。通過上級機構下達風險評估任務,再由秘書處上傳相關資料。同時組建專家組,邀請專家參加風險評估,由專家對每個風險因子進行風險性評分并對把握程度進行自評。最后,系統(tǒng)生成評估結果匯總至秘書處,生成風險評估報告。
如圖 1 所示,該系統(tǒng)主要由四部分組成:客戶端(專家打分平臺)、由秘書處和超級管理員組成的后臺管理系統(tǒng)、云平臺和數(shù)據(jù)庫。系統(tǒng)主要功能包括:上傳相關資料,并賦予專家組前端權限,對疫情因子打分,經過云平臺的算法處理后,獲取因子權重同時將因子權重值存儲到數(shù)據(jù)庫中。在對疾病進行風險評估時,在危害確認后,具有相應權限的秘書處根據(jù)疫情特征選擇相關研究領域,經云平臺處理后篩選出合適的專家,組建專家組,并進行層次因子建模,對合適的專家組下達任務。同時,秘書處上傳疾病相關資料,發(fā)送到前端(客戶端)并發(fā)送給專家,專家填寫問卷,提交至數(shù)據(jù)庫更新存儲,后臺訪問數(shù)據(jù)庫獲得問卷情況,經過云平臺數(shù)據(jù)處理,自動獲得分析報告。
該模塊的程序邏輯如圖 2 所示。管理員在專家 信息管理模塊進行添加、刪除、查看、編輯操作。在添加模塊中,可以添加新的專家,輸入專家用戶名與初始密碼,通過云平臺處理后保存至數(shù)據(jù)庫中;專家通過秘書處提供的用戶名與初始密碼首次登錄客戶端,以完成后續(xù)操作。在刪除模塊中,秘書處可以刪除專家賬號。在查看模塊中,可以查看專家的信息,包括基本信息、聯(lián)系方式、研究領域等。在編輯模塊中,可以編輯專家信息與專家權限。專家信息管理模塊存儲了專家在系統(tǒng)中的基本信息、研究領域、聯(lián)系方式以及前端各個模塊的操作權限,其中包括了疫情風險評分模塊、因子權重確定等模塊的權限。
圖1:專家推薦系統(tǒng)組織架構圖
圖2:專家信息管理模塊流程圖
根據(jù)相關疫情資料,層次結構建模模塊重新組織為一個等級結構。將決策的目標、考慮的因素和決策對象按它們之間的相互關系分為最高層、中間層和最低層,并繪出層次結構圖,以便于專家的打分。具體層次分析公式為:
其中:w 為分值權重,si表示專家打分分數(shù),表示為專家分值和權重的累計和均值。
如圖3,風險評估報告生成模塊將各個專家對于每次任務當中對疾病因子的打分做匯總處理。按照系統(tǒng)報告需求,統(tǒng)計各個模塊所需要的相關信息。按照一定的算法進行相應的自動化處理,并將處理結果可視化到平臺頁面。最后,可根據(jù)相關的層次分析算法生成風險評估報告。
任務下達模塊具體的流程為在后臺確認危害之后,根據(jù)疫情特征,選擇好相應的因子模板,推薦出相對應領域各個專家,組建相應的專家組,在客戶端提示待辦信息。建議留言查看模塊用于查看專家的留言。風險評估報告模塊將專家評分進行匯總,并將匯總表生成 Excel 文件,同時將評分統(tǒng)計結果填入原始的風險評估報告模板中,生成PDF 形式的風險評估報告,以便于后續(xù)查看。
數(shù)據(jù)庫數(shù)據(jù)表主要關系如圖 4 所示,所有的疫 情因子構成一張表格,在所有因子表中提取因子分層,獲取因子分層表。因子分層表由三部分組成,分別是所有病種表、一層因子表、二層因子表。同時,在因子分層后計算出分層因子的權重,從而獲取分層因子權重存儲表,以便專家打分。專家打分后形成專家評分表和專家打分日志表。
另外,為了解決多用戶高并發(fā)給數(shù)據(jù)庫帶來的壓力,本系統(tǒng)采用了如下方法進行改進:
(1)頁面靜態(tài)化 - 用戶可以直接獲取頁面,不需要與后臺數(shù)據(jù)交互,節(jié)省二次加載時間。
(2)緩存機制 - 第一次獲取數(shù)據(jù)時,后臺直接從數(shù)據(jù)庫提取,然后將提取的數(shù)據(jù)保存至緩存中,從而保證了后續(xù)相同數(shù)據(jù)可直接從緩存中提取。由于內存操作遠快于 IO 操作,因此大量地節(jié)省了數(shù)據(jù)搜索時間,同時通過機制維持緩存和數(shù)據(jù)庫的一致性。
(3)批量讀取 - 在多個用戶同時提交的高并發(fā) 情況下,把多個請求的查詢合并后同時進行,從而減少了數(shù)據(jù)庫的訪問次數(shù),優(yōu)化了查詢時間。
(4)延遲修改 - 在高并發(fā)情況下,把多次修改請求先保存至緩存中,然后定時將緩存中的數(shù)據(jù)保存到數(shù)據(jù)庫中,但其帶來的風險是可能會由于斷電丟失緩存中的數(shù)據(jù)。
(5)索引應用 - 索引可以看作是特殊的緩存, 使用索引可以快速定位到目標數(shù)據(jù),大大降低了搜索時間的復雜度。
為了驗證系統(tǒng)的可靠性,本研究針對不同用戶群體,仿真模擬了真實疫情爆發(fā)情況下專家推薦系統(tǒng)的一整套操作流程。其中,在多個用戶實時操作該系統(tǒng)的過程中,系統(tǒng)能夠通過緩存機制,快速地處理多用戶高并發(fā)數(shù)據(jù)存儲,查詢和修改等操作。其次,專家推薦模塊能夠針對疫情實際需求快速推薦出與之對應相關專家,實現(xiàn)專家與疫情的專業(yè)匹配。最后,系統(tǒng)能夠匯總專家評判結果,自動生成疫情分析報告。
本文設計的基于高并發(fā)數(shù)據(jù)庫的專家推薦系統(tǒng),在本質上提高了疫情分析的準確率,能夠在防止疫情加劇、預防疫情發(fā)生、根治疫情等方面都起到積極有效的作用。同時,項目本身也方便了工作人員在資料整理、人員調動、資源分配、任務下達等流程的操作,在實際應用中也大大縮減了人力的工作量,使得工作自動化、可視化以及可操作化。
圖3:風險評估報告生成模塊流程圖
圖4:數(shù)據(jù)結構設計圖