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