關於醫療大腦、知識圖譜與智能診斷,這是最全的解讀 | 硬創公開課
張超:康夫子創始人,前百度自然語言處理部資深研發工程師、文本知識挖掘方向負責人;知識圖譜、實體建模方面專家;畢業於電子科技大學計算數學專業、新加坡國大多媒體搜索實驗室研究助理。
以下為公開課內容:
雷鋒網:簡單介紹一下康夫子所做的事。
張超:讓計算機去閱讀醫療文獻,構建知識庫,賦予這些知識庫一些推理能力,最後達到輔助醫生、患者的目的。
在產品維度,分為面向患者和醫生;醫生端分為全科與專科醫生。它們的底層是相似的,都是知識圖譜加推理,不過上層應用有差別。患者偏重邏輯問答,包括患者語言的理解;全科醫生要求知識面,而專科則要求臨床路徑監控,包括醫囑的下達。
現在我們的產品主要用在醫療機構這樣的B端,主要提供醫學輔助,不做診斷,結論由醫生把關,供患者參考。
雷鋒網(公眾號:雷鋒網):醫療大腦包括什麼,可以具體解釋下嗎?
張超:醫療大腦是個比較籠統的稱呼,簡單來說是一種知識庫,加上基於此的邏輯推理和計算。它可以泛指醫療從業人員的智慧總和。具體點說,它具備診斷、治療的能力,可以獨立提供用藥輔助、分診導診、健康諮詢等服務,也可以高質量的輔助醫療從業人員完成某項工作。
對我們的醫療大腦來講,患者醫療健康行為需要的能力、所有醫生行醫過程中的知識輔助能力我們都會著力去構建打造。
雷鋒網:相比百度的醫療大腦和IBM Watson,康夫子的特別和區別是什麼?
IBM Watson目前重點在腫瘤領域針對醫生提供輔助決策功能。區別是,我們:
1. 現階段重點是針對常見的3000種病進行建模;
2. 在服務對象方面,除了輔助醫生,患者輔助教育也是我們重要的服務對象;
3. 在醫生層面,我們的醫療大腦又分為基層全科醫生和大醫院專科醫生。
我們和Watson的場景和方法不太一樣,它大的框架是問答、搜索的框架,同時融入了多種Feature( 如 知識圖譜)。我們整個醫療決策系統是基於知識圖譜做推理。技術上講,對腫瘤這樣的疑難雜症,Watson診斷用的維度非常高,但常見病的維度沒那麼高。這兩個方面帶來的挑戰不一樣,我們是從常見病入手,把服務的範圍也會擴大。
我們的醫療大腦和百度醫療大腦在某些方面有著相同之處,都致力於輔助網民提供醫療信息服務。差別是:
1. 在數據維度,百度醫療大腦數據來自百度醫生APP上醫患之間交流數據;我們的醫療大腦定位在醫療級產品,知識圖譜構建數據來自權威的醫療文獻和電子病曆數據。
2. 在做事的路徑上,也存在著很多不同,我們作為一家初創型公司,會選擇更適合其發展的路徑。
雷鋒網:目前國內做智能診斷的現狀是怎麼樣的?
從時間上分,有傳統派和新興派。傳統派是指類似決策樹專家系統,知識庫依靠專家構建,診斷邏輯也基於專家書寫的roadmap等等。新興派是指利用AI技術,利用計算機從海量文獻數據中構建知識圖譜,並根據歷史經驗自動學習診斷邏輯。
從類型上分,有基於文本從癥狀、化驗入手做智能診斷的,也有基於圖像從CT圖片入手做智能診斷的。
傳統派的診斷系統,受限於知識庫的規模和複雜的醫學邏輯表示,疾病的覆蓋率和診斷的準確率都不夠高。新興派在這塊整體上要好於傳統派,但由於研發時間短,目前仍無法達到可用狀態。
整體上智能診斷還處於初期,目前沒有可以實現大規模商用。
雷鋒網:智能診斷最重要的技術挑戰又是哪些?非技術上的挑戰呢?
技術上,我們現階段認為智能診斷的底層核心是知識圖譜,診斷的過程是基於知識圖譜實現的推理過程。知識圖譜的規模從根本上決定了智能診斷的瓶頸。另外就是應用上的挑戰,智能診斷不管服務誰,在應用場景上有很大的差別,要有針對性地提升效果。
在非技術上,重點要讓老百姓及醫療機構認可或理解這套診斷邏輯。
雷鋒網:做好智能診斷的標準主要是哪些?應該包括哪些主要內容?
籠統地說,好的標準要靠效果說話,也就是說:
診斷的準確率要高;
整體過程可解釋、可干預,可以讓醫生等專業人士隨時干預;
可以輸入多種類型數據(除了癥狀,還有用藥史、化驗檢查、誘因、遺傳史、個人史等等);
另外不同服務對象的診斷系統標準也是不一樣的,比如,如果智能診斷是用來服務醫生,除了核心診斷能力,還需能結合醫生所在醫院科室的醫療習慣。
如果智能診斷用來服務患者:
1. 需要做患者語言理解,因為患者描述的語言和醫學語言有著較大的差異;
2. 要像醫生那樣思考,同患者交互,獲取對診斷有益的數據。
雷鋒網:對你們來說,做智能診斷,數據來源和獲取方式有哪些?
對康夫子來講,數據主要來自如下三大方面:
權威的醫學文獻,如:醫學數據、診療指南、以及相關論文;
病曆數據;
互聯網獲取科普資訊、醫患問答數據等。
前兩部分數據用來構建知識圖譜,訓練診斷邏輯。互聯網數據主要用來做患者語言理解,患者可能會有一些不標準的描述,比如「感覺身體被掏空」,這些詞在醫學上沒有對應的匹配,需要計算去理解。
雷鋒網:有的醫學文獻,經驗證是與事實存在偏倚的,有的甚至是錯誤的,這個問題怎麼看?
錯誤是肯定有的,但我們在整個過程中要想辦法降低並消除這種錯誤。大概有如下思路:
1. 相信更新知識,相信更權威的知識;
2. 因為知識是通過知識圖譜表現出來的,所以,可以針對知識圖譜進行一些推理計算,及早發現某些矛盾,進而安排人工審核校對;
3. 在整個計算過程中,也可以加入大量的容錯機制。相信知識的統計分布,假設學習樣本中,錯誤的知識畢竟是少數,通過一些排序策略進而降低錯誤知識展現的機會。
雷鋒網:數據訓練上,是否與影像診斷一樣,存在優質數據獲取和數據標註上的障礙?
醫學AI相對於其它領域來講有著天然的數據優勢。大量的病例數據/影像數據就是很好的訓練數據。
這裡面的難點在於數據的獲取、預處理、結構化和建模。另外,目前能看到的病曆數據很複雜,多數做AI診斷的,很少有團隊用門診病歷,多數用的都是住院病歷,而住院病歷是很複雜的,如果服務於C端用戶,這類數據就不太合適了。
個人認為,智能醫生或者影像解讀,現階段都有著充足的數據供訓練。比如,在病例或者文獻上,醫生在無結構化文本種已經變相做了標註,如:「大葉性肺炎通常表現為咳鐵鏽色痰」,一個醫學影像也有專家解讀成文本信息供使用。數據維度難在從這些大量的數據中提取出優質數據。
雷鋒網:如果說醫學上只要有充分的多維度知識,就能在輔助決策上做一些事,那之前智能診斷不算流行的原因是哪些?是否是有哪些技術上的進步?
我認為主要在於2個層面:
內因上,效果離輔助人還差強人意,專家系統很少能實際應用起來;
外因上,當前的大環境讓AI聚焦了很多目光,進而加速相關產品的研發。
在技術上,悲觀來看近幾年沒有多少進步。只是前些年,人工智慧和自然語言處理多在大公司和研究院使用,而現在有很多優秀人才流入到創業公司。
雷鋒網:目前較為火熱的深度學習,用處不算太大?
深度學習目前在NLP領域取得的成績,比不上在多媒體領域取得的成績。康夫子目前主要基於深度學習做一些患者語言理解方面的工作,不排除未來會拓展到更多的場景中去。
至於將深度學慣用於Clinical Decision Support這樣的專業領域,我覺得現階段不太合適。首先深度學習是個黑盒,讓人感覺不可信,這是心理上的問題。在應用方法上也有很大難度,比如訓練數據並非完全準確,包括格式都有誤差。我認為短期內這是一個不斷研究的方向,但不能立馬產生效果。
雷鋒網:對於醫療信息知識圖譜,可以具體解釋下嗎,具體指什麼以及作用如何?
通俗地講,知識圖譜就是結構化知識,它由實體及實體關係組成。
比如在醫療領域,實體維度包括疾病、癥狀、檢查、檢驗、體征、藥品等等醫學名詞,甚至醫生、科室、醫院也可以納入範疇。關係是指實體間的關係,比如,針對疾病和癥狀,關係可有「包含關係」,「不包含關係」,甚至「金標準關係」(比如,所有炎症都會帶來發熱,這就是金標準)。疾病和醫生可以定義「醫生擅長治療疾病」,醫生和醫院可以定義「歸屬於關係」等等。這些都是知識圖譜的構成。
我們在應用時,需要基於這些關係做推理,進而滿足上層應用,同時上層應用的需求也會指導知識圖譜的建設方向。比如,我們想幫助患者推薦醫生,那麼推理路徑大概分為:根據「癥狀與疾病」的關係推測患者可能疾病,根據疾病和醫生的關係,為患者推薦醫生。
雷鋒網:公司構建的知識圖譜與醫生的知識結構之間差異大嗎?
首先知識圖譜的知識結構是專業人(醫生)定義出來的。醫生覺得,在診療過程中,我需要用到什麼知識,那麼就讓計算機去學習並構造這些知識。
醫生的知識結構可以舉一反三、演繹歸納,但現有的知識圖譜只能機械的做一些事,並且在短時間內該部分技術很難取得較大突破。那麼在這種場景下,知識圖譜的積累和構建速度就顯得尤為重要,同時真實的應用場景不斷給知識圖譜提需求,那麼二者之間的差異也會逐漸縮小。機器是按照人制定的邏輯工作,而人是有聯想能力的。
雷鋒網:知識圖譜構建上有哪些經驗可以分享?
我從2010年加入百度,大部分精力在從事信息抽取類工作,從中也積累了大量的實戰經驗。在信息抽取(知識圖譜建設)上,我們的著眼點依次是:
快,因為醫療知識圖譜有上千種關係,處理速度要快;
準確率高;
覆蓋率高,比如要有足夠多的疾病與癥狀的知識,才能分辨出疾病;
可控;
通用性強。
在這樣的標準下,我們比較推薦簡單粗暴可控的框架,即基於模板的抽取。這類方法簡潔可控,容易冷啟動,準確率可控,通用性也不錯。不足是:模板產生困難、覆蓋率不高,而且容易產生語義漂移,需要做邊界控制,最後是計算複雜度高。這是目前這種計算框架的優劣。
在構建中,我們首先攻克計算性能問題,即在做pattern learning時,如何做快速計算、篩選,給每個pattern打分,這是計算性能問題。
然後我們通過pattern協作,搞定便捷控制和語義漂移。最後是把大量的精力放在pattern learning上,同時加大數據量提升覆蓋率,並引入bootstrapping機制提升召回。這是我們認為當前比較好的解決方案。
目前也有一些基於pattern做的解決方案,但往往偏人工,不成體系,通用性也較差。
另外,我們主要做從無結構化文本抽取,一些類似HTML的半結構化數據比較容易,但是有深度的知識覆蓋面很少。這塊有不少工作,有興趣的話,也可以經常關注一些IE方面的論文,有很多新奇的想法。
雷鋒網:康夫子可以做到知識規律的自動發現,這個是如何做到的?
這裡的知識規律發現其實就是上文說的pattern learning。人們是按照一定書寫方式來描述知識的,數據量越大越能體現出書寫的語法及結構。康夫子的一個核心技術即針對要抽取的知識從海量文本中學習這種知識的描述方式。
上圖是計算機閱讀海量文獻,針對某種知識總結出上萬條書寫規律然後進行抽取。如針對「疾病<—>癥狀」的關係,文獻中描述方式為:「(X疾病)的癥狀有(Y癥狀)」,「(X疾病)臨床表現為(Y癥狀)」,「(X疾病)容易引起(Y癥狀)等不適癥狀」等等。在技術維度,較多層面是我們原創的技術,我們定義一個好的規律,既要體現出不同文本之間的區分性,又要能夠儘可能的匹配到相似文本,另外還要追求量和簡潔性。在這個目標約束下,剩下的就是求解優化的問題了。
雷鋒網:智能診斷中的邏輯推薦可以具體解釋下嗎?具體的挑戰是什麼?
這個是智能診斷和醫生診斷最為根本差異的地方。
我們認為,當輸入數據一樣時,機器是可以完全比人做的好。比如,給定相同的若干組癥狀、若干輔助檢查數據,機器診斷是可以輕鬆超過人的,因為這時候診斷的過程本質上是個搜索的問題,人腦的計算量和記憶程度在特定任務下是比不過機器的。
但是,醫生的優勢在於,不可思議的聯想能力,可以幫助他更好地獲取對診斷有用的數據。還是針對上面癥狀+檢查數據,當醫生診斷不確信時,他可以從病理或者歷史經驗去聯想新的數據特徵,進而輔助診斷。而對於機器來講,聯想能力基本為零。
所以說,邏輯這塊是機器智能診斷的一個重要攻克方向:
1. 它需要不斷的構建底層知識圖譜,不斷地逼急醫生的知識架構;
2. 用大量的臨床數據去訓練知識體系之間的關係,也就所謂的「聯想能力」,進而更好地獲取數據,支撐診斷;
3. 在具體問診方法維度,機器目前還非常生硬,這點也被我們放在邏輯維度。
雷鋒網:康夫子的產品投入應用後,有沒有不滿意的方面?
如果讓我們給我們自己的產品打分,100分是非常滿意,應用效果等同於所有科室的專家診斷總和,我們現階段只能打到40分,而同時市面上其它類似產品很少能超過30分。
這裡的不及格除了在知識圖譜維度還不夠完善,另外就是這個產品目前還只能按照既定方式去完成某些任務,而在真實的診斷場景中,「知識聯想、理解用戶」是非常重要的環節。
當然,現階段康夫子智能診斷還比較年輕,我們花了不到半年的時間已取得非常不錯的效果,也正是因為各種不滿意才促使我們的系統更加迅速的迭代。
雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。
推薦閱讀: