吳宗友 白昆龍 楊林蕊 王儀琦 田英杰
1(中國科學院大學經濟與管理學院 北京 100049) 2(中國科學院大學計算機與科學技術學院 北京 100049) 3(中國科學院虛擬經濟與數據科學研究中心(中國科學院大學) 北京 100190) 4(中國科學院大數據挖掘與知識管理重點實驗室(中國科學院大學) 北京 100190) 5(中國科學院大學中丹學院 北京 100049)
(bossbit@126.com)
在過去的幾十年里,互聯網信息技術蓬勃發展,使得數據的管理與傳輸變得更為高效,同時醫療機構也構建了大量的電子病歷信息庫.在眾多的現代化醫療數據中,電子病歷數據是最重要的醫療數據資源之一.每天都有海量的電子病歷數據在各級醫院產生,形成了醫療大數據的重要組成部分.電子病歷以患者為主體,比較完整地記錄患者長期的醫療信息,并且經過計算機技術的整理、儲存、共享和分析,是紙質病歷的升級版本.電子病歷的特性使得相關信息庫中同時包含著結構化數據和非結構化數據,結構化數據如表格數據,非結構化數據如文本數據和醫學圖像等.
對電子病歷進行數據挖掘有巨大的應用前景,然而電子病歷數據量大、非結構化數據多的特點使得數據挖掘十分困難.雖然早期部分研究人員利用一些簡單的電子病歷數據挖掘方法如決策樹[1]等輔助診斷,但是由于技術和方法的限制,對醫療數據的信息挖掘效果十分有限.而近年來,機器學習和深度學習在其他領域展現的巨大潛力給電子病歷的挖掘帶來了新的希望[2].本文主要針對電子病歷中的文本數據部分,結合國內外的研究現狀,分析電子病歷數據挖掘面臨的挑戰以及現有的解決方案.
電子病歷往往包含了患者就診過程中產生的多種數據格式,如文本、圖像、表格等.本文主要針對的是電子病歷中的文本部分,包括患者基本信息、患者病史、患者的癥狀、醫生的診斷說明等.電子病歷中的文本數據同樣分為結構化信息和非結構化信息.結構化信息如身高、體重等往往通過簡單的數據清洗就可以作為各種機器學習算法的輸入;非結構化的信息如診斷信息、用藥信息、檢查信息、臨床記錄等,這些數據則需要較為復雜的預處理和自然語言處理(natural language processing, NLP).對電子病歷信息進行分析與利用需要大量有專業知識的人工付出大量的時間,成本昂貴.而NLP的發展為自動處理電子病歷文本數據提供了基礎.對電子病歷的數據挖掘有助于節省人力物力,提高醫生的診斷效率,實現智慧醫療.
電子病歷的數據挖掘始于數據收集和預處理,在獲得海量電子病歷數據后需要針對數據的特性和挖掘分析的目標對數據進行預處理.電子病歷數據預處理常用的方法主要包括脫敏處理、數據清洗、數據集成、數據選擇和數據規約.
1) 脫敏處理.電子病歷的一個特性是隱私性,這意味著相關數據的收集只能以大型的醫院信息部門或者一些專業的醫療機構作為數據來源,并且公開數據集時要對數據進行處理,隱藏掉部分信息以保護患者的隱私權.
2) 數據清洗.數據清洗其主要目的是將錯誤或雜亂無章的數據處理成干凈、標準的數據以供后續數據統計和挖掘使用.數據清洗主要包括補齊、去重和降維等方法,需要針對不同數據選擇具體的方法.對電子病歷文本挖掘前的數據清洗需要考慮電子病歷的特點,電子病歷的建立通常需要醫護人員和患者協作,在記錄過程中可能會有數據缺失、噪聲數據、錯誤語義甚至是自相矛盾的數據或文本存在.對于缺失的數據,通??梢灾粍h除帶有缺失數據的樣本或者采用均值將缺失數據填充,再者,可以采用類似于回歸、貝葉斯、決策樹等機器學習方法來確定填充數據的最佳值.而噪聲數據通常指的是數據出現了明顯的不正常數值,如血壓數值高于常人數倍,面對這樣的數據,通常采用平滑處理或異常值分析的方法.平滑處理通常用數據周圍點的均值進行處理,而異常值分析方法通常通過聚類方法來構建類別從而處理數據.另外,面對一些語法錯誤和語義錯誤,只能通過人為再編輯或者NLP技術進行修正.
3) 數據集成.經過數據清洗過后干凈的數據需要經過數據集成操作,數據集成通常是指將不同源頭的電子病歷數據集成到同一個數據庫中,可以擴大數據規模,方便模型的訓練和后續算法的研究.但是數據集成也存在著問題,從不同源集成的數據之間可能存在結構的不一致或數據存在冗余的現象,那么整理之后的數據要重新進行數據清洗.在電子病歷數據中,同一個患者的數據可能來自不同醫院的不同科室,這些數據很容易出現異構或重復的現象.
4) 數據選擇.針對不同的研究目標,對整理出的電子病歷數據進行內容篩選處理也十分重要.根據研究目的的不同,選擇出電子病歷中不同的病歷記錄.經過數據選擇確定研究數據,一方面可以剔除掉無關屬性和噪聲對研究目標的影響,另一方也起到了對數據的降維作用.高質量的數據選擇是數據預處理中的關鍵步驟,影響著研究目標的實現結果.
5) 數據規約.數據規約是對電子病歷文本數據進行規范化調整,將數據調整為適合進行數據挖掘的形式,包括對輸入數據的歸一化處理(最小最大歸一化、零均值歸一化和分數歸一化等)、遺漏數據的處理以及錯誤信息的糾正.數據規約是為了使數據更加規范化,使得數據在接近原始數據的基礎上更加易于處理.
電子病歷中包含著大量非結構化文本信息,要從非結構化的文本信息中挖掘出潛在的規律需要識別出大量專業詞匯和如疾病-癥狀等特殊鮮明的實體關系,要對這些文本信息進行數據挖掘,關鍵的2個基本任務分別為命名實體識別和關系抽取.近年來,隨著NLP技術的發展,對電子病歷數據的分類任務和問答任務也有了一定的突破.下文將簡單介紹電子病歷文本挖掘中常見的4種任務:命名實體識別、關系抽取、文本分類和問答系統,并介紹任務常用的數據分析方法.
命名實體識別(named entity recognition, NER)也稱為概念抽取,即從指定的自由文本中抽取出相關的具有特定意義的詞語,它在醫學文本研究中被稱為生物醫學命名實體識別(biomedical named entity recognition, BioNER).電子病歷命名實體識別是BioNER的子領域,其主要任務是識別出患者的電子病歷中具有特定意義的實體,并對它們進行標注,這些實體根據研究目的不同而有所區別.通常中文電子病歷中的實體類型包括疾病、病因、臨床表現、檢查方法、藥品名稱、手術、身體部位等.電子病歷在被標注實體之后可以提高醫生查看病歷的工作效率.同時,標注的結果也將輔助后續的如關系抽取和知識圖譜構建等研究.隨著相關技術的進步和研究的進展,發展出了很多電子病歷命名實體識別的方法,最開始的方法是基于詞典與規則的方法和基于統計學的機器學習方法.而在過去幾年中,基于深度學習的方法在該任務中效果顯著并得到廣泛使用,如2018年出現的BERT(bidir-ectional encoder representation from transformers)等深度學習框架進一步改善了生物醫學命名實體識別的性能.目前主流的中文電子病歷命名實體識別的方法仍然是條件隨機場和雙向長短時記憶網絡[3].下面將對3類不同方法進行詳細梳理.
1) 基于詞典和規則的方法
基于詞典的方法在識別過程中通常是依靠術語詞典,然后采取匹配算法進行命名實體識別.因此,對于電子病歷這種專業性較強的文本,標注語料即詞典的規模和質量起到了相當關鍵的作用.在醫療領域,中文電子病歷的標注規范也在不斷的探索當中,并形成語料庫,如曲春燕等人[4]在2015年參照i2b2 2010的標注規范制定了中文電子病歷的標注規范,并在2名臨床醫生的幫助下對標準語料進行了檢驗,后來在他們的標注語料基礎上,一些研究人員也進行了改進[5-6],這些都使得中文電子病歷標注語料規模和質量變得更加可靠.雖然完全基于詞典的命名實體識別準確率有一定的保障,但是電子病歷的標注語料庫的構建需要醫療專業知識,通常需要醫學方面的專業人員共同協作,且隨著時間的推移語料庫的維護也耗時耗力.由于詞典規模有限且需要及時更新等原因,僅使用詞典往往并不能取得特別好的效果,因此后來詞典常作為特征幫助以提升自然語言處理的效果.
與基于詞典的方法不同,基于規則的方法主要是通過對整個文本進行分析來構建規則模板,利用規則模板,通過匹配的方式實現命名實體的識別.基于規則的方法更加直觀且方便維護,但規則的構建也需要相關領域專家的人力且耗時較大,而且在沒有明顯規則時基于規則模板的識別將較困難.同時,不同領域文本與實體大不相同,無法從某個醫學領域直接擴展到其他醫學領域.因此,規則與詞典相似,后來也通常被用于輔助命名實體識別模型.例如利用規則優化詞典等的特征,再結合條件隨機場對中文電子病歷進行命名實體識別,比單純使用條件隨機場的效果要好[7].
2) 基于統計學習的方法
隨著機器學習的發展和流行,針對詞典和規則的方法存在的缺點,基于統計機器學習進行命名實體識別的方法被提出并得到深入的研究和應用,詞典和規則則作為一種輔助手段用于提高機器學習實體識別的效果.機器學習方法需要的專業人工相對較少,成本也較低,所以近年來應用相對廣泛.傳統機器學習方法可以分為有監督學習、半監督學習和無監督學習3類.其中有監督學習方法在命名實體任務中占了主流,它通常需要大規模帶標簽的訓練集,將命名實體識別任務轉換成分類問題,訓練集用于模型的訓練,生成目標模型后才可以對未標注語料中的實體進行識別.常用的序列標注模型包括隱馬爾可夫模型、最大熵模型、條件隨機場模型和支持向量機等.
① 隱馬爾可夫模型.隱馬爾可夫模型(hidden Markov model, HMM)最初由Bikel等人[8]提出并發表在統計學的系列論文中,該模型在后續研究中被證實在語言識別、自然語言處理以及生物信息學等多個領域的應用都體現了很大價值[9].
在序列標注中使用HMM時,目的在于給定觀測序列是X的條件下,求解使條件概率P(X|Y)最大的標記序列Y*.根據貝葉斯公式推導可知,HMM的實質為求解聯合概率P(X,Y).在獲得模型參數后,命名實體識別問題的解碼(常用Viterbi算法)過程目標為得到相對于觀測序列的最優命名實體標記序列,解碼序列.HMM雖然是序列標注的最常用且有效的方法之一,然而HMM是以獨立性假設為前提的,即觀測元素為獨立于觀測序列中的其他元素的單元.事實上元素之間一般并非獨立,且可能具有長距離依賴關系,如文本語句遠距離上下文之間的語義聯系,嚴格的獨立性假設不能夠真實地描述數據序列所包含的信息,這是HMM的主要缺陷.
② 最大熵模型.熵(entropy)[10]表示能量在空間中分布的均勻程度.香農在描述信息量時用了這個概念,提出了信息熵的概念,來表示系統的平均信息量.最大熵模型(maximum entropy, ME)是在最大熵原理[11]的基礎上實現的,主要思想是在已知部分知識的前提下選擇熵最大的概率分布,即在滿足約束條件的情況下選擇不確定性最大,信息量最大的模型.
最大熵模型在特征選擇時相對靈活可以引入特征提高模型的準確率,且不需要HMM必須的獨立性假設.但是其迭代過程計算量巨大,計算的時間復雜度較高.
③ 條件隨機場模型.條件隨機場(conditional random fields, CRFs)[12-13]是一種用于序列標記任務的概率統計模型.CRF是最大熵HMM模型在標注問題上的改進.假設X,Y分別表示為需要標記的觀測序列和相對應的標記序列的聯合分布的隨機變量,那么CRF就是一個以觀測序列X為作為全局條件的無向圖模型.在命名實體識別任務中,X可能是一句話,而Y則是相對應的類別標記序列.在對標記序列進行建模時,最簡單也是最常用的圖形結構就是:觀測節點與標記序列中的節點構成簡單的一階鏈形式,此時圖中的標記序列形成了一條馬爾可夫鏈.CRF克服了HMM的獨立性假設條件,考慮了整個X即上下文的信息,雖然也具有時間復雜度大導致的訓練難度高等問題,但是仍然被廣泛使用,對比其他傳統機器學習方法,是最受歡迎的用于命名實體識別的機器學習方法.在電子病歷的命名實體識別任務中也是如此,如燕楊等人[14]針對中文電子病歷的命名實體識別問題,提出使用層疊條件隨機場且在第2層中使用包含實體和詞性等特征的特征集,對疾病名稱和臨床癥狀2類命名實體進行識別,該模型相比于傳統層疊CRF模型和單層CRF模型總體性能有顯著提高.
④ 支持向量機.支持向量機(support vector machine, SVM)是較為經典的模式識別方法,其在解決小樣本、線性不可分及高維度等模式識別問題中發揮了重大作用,在多個領域成功應用,其中包括電子病歷文本挖掘.其主要思想是利用高維特征空間轉化使其變為線性可分問題處理,再基于結構風險最小理論構建最優分割超平面,目標是使得學習器得到全局最優化.支持向量機在電子病歷文本挖掘中除了文本分類任務也可以被用來完成命名實體識別,例如Tang等人[15]研究了結構化支持向量機(structed support vector machine, SSVM)用于臨床命名實體識別的方法,該算法結合了CRFs,SVMs以及詞表征.評價結果表明,當使用相同的特征時,基于SSVMs的NER系統在臨床實體識別方面的性能優于單純基于CRFs的系統.將2種不同類型的單詞表征與SSVMs相結合,最終系統精度表現最高達到85.82%.
基于統計學習的方法學習過程不需要太多的人工干預,便于在不同領域之間進行模型的移植,因此大受歡迎,且有不少學者嘗試使用多個統計模型來提高醫學命名實體識別任務的效果.但是在廣泛使用的有監督學習模型實施中,前期大規模標注語料的構建成本高,如何獲取高質量、可靠的語料也是主要挑戰之一.所以也有不少研究利用半監督學習方法對電子病歷進行命名實體識別[16-17].無監督學習方法最典型的就是聚類,在命名實體識別中的主要目標就是通過相似的上下文將內容或格式相似的實體聚在一起.
3) 基于深度學習的方法
近年來,隨著深度學習的興起,為降低人工消耗和訓練代價,研究者們也開始將神經網絡應用于自然語言處理領域,獲得不少成果.在自然語言處理任務中,常用的深度學習模型包括卷積神經網絡、循環神經網絡、長短期記憶網絡、Word2Vec模型和2018年出現的BERT模型等.
① 卷積神經網絡.卷積神經網絡(convolution neural network, CNN)是由卷積層、池化層和全連接層組成,卷積層利用不同的卷積核提取不同的輸入特征,池化層是為了降維提取主要特征,全連接層為了結合最后損失函數進行分類.
CNN不僅在圖像處理領域有很好的效果,在NLP的諸多任務也可以實現特征抽取等目標,從而提升最終的性能.利用CNN對詞向量輸入進行特征抽取,是CNN在NLP的一大應用.每一個詞向量可以視為一個1維的輸入,而對于一個由詞語構成的序列,它可以作為2維的數據(和2維圖像一樣),作為CNN的輸入.為了保證卷積操作的可解釋性,通常過濾器的某個維度會設置成和詞向量的維度一樣,而在另一個維度上的設置則是考慮上下文語境的長度,并在該維度上進行移動與卷積操作.CNN中的過濾器具有一定的感受野,考慮了前后語境的影響,這個過程也是n元語言模型的一種體現.CNN在計算上還有一個巨大的優勢:它支持并行計算,無論是單個過濾器在不同位置的卷積操作,還是不同過濾器之間,都互不影響,這也意味著在并行計算中CNN具有極高的自由度.但是通常來講,單個的卷積層只能夠捕捉到局部短距離的依賴關系(如三元語言模型),想要建立更長距離的語言特征、依賴關系,需要多層的卷積層,但深層網絡的參數優化也會相應的更加困難.另外一個CNN在NLP任務應用的缺點是池化層在一定程度上丟棄了卷積層保留的相對位置關系,在NLP中有時候相對位置關系尤為重要,這也導致了一定程度的信息丟失.
CNN在生物醫學命名實體識別任務研究中有大量應用.Gehrmann等人[18]將卷積神經網絡與傳統的基于規則的實體提取系統進行了對比和測試.結果顯示CNN優于其他算法,基于NLP的深度學習方法提高了患者表型的性能.如Wu等人[19]將CNN應用在中文臨床記錄文本的命名實體識別任務中,他們使用CNN對文本進行詞向量的預訓練,以此提高基準模型的準確率.Crichton等人[20]將每個單詞標記及其周圍的上下文單詞作為輸入,設計了有監督的多任務CNN模型,結果表明多任務學習的引入帶來了更好的效果,且對小型數據集很有用.Luo等人[21]同時應用CNN和RNN對來自i2b2-VA挑戰數據集的出院摘要中的醫學概念之間的語義關系進行分類,并表明具備單詞嵌入特征的CNN和RNN可以在挑戰中獲得與具有大量特征的系統相似性能.
② 循環神經網絡.在NLP領域,最常使用的深度學習算法是基于循環神經網絡(recurrent neural network, RNN)的深層結構.傳統的神經網絡無法處理像自然語言這種具有時間序列特性的連續輸入,而RNN則通過添加指向自身的回路,使得網絡能夠利用輸入的序列特征,因而在處理概念抽取、詞性標注等時間序列標注任務時有著先天的優勢.RNN的改進之處在于添加了指向自身的回路,每個神經元的輸出除了沿層間連接向上傳遞之外,還直接傳輸給了下一個序列.理論上,RNN可以處理任意變長的序列,然而,隨著時間序列的不斷累積,梯度會出現指數級衰減的現象,這導致RNN難以記錄距離較遠的歷史信息,其性能也因此而受到制約.為了解決這個問題,1997年Hochreiter等人[22]第一次提出長短期記憶網絡(long short-term memory, LSTM)概念,并從理論上證明了這種結構能夠很好地解決梯度消失和爆炸問題.
③ LSTM. LSTM也是一種時間遞歸神經網絡.在LSTM算法中加入了判斷信息有用與否的輸入門、遺忘門和輸出門,LSTM是解決長距離依賴問題的有效技術.
另外,在有些NLP任務中,某個時間的輸出不僅和過去信息有關,也取決于它的未來信息,例如在命名實體識別任務中,一個詞語是否為命名實體,由其上下文共同決定.因此,為了同時考慮過去和后續的信息對當前時刻的影響,我們可以在原有的LSTM中增加一個反向的信息流,來傳遞后續時刻的信息.Schuster等人[23]基于LSTM提出了雙向長短期記憶網絡(bi-directional LSTM, Bi-LSTM)概念,這種方法不僅從前到后對序列建模,而且從后到前也對序列建模,所以每一個時刻的狀態不僅包含前面的信息,而且囊括了后面的信息.
在過去幾年中,使用LSTM和CRF結合的模型,BioNER的性能得到了很大改善.LSTM是解決傳統RNN中梯度消失問題的一種方法,而雙層循環神經網絡Bi-LSTM改進了LSTM,使得在做命名實體識別時可以既利用正向序列信息同時利用反向序列信息.之后又在Bi-LSTM后加入了CRF層,Bi-LSTM可以充分利用字詞信息和位置信息得到特征,將其隱層輸出輸入到CRF層中來做標簽的預測.Habibi等人[24]將通過學習一個實體注釋的金標準語料庫(gold standard corpora, GSC),結合預先學習詞嵌入(word embedding)的大型語料庫(大量來自PubMed的摘要)得到特征,并作為BiLSTM-CRF模型的輸入.在包括5種不同的實體類型的不同標準語料庫進行了準確率評估.平均而言,它比基于詞典的NER工具提升5%,比單獨使用CRF方法提升3%.Wang等人[25]為BioNER提出了一個使用字符級的多任務神經網絡的學習框架.該框架考慮了具有依賴于上下文的Bi-LSTM層的BiLSTM-CRF模型.通過重用相應Bi-LSTM單元中的參數,來自不同數據集的輸入可以有效地共享字符和單詞級表征.文獻[25]的作者將提出的多任務模型與多個BioNER系統和基線神經網絡模型在15個基準BioNER數據集上進行比較,并觀察到更好的性能.Gorinski等人[26]對比了基于規則、運用深度學習和遷移學習3種不同的系統在對腦卒中患者的腦成像報告中的命名實體識別任務的應用效果.實驗表明基于規則的系統因為有相關領域專家提供的規則效果最精確,而運用BiLSTM-CRF模型的系統減少了設計新規則時對專家知識的需求,學習效率更高,遷移學習雖然仍然需要大量人工操作但是表現很好有代替基于規則的系統的可能.但是無論是RNN還是CNN,在處理NLP任務時都有缺陷.CNN是其卷積操作不適用于序列化的文本,RNN的缺點則是其不能實現數據處理并行化,這會導致對內存的要求過高.在中文電子病歷的命名實體識別研究中,張聰品等人[27]構建了LSTM-CRF模型對電子病歷進行命名實體識別,準確率達到了96.29%.
在深度學習中不得不提到的是Word2Vec模型[28]和Bert模型,它們采用分布式表示方法將自然文本轉換到詞向量,之前提到的特征都是基于詞向量挖掘而被具體的神經網絡學習最終服務于各種任務,包括命名實體識別、關系抽取任務等.
④ Word2Vec模型.傳統的自然語言詞語處理方法將詞語看作一個符號,被稱作one-hot表示,這種方法導致詞與詞之間的關系被獨立開,當詞表過大時,向量維度也隨著變大,Word2Vec的提出解決了這一問題.Google在2013年提出了一種新的用于計算詞向量的方法Word2Vec[28],Word2Vec模型是一種快速訓練詞向量模型的方法.使用Word2Vec模型的目的在于從大量的文檔醫學文本數據中訓練出高質量的詞向量,Word2Vec被用來解決大規模語料的詞向量表達問題,在Word2Vec出現之前,很多的NLP技術都是采用one-hot結構,這樣構建出的詞向量忽略了詞語之間的相似性和關聯性,Word2Vec則提出了詞向量的分布式表示方法,利用淺層神經網絡,在大規模無標注語料庫上訓練低維稠密的詞向量.Word2Vec框架提出基于分布式詞表示的思想,即要理解一個詞語的意思只需要通過了解詞語出現的上下文即可.由此提出了2種用于訓練的模型,一種為連續詞袋模型(continuous bag of words, CBOW)模型,其基本思想是給定上下文來預測其中心詞;另一種為連續跳躍模型(continuous skip-gram model, Skip-Gram),是利用給定的中心詞來預測上下文進行訓練.在生物醫學文本挖掘任務中,由于生物醫學語料庫與一般領域語料庫在詞匯和表達方面存在較大差異,在應用于生物醫學數據時需要在醫學文本語料上進行訓練.如Zhu等人[29]在包含臨床報告和臨床領域相關的Wikipedia頁面的語料庫上訓練上下文單詞嵌入模型,然后訓練BiLSTM-CRF模型.
⑤ BERT模型.以Word2Vec為代表的詞向量模型有一個明顯的缺陷,即訓練好的詞向量是固定的,單詞不會因為處在不同的語境而改變,這對于一詞多義的情況是十分不利的.因此在Word2Vec出現之后,涌現了許多利用語言模型建立基于上下文的詞向量方法,如ELmo[30],OpenAI[31],BERT[32],其中的模型BERT是最具影響力的方法.BERT模型是基于Transformer提取特征,并采用雙向語言模型.其訓練方式區別于傳統的從左到右的訓練方式,而采用2種新的方法進行大規模無監督訓練,2種方法分別是Masked LM和Next Sentence Prediction.Masked LM方法是在給定一句話并隨機抹去這句話中的1個或幾個詞語,然后利用BERT模型去預測這幾個被抹去的詞語.Next Sentence Prediction是給定一句話,判斷下一句話是否與給定的句子屬于同一個上下文中.其在文本分類任務、語句對分類任務和NER中均取得SOTA(state-of-the-art)的效果.BERT采用多層雙向Transformer編碼器,可以學習生成考慮語境的語言模型,并可以在調整后針對各種任務(如命名實體識別和關系抽取).Mao等人[33]在系統Hadoken中利用BERT模型對訓練數據進行預訓練,然后將臨床病例的表征提供給CRF輸出層以進行分類,并且發現其適用于多語言命名實體識別任務.
深度學習的模型通常需要大量的標注訓練數據,然而在電子病歷文本挖掘任務中構建大型訓練集需要專業人士的知識,成本非常高.因此用于生物醫學文本挖掘任務的訓練數據較少,大多數生物醫學文本挖掘模型無法充分利用深度學習的能力.為了解決訓練數據的缺乏,近年來有研究集中在訓練多任務模型或是借助遷移學習的力量.如Yoon等人[34]提出使用多個NER模型(在文中指的是一組BiLSTM-CRF模型)組合的CollaboNet.在CollaboNet中,在不同數據集上訓練的模型彼此連接,成功地減少了錯誤分類實體的數量并提高了性能.另一方面,在深度學習中應用遷移學習的思想,用在其他數據集訓練好的模型初始化部分甚至所有的神經網絡中的參數,為用目標數據集訓練做準備.Lee等人介紹了針對生物醫學文本挖掘任務的語境化語言表示模型BioBERT[35],其在原結構BERT的基礎上重新訓練.他們使用遷移學習來解決缺乏訓練數據的問題,即使用一般語料庫和醫學領域語料庫對BioBERT進行預訓練.實驗證明,BioBERT能有效地將大量其他語料庫文本的知識遷移到醫學文本挖掘任務中,只需要針對特定任務的體系結構進行少量修改.BioBERT在3個具有代表性的生物醫學文本挖掘任務、生物醫學命名實體識別、生物醫學關系提取和生物醫學問答系統上明顯優于其他模型.
關系抽取(relation extraction, RE)通?;诿麑嶓w識別的結果之上,也是自然語言處理中一個重要的子任務,但是由于深度學習的發展,也有不少深度神經網絡將命名實體識別和實體關系抽取看作一個完整的任務.理論上,關系抽取任務分為2步,首先判斷一個實體對是否存在關系,若有關系,則進一步判斷屬于哪種關系.在實際模型設計中,通常把無關系當作一種特殊的關系,直接將關系抽取看作是多類別分類任務.關系抽取是醫療健康知識庫建立維護的基礎.在醫學領域,不同實體間的關系有不同的定義標準,根據I2B2 2010評估會議[36],EMR中的實體關系可以分為3類,包括疾病之間的關系、疾病與醫學檢查的關系以及疾病與治療之間的關系.在醫學領域,常常采用基于共生[37]、傳統機器學習和深度學習方法來進行關系抽取.基于共生的方法是基于2個實體同時出現的頻率越高關系越強這一假設的統計方法.最廣泛使用的方法還是傳統機器學習方法和深度學習方法,例如Bhasuran等人[38]采用有監督的機器學習方法,即使用深度集成支持向量機來訓練,利用語法和語義屬性的特征集并結合詞嵌入,從4個標準語料庫中提取基因-疾病關系.實驗顯示在EUADR,GAD,CoMAGC,PolySearch四個語料庫處理結果的F-measure分別達到85.34%,83.93%,87.39%,85.57%.
同時,將機器學習與深度學習相結合,也可以提高電子病歷中關系抽取性能.如張玉坤等人[39]將CNN,SVM,CRF三者結合,然后通過聯合學習方式來對醫療文本進行關系抽取,取得了不錯的效果.自注意力機制也是醫療關系抽取中常用的方法,寧尚明等人[40]針對文本特征的每個通道都計算注意力權重,實現了電子病歷實體關系的抽取,在2010 i2b2和SemEval 2013 DDI中F1值分別達到69.72%和72.32%.
時序性是電子病歷數據的一大特點,因為電子病歷通常不僅包括患者當前的治療狀況和指標,還包括患者過去所經歷的臨床事件.為了自動構建這些事件之間的時間線,需要抽取臨床記錄中事件和時間的關系.自動檢測并抽取患者記錄中的時間和事件之間的關系能幫助醫務人員了解疾病進展,如Tian等人[41]提出了一種基于深度學習的漢語電子病歷時間信息提取框架.他們運用LSTM-CRF模型提取臨床實體如疾病、治療等以及時間等相關實體,之后用CNN進行時序關系分類.
另外,從臨床記錄中提取藥物相關實體與藥物之間的關系,可以幫助患者避免藥物引發的不利效果,比如藥物的不良事件(adverse drug events, ADE)中的實體關系能反映某些藥物引起的副作用,以及副作用對患者產生的影響.電子病歷是挖掘ADE的豐富信息來源,學者們已經廣泛應用NLP技術以使用關系抽取方法挖掘在電子病歷數據中的ADE相關信息.Christopoulou等人[42]提出了一種集成學習方法,其運用神經網絡模型中的Bi-LSTM注意力機制和Transformer神經網絡來提取藥物和藥物相關實體之間的關系.
文本分類是文檔級的自然語言處理任務,目標是給文檔打上預定義的文檔級標簽.電子病歷中的醫學報告是一種具有豐富信息的資源,特別是主要用自然語言寫的自由文本部分,這部分包括醫生的臨床推理信息及其思維過程,其能通過提供詳細的病人情況來幫助解決不同的臨床問題,而且它們通常不能被其他結構化數據所代替.文檔分類有助于處理和提取這類數據,輔助后續的分類預測任務,并提高敘述性臨床筆記的利用效率,因此文檔分類成為臨床預測分析的一個重要研究領域.早期的文獻中,自動分類研究需要利用手工實現且由專家制定規則的知識工程,這非常耗時耗力,且對人力資源有較高的要求.最近,機器學習算法和自然語言處理技術已經被用來處理電子病歷以支持臨床決策,目前效果較好的文檔分類方法之一是基于Word2Vec的神經網絡模型.深度神經網絡可以通過算法本身學習復雜的數據特征,而不需要手工設計的特征提取規則.深度學習在醫療文本分類中通常使用的方法是先利用網絡將醫療文本以字為單位應映射到向量空間,然后再利用SVM等模型對向量空間進行分類[43],例如Hughes等人[44]將基于單詞分布式表示的CNN應用于句子級的醫學文本分類任務中,取得了很好的性能.
文本分類可以被用于分類臨床記錄,以此來輔助識別患者所患疾病,例如Turner等人[45]評估了多種傳統分類器(包括神經網絡、隨機森林、樸素貝葉斯、支持向量機等)在系統性紅斑狼瘡患者識別中的性能,其中具有統一醫學語言系統(unified medical language system, UMLS)概念唯一標識符(CUIs)的淺神經網絡和同時具有CUIs和詞袋模型(bag-of-words, BoW)的隨機森林表現最優.Topaz等人[46]針對從臨床記錄中識別糖尿病患者這一任務建立了一個基于NLP的分類系統Nimble-Miner,運用了包括SVM,RNN等多種機器學習方法.Doing-Harris等人[47]使用聚類算法,基于詞匯和詞性的數據表征,通過無監督學習區分不同文檔類型和信息來源,并取得了良好的性能.Kocbek等人[48]使用基于bag-of-phrases的SVM檢測各種疾病類別,對潛在疾病的人入院進行分類.
也有學者從臨床記錄中的句嵌入方法入手臨床文本分類問題,與詞嵌入相似,句嵌入是一種高維向量,它可以表示單詞序列的特征.句子嵌入的使用通常是考慮到在訓練數據較少的情況下,依賴許多詞向量的RNN捕獲診斷信息來分類文檔比較困難,而少量的句子向量就可以獲得豐富的語義信息.如Ormerod等人[49]通過LSTM構建電子病歷分類模型,并同時顯示文檔中哪些句子對患者的病情診斷最有幫助.另外,中文病歷的文本分類與英文電子病歷的文本分類有所不同,因為中文語言有其特殊性:斷句方式不同、需要新的分詞工具等,且中文電子病歷既有短文本又有長文本,因為在借鑒國外優秀成果時需要結合中文特點作出調整.杜寶琛[50]在設計基于電子病歷的輔助治診斷系統時同時考慮長短文本,采用了雙通道下不同神經網絡同時學習.呂愿愿等人[51]在對電子病歷進行自然語言處理后,利用TF-IDF和潛在語義分析(latent semantic analysis, LSA)方法提取特征,在挖掘出依存關系后對病歷短文本進行分類.
問答系統(question answering system, QA)是自然語言處理中的傳統任務,相比于日常的機器問答,由于在醫學領域有更多的專業名詞,實現問答則更為困難,傳統的問答系統通常需要特征工程、語言工具或外部資源的幫助.通常是使用語言模型提取語義特征,利用決策樹等模型[52-53]來識別問題的答案.盡管這些方法具有一定的有效性,但它們需要額外的資源和特征工程并使用語言工具,模型的復雜性較高.
目前,問答研究主要集中在利用深度學習技術自動提取句子特征,且多在通用數據集上進行測試.例如Wang等人[54]使用LSTM框架將答案選擇任務轉化為分類和排序問題.Xiong等人[55]使用動態協作注意網絡將斯坦福問答數據集上的F1值增加到80.4%.此外,Tan等人[56]提出了一個基于注意力機制的RNN模型,將問題注意引入到答案表征中,建立了基于BiLSTM模型的匹配問答對,并利用余弦相似度計算了它們的接近度.Dong等人[57]提出了一種改進的多列卷積神經網絡,從響應路徑、上下文和答案類型3個方面學習問題和答案的分布式表示.Santos等人[58]提出了一種基于特征加權的雙向注意力機制,通過特征工程、注意機制等提高問答匹配的準確性.
使用大型帶注釋的數據集構建的幾個開放領域的機器理解系統使自動問答取得了長足的進步.然而在臨床領域,自動問答仍然在探索階段.由于缺乏大規模的臨床標注數據集,目前還沒有一個通用的系統來回答醫生在病人的電子病歷上提出的自然語言問題.醫生們通常希望根據電子病歷中找到有關醫療實體和關系的問題答案,這需要計算機對臨床筆記有更深的理解.電子病歷中數據的特性包括大量的非結構化數據、大量的專業術語、多個疾病之間有時序性和拼寫錯誤等,而這些都是機器理解電子病歷時的難點,現有的NLP工具難以應付這種復雜情況.此外,在挖掘答案時也有難點,因為答案可能是隱式的,而且可能需要多個臨床領域的知識和推理.由于這些挑戰的存在,為患者構建可信的QA系統變得十分困難,同時QA系統一般需要大規模的問答注釋.然而構建數據集涉及到個人健康信息的隱私問題以及大量人力資源,手工構建大型注釋數據集不切實際[59].
QA數據集主要分為兩大類:使用非結構化文檔的機器理解(machine comprehension, MC)數據集和使用知識庫的問題-答案對數據集.MC系統旨在回答任何針對參考文本提出的問題.最近在云資源和搜索引擎方面的進展導致了MC數據集的爆炸式增長,但其中有價值的數據比例卻較少.另一方面,特定領域MC數據集如MCTest,BioASQ,InsuranceQA等對專家注釋的需求高,同時也涉及隱私問題,這使其在規模上受到了限制(500~10 000).Pampari等人[60]利用i2b2數據集中針對各種NLP任務的臨床筆記上的現有專家注釋,為電子醫療記錄生成大型問題-答案對數據集.得到的語料庫有100萬個問題形式和40多萬個問題-答案對,在問題-答案的關系抽取時用了帶注意力層的端對端模型.Roberts等人[61]通過在468個電子病歷問題上手工注釋標簽,生成了語料庫.隨著醫學QA系統的發展,學者們也結合了傳統的方法和深度神經網絡方法來構建混合模型.這些模型結合了神經網絡模型的精確性和傳統方法中符號表示的可解釋性.
總而言之,醫療問答系統方面還處于探索和研究階段,沒有能夠切實有效的落地應用,但其未來的潛力巨大,是一個非常有前景的研究方向.
除了常見的命名實體識別、關系抽取、文本分類和醫療問答等基本任務外,對于電子病歷文本挖掘的應用廣泛存在于不同的領域,且在不同的疾病中往往有不同的表現形式.
國際糖尿病聯合會2017年修訂的第8版本數據顯示,全球有4.25億糖尿病患者.這意味著每11個成年人里就有1個糖尿病患者,而中國有超過1億人患有糖尿病,所以不管是對個體患者還是在整個人類范圍內,管理糖尿病都是非常重要的[62].糖尿病是一種慢性疾病,健康的胰腺分別通過α-細胞和β細胞動態控制胰島素和胰高血糖素激素的釋放,以維持正常血糖[63],而糖尿病特征是患者體內不存在葡萄糖穩態.糖尿病可以分為多種,當身體的免疫系統攻擊產生胰島素的細胞并完全停止產生胰島素時,就會導致Ⅰ型糖尿病;當身體不能產生足夠的胰島素或細胞產生胰島素抵抗時,會導致Ⅱ型糖尿病,Ⅱ型糖尿病可能是遺傳、飲食不良、缺乏運動或肥胖的結果;另外還有妊娠期糖尿病(妊娠中期或晚期確診糖尿病且在妊娠前沒有糖尿病癥狀)和由于其他原因引起的特定類型的糖尿病,例如單基因糖尿病綜合征、外分泌胰腺疾病和藥物或化學誘導的糖尿病[64].糖尿病護理在很大程度上取決于患者的日常自我管理,包括吃什么以及何時運動,以及確定部分患者需要的胰島素劑量和時間.在這種情況下,每個患者每天都產生與糖尿病相關的大量數據,這些數據來源包括電子病歷、胰島素泵、傳感器、血糖儀和其他可穿戴設備,還包括實驗中糖尿病相關的基因組學、蛋白質組學、代謝組學和微生物學數據[65].所以在糖尿病相關的研究中有許多數據挖掘的應用.最早在2002年Breault等人[66]應用CART分析方法對糖尿病數據庫進行了分析,雖然準確率僅為59%,但是首次驗證了數據挖掘技術在糖尿病問題領域的應用前景.隨著標準化的電子病歷系統在中國的興起,糖尿病相關的診斷和風險管理等也接受到電子病歷文本挖掘的輔助,本節將從糖尿病的診斷角度闡述機器學習在糖尿病上的應用.
糖尿病的診斷需要通過包括α-糖酸鹽血紅蛋白(A1C)實驗、隨機血糖實驗、空腹糖試驗或口服葡萄糖耐量實驗在內的幾項實驗.無論是Ⅰ型還是Ⅱ型糖尿病,早期診斷和預測對于延緩疾病發展,有針對性地選擇藥物,延長患者預期壽命,減輕癥狀和相關并發癥的發作都至關重要.生物標志物(例如生物分子)是代表健康和疾病狀態的特定病癥的可測量指標,通常在體液(血液、唾液或尿液)中測量.在研究糖尿病的情況下,生物標志物可以反映患者是否存在高血糖及其嚴重程度,或是否存在糖尿病相關并發癥及其嚴重程度.而機器學習方法中的特征選擇可以幫助挖掘出新的生物標志物,輔助糖尿病的確診,且在特征選擇步驟之后,分類算法可以被用來評估所選特征的預測準確度.例如Jelinek等人[67]研究了在糖化血紅蛋白(glycated hemoglobin, HbA1c)水平低于或等于6.5%的情況下,找到的2種生物標志物與HbA1c一起參與檢測,提高了糖尿病的診斷準確性.也有學者利用特征提取的算法選取預測糖尿病的特征,如Bagherzadeh-Khiabani等人[68]使用了803名有55個特征的糖尿病前期女性的臨床數據集,比較了19種常用的特征選擇算法來預測糖尿病.Sideris等人[69]提出了一種基于聚類的特征提取框架,使用疾病診斷信息產生的特征群,并用作預測患者病情嚴重程度和患者再入院風險.
許多利用電子病歷的機器學習方法和框架被運用到Ⅱ型糖尿病的早期診斷上[70-71].集成學習方法和關聯規則學習也被大量運用到糖尿病的診斷中.如Tapak等人[72]比較了5種機器學習模型ANN,SVM,FCM(fuzzyk-means)、隨機森林(random forst, RF),LDA(linear discriminant analysis)來分類是否患有糖尿病的個體.集成學習也被逐漸應用到診斷糖尿病的分類系統中[73].Han等人[74]提出了一種基于SVM和RF的規則提取集成學習方法.另外,通過挖掘一些與糖尿病相關的屬性也可以預測糖尿病風險,提醒體檢的人注意某些習慣預防糖尿病的發生.
深度學習方法也對糖尿病的診斷研究作出了貢獻,尤其是在對電子病歷非結構化數據的處理分析中,例如可以有效地識別病歷中未明確指出的糖尿病病例,從而顯著改善糖尿病病例發現現狀.EMR的非結構化數據存在于臨床記錄、手術記錄、出院記錄、放射學報告和病理報告中.其中臨床記錄包含的信息有患者的病史(疾病和治療措施等)、疾病家族史、環境和生活方式等,因此提供了很多可供研究的細節信息[75].Zheng等人[76]針對已有算法無法大量識別糖尿病電子病歷案例中非結構化數據的問題,使用RF的方法實現更完整的糖尿病診斷.Pham等人[77]針對個性化醫療中的預測患者疾病和護理過程建模問題,考慮了包括時序性等幾項特性,提出了一種端到端的深層動態神經網絡.其基于LSTM,引入了處理不規則且有時序性事件的方法,還模擬醫療干預措施改變病程,根據歷史和當前健康狀態來估計未來結果.最近,Liu等人[78]提出了一個多任務學習框架來預測包括糖尿病在內的慢性疾病的發病,并比較了不同深度學習架構(包括CNN和LSTM)的性能.
糖尿病作為影響人類健康的常見疾病,長久以來一直損害著社會的經濟,用自動化、低成本的方式來管理糖尿病的患者,輔助醫療,將創造巨大的社會效益.
心腦血管疾病是心臟血管和腦血管疾病的統稱,泛指由于高脂血癥、血液黏稠、動脈粥樣硬化、高血壓等所導致的心臟、大腦及全身組織發生的缺血性或出血性疾病.其中心血管疾病(cardiovascular disease, CVD)是全球眾多致死疾病之一,因其死亡人數占全球死亡人數的13[79].2種疾病都嚴重威脅人類,特別是50歲以上中老年人的健康,且有幸存者生活不能完全自理的可能性,或者有嚴重的并發癥,例如心力衰竭(heart failure, HF).但是電子病歷文本挖掘可以在多個角度輔助患者的治療和風險管理等.例如通過電子病歷計算患者HF存活風險評分,識別高風險患者并應用個體化治療和健康生活指導將降低其死亡風險[80],且可以在出院時確定再入院風險的患者.另外,Li Bin等人[81]在心血管疾病的許多嚴重的預后疾病如急性心肌梗死、肺栓塞、嚴重的腦神經系統疾病等研究中發現風險預警模型可以探討其風險因素,篩選出與危重疾病預后相關的嚴重疾病(中風、心力衰竭、腎功能衰竭).本節主要就心腦血管疾病的預測討論數據挖掘技術輔助心血管疾病治療的作用.
對于心腦血管疾病的預測,在醫療領域,建立可預測患者疾病的模型可以提高醫院的治療效果和效率.傳統的對于心血管的治療預測等都是通過評分來輔助決策,例如美國心臟病學會(American College of Cardiology, ACC)美國心臟協會(American Heart Association, AHA)提出基于風險因素的組合Framingham風險評分,包括高血壓、糖尿病、膽固醇和吸煙狀況等這些常規因素的預測模型預測心血管疾病.然而,隨著電子病歷系統的迅速普及,患者的大部分數據都以電子格式存儲.確定疾病所需的風險因素數據存在于電子病歷中,包括結構化數據如心電圖、血管造影等和臨床記錄等非結構化數據.然而,通常為了利用結構化數據,需要大量的人力物力資源來對數據進行篩選和清洗,同時從非結構化電子病歷數據中手動提取所需成本也十分昂貴[82].且心血管疾病本質上是復雜的,由多種遺傳、環境(例如空氣污染)和行為因素(例如飲食)引起的,需要更有效的工具來準確地預測結果,而不是依靠簡單的評分系統.在數據挖掘領域,人工智能技術(如機器學習)正在徹底改變醫生制定臨床決策和診斷的方式,并提高心腦血管疾病風險自動化預測的水平.將醫學信息技術與機器學習技術相結合,使用疾病相關數據生成的預測模型,可以提高預測準確性.其中,有監督學習算法已成功應用于心腦血管疾病的預測.Kim等人[83]使用與心血管疾病相關的健康數據進行統計分析,找出與心血管疾病相關的變量,并建立了基于深度信念網絡(deep belief nets, DBN)的心血管風險預測模型.但是有監督學習也有一定的缺點,首先其需要大型數據集來訓練模型并通過其他數據集進行驗證.通常還需要手動標記訓練數據集,比如蘇嘉等人[84]針對中文電子病歷特點構建的心血管疾病風險因素的標注語料庫,以預測死亡率和再入院率等.此外,即使模型能在給定的訓練數據集和測試集上表現良好,但是它可能由于訓練數據與真實數據的差異和過擬合情況而導致偏差.針對這些問題,也有不少無監督學習算法應用到心血管疾病預測模型中,在最近的趨勢下無監督深度學習在這一領域表現較好.其次,深度學習可用于分類來自異質CVD的新基因型和表型,例如肺動脈高壓和心肌病等.另外,深度學習預測模型可以通過高血壓、腎功能異常、肝功能異常、年齡、藥物治療和酒精攝入等因子之間的加權來預測出血和中風的風險評分,以確定患者的最佳劑量和抗凝治療持續時間[85].最后,通過深度學習,可以從心電圖模式或超聲心動圖預測冠狀動脈鈣化評分.事實證明,深度學習比其他機器學習技術(如SVM)更好.但是深度學習也有缺點,比如其通常是非線性分析,有很多參數和多層,因此可能導致過度擬合而預測性能不佳.而且,深度學習還需要大量的訓練數據集,這需要各機構之間的協作,對計算機硬件的要求也較高.
腦血管疾病主要的表現就是腦卒中,也叫中風,主要分為缺血性腦卒中和出血性腦卒中.中風的預測從簡單的到復雜的模型各不相同.腦卒中的風險因素是復雜的,可以從直接和間接2方面找到不同程度的因素.Leira等人[86]采用逐步回歸法對數據庫中選擇的1 266例患有缺血性腦卒中患者和復發腦卒中患者的醫療記錄進行分析并選擇20個臨床變量進行評估.Goyal[87]利用ICD-10編碼(包含疾病特征和分類)和腦卒中患者的電子病歷數據進行分析,最終利用LSTM建立腦卒中的預測模型.除此之外大多數的數據挖掘模型都結合電子病歷中的醫學圖像輔助腦血管疾病的預測.
簡而言之,對患有心腦血管疾病患者的電子病歷進行數據挖掘,可以從病前、病中、病后3個階段進行有效的預測,從而來配合醫生和患者做出更好的決策.
在醫療領域中,文本電子病歷是醫療單位對患者臨床診療的數字化相關信息載體.電子病歷數據中的知識對于臨床決策和醫藥研發等都有很強的指導意義,其非結構化特征導致很難利用計算機直接進行批量分析.故將人工智能技術和大數據數據挖掘的手段應用在電子病歷中是大勢所趨,但是由于電子病歷數據的特性,機器學習方法的應用也有特定的挑戰和難點,其吸引了國內外廣大學者的研究.本綜述針對電子病歷數據挖掘,尤其是其中的非結構數據挖掘的主要分析流程和方法進行了梳理,簡要介紹了傳統機器學習和深度學習常見網絡結構,綜述其在電子病歷等方面的最新研究進展,并且探討了在糖尿病和心腦血管疾病這樣特定疾病中的應用現狀和前景,為后續文本數據挖掘的研究應用提供參考.