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