李 博,康曉東,張華麗,王亞鴿,陳亞媛,白 放
天津醫(yī)科大學 醫(yī)學影像學院,天津300203
隨著醫(yī)療信息化的快速發(fā)展,電子病歷在各大醫(yī)院的應用越來越普及,不同于傳統(tǒng)紙質病歷,電子病歷更便于保存和查閱。電子病歷(Electronic Medical Records,EMR)產(chǎn)生于臨床治療過程,是由醫(yī)務人員撰寫的描述患者診療經(jīng)過的重要醫(yī)療信息記錄[1]。電子病歷記錄患者所患疾病、癥狀和體征、檢查的檢驗、治療等一系列與患者健康狀況密切相關的重要信息,這些信息是醫(yī)療信息系統(tǒng)的核心數(shù)據(jù),如何利用電子病歷挖掘有用信息是現(xiàn)代化醫(yī)療中非常重要的任務之一。電子病歷是非結構化數(shù)據(jù)且缺乏統(tǒng)一的表述標準,這是阻礙電子病歷二次利用的主要原因[2-3]。因此,迫切需要找到能夠自動將非結構化的文本轉化成可被計算機識別的結構化數(shù)據(jù)的信息抽取方法,便于計算機理解和使用。
命名實體識別(Named Entity Recognition,NER)是自然語言處理的一項基本任務,也是信息抽取的關鍵組件,對信息檢索、機器翻譯和自動應答等研究有重要意義[4]。電子病歷含有大量實體,且類型多樣,其中包括疾病名稱、檢查方式和治療等,識別這些實體對于文本信息的結構化起著關鍵作用。
目前,命名實體識別的常用方法有:(1)基于規(guī)則和詞典的方法[5]。這種方法有較大的弊端,規(guī)則和詞典需特定領域專家手工編寫,工作量巨大且適用范圍窄,很難推廣使用。(2)基于統(tǒng)計的方法。主要包括最大熵模型(Maximum Entropy Models,MEM)[6]、支持向量機(Support Vector Machines,SVM)[7]、隱馬爾可夫模型(Hidden Markov Models,HMM)[8]、條件隨機場(Conditional Random Fields,CRF)等[9]。這種方法無需過多的人工干預,具有良好的靈活性和魯棒性,但是卻需要大量的標注集,依賴于選取特征的正確性。(3)基于混合的方法[10-11]。包括統(tǒng)計方法之間的融合和內部層疊融合;基于詞典、規(guī)則和統(tǒng)計方法之間的融合。采用融合技術,高效地將各類模型、算法結合起來,可修正實體邊界并改進實體語義分類結果,提高系統(tǒng)的精確率與召回率。(4)基于深度學習的方法。隨著深度學習的興起,越來越多的研究人員開始使用深度神經(jīng)網(wǎng)絡進行命名實體識別。這種方法的優(yōu)勢在于,不需要人工對數(shù)據(jù)進行預處理,可由搭建好的神經(jīng)網(wǎng)絡模型自行訓練并提取特征。早期應用最為廣泛的就是循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network,RNN)。RNN 能通過保存之前的歷史信息來對目標進行預測,因此它對預測分類目標的文本處理能獲得更好的效果。但是,RNN 的記憶功能會隨著距離的變長而衰減,導致喪失學習遠距離信息的能力。針對這一現(xiàn)象,Hochreiter等[12]在RNN的基礎上,又提出長短時記憶單元(Long Short Term Memory,LSTM),通過“門”結構解決了RNN 容易出現(xiàn)梯度消失的問題,使網(wǎng)絡能夠獲取到更多歷史信息,解決了長時依賴問題。門循環(huán)單元(Gated Recurrent Unit,GRU)是RNN的另一種變體,2014年由Cho等人[13]提出,GRU將輸入門與遺忘門合成一個獨立的更新門,與LSTM相比,其結構更加簡單,參數(shù)更少,可縮短訓練時間。
單向的循環(huán)神經(jīng)網(wǎng)絡只能捕獲序列的歷史信息,但是對于序列標注任務而言,一個標簽和該標簽的上下文都有關系,為了充分地利用上下文信息,Graves 等人[14]提出了雙向LSTM 模型(BiLSTM),將單向LSTM 變?yōu)殡p向結構,使該模型在命名實體識別等序列標注任務中得到廣泛應用。此外,融合注意力機制并結合條件隨機場的Attention-BiLSTM-CRF 模型更是在開放域的命名實體識別任務中獲得了非常高的F1 值,成為目前識別效果最好的模型之一[15-16]。
近年來,國內中文電子病歷命名實體識別的研究工作有很大進展。張祥偉等[17]基于條件隨機場,通過逐一融合語言符號、詞性、關鍵詞、詞典、詞聚類等多種特征,提出一種多特征融合的中文電子病歷命名實體識別方法。楊紅梅等[18]采用BiLSTM 結合CRF 訓練命名實體識別模型,并建立了目前規(guī)模最大的中文肝癌專科語料庫。栗偉等[19]提出了一種基于CRF 與規(guī)則相結合的醫(yī)學電子病歷命名實體識別的新算法,該算法先采用CRF進行實體的初始識別,然后基于決策樹生成的規(guī)則和臨床知識規(guī)則進行實體識別結果優(yōu)化,獲得了很高的準確率。于楠等[20]先選取多種有效特征,再將高層特征與條件隨機場模型融合,很好地識別出電子病歷中的疾病和診斷以及癥狀和體征兩類實體。栗冬冬[21]嘗試將BiLSTM與卷積神經(jīng)網(wǎng)絡相結合,構造BiLSTM-CNN命名實體識別模型,憑借CNN 模型提取更重要的詞語特征,明顯提升模型的識別性能。夏宇彬等[22]將LSTM模型應用于中文電子病歷命名實體識別,發(fā)現(xiàn)LSTM網(wǎng)絡比依賴于手動定義特征的條件隨機場模型的F1 值高出7.47%,從而證明LSTM 對于中文電子病歷的命名實體識別具有更高的優(yōu)越性。
由于非結構化的電子病歷中含有大量的醫(yī)學專業(yè)術語和專有名詞縮寫等特殊實體,需要高度依賴上下文信息才能精準提取實體。BiLSTM 模型以其充分考慮長距離時序的上下文信息而成為目前主流的命名實體識別模型。
隨著神經(jīng)網(wǎng)絡在機器學習領域的不斷發(fā)展,2017年Vaswani 等人[23]提出一種只使用注意力機制(Attention)的機器翻譯模型,它摒棄了之前傳統(tǒng)的Encoder-Decoder模型必須結合RNN或者CNN的固有模式,使用完全基于注意力機制的方式,作者將這種模型命名為Transformer。傳統(tǒng)的基于RNN 的模型難以處理長序列的句子,無法實現(xiàn)并行,效率低;CNN 模型雖然可以實現(xiàn)并行計算,但這種模型非常耗費內存,并且在大數(shù)據(jù)量上的參數(shù)調整并不容易。基于注意力機制的Transformer模型,沒有使用RNN 和CNN 的方法和模塊,創(chuàng)新性地將注意力機制作為編碼器和解碼器的核心,在提高并行效率、減少計算量的同時,獲得更好的學習效果。
中文電子病歷文本結構復雜,命名實體種類繁多,且具有一定的領域特殊性,醫(yī)學專有名詞的命名實體具有獨特的命名法則,因此,中文電子病歷的命名實體識別的研究還不夠深入。雖然隨著神經(jīng)網(wǎng)絡模型應用的不斷成熟,基于RNN、CNN 和BiLSTM、BiGRU 等模型已被成功應用于中文電子病歷命名實體識別的研究中,但是,其識別效率不高和訓練模型不穩(wěn)定等問題并未得到改善。因此,針對中文電子病歷命名實體識別的特點和難點,本文提出一種基于Transformer 神經(jīng)網(wǎng)絡與CRF結合的新方法構建命名實體識別模型,該模型使用注意力機制作為編碼器和解碼器的核心,利用Transformer模型提取上下文的文本特征,同時在該模型的輸出層增加CRF結構做分類器進行聯(lián)合解碼。本文以真實中文電子病歷作為實驗數(shù)據(jù)集,同時構建BiLSTM、BiGRU、Attention-BiLSTM、BiLSTM-CRF、BiGRU-CRF、Attention-BiLSTM-CRF等多種模型進行對比實驗,實驗結果表明,本文提出的基于Transformer-CRF 的中文電子病歷命名實體識別模型具有更高的優(yōu)越性。
圖1 人工標注電子病歷樣例
本文以有償獲得的真實電子病歷數(shù)據(jù)自建數(shù)據(jù)集,用于中文電子病歷的命名實體識別。對研究所使用的數(shù)據(jù)集,提取其中的入院記錄部分用于標注數(shù)據(jù)集。為了保護患者隱私,首先做去隱私化脫敏處理。依據(jù)研究的數(shù)據(jù)抽取要求,由3名臨床醫(yī)生標注共5類醫(yī)學實體,實體分為癥狀和體征(Symptoms)、檢查和檢驗(Tests)、身體部位(Body)、疾病和診斷(Diseases)和治療(Treatments),圖1 是電子病歷標注樣例,表1 列舉了相應命名實體類型和示例。為了驗證數(shù)據(jù)集標注的一致性,由3 名醫(yī)生分別標注同樣的10 份數(shù)據(jù)(共782 個句子),計算標注的一致性達89.6%。統(tǒng)計訓練集和測試集中各個類別的命名實體個數(shù)如表2所示。
分詞是自然語言處理的基礎,作為中文電子病歷智能分析的第一步,對病歷文本進行分詞至關重要。由于中文電子病歷的語言是非結構化數(shù)據(jù),常常不同于規(guī)范的中文句子結構,因此,它具有專業(yè)性強,句子凝練的特點。Python 中常用的分詞工具有很多,包括盤古分詞、Yaha分詞、Jieba分詞、清華THULAC等。這些工具在開放領域中都有比較好的應用,但無法滿足中文電子病歷中特定語義的分詞。例如:“去甲腎上腺素”作為一個獨立的表達,會被劃分為“去/甲/腎上腺/素”,而不是將其當成一個整體,這意味著命名實體識別將納入分詞的誤差。為了解決這個問題,在該研究中,作者收集了現(xiàn)有醫(yī)學術語和醫(yī)學網(wǎng)站中常用疾病描述,以建立一個專用詞典。此外,還納入了數(shù)據(jù)集中的標注實體,基于Jieba分詞,對數(shù)據(jù)集進行分詞。
表1 命名實體分類
表2 數(shù)據(jù)集中各類實體個數(shù)
命名實體識別任務的輸入為句子序列,識別模型無法直接處理文字序列,需要先將其轉化為向量特征,然后輸入到模型當中。因此,這里需要一個word embedding 詞表將輸入的文字序列替換成詞向量的序列。word embedding可以在大量的語料上訓練得到,也可以通過隨機初始化得到。相對于隨機初始化的方式,通過大量語料預訓練得到的詞向量可包含更多的信息,有助于提高模型的識別效果。由于醫(yī)療領域術語不同于其他領域,在一般的數(shù)據(jù)如維基百科數(shù)據(jù)或新聞數(shù)據(jù)上訓練得到的word embedding效果并不好。因此該研究采用CCKS 2017 發(fā)布的7 815 組未標注數(shù)據(jù)在開源工具GloVe 上訓練得到100 維的詞向量,作為預訓練的word embedding 加入到命名實體識別模型中,其中未登錄詞通過隨機初始化得到。
Transformer 模型[23],其本質是編碼器(Encoder)—解碼器(Decoder)結構,如圖2 所示,左側虛線框內為編碼器結構,右側虛線框內為解碼器結構。
圖2 Transformer模型框架
Transformer 模型的編碼器結構由Nx(Nx=6)個相同的基本層堆疊而成,每一個基本層都由兩個子層組成,第一個是多頭注意力層(Multi-Head Attention),第二個是密集型全連接前饋神經(jīng)網(wǎng)絡層(Feed Forward Network),接著在兩個子層中使用一次殘差連接(Residual Connection),然后進行層歸一化(Layer Normalization)操作。
解碼器結構與編碼器結構類似,也是由6個完全相同的基本層堆疊組成,每一層除了包括多頭注意力層和前饋神經(jīng)網(wǎng)絡層外,還有一個隱蔽式多頭注意力層(Masked Multi-Head Attention),該層用于對編碼器層的輸出進行Multi-Head Attention 操作。解碼器的每個子層也采用殘差連接,然后歸一化操作。
注意力機制通常可以進行如下描述:將查詢向量(Query)和一系列鍵向量(Key)與值向量(Value)的鍵值對(Key-Value pairs)映射到輸出上。其計算過程主要分三步:
第一步,將Query 和每個Key 進行相似度計算得到權重,相似度用f 表示,即:
第二步,使用一個softmax 函數(shù)對這些權重進行歸一化,即:
最后,將權重和相應的鍵值value 進行加權求和得到最后的Attention,即:
Transformer是完全基于注意力機制的模型,編碼器和解碼器結構中大量使用了多頭注意力機制,縮放點積注意力是多頭注意力機制的核心。
縮放點積注意力機制輸出公式為:
其中,Q ∈Rn×dk,K ∈Rm×dk,V ∈Rm×dv,QKT即是用點積相似度函數(shù)求出Query 和Key 的相似度。在自然語言處理的研究中,通常K=V ,再經(jīng)過softmax函數(shù)可得出一組歸一化的相似度值。然后,對這些相似度值加權求和,來獲取Value 的權重。公式中1 dk起到縮放的調節(jié)作用,使內積不至于太大,防止經(jīng)過softmax函數(shù)后的結果非0即1。
多頭注意力是Transformer 模型中最重要的組件。該模型是用h 次不同的線性變換將dmodel維的Queries,Keys 和Values 分別映射成dk維,dk維和dv維。基于每個映射組的Query、Key 和Value,并行執(zhí)行Attention函數(shù),產(chǎn)生h×dv維的輸出值。然后,將它們連接并再次映射,產(chǎn)生最終值,具體如公式(5)所示:
式中:
式(5)與(6)中,WiQ,WiK,WiV為投影矩陣,WiQ∈Rdmodel×dk,WiK∈Rdmodel×dk,WiV∈Rdmodel×dv,WO∈Rhdv×dmodel。在本文設計的模型中,多頭數(shù)目h=8,dmodel=512,dk=dv=dmodelh=64。
條件隨機場(CRF)是一種無向圖模型[9]。它是在給定一組輸入隨機變量的條件下,得到另一組輸出隨機變量的條件概率分布模型,可廣泛應用于序列標注。在序列標注中,一個詞的標簽常常與其周圍詞的標簽存在關聯(lián)。因此,對于給定的句子,最有效的方法是將句子中當前詞的標簽與相鄰詞標簽的關系結合考慮,然后解碼出最優(yōu)的標簽序列。CRF 可從訓練數(shù)據(jù)中學習到與標簽相關的約束條件,以保證最終輸出結果的有效性。
CRF結構能學習上下文信息,結合輸出層結果和標簽序列的全局概率,預測出最大概率的標簽序列。以狀態(tài)轉移矩陣M 作為其中一個參數(shù),對標簽信息進行學習預測,從而計算出當前樣本的最佳標簽序列。形式地,給定句子:
其預測標簽序列為:
定義其得分如式(7)所示:
圖3 Transformer-CRF模型框架
其中,M 是轉移矩陣,Myi,yi+1表示從yi標簽轉移到y(tǒng)i+1標簽的概率,Ni,yi表示第i 個詞語被標記為標簽yi的概率,P(W,y)表示輸入句子序列W 被標記標簽序列為y 的概率分數(shù),求出最大的P(W,y)的值,即可得到當前樣本W(wǎng) 的最佳標簽序列。
由于Transformer 模型并不能充分利用輸出標簽之間的關聯(lián),偶爾會出現(xiàn)輸出無效標注結果的情況。目前,在序列標注任務中,對于利用相鄰的標注信息預測當前標簽的處理可大體分為兩類:第一類是以最大熵和最大熵馬爾科夫模型為代表的,這類模型是通過先單獨預測每個輸入標簽,再對這些結果統(tǒng)一解碼來尋找最大概率標簽的情況。第二類就是以條件隨機場為代表的模型,這類模型更加注重句子整體的考慮,而不是單獨某個標簽的情況,因此,條件隨機場在序列標注任務中可獲得更好的效果。為確保輸出結果的有效性,本文提出一種在Transformer 模型提取特征的基礎上,以條件隨機場(CRF)作為分類器得到輸出結果的新方法,Transformer-CRF模型計算流程框架如圖3所示。
首先,將輸入的分詞在預訓練詞向量表中查表獲得詞向量;其次,將詞向量送入Transformer模型提取文本特征;然后,將Transformer模型的輸出結果作為CRF層的輸入;最后,由CRF層預測全局最優(yōu)結果。
本文所用實驗環(huán)境的主要參數(shù)為處理器:Intel?Xeon?W-2102@2.9 GHz;內存:16 GB;操作系統(tǒng):Linux CentOS 7(64 bit);使用Google 深度開源框架TensorFlow 1.12.0 構建所有神經(jīng)網(wǎng)絡模型進行訓練和測試。其他軟件版本如下:python 2.7.15;numpy 1.15.4;jieba 0.39;tqdm 4.28.1。
Transformer-CRF模型參數(shù)的設置對模型的準確性和魯棒性具有很大的影響,為此,實驗采用Adam 優(yōu)化方法不斷更新參數(shù),為防止過擬合以及提高模型的泛化能力,在模型中引入Dropout。經(jīng)過多次實驗調參,得出的識別效果較好的Transformer-CRF模型主要參數(shù)如表3所示。
表3 Transformer-CRF模型主要配置參數(shù)
實驗自已標注數(shù)據(jù)集中隨機選取330 份中文電子病歷作為實驗數(shù)據(jù)集,其中80%作為訓練集,20%作為測試集。實驗同時構建BiLSTM、BiGRU、Attention-BiLSTM、Transformer、BiLSTM-CRF、BiGRU-CRF、Attention-BiLSTM-CRF、Transformer-CRF共8種命名實體識別模型進行對比研究,采用實體識別精確率P、召回率R 以及F1 值三個指標評價8種模型命名實體識別表現(xiàn)優(yōu)劣,其中精確率P 、召回率R 和F1 值的具體計算公式如下:
實驗采用BiLSTM、BiGRU、Attention-BiLSTM、Transformer、BiLSTM-CRF、BiGRU-CRF、Attention-BiLSTM-CRF、Transformer-CRF 這8 種模型進行對比實驗,采用精確率和召回率進行模型評價,并由此計算F1 值。癥狀和體征(Symptoms)、檢查和檢驗(Tests)、身體部位(Body)、疾病和診斷(Diseases)和治療(Treatments),這五類實體的識別結果分別如表4至表8所示。
表4 癥狀和體征識別各模型結果對比%
表5 檢查和檢驗識別各模型結果對比%
表6 身體部位識別各模型結果對比 %
模型BiLSTM BiGRU Attention-BiLSTM Transformer Bi-LSTM-CRF BiGRU-CRF Attention-BiLSTM-CRF Transformer-CRF P 90.27 91.65 92.78 93.76 93.85 93.21 94.89 95.15 R 88.37 89.67 91.21 91.22 91.67 92.86 94.03 94.89 F1 89.31 90.65 91.99 92.47 92.75 93.03 94.46 95.02
表7 疾病和診斷識別各模型結果對比%
通過以上對比實驗結果可以發(fā)現(xiàn),身體部位和治療這兩類實體的識別效果較好,因為身體部位的實體數(shù)量較多,模型對于該類實體的文本特征可以充分學習;而治療類實體在電子病歷中的表達具有一定規(guī)律,且有固定表達格式,如“予術后好轉”“予藥物治療”等,因此不易發(fā)生錯誤識別。表7 中疾病和診斷類實體的識別結果最差,因它與癥狀和體征類實體在語義上表達極為相似,易導致識別上發(fā)生混淆,從而導致疾病和診斷類實體的識別精確率、召回率和F1 值最小。而對于檢查和檢驗類實體,雖然該類實體數(shù)量最多,但是其中包含大量的特殊字符和英文簡稱,如WBC、HCG 等,這使得文本特征極為復雜,特征不易提取,因此識別效果不佳。
表8 治療識別各模型結果對比%
對比Transformer模型和BiLSTM、BiGRU、Attention-BiLSTM 模型,五類命名實體的識別結果顯示,癥狀和體征、身體部位、疾病和診斷與治療這四類實體的識別結果中,Transformer模型的F1 值要明顯高于另外三種模型;而檢查和檢驗類實體的識別結果中,Transformer模型精確率要高于BiGRU 模型,但召回率偏低,導致F1 值稍低于BiGRU,這可能是此類實體包含大量特殊字符導致,但是在中文電子病歷整體的命名實體識別任務中,還是Transformer模型占優(yōu)。同樣對比Transformer-CRF 模型和BiLSTM-CRF、BiGRU-CRF Attention-BiLSTM-CRF 模型,五類命名實體的識別結果顯示,所有識別結果中,Transformer-CRF模型的F1 值都要優(yōu)于另外三種模型,而且Transformer-CRF 模型的F1 值是8種命名實體識別模型中最高的,并在身體部位類實體的識別中達到了最高值95.02%。
實驗結果顯示,引入了CRF模型可以給各模型帶來不同程度效果的提升,使實體識別的精確率、召回率和F1 值都有所改善。Transformer 模型結合CRF 模型后,各類實體的識別效果都明顯增強,尤其檢查和檢驗類實體的召回率快速提升,F(xiàn)1 值遠高于其他模型,彌補了Transformer模型對于該類實體識別的誤差。
此外,通過對比分析幾種模型訓練過程中前50 輪次的參數(shù)更新情況,可以發(fā)現(xiàn)引入CRF模型可使各種模型的收斂加快。在訓練初期,Transformer-CRF 模型能很快地達到較高水平,并保持持續(xù)提升;而Transformer模型在初期提升較為緩慢,需要更多輪次的訓練才能緩慢達到理想水平。
最后,實驗中五類命名實體的識別結果相差較大,除以上討論的各種原因以外,樣本量也是重要因素之一。對于深度學習而言,加大樣本數(shù)量進行訓練,可以更加充分地學習到文本特征,以獲得更好的識別效果。因此,實驗的后續(xù)工作擬在實體數(shù)量更大、實體種類更加豐富的數(shù)據(jù)集上進行測試。
本文以真實中文電子病歷自建數(shù)據(jù)集,提出一種基于Transformer-CRF的中文電子病歷命名實體識別模型,并將該模型與目前主流的BiLSTM、BiGRU、Attention-BiLSTM 等多種模型進行對比實驗,進一步證明Transformer-CRF模型的優(yōu)越性。通過比較分析精確率、召回率和F1 值三個評價指標發(fā)現(xiàn),Transformer-CRF模型不僅具有更高的穩(wěn)定性,同時也使得命名實體識別的精確率有了進一步的提升,為識別效果更佳的模型。
Transformer-CRF模型的優(yōu)越性是因為其完全基于注意力機制,而注意力機制可以使Transformer-CRF 模型對輸入的文本序列選擇性學習,即利用注意力機制從大量電子病歷語料中快速篩選出有用信息,有助于后期模型訓練;基于注意力機制的模型能避免輸入和輸出序列的距離問題,完全不受輸入序列長度的限制。Transformer-CRF 模型是具有明顯優(yōu)勢的序列化模型,也可廣泛應用于其他領域。
接下來的工作是,通過加大中文電子病歷數(shù)據(jù)集,對疾病和診斷類實體的實驗結果做進一步的分析與評估,并不斷優(yōu)化參數(shù)設置,以改進模型整體的命名實體識別效果。