付子軒 ,周鵬, ,汪鑫 ,任海燕 ,羅靜靜 ,郭義 王西墨
1.天津大學(xué)醫(yī)學(xué)工程與轉(zhuǎn)化醫(yī)學(xué)研究院,天津 300072; 2.天津大學(xué)精密儀器與光電子工程學(xué)院,天津 300072;3.北京郵電大學(xué)計算機學(xué)院,北京 100876; 4.天津中醫(yī)藥大學(xué)中醫(yī)學(xué)院,天津 301617;5.天津市天中依脈科技開發(fā)有限公司,天津 300384; 6.復(fù)旦大學(xué)工程與應(yīng)用技術(shù)研究院,上海 200433;7.天津市中西醫(yī)結(jié)合醫(yī)院,天津 300102
中醫(yī)辨證論治通過望、聞、問、切收集病情資料,四診合參,以得到準(zhǔn)確的病情診斷。使用計算機臨床輔助決策支持可以提高臨床診療的準(zhǔn)確性,減輕臨床負(fù)擔(dān),促進(jìn)中醫(yī)臨床應(yīng)用規(guī)范化。知識圖譜將多源多領(lǐng)域數(shù)據(jù)以語義網(wǎng)絡(luò)的形式展示其連接關(guān)系,從而實現(xiàn)跨領(lǐng)域的建模和查詢[1],并允許按需進(jìn)一步擴展數(shù)據(jù)而不影響已有的數(shù)據(jù)結(jié)構(gòu)。其在中醫(yī)臨床、中醫(yī)基礎(chǔ)、中醫(yī)養(yǎng)生保健方面有著廣泛的應(yīng)用[2-3],包括語義檢索[4]、智能問答[5]、決策支持[6]等,同時為中醫(yī)智能化應(yīng)用奠定了堅實的基礎(chǔ)。
知識圖譜通常以實體-關(guān)系-實體的三元組形式表達(dá)知識,通過已知事實可以推理完成新的事實、新的關(guān)系、新的規(guī)則,完成屬性補全、關(guān)系預(yù)測、錯誤檢測、問句擴展、語義理解等任務(wù)。鏈接預(yù)測作為知識推理過程的一個重要環(huán)節(jié),是通過網(wǎng)絡(luò)中已知節(jié)點的信息和連接關(guān)系,預(yù)測網(wǎng)絡(luò)中2個節(jié)點之間存在連接的可能性,目前是知識圖譜中重要的研究方向。袁華兵等[7]提出一種基于多路徑的鏈接預(yù)測方法,能夠在隱式空間中運用低維表示學(xué)習(xí)篩選不同路徑的顯式特征。羊艷玲等[8]提出一種新的歸納推理模型,利用知識圖譜中實體之間的語義關(guān)系,實現(xiàn)一個關(guān)系相關(guān)的網(wǎng)絡(luò)學(xué)習(xí)不同模式的歸納鏈接預(yù)測。上述的鏈接預(yù)測方法是對知識圖譜中語義關(guān)系路徑的特征研究,以完成知識圖譜補全任務(wù),但是無法處理多對多的復(fù)雜關(guān)系路徑的關(guān)系預(yù)測。
針對這個問題,本研究以中醫(yī)臟腑辨證為研究背景,通過構(gòu)建知識圖譜并使用基于知識圖譜的知識推理算法,提出基于規(guī)則+馬爾可夫邏輯網(wǎng)(MLN)的多路數(shù)據(jù)鏈接預(yù)測,以實現(xiàn)輸入癥狀、舌象、面象、脈象等數(shù)據(jù)推理得到相應(yīng)證候的功能。通過收集數(shù)據(jù)完成知識抽取任務(wù),并構(gòu)建臟腑辨證知識圖譜;實現(xiàn)基于改進(jìn)規(guī)則的知識推理,同時完成基于MLN的權(quán)重訓(xùn)練,從而根據(jù)知識圖譜實體連接的權(quán)重完成多路鏈接預(yù)測推理任務(wù)。
1.1.1 知識圖譜架構(gòu)
知識圖譜是以語義網(wǎng)絡(luò)為核心實現(xiàn)圖的知識表示與組織方法[9],其基本架構(gòu)從邏輯上分為數(shù)據(jù)層和模式層。模式層是知識圖譜的骨干框架,通常為本體庫等高度抽象概括的知識;數(shù)據(jù)層是主體內(nèi)容,海量知識通過實體-關(guān)系-實體的三元組形式存儲于圖數(shù)據(jù)庫,構(gòu)成實體關(guān)系網(wǎng)絡(luò)。本研究通過收集中醫(yī)臟腑辨證數(shù)據(jù)完成知識抽取任務(wù),并構(gòu)建基于Neo4j圖數(shù)據(jù)庫的知識圖譜,以完成中醫(yī)證候與四診數(shù)據(jù)的多路鏈接預(yù)測推理。在中醫(yī)臟腑辨證的應(yīng)用中根據(jù)癥狀、舌象、面象、脈象的四診數(shù)據(jù)推理得到病例所屬的中醫(yī)證候,以證候推薦度的數(shù)值形式體現(xiàn),數(shù)值越高表示知識圖譜中該證候與該病歷數(shù)據(jù)的相似度越高。
1.1.2 數(shù)據(jù)來源
依據(jù)《中醫(yī)臨床診療指南》[10]、《中醫(yī)診斷學(xué)》[11]、《方劑學(xué)》[12],收集臟腑辨證相關(guān)的非結(jié)構(gòu)化文本數(shù)據(jù)。
1.1.3 知識抽取
數(shù)據(jù)和知識信息是構(gòu)建知識圖譜的數(shù)據(jù)基礎(chǔ),通過對收集的非結(jié)構(gòu)化文本數(shù)據(jù)完成實體識別、實體分類、知識去重、實體對齊等知識抽取[13]任務(wù),將處理后的數(shù)據(jù)存儲在不同的Excel表格中,形成統(tǒng)一標(biāo)準(zhǔn)的知識圖譜數(shù)據(jù)源。①實體識別:根據(jù)收集到的非結(jié)構(gòu)化文本數(shù)據(jù),對中醫(yī)臟腑辨證相關(guān)的實體進(jìn)行識別,并填充實體的屬性(編碼、名稱、定義、來源等)。②實體分類:實體包括證候、癥狀、面象、舌象、脈象、臟腑、療法、方藥共8類,并分別向所在實體所在類別填充數(shù)據(jù),如對“癥狀”實體填充數(shù)據(jù)“腹痛”“惡心”“潮熱”等。③知識去重和實體對齊:實體抽取過程中對名字重復(fù)或釋義相同的實體進(jìn)行合并去重,如將癥狀“心煩”和“煩躁不寧”合并為“心煩不寧”。④關(guān)系抽?。焊鶕?jù)不同的實體屬性及實體間的關(guān)系,抽取到語義關(guān)系包括包含、表現(xiàn)、治療、用于等11類。
1.2.1 基于傳統(tǒng)規(guī)則的鏈接預(yù)測推理
基于知識圖譜進(jìn)行鏈接預(yù)測知識推理是使用機器學(xué)習(xí)方法根據(jù)現(xiàn)有的知識自動識別錯誤補全知識圖譜,推斷知識圖譜中實體之間存在的關(guān)系。知識推理主要包括基于規(guī)則的知識推理、基于分布式表示的知識推理、基于神經(jīng)網(wǎng)絡(luò)的知識推理[14]?;趥鹘y(tǒng)規(guī)則的鏈接預(yù)測推理是根據(jù)知識圖譜實體之間的連接規(guī)則或統(tǒng)計特征,實現(xiàn)已有數(shù)據(jù)的自動識別錯誤知識并補全知識圖譜,完成知識推理任務(wù)。
知識圖譜中的規(guī)則主要是以r(ei,ej)的形式表示實體之間的關(guān)系,其中r表示實體ei和ej的連接關(guān)系。基于傳統(tǒng)規(guī)則的知識推理在中醫(yī)臟腑辨證的推理應(yīng)用是在式(1)的基礎(chǔ)上根據(jù)知識圖譜的實體關(guān)系連接,完成中醫(yī)證候與疾病、癥狀、舌象、脈象四診數(shù)據(jù)之間的規(guī)則推理預(yù)測,以實現(xiàn)多路鏈接預(yù)測算法在中醫(yī)領(lǐng)域的應(yīng)用。
1.2.2 基于改進(jìn)規(guī)則的知識推理
根據(jù)構(gòu)建的知識圖譜的連接規(guī)則,與廣義貼進(jìn)度[15]公式完成證候與四診數(shù)據(jù)之間的鏈接預(yù)測推理。將癥狀、面象、舌象、脈象數(shù)據(jù)相結(jié)合,如果證候在知識圖譜中與四診數(shù)據(jù)全部或部分連接,則根據(jù)證候貼進(jìn)度[16]計算得到該證候的推薦度。
根據(jù)式(2)計算的T(M+i,M0)值進(jìn)行相似性判別。
式中,M+i為知識圖譜中第i個證候的四診數(shù)據(jù)集合(i=1,2…),M0為當(dāng)前輸入的四診數(shù)據(jù)集合,αi為四診數(shù)據(jù)匹配的權(quán)值系數(shù)。經(jīng)過與相關(guān)中醫(yī)臨床專家的討論,初步設(shè)定的權(quán)重系數(shù):癥狀α1=0.65,舌象和面象α2=0.20,脈象α3=0.15。知識圖譜對應(yīng)關(guān)系見表1。如果存在同時與四診數(shù)據(jù)連接的證候,即則該證候的推薦度為1。否則,則
表1 知識圖譜證候與癥狀關(guān)系連接示例
1.2.3 馬爾可夫邏輯網(wǎng)訓(xùn)練權(quán)重
一階邏輯知識庫可以定義為一系列建立在一組可能世界的集合上的硬規(guī)則,如果一個世界違反了一個規(guī)則,那么這個規(guī)則在這個世界中存在的概率是0。MLN的基本思想是對于這些硬規(guī)則有一定放松,如果一個世界違反了一個規(guī)則,世界存在的可能性就會降低,但不是不存在。一個世界違法的規(guī)則越少,存在的可能性就越大。為每個規(guī)則添加特定的權(quán)重,用來反映符合規(guī)則的可能世界的約束力。如果規(guī)則的權(quán)重越大,滿足規(guī)則和不滿足規(guī)則的兩個世界之間的差異就越大。
MLN中,L由1組二元項(Fi,ωi)組成,F(xiàn)i表示一階邏輯規(guī)則,ωi是表示權(quán)重的實數(shù),這組二元項與1組有限常量集C={c1,c2,…,cn}定義了一個馬爾可夫網(wǎng)ML,C[17]。①L中任意閉原子都對應(yīng)馬爾可夫網(wǎng)中的一個二值節(jié)點0或1,如果閉原子為真,對應(yīng)的二值節(jié)點為1,如果為假,對應(yīng)的二值節(jié)點為0。②L中任意閉規(guī)則都對應(yīng)一個特征值,特征值的權(quán)重為規(guī)則Fi對應(yīng)的權(quán)重ωi。如果閉規(guī)則為真,對應(yīng)的特征值為1,如果閉規(guī)則為假,對應(yīng)的特征值為0。
馬爾可夫網(wǎng)由一個無向圖G和一組定義在G上的勢函數(shù)?k組成,表示變量集合X=(X1,X2,…Xn)?x的聯(lián)合分布模型。其中G中的每個團都對應(yīng)1個表示團的狀態(tài)的勢函數(shù)?k,馬爾科夫網(wǎng)代表的變量集的聯(lián)合分布表示為式(3)。
x{k}表示馬爾可夫網(wǎng)中第k個團中所有變量的取值狀態(tài),其中,Z=∑x?X∏k?k(x{k})表示歸一化因子。如果把每個團的勢函數(shù)表示為指數(shù)函數(shù),指數(shù)項為對應(yīng)團的加權(quán)特征量,得到式(4)的概率分布。
式中,ωj表示權(quán)重,fj(x)?(0,1)表示特征函數(shù),在馬爾可夫網(wǎng)中,最常用的近似推理算法是馬爾可夫鏈蒙特克洛(MCMC)方法的吉布斯采樣(Gibbs sampling),即在給定的1個變量的馬爾可夫覆蓋條件下,使用概率P(x|MB(x))進(jìn)行采樣。MB(x)是變量x的馬爾可夫覆蓋,在馬爾可夫網(wǎng)中表示變量x的所有鄰居節(jié)點。
在馬爾可夫網(wǎng)的2個節(jié)點之間存在1條邊,表示對應(yīng)的謂詞一起出現(xiàn)在L中1個公式中。例如:包含式(5)的MLN,通過將公式應(yīng)用到A和B上,產(chǎn)生閉馬爾可夫網(wǎng)。
作為MLN的加權(quán)特征捕獲了有效的統(tǒng)計規(guī)律,實際上代表了一個標(biāo)準(zhǔn)的社交網(wǎng)絡(luò)模型[18],將MLN應(yīng)用到A和B上得到社交網(wǎng)絡(luò)模型,見圖1。
圖1 MLN應(yīng)用到A和B上的社交網(wǎng)絡(luò)模型
對于“燥邪犯肺證”證候,根據(jù)知識圖譜證候與癥狀的連接關(guān)系構(gòu)建網(wǎng)絡(luò)模型,實現(xiàn)權(quán)重系數(shù)訓(xùn)練。權(quán)重系數(shù)表示癥狀在該證候下的約束力,如果規(guī)則的權(quán)重越大,證候和癥狀之間存在連接的可能性越大。通過MLN完成模型訓(xùn)練,使用吉布斯采樣完成權(quán)重推理,權(quán)重訓(xùn)練結(jié)果見表2。
表2 證候-癥狀權(quán)重訓(xùn)練結(jié)果
1.2.4 基于規(guī)則+MLN的多路鏈接預(yù)測推理模型
根據(jù)臟腑辨證知識圖譜中的已知規(guī)則,本研究將基于改進(jìn)規(guī)則的知識推理與MLN訓(xùn)練權(quán)重相結(jié)合,提出基于規(guī)則+MLN的多路鏈接預(yù)測推理算法,實現(xiàn)中醫(yī)臟腑辨證推理。推理步驟如下。算法流程見圖2。
圖2 基于規(guī)則+MLN的多路鏈接預(yù)測模型流程
步驟1:輸入病例的四診數(shù)據(jù),判斷臟腑辨證知識圖譜中是否存在與癥狀、面象、舌象、脈象等數(shù)據(jù)連接的證候節(jié)點。
步驟2:通過自定義的規(guī)則,使用證候推薦度(見式2)計算每個證候的推薦度,將推薦度最大的證候作為該病歷所屬證候。設(shè)置權(quán)重初始值為癥狀0.65、舌面象0.20、脈象0.15。
步驟3:定義MLN訓(xùn)練權(quán)重的數(shù)據(jù)data(知識圖譜中證候與癥狀的連接關(guān)系)、謂詞命名predicate為Syndrome(entity)、 Symptom(entity)、 Syndrome_Symptom(entity,entity),一階邏輯形式表示的事實formulas為Syndrome_Symptom(x,y)?(Syndrome(x)?Symptom(y))。模型訓(xùn)練方法的參數(shù)選擇為MLN的StandardGrammar、FirstOrderLogic方法。
步驟4:模型訓(xùn)練完成后,使用Gibbs sampling進(jìn)行權(quán)重推理。
步驟5:將修正后的權(quán)重更新到步驟2的權(quán)重中,按照證候推薦度算法計算得到證候推理結(jié)果。
通過知識抽取得到的實體和關(guān)系構(gòu)建臟腑辨證知識圖譜本體層(見圖3),向本體層填充數(shù)據(jù)構(gòu)建實體層,實體節(jié)點個數(shù)共1 263個,關(guān)系個數(shù)共4 105個。
圖3 臟腑辨證知識圖譜本體層
知識圖譜是進(jìn)行鏈接預(yù)測知識推理的核心,根據(jù)本體層的實體和關(guān)系,將收集的數(shù)據(jù)導(dǎo)入Neo4j圖數(shù)據(jù)庫,構(gòu)建臟腑辨證知識圖譜。實體類型及個數(shù)見表3,關(guān)系類型及個數(shù)見表4。
表3 臟腑辨證知識圖譜實體類型及個數(shù)
通過查詢知識圖譜實體之間的語義關(guān)系路徑,可以實現(xiàn)數(shù)據(jù)的知識查詢和可視化顯示。如查詢“燥邪犯肺證”證候?qū)?yīng)的癥狀關(guān)系,結(jié)果見圖4。在Neo4j圖數(shù)據(jù)庫中完成知識圖譜的可視化及實體和關(guān)系的語義查詢,為實現(xiàn)鏈接預(yù)測知識推理提供數(shù)據(jù)支持。
圖4 臟腑辨證知識圖譜“燥邪犯肺證”對應(yīng)癥狀關(guān)系
在IntelliJ IDEA 2018環(huán)境下進(jìn)行基于改進(jìn)規(guī)則的知識推理,在PyCharm 2019環(huán)境下使用pracmln庫函數(shù)進(jìn)行基于MLN的權(quán)重訓(xùn)練,將訓(xùn)練得到的權(quán)重結(jié)果保存到MySQL數(shù)據(jù)庫中;使用SpringBoot框架開發(fā)中醫(yī)臟腑辨證應(yīng)用,layui框架開發(fā)前端界面。
采用基于規(guī)則+MLN的多路鏈接預(yù)測推理模型,輸入任意個數(shù)四診數(shù)據(jù),輸出證候推薦度最高的前5個證候。如輸入癥狀干咳無痰、痰少而黏、難以咳出、胸痛、痰中帶血、咯血、口唇舌鼻咽干燥、惡寒發(fā)熱、少汗、無汗,舌象燥苔、薄苔,脈象浮、數(shù)、緊,結(jié)果見表5。將燥邪犯肺證作為該病例證候推薦結(jié)果。
表5 基于規(guī)則+MLN的多路鏈接預(yù)測模型證候推理結(jié)果舉例
根據(jù)四診數(shù)據(jù)對中醫(yī)臟腑辨證的70個證候的相關(guān)病例實現(xiàn)證候推理,推薦度最高的證候結(jié)果見表6。
表6 臟腑辨證推薦結(jié)果
根據(jù)證候與四診數(shù)據(jù)鏈接預(yù)測推理結(jié)果,計算鏈接預(yù)測評價指標(biāo)受試者工作特征曲線下面積(AUC)、精確度、排序分[19],見表7。
表7 鏈接預(yù)測評價指標(biāo)結(jié)果
AUC:預(yù)測算法對每個未知節(jié)點計算出來代表存在的可能性的值,未知節(jié)點包括測試數(shù)據(jù)中存在和不存在的節(jié)點,將兩者分?jǐn)?shù)進(jìn)行比較。獨立比較n次,結(jié)果測試集中的節(jié)點分?jǐn)?shù)大于不存在的節(jié)點分?jǐn)?shù)有n1次,兩分?jǐn)?shù)相等有n2次。AUC=(n1+0.5n2)/n。AUC在整體上衡量鏈接預(yù)測算法的準(zhǔn)確性,算法經(jīng)訓(xùn)練后會在知識圖譜網(wǎng)絡(luò)中得到每對節(jié)點的相似值,>0.5表示算法優(yōu)于隨機選擇算法的程度[19]。
精確度:根據(jù)節(jié)點對之間出現(xiàn)連接的可能性大小排序,在前L個預(yù)測節(jié)點中預(yù)測準(zhǔn)確的比例。如果有m個預(yù)測準(zhǔn)確,排在前L的節(jié)點中有m個在測試集中,定義精確度=m/L。
排序分:考慮了測試集中的節(jié)點在最終排序中的位置,H為未知節(jié)點的集合,re∈Ep表示測試節(jié)點e在預(yù)測算法之后節(jié)點排序中的排名,測試節(jié)點的排序分為通過遍歷所有在測試集的節(jié)點,計算得到的排序分值越小表明算法的預(yù)測效果越好。RS=
基于傳統(tǒng)規(guī)則的鏈接預(yù)測算法是在知識圖譜上比較實體之間的連接關(guān)系,無法根據(jù)不同的四診數(shù)據(jù)輸入完成個性化推薦,基于規(guī)則+MLN的多路鏈接預(yù)測推理模型可以根據(jù)病例的任意多個四診數(shù)據(jù)推薦最相符的證候,為中醫(yī)臨床應(yīng)用提供輔助決策功能。
通過鏈接預(yù)測評價標(biāo)準(zhǔn)比較基于傳統(tǒng)規(guī)則的鏈接預(yù)測算法和本研究提出的基于規(guī)則+MLN的多路鏈接預(yù)測推理算法在臟腑辨證中應(yīng)用的結(jié)果,在70個中醫(yī)證候推理結(jié)果中,多路鏈接預(yù)測推理較基于傳統(tǒng)規(guī)則的鏈接預(yù)測算法精確度高4.3%,具有更準(zhǔn)確的推理結(jié)果。
本研究通過構(gòu)建知識圖譜,實現(xiàn)基于知識圖譜的鏈接預(yù)測推理。首先自定義規(guī)則和權(quán)重,使用MLN完成模型訓(xùn)練,通過Gibbs sampling實現(xiàn)癥狀和證候連接關(guān)系的權(quán)重推理。根據(jù)臟腑辨證的70個證候推薦度結(jié)果計算基于規(guī)則+MLN的鏈接預(yù)測的推理結(jié)果,AUC值為98.6%,精確度為98.6%,排序分為0.297。
該模型在推理功能上能夠完成中醫(yī)臟腑辨證的個性化推薦應(yīng)用,即根據(jù)輸入任意多個癥狀、舌象、面象、脈象等數(shù)據(jù),推薦病例所屬的證候,并且推理結(jié)果的準(zhǔn)確度較基于傳統(tǒng)規(guī)則的鏈接預(yù)測算法精確度高4.3%。表明該模型在臟腑辨證應(yīng)用中可以完成較高準(zhǔn)確度的鏈接預(yù)測任務(wù),能夠?qū)崿F(xiàn)基于知識圖譜的知識發(fā)現(xiàn)和推理功能,同時可以輔助中醫(yī)臨床進(jìn)行臟腑辨證診斷,也為中醫(yī)臟腑辨證的標(biāo)準(zhǔn)化應(yīng)用開發(fā)提供幫助。
目前,對于鏈接預(yù)測完成知識圖譜推理的研究是通過自定義的規(guī)則學(xué)習(xí)和權(quán)重訓(xùn)練進(jìn)行知識推理,在之后的研究中,將收集大量的臨床客觀數(shù)據(jù),使用圖卷積神經(jīng)網(wǎng)絡(luò)R-GCN[20]的知識推理完成進(jìn)一步的推理預(yù)測,為推理獲得更多的圖結(jié)構(gòu)方面的特征,以完成更準(zhǔn)確的證候推理結(jié)果。