一文讀懂醫(yī)學(xué)知識圖譜構(gòu)建
編輯導(dǎo)語:隨著互聯(lián)網(wǎng)和技術(shù)的不斷發(fā)展,醫(yī)療行業(yè)向智慧化轉(zhuǎn)變,開展更多線上平臺,能夠提供更加高效的服務(wù);但是如今醫(yī)療知識圖譜還未完全完善,普遍存在一些問題;本文作者分享了關(guān)于醫(yī)學(xué)知識圖譜構(gòu)建的全面解析,我們一起來看一下。
醫(yī)學(xué)知識圖譜是實現(xiàn)智慧醫(yī)療的基石,有望帶來更高效精準的醫(yī)療服務(wù);然而,現(xiàn)有知識圖譜構(gòu)建技術(shù)在醫(yī)學(xué)領(lǐng)域中普遍存在效率低、限制多、拓展性差等問題。
針對醫(yī)療數(shù)據(jù)跨語種、專業(yè)性強、結(jié)構(gòu)復(fù)雜等特點,此處重點對構(gòu)建醫(yī)學(xué)知識圖譜的關(guān)鍵技術(shù)進行了自底向上的全面解析,涵蓋了醫(yī)學(xué)知識表示、知識抽取、知識融合和知識推理以及知識質(zhì)量評估五部分內(nèi)容。
一、知識建模
即建立知識圖譜的數(shù)據(jù)模式,行業(yè)知識圖譜的數(shù)據(jù)模式對整個知識圖譜的結(jié)構(gòu)進行定義,因此需要保證可靠性。
1. 常用方法
基于行業(yè)現(xiàn)有的標準進行轉(zhuǎn)換。
從現(xiàn)有的高質(zhì)量行業(yè)數(shù)據(jù)源(如業(yè)務(wù)系統(tǒng)數(shù)據(jù)庫表)中進行映射。
2. 使用知識圖譜對數(shù)據(jù)進行抽象建模
以實體為主體目標,實現(xiàn)對不同來源的數(shù)據(jù)進行映射與合并。(實體抽取與合并)
利用屬性來表示不同數(shù)據(jù)源中針對實體的描述,形成對實體的全方位描述。(屬性映射與?歸并)
利用關(guān)系來描述各類抽象建模成實體的數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系,從而支持關(guān)聯(lián)分析。(關(guān)系?抽?。?/p>
通過實體鏈接技術(shù),實現(xiàn)圍繞實體的多種類型數(shù)據(jù)的關(guān)聯(lián)存儲。(實體鏈接)
使用事件機制描述客觀世界中動態(tài)發(fā)展,體現(xiàn)事件與實體間的關(guān)聯(lián);并利用時序描述事件?的發(fā)展?fàn)顩r。(動態(tài)事件描述)
3. 建模工具Protégé
- 本體編輯器。
- 基于RDF(S),OWL等語義網(wǎng)規(guī)范。
- 圖形化界面。
- 提供了在線版本——WebProtégé。
- 適用于原型構(gòu)建場景。
二、知識獲取
從不同來源、不同結(jié)構(gòu)的數(shù)據(jù)中進行知識提取,形成知識存入到知識圖譜。
1. 獲取結(jié)構(gòu)化數(shù)據(jù)的D2R工具
D2RQ:將關(guān)系數(shù)據(jù)庫轉(zhuǎn)換為虛擬的RDF數(shù)據(jù)庫的平臺,主要包括:
- D2R Server:HTTP Server,提供對?RDF數(shù)據(jù)的查詢訪問接口,以供上層的?RDF 瀏覽器、SPARQL 查詢客戶端以及傳統(tǒng)的?HTML 瀏覽器調(diào)用;
- D2RQ Engine:利用一個可定制的?D2RQ Mapping 文件將關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)換成?RDF 格式;
- D2RQ Mapping Language:定義將關(guān)系型數(shù)據(jù)轉(zhuǎn)換成?RDF 格式的?Mapping 規(guī)則。
2. 半結(jié)構(gòu)化行業(yè)數(shù)據(jù)源解析
針對不同結(jié)構(gòu)的數(shù)據(jù)配置相應(yīng)的包裝器。
包裝器配置工具:
- 輸入源設(shè)置;
- 預(yù)處理配置;
- 抽取目標配置;
- 抽取過程配置;
- 結(jié)果后處理;
例如:
3. 文本信息抽取
主要有實體識別、概念抽取、關(guān)系抽取、事件抽取。
其中CloseIE面向特定領(lǐng)域抽取信息、預(yù)先定義好抽取的關(guān)系類型、基于領(lǐng)域?qū)I(yè)知識抽取、規(guī)模小且精度比較高;OpenIE面向開放領(lǐng)域抽取信息、關(guān)系類型事先未知、基于語言學(xué)模式進行抽取、規(guī)模大且精度相對較低。
1)OpenIE的典型代表工具有 ReVerb、TextRunner
通常用于做第一輪的信息抽取探索,從它的結(jié)果中發(fā)現(xiàn)新的關(guān)系, 然后在此基礎(chǔ)上應(yīng)用其它的信息抽取方法。
2)CloseIE 典型工具:DeepDive
DeepDive主要針對關(guān)系抽取,在指定的關(guān)系抽取中效果比較理?想,在實體確定后可以很好地進行關(guān)系抽?。晃刺峁iT的針對概念、實體和事件抽取的支持;支持中文關(guān)系抽取,僅需要引入中文相關(guān)的基礎(chǔ)處理工具即可;需要大量的標注語料支持,通過人工設(shè)置標注規(guī)則。
三、知識融合
1. 數(shù)據(jù)模式層融合
行業(yè)知識圖譜的數(shù)據(jù)模式層通常是由專家人工構(gòu)建或從可靠的結(jié)構(gòu)化數(shù)據(jù)中映射得到的,通常在映射時會通過設(shè)置融合的規(guī)則來確保數(shù)據(jù)的統(tǒng)一。
- 概念合并;
- 概念上下位關(guān)系合并;
- 概念的屬性定義合并;
2. 數(shù)據(jù)層融合
1)實體合并
在構(gòu)建行業(yè)知識圖譜時,實體優(yōu)先從結(jié)構(gòu)化的數(shù)據(jù)在獲取;對于結(jié)構(gòu)化的數(shù)據(jù),通常有對實體進行唯一標識的主鍵,因此在進行知識抽取時即可設(shè)定實體合并的依據(jù)。
從非結(jié)構(gòu)化數(shù)據(jù)中抽取的實體,同樣使用設(shè)置合并條件的規(guī)則來完成實體的合并;例如,企業(yè)合并是可以通過企業(yè)名稱直接合并,企業(yè)高管合并是人名相同+同一企業(yè)?(企業(yè)高管中同名的概念極低)。
2)實體屬性融合
具有時態(tài)特性的屬性(如):使用新的數(shù)據(jù)覆蓋老的數(shù)據(jù);依據(jù)數(shù)據(jù)源的可靠性進行選?。航Y(jié)構(gòu)化數(shù)據(jù)源中的質(zhì)量通常較高。
3)沖突檢測與解決
四、自然語言處理
美國著名的計算機科學(xué)家賈里尼克領(lǐng)導(dǎo)他的實驗室,借助數(shù)學(xué)中的統(tǒng)計學(xué)工具,把當(dāng)時語言識別的成功率從70%提升到90%;同時讓語言識別的規(guī)模,從幾千個單詞上升到幾萬個單詞,讓語言識別有了實際應(yīng)用的可能。
統(tǒng)計學(xué)和自然語言好像沒什么關(guān)系,它怎么處理自然語言呢?
其實賈里尼克的思路很簡單,他認為,要判斷一個句子正不正確,就要看這個句子出現(xiàn)的可能性的大小,這個可能性用概率來衡量;比如,我們假定第一個句子出現(xiàn)的概率是二分之一,第二個句子出現(xiàn)的概率是千分之一,那第一個句子出現(xiàn)的可能性就比第二個句子大得多;那么從概率的角度來說,第一個句子就更有可能是正確的。
所以接下來我們需要做的事,就是判斷一個句子出現(xiàn)的可能性有多大;這時就需要用到“馬爾科夫假設(shè)”,這個假設(shè)是說,假定一個句子里每個詞出現(xiàn)的概率,只和前一個詞有關(guān),就好比“漲?!边@個詞,最有可能出現(xiàn)在“股票”這個詞之后。
那么,只要給計算機量足夠大的機讀文本,也就是專業(yè)人士說的語料庫,計算機就能算出來,在一個特定詞后面出現(xiàn)某個詞的概率;這樣,只要把一句話里所有詞出現(xiàn)的概率相乘,就是這個句子出現(xiàn)的概率;概率最大的句子,就是最有可能正確的句子。
按照這個思路,科學(xué)家們成功地讓計算機擁有了處理自然語言的能力。
1. 詞性
句子的基本成分是:主語、謂語、賓語;補充成分是定語、狀語、補語。
2. 句法
句子劃分口訣:
- 句子成分要劃對;
- 縱觀全局找主謂;
- 主前定狀謂后補;
- 謂前只有狀地位;
- “的”定“地”狀“得”后補;
- 賓語只受謂支配。
五、知識存儲
知識圖譜是基于圖的數(shù)據(jù)結(jié)構(gòu),其存儲方式主要有兩種方式: RDF存儲和圖數(shù)據(jù)庫(Graph Database),常見的圖數(shù)據(jù)存儲—Graph DBMS。
1. 基礎(chǔ)存儲
可按數(shù)據(jù)場景選擇使用關(guān)系數(shù)據(jù)庫、NoSQL數(shù)據(jù)庫及內(nèi)存數(shù)據(jù)庫。
2. 數(shù)據(jù)分割
基本類型:整數(shù)表、浮點數(shù)表、日期類型表…
集合類型:List型表、Range型表、Map型表…
3. 緩存與索引
使用分布式?Redis 作為緩存,按需對數(shù)據(jù)進行緩存。對三元組表按需進行索引,最多情況下可建立九重索引。
4. 善于使用現(xiàn)在成熟存儲
使用?ElasticSearch 實現(xiàn)數(shù)據(jù)的全文檢索?l 結(jié)構(gòu)固定型的數(shù)據(jù)可使用關(guān)系數(shù)據(jù)庫或NoSQL。
對于非關(guān)系型的數(shù)據(jù)盡量不入圖存儲,避免形成大節(jié)點;非關(guān)系型的數(shù)據(jù),使用適合的數(shù)據(jù)存儲機器進行存儲,通過實體鏈?接的方式實現(xiàn)與圖譜數(shù)據(jù)的關(guān)聯(lián)。
六、知識計算
1. 圖挖掘計算
基于圖論的相關(guān)算法,實現(xiàn)對圖譜的探索和挖掘。
集成實現(xiàn)基本圖算法:
- 圖遍歷:廣度優(yōu)先遍歷、深度優(yōu)先遍歷;
- 最短路徑查詢:?Dijkstra(迪杰斯特拉算法)、Floyd(弗洛伊德算法);
- 路徑探尋:給定兩個或多個節(jié)點,發(fā)現(xiàn)它們之間的關(guān)聯(lián)關(guān)系;
- 權(quán)威節(jié)點分析:PageRank算法;
- 族群發(fā)現(xiàn):最大流算法;
- 相似節(jié)點發(fā)現(xiàn):基于節(jié)點屬性、關(guān)系的相似度算法;
2. 本體推理
使用本體推理進行新知識發(fā)現(xiàn)或沖突檢測。
w?本體知識推理工具——RDFox。
本體推理基本方法:
- 基于表運算及改進的方法:FaCT++、Racer、 Pellet Hermit等;
- 基于一階查詢重寫的方法(Ontology based data access,基于本體的數(shù)據(jù)訪問);
- 基于產(chǎn)生式規(guī)則的算法(如rete):Jena 、Sesame、OWLIM等;
- 基于Datalog轉(zhuǎn)換的方法如KAON、RDFox等;
- 回答集程序 Answer set programming。
3. 基于規(guī)則的推理
使用規(guī)則引擎,編寫相應(yīng)的業(yè)務(wù)規(guī)則,通過推理輔助業(yè)務(wù)決策。
基于規(guī)則推理工具——Drools規(guī)則定義。
七、上層應(yīng)用的開發(fā)
等我們構(gòu)建好知識圖譜之后,接下來就要使用它來解決具體的問題;例如對于風(fēng)控知識圖譜來說,首要任務(wù)就是挖掘關(guān)系網(wǎng)絡(luò)中隱藏的欺詐風(fēng)險。
從算法的角度來講,有兩種不同的場景:一種是基于規(guī)則的;另一種是基于概率的。鑒于目前AI技術(shù)的現(xiàn)狀,基于規(guī)則的方法論還是在垂直領(lǐng)域的應(yīng)用中占據(jù)主導(dǎo)地位;但隨著數(shù)據(jù)量的增加以及方法論的提升,基于概率的模型也將會逐步帶來更大的價值。
1. 基于規(guī)則的方法論
首先,我們來看幾個基于規(guī)則的應(yīng)用,分別是不一致性驗證、基于規(guī)則的特征提取、基于模式的判斷。
1)不一致性驗證
為了判斷關(guān)系網(wǎng)絡(luò)中存在的風(fēng)險,一種簡單的方法就是做不一致性驗證,也就是通過一些規(guī)則去找出潛在的矛盾點。
這些規(guī)則是以人為的方式提前定義好的,所以在設(shè)計規(guī)則這個事情上需要一些業(yè)務(wù)的知識;比如在下面的這個圖中,李明和李飛兩個人都注明了同樣的公司電話,但實際上從數(shù)據(jù)庫中判斷這倆人其實在不同的公司上班,這就是一個矛盾點;類似的規(guī)則其實可以有很多,不在這里一一列出。
2)基于規(guī)則提取特征
我們也可以基于規(guī)則從知識圖譜中提取一些特征,而且這些特征一般基于深度的搜索比如2度、3度甚至更高維度;比如我們可以問一個這樣的問題:“申請人二度關(guān)系里有多少個實體觸碰了黑名單?”,從圖中我們很容觀察到二度關(guān)系中有兩個實體觸碰了黑名單(黑名單由紅色來標記),等這些特征被提取之后,一般可以作為風(fēng)險模型的輸入。
在此還是想說明一點,如果特征并不涉及深度的關(guān)系,其實傳統(tǒng)的關(guān)系型數(shù)據(jù)庫則足以滿足需求。
3)基于模式的判斷
這種方法比較適用于找出團體欺詐,它的核心在于通過一些模式來找到有可能存在風(fēng)險的團體或者子圖(sub-graph),然后對這部分子圖做進一步的分析。
這種模式有很多種,在這里舉幾個簡單的例子;比如在下圖中,三個實體共享了很多其他的信息,我們可以看做是一個團體,并對其做進一步的分析。
再比如,我們也可以從知識圖譜中找出強連通圖,并把它標記出來,然后做進一步風(fēng)險分析;強連通圖意味著每一個節(jié)點都可以通過某種路徑達到其他的點,也就說明這些節(jié)點之間有很強的關(guān)系。
2. 基于概率的方法
除了基于規(guī)則的方法,也可以使用概率統(tǒng)計的方法。比如社區(qū)挖掘、標簽傳播、聚類等技術(shù)都屬于這個范疇;對于這類技術(shù),在本文里不做詳細的講解,感興趣的讀者可以參考相關(guān)文獻。
社區(qū)挖掘算法的目的在于從圖中找出一些社區(qū),對于社區(qū),我們可以有多種定義,但直觀上可以理解為社區(qū)內(nèi)節(jié)點之間關(guān)系的密度要明顯大于社區(qū)之間的關(guān)系密度;下面的圖表示社區(qū)發(fā)現(xiàn)之后的結(jié)果,圖中總共標記了三個不同的社區(qū);一旦我們得到這些社區(qū)之后,就可以做進一步的風(fēng)險分析。
由于社區(qū)挖掘是基于概率的方法論,好處在于不需要人為地去定義規(guī)則,特別是對于一個龐大的關(guān)系網(wǎng)絡(luò)來說,定義規(guī)則這事情本身是一件很復(fù)雜的事情。
標簽傳播算法的核心思想在于節(jié)點之間信息的傳遞,這就類似于,跟優(yōu)秀的人在一起自己也會逐漸地變優(yōu)秀是一個道理;因為通過這種關(guān)系會不斷地吸取高質(zhì)量的信息,最后使得自己也會不知不覺中變得更加優(yōu)秀(具體細節(jié)不在這里做更多解釋)。
相比規(guī)則的方法論,基于概率的方法的缺點在于:需要足夠多的數(shù)據(jù)。如果數(shù)據(jù)量很少,而且整個圖譜比較稀疏(Sparse),基于規(guī)則的方法可以成為我們的首選;尤其是對于金融領(lǐng)域來說,數(shù)據(jù)標簽會比較少,這也是為什么基于規(guī)則的方法論還是更普遍地應(yīng)用在金融領(lǐng)域中的主要原因。
1)基于動態(tài)網(wǎng)絡(luò)的分析
以上所有的分析都是基于靜態(tài)的關(guān)系圖譜——所謂的靜態(tài)關(guān)系圖譜,意味著我們不考慮圖譜結(jié)構(gòu)本身隨時間的變化,只是聚焦在當(dāng)前知識圖譜結(jié)構(gòu)上;然而,我們也知道圖譜的結(jié)構(gòu)是隨時間變化的,而且這些變化本身也可以跟風(fēng)險有所關(guān)聯(lián)。
在下面的圖中,我們給出了一個知識圖譜T時刻和T+1時刻的結(jié)構(gòu),我們很容易看出在這兩個時刻中間,圖譜結(jié)構(gòu)(或者部分結(jié)構(gòu))發(fā)生了很明顯的變化,這其實暗示著潛在的風(fēng)險(判斷這些結(jié)構(gòu)上的變化可以查閱跟“dynamic network mining”相關(guān)的文獻)。
八、知識應(yīng)用
1. 語義全文檢索
基于知識圖譜中的知識,解決傳統(tǒng)搜索中遇到的關(guān)鍵字語義多樣?性及語義消歧的難題,通過實體鏈接實現(xiàn)知識與文檔的混合檢索。
針對醫(yī)院臨床電子病歷數(shù)據(jù)大量積累無法快速、高效地服務(wù)于臨床醫(yī)療、醫(yī)學(xué)科研、以及病例管理的現(xiàn)象,提出研究更高效的電子病歷檢索方法;采用全文索引搜索引擎技術(shù),以關(guān)鍵字、關(guān)鍵詞為索引,把電子病歷統(tǒng)一轉(zhuǎn)換成結(jié)構(gòu)化數(shù)據(jù),最后生成病歷檢索索引文件,進而建立電子病歷全文檢索系統(tǒng)。
2. 智能問答
醫(yī)院的醫(yī)生每天病人接待量是固定,而前來就診的人流量往往很大,這就造成供需失衡。
對待這種情況,利用機器人可以很好的幫我們分擔(dān)一部分壓力。
利用醫(yī)院大量的、精確的、病例數(shù)據(jù),我們用這些數(shù)據(jù)進行模型訓(xùn)練,可以做到在線、實時和就診的人進行語言互動,給就診的人提供精確的診斷參考。
3. 輔助診療/決策
為醫(yī)生臨床治療提供決策依據(jù),有助于確保醫(yī)療質(zhì)量。
系統(tǒng)通過比較醫(yī)療行為中與醫(yī)學(xué)指引不同的地方,提醒醫(yī)生防止?jié)撛诘腻e誤,如藥物不良反應(yīng)等;從而降低醫(yī)療事故率。還可以提供同類治愈病例的用藥推薦,給醫(yī)生提出診療建議;可以使醫(yī)生從耗時過長的簡單咨詢工作中解脫出來,從而提高治療效率。
4. 知識訂閱
如實習(xí)醫(yī)生,在工作中遇到某些疑難雜癥,該醫(yī)生想要了解這些疑難雜癥的最新的臨床醫(yī)療信息,那么該醫(yī)生只需要根據(jù)這些疑難雜癥的關(guān)鍵詞訂閱與該類有關(guān)的醫(yī)療信息,即可在第一時間獲取其訂閱的最新的醫(yī)療信息;該醫(yī)生通過這些信息不斷學(xué)習(xí),從而有助于提高其工作能力。
5. 智能導(dǎo)診等
6. 落地方案
使用快速迭代法,通過維度、作用域、邊界快速分解業(yè)務(wù)模型:
- 通過不同維度、不同視角,抽象出共性的業(yè)務(wù)模型;
- 只抽取作用域內(nèi)有效數(shù)據(jù),提高數(shù)據(jù)價值;
- 確定好業(yè)務(wù)邊界,才能更好很快實現(xiàn)落地;
本文由 @CTO老王 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
同是醫(yī)療行業(yè)求入群
厲害??
不會是百科名醫(yī) 或者 微醫(yī) 出來的吧。我之前也搞過這東西。
微醫(yī)
市面上搞這東西的產(chǎn)品,一個手就數(shù)過來了。你這寫的針對產(chǎn)品運營人有點太學(xué)術(shù)了。了解的一眼就看懂。不了解的可讀性較低。建議,多換成一些常見的場景案例。
求入群
謝謝分享,雖然沒有看懂!~~
醫(yī)療行業(yè),歡迎加我微信拉你進群。
微信多少呀
wonter
一臉懵逼