何 濤 陳 劍 聞英友
(1.東北大學(xué)東軟研究院 沈陽 110169)(2.遼寧省工業(yè)控制安全工程技術(shù)研究中心 沈陽 110169)
隨著醫(yī)療領(lǐng)域信息化的發(fā)展,電子病歷記錄了患者就診、檢驗(yàn)、診斷、治療、預(yù)后、隨訪等完整的就醫(yī)過程,包含了豐富的醫(yī)學(xué)知識,如何從海量的電子病歷文本中挖掘出有價值的關(guān)鍵信息,成為智慧醫(yī)療領(lǐng)域的重要課題。醫(yī)療命名實(shí)體識別(Named Entity Recognition,NER)技術(shù)可以從電子病歷中提取重要的實(shí)體信息[1],對后續(xù)構(gòu)建醫(yī)療實(shí)體關(guān)系[2]、分析電子病歷句法[3]、構(gòu)建疾病知識圖譜[4]等發(fā)揮重要作用。但基于中文文本不像英文等語言在詞與詞之間存在分隔符,并且實(shí)體描述沒有統(tǒng)一的規(guī)范,使中文醫(yī)療命名實(shí)體識別具有很大的挑戰(zhàn)性。
語義規(guī)則和詞典是NER 領(lǐng)域較早使用的技術(shù),采用語言學(xué)專家手工構(gòu)造規(guī)則模板,但這些規(guī)則往往依賴于具體語言、領(lǐng)域和文本風(fēng)格,通用性不強(qiáng)。在語料大數(shù)據(jù)發(fā)展的基礎(chǔ)上,命名實(shí)體識別問題更多地采用機(jī)器學(xué)習(xí)算法,較為常用的算法如支持向量機(jī)[5]、基于統(tǒng)計(jì)模型的隱馬爾科夫模型[6]、求解約束最優(yōu)化的最大熵模型[7]、無向圖模型條件隨機(jī)場(Conditional Random Field,CRF)[8]等。隨著神經(jīng)網(wǎng)絡(luò)及深度學(xué)習(xí)的發(fā)展,循環(huán)神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)等方法,逐漸成為實(shí)體識別領(lǐng)域的主流方法。
Hammerto[9]提出將長短時記憶網(wǎng)絡(luò)模型用于命名實(shí)體識別,取得不錯的效果。Yang 等[10]提出了一種對抗網(wǎng)絡(luò)模型的方法,為構(gòu)建中文實(shí)體識別系統(tǒng)提供了一條新思路。Huang 等[11]提出在雙向長短時記憶網(wǎng)絡(luò)模型上,通過條件隨機(jī)場進(jìn)一步對命名實(shí)體進(jìn)行約束。在序列標(biāo)注問題上,Ma 等[12]提出將循環(huán)神經(jīng)網(wǎng)絡(luò)、深層卷積神經(jīng)網(wǎng)絡(luò)和條件隨機(jī)場結(jié)合使用。Strubell 等[13]提出迭代膨脹卷積神經(jīng)網(wǎng)絡(luò)(Iterated Dilated Convolutional Neural Networks,IDCNN),利用空洞卷積處理文本序列問題。Vaswani 等[14]提出Transformer 模型,該模型使用多頭自注意力機(jī)制,提取文本特征能力得到極大增 強(qiáng)。2018 年,Zhang 等[15]提 出 了 一 種Lattice LSTM(Long Short-Term Memory)模型,在字符作為輸入的基礎(chǔ)上,加上了分詞信息,將詞語信息輸入到基于字向量的模型中去。預(yù)訓(xùn)練的語言表征模型BERT(Bidirectional Encoder Representation from Transformers)[16]發(fā)布后,在NLP領(lǐng)域橫掃了11項(xiàng)任務(wù)的最優(yōu)結(jié)果,完成該領(lǐng)域的重要突破。
中文電子病歷與普通文本有很大的區(qū)別:通常包含大量的醫(yī)學(xué)術(shù)語,構(gòu)詞十分復(fù)雜,實(shí)體常常存在嵌套現(xiàn)象并且實(shí)體邊界模糊;醫(yī)學(xué)實(shí)體描述具有多樣性,沒有固定規(guī)則;隨著醫(yī)學(xué)技術(shù)的發(fā)展,新的實(shí)體不斷涌現(xiàn);公開的醫(yī)療領(lǐng)域命名實(shí)體標(biāo)注數(shù)據(jù)集較少,人工標(biāo)注價格昂貴,運(yùn)用深度學(xué)習(xí)技術(shù)缺乏足夠的訓(xùn)練數(shù)據(jù)。這些特點(diǎn)進(jìn)一步加大了醫(yī)療實(shí)體識別的難度,使醫(yī)療領(lǐng)域的實(shí)體識別性能難以達(dá)到可用的程度。
針對以上問題,本文引入預(yù)訓(xùn)練的語言表征BERT 模型,該模型并非采用傳統(tǒng)的單向語言模型或者把兩個單向語言模型進(jìn)行淺層拼接的方法進(jìn)行預(yù)訓(xùn)練,而是采用新的masked language model(MLM)對雙向的Transformers 進(jìn)行預(yù)訓(xùn)練,生成深度的雙向語言表征,最終生成能融合上下文信息的深層雙向語言表征。
因此,本文提出一種BERT+CRF的電子病歷實(shí)體識別模型,首先使用標(biāo)注數(shù)據(jù)對BERT 進(jìn)行微調(diào),將得到的序列狀態(tài)分?jǐn)?shù)經(jīng)條件隨機(jī)場層對序列狀態(tài)轉(zhuǎn)移做出約束優(yōu)化,通過實(shí)驗(yàn)結(jié)果可知,該模型對比BiLSTM(Bi-directional LSTM)+CRF模型,F(xiàn)1分?jǐn)?shù)可提高6.5%左右。
為完成模型的訓(xùn)練,首先要構(gòu)建標(biāo)注語料庫,所用病歷語料均來自三甲公立醫(yī)院的真實(shí)病歷,為保護(hù)患者隱私,數(shù)據(jù)經(jīng)過嚴(yán)格脫敏,不涉及任何個人敏感信息,搜集到的電子病歷總數(shù)量達(dá)到1 萬份。電子病歷文本實(shí)體提取問題,根據(jù)醫(yī)生在醫(yī)療過程中感興趣的信息創(chuàng)建實(shí)體類別,每個實(shí)體類別對應(yīng)一個標(biāo)簽。需要定義實(shí)體標(biāo)簽集,標(biāo)簽集包括的實(shí)體類型有就診科室、性別、年齡、主訴、身體部位、癥狀、體格檢查、??茩z查、心電圖、診斷依據(jù)、診斷名稱、治療計(jì)劃、不良嗜好、現(xiàn)病史、既往史、家族史等共16類實(shí)體。
把數(shù)據(jù)集隨機(jī)分為訓(xùn)練集、驗(yàn)證集和測試集,用訓(xùn)練集訓(xùn)練模型,用驗(yàn)證集驗(yàn)證模型、調(diào)整超參數(shù),用測試集評估最終的模型,三個數(shù)據(jù)集的數(shù)據(jù)分布如表1所示。
表1 命名實(shí)體樣本分布
本實(shí)驗(yàn)選用3000 份電子病歷,在自行開發(fā)的文本標(biāo)注系統(tǒng)上由相關(guān)專業(yè)醫(yī)生完成標(biāo)注工作,標(biāo)注內(nèi)容詳實(shí)準(zhǔn)確。
標(biāo)注方法采用目前最通用的BIOES[17]標(biāo)注體系,B 表示該字符處于一個實(shí)體的開始(begin),I表示該字符處于一個實(shí)體的內(nèi)部(inside),O 表示該字符處于一個實(shí)體的外部(outside),E 表示該字符處于一個實(shí)體的結(jié)束(end),S表示該字符本身為一個實(shí)體(single)。
BERT-CRF模型的整體結(jié)構(gòu)如圖1所示,兩層結(jié)構(gòu)分別是:1)使用預(yù)訓(xùn)練BERT 模型對標(biāo)注數(shù)據(jù)進(jìn)行訓(xùn)練和編碼,獲取準(zhǔn)確的字符語義表示;2)CRF對上層的輸出結(jié)果進(jìn)行狀態(tài)轉(zhuǎn)移約束。
圖1 BERT-CRF模型整體架構(gòu)
與ELMO[18]、GPT 等模型相比,BERT 的模型的實(shí)現(xiàn)基于多層雙向Transformer 編碼器。Transformer使用了雙向自注意力機(jī)制,該機(jī)制打破了單向融合上下文信息的限制,采用新的masked language model(MLM)進(jìn)行預(yù)訓(xùn)練并采用深層的雙向Transformer 組件構(gòu)建模型,從而生成融合上下文信息的深層雙向語言表征。
模型的輸入表示能夠在一個標(biāo)記序列中清楚地表示連續(xù)文本,序列是指輸入到BERT 的標(biāo)記序列,BERT模型的輸入表征如圖2所示。
圖2 BERT模型的輸入表征
BERT 的輸入數(shù)據(jù)分別是字符向量token embeddings、段向量segmentation embeddings 和位置向量position embeddings 的加和。字符向量是模型中關(guān)于字符最主要的信息;段向量用于提供文本的全局語義信息,句子末尾使用[SEP]作為結(jié)尾符,句子開頭使用[CLS]標(biāo)識符;位置向量可以向Transformer 模型提供時序信息,反映不同位置的字符代表的語義差異。對于序列標(biāo)注任務(wù),BERT 模型利用文本中每個字符對應(yīng)的輸出向量對該字符進(jìn)行標(biāo)注。
CRF是一個序列化標(biāo)注算法,接收一個輸入序列X,輸出目標(biāo)序列Y,在線性鏈條件隨機(jī)場中,兩個相鄰的節(jié)點(diǎn)構(gòu)成一個最大團(tuán),并滿足公式:
使用CRF對給定的觀測序列X求解,可得狀態(tài)序列Y的概率公式為
因?yàn)橄噜彽臓顟B(tài)序列之間具有限定關(guān)系,并依賴觀測序列數(shù)據(jù),在此應(yīng)用兩類特征函數(shù),狀態(tài)特征s與轉(zhuǎn)移特征t,代入建模公式可得:
其中歸一化函數(shù)為Z(X),轉(zhuǎn)移狀態(tài)函數(shù)為tk,tk權(quán)重為λk,狀態(tài)特征函數(shù)sl,sl權(quán)重為μl,k和l表示轉(zhuǎn)移狀態(tài)函數(shù)和狀態(tài)特征函數(shù)的個數(shù)。
tk和sl的取值為1、0,以tk為例,公式為
命名實(shí)體識別標(biāo)記序列的依賴分布特點(diǎn),有利于CRF擬合訓(xùn)練數(shù)據(jù),降低標(biāo)簽序列預(yù)測中非法序列出現(xiàn)的概率。
本文實(shí)驗(yàn)的硬件環(huán)境是Dell R740 服務(wù)器,掛載2 塊NVIDIA Tesla P40 的GPU 卡;深度學(xué)習(xí)框架使用TensorFlow 1.12.0 版本。BERT 模型使用base版本,該版本網(wǎng)絡(luò)層數(shù)為12,隱藏層神經(jīng)單元數(shù)量為768,自注意力頭的數(shù)量為12,位置信息編碼的最大長度為512,字典大小為21128;根據(jù)模型配置參數(shù)加載BERT 模型,BERT 首先將輸入文本轉(zhuǎn)化為符合其輸入格式的數(shù)據(jù),經(jīng)過運(yùn)算以后,將模型輸出結(jié)果連同真實(shí)標(biāo)簽、狀態(tài)轉(zhuǎn)移矩陣輸入到CRF層,CRF 使用viterbi 算法,代替softmax 分類器做出分類。
本實(shí)驗(yàn)采用精度P、召回率R、F1分?jǐn)?shù)三個指標(biāo)評價模型性能,其計(jì)算公式為:
對比目前應(yīng)用最為廣泛的IDCNN+CRF模型和BiLSTM+CRF 模型,在相同的硬件環(huán)境下和相似的參數(shù)設(shè)置下,對三個模型在相同的數(shù)據(jù)集上進(jìn)行測試。
訓(xùn)練過程中,設(shè)置三種模型的epoch 最大值為50,訓(xùn)練結(jié)束后,分別選擇在驗(yàn)證集上實(shí)體識別的總F1分?jǐn)?shù)加和性能最優(yōu)的模型,使用該模型在測試集上獲得各類實(shí)例的性能指標(biāo),其性能指標(biāo)結(jié)果如表2所示。
表2 不同模型在測試集上實(shí)體識別性能
同一模型在各個實(shí)體類型上的得分會有較大的差異,比如BERT+CRF 模型的得分,“家族史”的F1分?jǐn)?shù)只有0.8356,其原因是該類型實(shí)體在電子病歷中實(shí)體樣本數(shù)量較少,模型學(xué)習(xí)得不夠充分。
本文對上面序列標(biāo)注問題廣泛使用的兩個模型和BERT+CRF 模型的性能指標(biāo)進(jìn)行統(tǒng)計(jì)對比,IDCNN+CRF 模型的F1分?jǐn)?shù)達(dá)到0.7918,BiLSTM+CRF 模型的F1分?jǐn)?shù)達(dá)到0.8173,相差不明顯。本文提出的BERT+CRF 模型,其F1分?jǐn)?shù)為0.882,比BiLSTM+CRF模型提高6.5%,錯誤率下降30%,性能有了明顯的提升。
本文針對中文電子病歷的特點(diǎn),提出一種BERT+CRF 的命名實(shí)體識別方法,第一層的BERT模型使用預(yù)訓(xùn)練的BERT-Large 版本,在語料庫上進(jìn)行微調(diào),第二層的CRF的對標(biāo)簽集狀態(tài)轉(zhuǎn)移進(jìn)行約束優(yōu)化,相比目前常用的實(shí)體識別模型,在性能上得到較大的提升,驗(yàn)證了BERT 模型在中文序列標(biāo)注問題的優(yōu)越性。