資安

自然語言處理在醫學領域的實踐

內容簡要:

一、深度學習在醫療領域的應用

二、自然語言處理在醫療領域的實踐

 

 

一、深度學習在醫療領域的應用

(一)深度學習取得成功依賴於多個元素

深度學習三大要素:充足的數據、足夠的算力、不斷革新的算法。

image.png

(二)深度學習在許多醫學問題上取得成功

醫學圖像分類和分割

CNN

文本中信息抽取、疾病預測

CNN、RNN、Transformer

病患語音識別和機器翻譯

RNN、Seq2Seq

體徵監測和疾病風險評估

RNN、MLP、Transformer

新藥研發

GCN

手術機器人

CNN、Reinforcement Learning

More······

 

 

二、自然語言處理在醫療領域的實踐

(一)信息抽取

1. 阿里雲智能病歷質檢

醫生撰寫患者病歷時需符合國家衛生部頒佈的規範法則,但有時候醫生會因為疏忽而不符合書寫規範,因此可以通過自然語言處理對病歷進行信息抽取,對不符合規範的病歷進行糾錯或提醒。

以患者張三病歷為例,如下圖所示:

image.png


病歷顯示張三因右上腹疼痛住院,經過治療後患者左上腹疼痛緩解。

此處可發現,患者疼痛位置為右上腹,症狀緩解位置為左上腹,病歷前後矛盾。在這種情況下,就需要系統進行糾錯,但由於該病歷是個無結構化文本,因此需要進行信息抽取、識別與提取關鍵要素,然後進行推理。

圖中下方為醫生初診與治療計劃,醫生根據患者張三症狀,初步診斷張三患有膽囊結石。為驗證初診結果,醫生提供的診療步驟為腹部B超檢查與動態血壓等。

但從臨床規範角度,膽囊結石需通過腹部X光確診,腹部B超只能作為輔助手段,在這種情況下的話,需要系統提示醫生診斷依據不充分。

以上例子闡述了信息抽取的重要性,通過對病例信息的抽取,結合醫學知識進行推理與分析,對醫生進行糾錯或提醒,避免因疏忽導致診斷錯誤,為醫療安全保駕護航。

 

2.信息抽取要解決什麼?

國家政策

信息化/大數據/智慧醫療/新基建

 

現狀

1)結構化程度低

廠商眾多,院內系統眾多;

結構化電子病歷 VS 電子病歷結構化。

2)標準化程度低

稱呼不統一,例如膽囊結石/膽結石/結石性膽囊炎-> K80.203

 

結構化 + 標準化

1)信息抽取:實體、屬性識別、歸一化;

2)醫學知識庫建設。

 

3. 醫學實體屬性聯合抽取

實體:指的是核心術語。

醫療實體:醫療系統中的核心術語,例如疾病、藥品、症狀、檢驗等。

 

醫療實體抽取特點

實體+屬性:現在/過去、肯定/否定等屬性詞彙與實體相結合,如三年前手術,檢測結果呈陽性等。

嵌套(Nested): 35%+

image.png

例如“患者半年前四肢、頭部發麻”,從醫生的角度看,整體是一個症狀,但四肢與頭部是兩個身體部位,所有這裡存在一個嵌套結構。

解決這個問題,傳統方法用序列標註進行實體識別,基於每個字預測標籤,比如到了“四肢”的“四”,則會預測一個標籤,但實際上這裡存在兩個標籤“四肢”與“頭部”。

針對這類複雜情況,我們提出了Span-based框架,如下圖所示:

image.png

模型圖最下面叫輸入層,中間層叫編碼層,最上層為解碼層或分類層。

Span表示什麼含義?

最下層序列w1到w8,取一個Start的位置,再取一個End的位置,例如w1到w2,這是一個Span,w1到w3也是個Span,w2到w5也是個Span。通過枚舉所有的Span再去做一個分類,就解決嵌套的問題了。

在這個基礎上,通過神經網絡讓Span表達得更有效,之後再去做分類時讓它更準確,以上就是一個整體的思路。

這個問題的空間複雜度較高,傳統算法是基於每個字做預測,遍歷則解決問題,但如果用Span-based,則需要枚舉所有的Span與所有Start、End下標等所有空間,如何在算力上解決這個問題?

image.png

上圖為BENSC模型,模型的右側為之前的Span-based Backbone,左側圖表示在預測Span時加了一些接收的信息,預測它起始與結束的位置,最終得到30個預測概率的乘積,即Span成為一個Start的概率,以及Span成為一個結束的位置,最後乘以30概率的乘積的話,就是最終的結果。

這樣的優勢在什麼地方?

首先,引入邊界的監督信息相當於增強Span的表示;

其次,算法模型在推理階段時,會先判定Start與End概率,如果前兩者的概率如果低於某個預值則不做預測,大幅度降低空間複雜度。

N表示序列的長度,M表示實體的實際個數, 如果按照Span-based的方式, 就是O(N^2),將它降到O(m*N)。

 

4. 醫學嵌套實體

image.png

(二)醫學預訓練語言模型(PTLM)

1. 從預訓練語言模型到StructBert工具

StructBert工具;

NLP四大類問題:文本分類/序列標註/片段提取/串到串

image.png

 

2.訓練語言模型方便用藥合理性判斷

當醫生開處方或者做核保審賠時, 需要檢測是否醫療過度,是否使用醫保範圍以外或者過於昂貴的藥品,這個過程是如何實現的?

以開塞露為例,某位患者患上腸阻梗,醫生的處方為開塞露,開塞露說明書部分截圖如下:

image.png

當做合理用藥判斷的話,一般通過人工或者機器學習的方法,從藥物的適應症或者禁忌抽取內容,然後將內容存入庫中方便查詢。但上方患者症狀為腸阻塞,醫生的處方是開塞露,開塞露的適應症為便祕,因此憑藉提取藥物說明書無法判斷。

但腸阻塞的臨床表現就是便祕,所以醫生處方藥沒有問題,如果只用藥品說明書等作為依據,無法解決這個問題,這時候語言模型可以發揮它的作用了。

語言模型接到大量的訓練數據時,會將數據編碼存入模型中。

例如在某個醫學論壇上,醫患對話可能提及腸梗阻,醫生給的處方藥為開塞露,這些知識可以被語言模型捕捉並編碼到模型中,下圖為Bert較為經典的一個應用場景。

image.png

輸入疾病與藥品後,語言模型會做出打分,根據分值做合理用藥判斷。螞蟻金服的核保審賠等場景在使用語言模型後,藥品召回率提升120%。

(三)醫學+NLP

1. 醫學臨床試驗結果預測

臨床試驗是循證醫學的重要組成部分。設計和實施臨床試驗需要大量的人力和資源,在臨床試驗開展前,就能估計臨床試驗所研究問題的可行性,對於醫療發展有重要的作用和意義。

image.png

image.png

image.png

(四)落地應用

1. 阿里雲智能病歷質檢

image.png

痛點

一個50W規模人口的中心醫院,日均產生出院病歷200份+;

質檢科,3~5個質檢專家;

每份病歷人工質檢平均需要2個小時。

image.png

產品價值

質檢效率提升10倍+;

某三甲醫院:甲級病案率從84%提升至92%。

2. 應用場景 - 病案質控 - DRG輔助編碼

DRG輔助編碼分為智能編碼推薦與DRGs分組預測兩部分。

 

智能編碼推薦

image.png

DRG輔助編碼

image.png

image.png

上方為病案質控流程圖,我們在傳統的流程中加入了智能編碼推薦與DRGs分組預測,這樣做的好處是什麼?

以闌尾炎為例,醫生書寫病歷的同時,智能編碼推薦與DRGs分組預測也一起進行。智能編碼推薦與DRGs分組預測根據抽取的信息內容,在庫中進行搜索與分析,幫助醫生書寫病歷,同時告知治療費用約為3000元。如果醫院存私心而過度治療,導致最終治療費用為4000元,則患者醫保無法報銷的1000元由醫院承擔。如果醫院精益求精,通過提升自身效率與醫療水平,最終治療費用為2500元,則醫院可多盈利500元。

這樣的方式一方面可以幫助醫生書寫病歷,另一方面對醫院的合理用藥起到監督作用,該產品的使用使得醫院CMI指數提升10%。

 

4.醫學NLP能力架構

image.png

5.天池數據集

image.png

阿里雲天池數據集開放了各行各業的數據集,包含大量的文本與圖像數據集,有需要的用戶可登錄平臺自行下載,歡迎廣大用戶提出寶貴意見與建議。

Leave a Reply

Your email address will not be published. Required fields are marked *