徐金波 潘建中 楊帆

摘要:充分發揮中醫藥特色優勢,大力拓展中醫藥健康服務與互聯網、AI技術融合的廣度和深度,對創新中醫藥健康服務模式,釋放發展潛力和活力,為人民群眾提供全方位全周期健康服務具有重要意義。
關鍵詞:中醫問診;AI技術;探討
一、研究背景
國家中醫藥管理局《關于推進中醫藥健康服務與互聯網融合發展的指導意見》中明確提出,未來中醫藥發展的主要任務是優化中醫醫療服務流程、創新中醫醫療服務模式、推進中醫遠程醫療服務;鼓勵企業和相關部門依照國家有關法律法規,利用互聯網、大數據等技術,規范開展互聯網中醫診療活動;支持基于標準協議的滿足中醫臨床要求、數據互聯互通、高度共享的區域中醫診療中心信息化建設;加快推動中醫電子病歷和電子健康檔案的連續記錄及醫療機構之間的信息共享,構建中醫臨床應用知識庫和患者診療信息庫;支持人工智能輔助診斷、多種生物特征識別、中醫專家系統等建設,開展互聯網延伸醫囑等服務應用。探索和推廣“智慧藥房”建設;鼓勵醫聯體相關醫院管理、醫療服務等信息平臺建設,推進醫聯體內和同城同級中醫醫療機構的檢查檢驗結果互認,實現醫聯體內診療信息互聯互通。加快基層醫療衛生機構中醫診療區(中醫館)健康信息平臺建設,探索移動終端、智能終端的研發與應用。
就目前而言,中醫診療方式還比較傳統,AI、互聯網等技術的應用還較為缺乏。國家產業政策的支持,為“中醫+AI” 模式的推廣提供了堅實的基礎,為中醫AI技術的研發起到極大的促進作用。
本文主要圍繞AI中醫智能問診技術的研究開發展開一些探討,以期起到拋磚引玉的作用,
二、中醫智能問診技術的基礎架構設計
業界共識:沒有知識的機器不可能實現認知智能想要實現AI的精確自動問診。因此,研發AI中醫智能問診技術必須要有一個完整的知識圖譜,以此作為機器學習的支撐。所以我們的構想是實現一個精準的中醫知識圖譜架構。我們對中醫知識圖譜定義了一個四維的框架。具體設計如下:
(1)第一維框架
一維——由具有獨立語義概念且不可拆分的單一語義成分所構成的知識元(線)【基于條文拆解而構建形成。即基于既有知識(條文)所框定的不可再分解的最小知識單元。】(如:太陽病提綱證(線)、方劑(線)、基礎病機(線)。包涵:單一癥狀、治法、藥物、方名(點));
補充條件:主語、謂語唯一性。
(2)第二維框架
二維——由兩個及以上同屬一個三維知識體組合的知識元構建而成的知識體(面)【基于既有知識(條文)串聯而構成的可獨立表達主題不可再分解的知識單元】(如:證候(面)、復合病機(面)、方證(面)、病證(面)、藥證(面)。包涵:方劑(線))。
(3)第三維框架
三維——由多個知識體組合構建而成且相對穩定的復合信息(空間),不可疊加 不能構成一個知識(表達一個獨立的完整信息),(如:疾病(空間)、六病、雜病、類方(方陣理論))【基于既有知識(條文)若疊加后無相應的已知知識體系來概括和認知該疊加信息,則認定該知識體系屬于頂層知識體,如濕病、暍病疊加后,無相應的已知概念進行定義。如太陽病、陽明病疊加后可由已知太陽陽明合病概念所定義,則太陽陽明合病重新作為獨立頂層知識體而存在。
(4)第四維框架
四維——可隨時間推移進行更替的復合信息(時間)(邏輯推演、病傳、預后預測(時間))
我們構想能通過這樣一個多維知識體構建模式,可謂知識圖譜嵌入轉換為深度學習的多維向量,奠定良好的數據結構基礎。
三、技術選型
1、數據庫選型
數據庫目前使用的是關系型數據庫neo4j作為底層數據的存儲。Neo4j是一個高性能的NOSQL圖形數據庫,它將結構化數據存儲在網絡上而不是表中。它是一個嵌入式的、基于磁盤的、具備完全的事務特性的Java持久化引擎,但是它將結構化數據存儲在網絡(從數學角度叫做圖)上而不是表中。Neo4j也可以被看作是一個高性能的圖引擎,該引擎具有成熟數據庫的所有特性。所以使用neo4j來作為我們知識圖譜的底層數據庫是非常合適的,對于我們發現經方、藥材、病機等關系也是事半功倍的。
2、底層邏輯選型
邏輯層則使用java作為編寫的語言,通過spring boot 框架對neo4j 及其穩定的支持 作為我們對業務及數據處理的工具。
機器學習目前我們采用python來作為首要的開發語言。因為Python上有相當成熟的機器學習框架或工具庫。目前我們選擇Tensorflow 和 Keras 作為我們首選的機器學習框架。
3、圖譜實現
(1)基礎節點
首先我們以消渴為目標來構造一個基礎的知識網絡。
我們整理了傷寒論及其他典籍條文,總結了一個初步的結構化數據表并導入到了neo4j中。并且對于基礎節點構建出三元組關系作為節點與節點之間的聯系。后面又引入了病機的概念,進一步增加其圖譜的關系構成。
Equation 3 消渴知識圖譜
(2)社區發現算法分析癥狀
對于圖譜節點之間的關系,我們經過分析最終選擇社區發現算法來進行分析。
典型的社區發現算法有Louvain、Label Propagation、Weakly Connected Components等,經過嘗試最終選擇louvain作為我們的社區分區算法
Louvain方法是一種用于檢測大型網絡中的社區的算法。它最大化了每個社區的模塊化評分,其中模塊化量化了節點向社區的分配質量。Louvain算法是一種分層聚類算法,該算法將社區遞歸合并到單個節點中,并在壓縮圖上執行模塊化聚類。最后通過模塊度來劃分不同的社區
對節點數據分析時,首先對癥狀的節點單獨創建,并建立一定的規則對不同的關系進行加權。在通過打分的形式篩選出一定的社區中心節點。最終將全部癥狀節點進行分區,來展現他們之間的關系。
(3)相似度分析
通過對癥狀的分析,我們得到了一個癥狀關系的社區圖譜,用以支撐我們后續開發的機器學習部分所需的數據
知識圖譜屬于需要建立在海量數據之上的一種應用,在構建知識圖譜的圖關系時,基礎數據來自很多不同的數據源。常見的數據源有抓取的公開信息、業務數據、三方數據、用戶授權的數據等。這個時候,需要進行的工作就是實體消歧,這樣才能夠將實體和關系成功的創建。
我們即針對古籍方劑也做了一定的分析,用余弦相似度算法進行數據分析,發現藥方及藥物之間的聯系。
余弦相似度是n維空間中兩個n維向量之間角度的余弦。它是兩個向量的點積除以兩個向量的長度(或幅度)的乘積。具體的計算方式可參見下面的公式:
通過余弦相似度的分析 我們最終得到了藥方之間相似度分數的數據。
4、后續開發
目前我們已經擁有了大量的特征數據,后面的開發就是基于我們大量數據的導入之后。再進行數據的一系列清洗,將數據歸一化、標準化,在通過我們整理出的數據,進行特征提取。最終構建模型 建立訓練數據集 進行機器學習訓練 后面按照結果來評估出最適合我們中醫的經方的模型 來實現AI問診。
參考文獻:
[1]王憶勤,郭睿,顏建軍等 ? ?基于多標記學習的中醫問診智能系統[A] 中華中醫藥學會,2011(10):6.
[2]國家中醫藥管理局《關于推進中醫藥健康服務與互聯網融合發展的指導意見》
杭州甘之草科技有限公司