基于NLG算法的智慧醫(yī)療:應(yīng)用場(chǎng)景和構(gòu)建經(jīng)驗(yàn)
在未來一段時(shí)間內(nèi),業(yè)務(wù)定制NLP系統(tǒng)將仍是真正能幫助大型智慧醫(yī)療行業(yè)達(dá)成業(yè)務(wù)目標(biāo)的重要系統(tǒng)之一,也是AI落地的主戰(zhàn)場(chǎng)之一。
人工智能正處于非?;馃岬臅r(shí)期,自然語言處理(NLP)領(lǐng)域也令人興奮了十年。
在閱讀理解、語言翻譯和創(chuàng)意寫作等復(fù)雜的任務(wù)上,計(jì)算機(jī)的表現(xiàn)將會(huì)和人類一樣出色。語言理解能力受益于免費(fèi)的深度學(xué)習(xí)庫(如Pytext和BERT這樣的語言模型),大數(shù)據(jù)(Hadoop,Spark,Spark NLP),以及云計(jì)算(提供GPU和與服務(wù)商的NLP服務(wù)功能)。
目前市面上做自然語言處理領(lǐng)域的公司有:騰訊、科大訊飛、微軟、思必馳、華為等。
在醫(yī)療領(lǐng)域,一些應(yīng)用已經(jīng)從科幻小說變?yōu)楝F(xiàn)實(shí)。
人工智能系統(tǒng)通過了中國和英國的醫(yī)學(xué)執(zhí)照考試 ,而且它們比普通醫(yī)生考得更好。最新的系統(tǒng)比初級(jí)醫(yī)生能更好地診斷出55種兒科疾病。
但是,這些系統(tǒng)比第一批計(jì)算機(jī)視覺深度學(xué)習(xí)應(yīng)用(例如研究一個(gè)圖像)中的一些更難構(gòu)建,因?yàn)樗鼈冃枰哂懈鼜V泛常見的醫(yī)學(xué)知識(shí),要處理更多種類的輸入,并且必須理解上下文。
我很幸運(yùn)能夠參與構(gòu)建醫(yī)療領(lǐng)域的NLP系統(tǒng)。
本文旨在分享我學(xué)到的一些知識(shí),從而希望能幫助你更快更好地構(gòu)建類似的系統(tǒng)。
一、什么是NLG,它是如何工作的?
自然語言處理由自然語言理解(NLU)和自然語言生成(NLG)構(gòu)成。
NLG是計(jì)算機(jī)的“編寫語言”,它將結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換為文本,以人類語言表達(dá)。即能夠根據(jù)一些關(guān)鍵信息及其在機(jī)器內(nèi)部的表達(dá)形式,經(jīng)過一個(gè)規(guī)劃過程,來自動(dòng)生成一段高質(zhì)量的自然語言文本。
如今的數(shù)據(jù)量巨大,人們根本處理不過來;NLG把數(shù)據(jù)人性化,幫助人們處理。
NLG系統(tǒng)使用數(shù)據(jù)分析和人工智能技術(shù)來分析復(fù)雜的數(shù)據(jù)集,并采用計(jì)算語言學(xué)技術(shù)在高品質(zhì)的文字說明來交流分析結(jié)果。
NLG的工作原理:輸入抽象的命題,然后對(duì)你輸入的自然語言進(jìn)行語義分析、語法分析進(jìn)行語言組織然后生成無限接近你想要的文本。
例子:輸入麥當(dāng)娜,接下來通過NLG自然語言生成:麥當(dāng)娜 “歌星”
二、NLG算法在智慧醫(yī)療領(lǐng)域應(yīng)用有哪些?
三、NLG算法對(duì)患者影響有哪些?
NLG可以用來幫助患者,讓他們了解自己的健康狀況,并對(duì)自身的醫(yī)療保健作出更好的選擇;NLG還可以幫助患者更好地照顧自己:包括改變生活方式、自我管理慢性疾病、并配合治療方案。
例如,許多糖尿病患者都有測(cè)量血糖水平的傳感器,但他們很難利用這些信息來管理他們的糖尿病,因?yàn)樗麄兺ǔ?床欢疁y(cè)量結(jié)果,所以當(dāng)他們看到血糖變化時(shí),往往過度反應(yīng)。NLG系統(tǒng)可以解釋和情境化血糖的任何變化,并幫助糖尿病患者作出適當(dāng)?shù)姆磻?yīng)。
四、NLG算法對(duì)醫(yī)護(hù)人員影響有哪些?
臨床醫(yī)生最熱衷于報(bào)告自動(dòng)化工具,因?yàn)樗麄冋J(rèn)為其有兩個(gè)好處:自動(dòng)化節(jié)省了他們的時(shí)間;自動(dòng)化還意味著更少的錯(cuò)誤和遺漏,以及數(shù)據(jù)的一致性。
我已經(jīng)在該領(lǐng)域上的幾個(gè)系統(tǒng)工作過,主要是產(chǎn)生交接報(bào)告(護(hù)理交接班,第一急救者移交醫(yī)務(wù)人員),并且知道在這個(gè)領(lǐng)域許多其他NLG項(xiàng)目。
我覺得使用NLG為臨床提供決策支持有很大的潛力,確實(shí)有大量的證據(jù)表明,臨床醫(yī)生目前來看數(shù)據(jù)的方式(通過可視化或表格)有時(shí)不是很有效。而文本概括可以通過突出顯示可視化看不到的重要信息來幫助決策。事實(shí)上,自動(dòng)撰寫報(bào)告比臨床決策支持的賣點(diǎn)更突出。
最重要的是用NLG來加強(qiáng)病人對(duì)病情的了解和支持病人,更好的作出治療方案。
五、NLG構(gòu)建的一些經(jīng)驗(yàn)
1. 現(xiàn)成可用的NLP模型不起作用
在系統(tǒng)構(gòu)建的實(shí)踐中,為中文構(gòu)建的現(xiàn)成的NLP庫和算法在醫(yī)療行業(yè)的這種“不同的語言”上會(huì)遇到各種挫敗。
不僅是因?yàn)槊麑?shí)體識(shí)別或?qū)嶓w解析模型會(huì)失敗,甚至像符號(hào)化、詞性標(biāo)注和句子分割這樣的基本任務(wù),現(xiàn)成的模型對(duì)大多數(shù)醫(yī)療行業(yè)的句子都沒用。
再者醫(yī)療行業(yè)有數(shù)百種語言,千萬不要去建立通用的醫(yī)療NLP系統(tǒng)?,F(xiàn)實(shí)是,每個(gè)子專業(yè)和它的溝通形式都和別專業(yè)根本不同,你根本無法做到統(tǒng)一通用。
而且,每個(gè)醫(yī)學(xué)專業(yè)都有很多變化。例如,對(duì)于決定是否批準(zhǔn)針對(duì)MRI的預(yù)授權(quán)請(qǐng)求,針對(duì)植入式脊髓刺激器,需要從預(yù)授權(quán)表格中查看的項(xiàng)目?jī)?nèi)容就和別的請(qǐng)求完全不同。另一個(gè)例子是在病理學(xué)中使用不同的術(shù)語來討論不同類型的癌癥。
這些對(duì)實(shí)際問題會(huì)帶來影響:我所工作的公司正在進(jìn)行一個(gè)項(xiàng)目,該項(xiàng)目需要訓(xùn)練不同的NLP模型,以從病理報(bào)告中提取有關(guān)肺癌、乳腺癌和結(jié)腸癌的事實(shí)。
到目前為止,亞馬遜的Comprehend Medical僅關(guān)注藥物價(jià)值的正規(guī)化(參見上面最后一個(gè)“阿司匹林”的例子)。該服務(wù)還具有標(biāo)準(zhǔn)的醫(yī)療命名實(shí)體識(shí)別功能,但不能滿足任何特定應(yīng)用的需求。
我從以下流行的NLP云服務(wù)自測(cè),通過幾個(gè)平臺(tái)的測(cè)試。
- IBM Watson NLU
- Google Cloud Natural Language
- SpaCy Named Entity Visualizer
- Azure Text Analytics
- Amazon Comprehend(offline)
- 斯坦福大學(xué)Core NLP
進(jìn)行的一項(xiàng)測(cè)試中,上述六個(gè)引擎唯一識(shí)別出的醫(yī)學(xué)術(shù)語(其中只有兩個(gè)引擎識(shí)別了出來)是Tylenol(泰諾)是個(gè)產(chǎn)品。
2. 如何自建NLP?
了解到“醫(yī)療行業(yè)的語言”與人類語言是多么的不同。
以下是我們構(gòu)建的一些項(xiàng)目?jī)?nèi)容:
1)基于深度學(xué)習(xí)的句子分割
雖然分割維基百科文章的句子通常只需要使用正則表達(dá)式就可以完成,但處理很多頁的臨床文檔是一個(gè)更大的挑戰(zhàn)。特別是,算法必須應(yīng)對(duì)頁眉和頁腳、列表、枚舉、標(biāo)注、兩欄格式和其他的格式問題。
2)醫(yī)療行業(yè)特定的詞性標(biāo)注
不僅需要不同的模型,而且額外的詞性標(biāo)注也被用于醫(yī)療行業(yè)的模型。之所以這樣做是因?yàn)樗_實(shí)提高了醫(yī)學(xué)命名實(shí)體識(shí)別的準(zhǔn)確性。
3)醫(yī)療行業(yè)特定正規(guī)化算法
在實(shí)際項(xiàng)目里,命名實(shí)體識(shí)別自己一般是無用的。從“雙眼似乎被感染”里識(shí)別“眼睛”和“感染”是醫(yī)學(xué)術(shù)語并沒有多大用處。
相反,根據(jù)標(biāo)準(zhǔn)SNOMED-CT臨床術(shù)語將整個(gè)文本塊標(biāo)記為代碼312132001,同時(shí)針對(duì)用不同方式對(duì)描述相同發(fā)現(xiàn)進(jìn)行正規(guī)化則更加有用。這使你的應(yīng)用能基于此代碼來構(gòu)建業(yè)務(wù)邏輯,而不管它是如何正規(guī)化的,或者更確切地說,不管它是如何在原來的文本中被表達(dá)的。
3. 從數(shù)據(jù)標(biāo)注開始構(gòu)建項(xiàng)目
構(gòu)建一個(gè)AI系統(tǒng)有一種方法是從構(gòu)建標(biāo)注驗(yàn)證數(shù)據(jù)集。例如,如果你對(duì)自動(dòng)化門診病例成ICD-10編碼感興趣,請(qǐng)讓臨床醫(yī)生定義一些代表性樣本,對(duì)樣本進(jìn)行脫敏,并讓專業(yè)的臨床編碼人員對(duì)其進(jìn)行標(biāo)注(分配正確的代碼)。
如果你有興趣從放射學(xué)報(bào)告中提取關(guān)鍵事件或從患者病例中找出被忽視的安全事件,請(qǐng)首先讓臨床醫(yī)生定義一些樣本,并正確標(biāo)注。
題外話:你們就會(huì)看到各種AI大公司的JD有數(shù)據(jù)標(biāo)注師這么一說,標(biāo)注師的薪資范圍比較大,要看行業(yè)領(lǐng)域的門檻,比如:醫(yī)療行業(yè)的會(huì)薪資會(huì)比較高,也有大部分是兼職的。
這樣做通常會(huì)在讓數(shù)據(jù)科學(xué)團(tuán)隊(duì)加入(并浪費(fèi)很多時(shí)間)前提前發(fā)現(xiàn)一些“坑”。如果你無法獲得足夠的數(shù)據(jù),或者無法大規(guī)模地進(jìn)行脫敏,那就無法構(gòu)建可靠的模型。
如果在某些情況下臨床醫(yī)生不能一致同意正確的標(biāo)注,那么要解決的第一個(gè)問題是就臨床指南達(dá)成一致,而不是讓數(shù)據(jù)科學(xué)家參與嘗試去自動(dòng)化這種不一致。
最后,如果你發(fā)現(xiàn)自己面臨非常不平衡的類別(比如你尋找的是每年只有少數(shù)人患病的情況),那么在引入數(shù)據(jù)科學(xué)家之前修改問題的定義可能是明智之舉。
標(biāo)注的驗(yàn)證集以及數(shù)據(jù)集其目標(biāo)是使用標(biāo)準(zhǔn)庫或云服務(wù)來發(fā)現(xiàn)它們能達(dá)到的滿足用戶特定需求的最高準(zhǔn)確度。
這樣做就可以評(píng)估下面每項(xiàng)服務(wù)的難易程度,包括:訓(xùn)練自定義的模型、定義領(lǐng)域?qū)S械奶卣?、解決方案所需的pipeline步驟和把結(jié)果解釋給客戶。
一旦有了一個(gè)有代表性的和已商定并正確標(biāo)注的驗(yàn)證集,你就可以開始用它來測(cè)試現(xiàn)有的庫和云服務(wù)提供商的服務(wù)了。很可能的是,這個(gè)測(cè)試將立即發(fā)現(xiàn)每個(gè)產(chǎn)品與你的需求之間的差距。
六、總結(jié)
我在本文中,是從對(duì)醫(yī)療業(yè)務(wù)框架的拆解出發(fā),對(duì)NLP定制型醫(yī)療服務(wù)各方面的產(chǎn)品設(shè)計(jì)要點(diǎn)做了簡(jiǎn)要介紹。
在未來一段時(shí)間內(nèi),業(yè)務(wù)定制NLP系統(tǒng)將仍是真正能幫助大型智慧醫(yī)療行業(yè)達(dá)成業(yè)務(wù)目標(biāo)的重要系統(tǒng)之一,也是AI落地的主戰(zhàn)場(chǎng)之一。
本文由 @pms-rolia 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自 Unsplash,基于 CC0 協(xié)議
可以說一說AI醫(yī)療這個(gè)領(lǐng)域的產(chǎn)品經(jīng)理學(xué)習(xí)路徑嗎? ??