原標題:一文讀懂醫學知識圖譜構建
編輯導語:隨著網際網路和技術的不斷髮展,醫療行業向智慧化轉變,開展更多線上平臺,能夠提供更加高效的服務;但是如今醫療知識圖譜還未完全完善,普遍存在一些問題;本文作者分享了關於醫學知識圖譜構建的全面解析,我們一起來看一下。
醫學知識圖譜是實現智慧醫療的基石,有望帶來更高效精準的醫療服務;然而,現有知識圖譜構建技術在醫學領域中普遍存在效率低、限制多、拓展性差等問題。
針對醫療資料跨語種、專業性強、結構複雜等特點,此處重點對構建醫學知識圖譜的關鍵技術進行了自底向上的全面解析,涵蓋了醫學知識表示、知識抽取、知識融合和知識推理以及知識質量評估五部分內容。
一、知識建模
即建立知識圖譜的資料模式,行業知識圖譜的資料模式對整個知識圖譜的結構進行定義,因此需要保證可靠性。
1. 常用方法
基於行業現有的標準進行轉換。
從現有的高質量行業資料來源(如業務系統資料庫表)中進行對映。
2. 使用知識圖譜對資料進行抽象建模
利用屬性來表示不同資料來源中針對實體的描述,形成對實體的全方位描述。(屬性對映與 歸併)
利用關係來描述各類抽象建模成實體的資料之間的關聯關係,從而支援關聯分析。(關係 抽取)
透過實體連結技術,實現圍繞實體的多種型別資料的關聯儲存。(實體連結)
使用事件機制描述客觀世界中動態發展,體現事件與實體間的關聯;並利用時序描述事件 的發展狀況。(動態事件描述)
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主要針對關係抽取,在指定的關係抽取中效果比較理 想,在實體確定後可以很好地進行關係抽取;未提供專門的針對概念、實體和事件抽取的支援;支援中文關係抽取,僅需要引入中文相關的基礎處理工具即可;需要大量的標註語料支援,透過人工設定標註規則。
三、知識融合 1. 資料模式層融合
行業知識圖譜的資料模式層通常是由專家人工構建或從可靠的結構化資料中對映得到的,通常在對映時會透過設定融合的規則來確保資料的統一。
概念合併;概念上下位關係合併;概念的屬性定義合併;2. 資料層融合
1)實體合併
在構建行業知識圖譜時,實體優先從結構化的資料在獲取;對於結構化的資料,通常有對實體進行唯一標識的主鍵,因此在進行知識抽取時即可設定實體合併的依據。
從非結構化資料中抽取的實體,同樣使用設定合併條件的規則來完成實體的合併;例如,企業合併是可以透過企業名稱直接合並,企業高管合併是人名相同+同一企業 (企業高管中同名的概念極低)。
2)實體屬性融合
具有時態特性的屬性(如):使用新的資料覆蓋老的資料;依據資料來源的可靠性進行選取:結構化資料來源中的質量通常較高。
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. 落地方案
使用快速迭代法,透過維度、作用域、邊界快速分解業務模型: