趙 奎,杜昕娉,高延軍,馬慧敏
1(中國(guó)科學(xué)院 沈陽計(jì)算技術(shù)研究所,沈陽 110168)
2(中國(guó)科學(xué)院大學(xué),北京 100049)
3(中國(guó)醫(yī)科大學(xué)附屬第四醫(yī)院,沈陽 110032)
4(東軟集團(tuán)股份有限公司 醫(yī)療解決方案事業(yè)本部,沈陽 110003)
醫(yī)療電子病歷[1]現(xiàn)今在臨床診斷中被廣泛應(yīng)用,近幾年伴隨著機(jī)器學(xué)習(xí)、深度學(xué)習(xí)的快速發(fā)展,結(jié)構(gòu)化電子病歷得到了大眾的關(guān)注.由于難以將醫(yī)生對(duì)病癥的描述進(jìn)行統(tǒng)一,使得結(jié)構(gòu)化醫(yī)療術(shù)語無法建立.具體來說,對(duì)于同一種疾病,不同的醫(yī)生在表達(dá)方式、中文的繁簡(jiǎn)體,英文字母的大小寫上的區(qū)別,導(dǎo)致在醫(yī)療領(lǐng)域難以形成規(guī)范化的標(biāo)準(zhǔn).
命名實(shí)體識(shí)別(NER)是自然語言處理(NLP)中信息抽取任務(wù)的一種,在NLP 的基礎(chǔ)建設(shè)中有著較為廣泛的應(yīng)用.結(jié)構(gòu)化的電子病歷需要實(shí)體的準(zhǔn)確描述,不能存在歧義或表述不明.中文由于沒有明確的分隔符,使得實(shí)體識(shí)別的難度大大增加.就模型訓(xùn)練而言,使用詞作為最小粒度還是字作為最小粒度會(huì)隨著不同的應(yīng)用場(chǎng)景有不同的效果,難以確定使用哪種方式最好.
就提高命名實(shí)體識(shí)別的準(zhǔn)確率方面,孟捷[2]使用條件隨機(jī)場(chǎng)CRF 先對(duì)文本進(jìn)行分詞,之后對(duì)分詞結(jié)果進(jìn)行屬性標(biāo)注,并在詞典中引入ICD-10 標(biāo)準(zhǔn),使得實(shí)體識(shí)別取得了較好的效果.江濤[3]提出了一種兼顧字詞并通過自注意力機(jī)制延長(zhǎng)實(shí)體聯(lián)系距離的WCLSTM 模型,使用Word2Vec 訓(xùn)練的100 維詞向量嵌入模型,并與Bi-LSTM 和Lattice-LSTM 模型進(jìn)行對(duì)比.沈宙鋒等人[4]基于XLNet-BiLSTM 模型,通過對(duì)電子病歷的序列化表示,使得一詞多義的問題得到了更好的解決.王若佳等人[5]在使用無監(jiān)督學(xué)習(xí)的AC 自動(dòng)機(jī)上對(duì)中文電子病歷進(jìn)行分詞,結(jié)合條件隨機(jī)場(chǎng)和不同的實(shí)體類別,得到了較好的識(shí)別模板.Zhang 等人[6]為解決中文實(shí)體的邊界問題,提出了一種基于單詞方法和基于字符方法進(jìn)行識(shí)別的方式,在研究中,為解決字符缺乏詞級(jí)別信息和詞邊界信息,使用了一種融合自匹配詞特征的神經(jīng)實(shí)體識(shí)別模型,并在訓(xùn)練集上取得了不錯(cuò)的效果.Ji 等人[7]提出一種句子級(jí)的基于多神經(jīng)網(wǎng)絡(luò)模型的協(xié)同協(xié)作方法來進(jìn)行實(shí)體識(shí)別,通過Word2Vec、GloVe、ELMo 對(duì)特定漢字嵌入預(yù)訓(xùn)練,在BiLSTM-CRF 和CNN 模型上進(jìn)行了模型測(cè)試.李丹等人[8]提出了一種部首感知的識(shí)別方法,該方法將部首信息編碼到字向量中,利用BiLSTM-CRF 結(jié)合Bert 模型,使實(shí)體識(shí)別有一定的提高.
在過去的研究中,大部分研究人員著重在于對(duì)文字進(jìn)行處理,而對(duì)標(biāo)簽在文本的上下文中的作用以及文本的預(yù)處理結(jié)果是否符合規(guī)范缺少關(guān)注.查閱資料中考慮到,如果可以在研究文字的同時(shí)挖掘電子病歷標(biāo)簽中的隱含信息,對(duì)于命名實(shí)體識(shí)別工作會(huì)有幫助.例如,病歷中常用“宮頸癌”作為疾病術(shù)語,那么在宮頸一詞中被預(yù)測(cè)為疾病的實(shí)體,應(yīng)該以3 個(gè)字的可能性較大,不會(huì)出現(xiàn)諸如“宮頸的癌”或“宮頸的癌變”這樣的實(shí)體,從而提高實(shí)體識(shí)別的準(zhǔn)確性,且多頭注意力機(jī)制使得模型在訓(xùn)練過程中關(guān)注模型感興趣的部分,對(duì)于模型的訓(xùn)練有益.基于以上描述,本文以建立結(jié)構(gòu)化電子病歷為目的,從電子病歷的實(shí)體識(shí)別開始研究,提出WT-MHA-BiLSTM-CRF 模型,該模型同時(shí)考慮文字和標(biāo)簽中的信息.為保證模型的可信性,將實(shí)驗(yàn)結(jié)果與BiLSTM-CRF[9],BiGRU-CRF,MHA-BiLSTM-CRF 模型進(jìn)行了對(duì)比.
人工將實(shí)體分類分為以下6 個(gè)方面: 病癥,身體部位,手術(shù),藥物,化驗(yàn)檢驗(yàn),影像檢驗(yàn).在測(cè)試中發(fā)現(xiàn),如果直接以中文作為類別標(biāo)簽,會(huì)導(dǎo)致訓(xùn)練結(jié)果較差,因此本文將上述6 個(gè)類別使用英文簡(jiǎn)寫代替,病癥的標(biāo)簽為DISEASE,身體部位的標(biāo)簽為BODY,手術(shù)的標(biāo)簽為OPERATION,藥物的標(biāo)簽為MEDICINE,化驗(yàn)檢驗(yàn)的標(biāo)簽為L(zhǎng)AB-CHECK,影像檢驗(yàn)的標(biāo)簽為IMGCHECK.實(shí)驗(yàn)期望得到的實(shí)體識(shí)別效果如圖1 所示.
圖1 電子病歷實(shí)體對(duì)應(yīng)關(guān)系圖
數(shù)據(jù)清洗的過程主要利用Python 程序?qū)⒃嘉谋局械目崭?首尾標(biāo)點(diǎn)符號(hào)以及一些錯(cuò)誤符號(hào)進(jìn)行刪除,并檢查人工標(biāo)記的起始位置和終點(diǎn)位置的實(shí)體是否標(biāo)記有誤,例如起始位置開始過早或者終點(diǎn)位置結(jié)束過晚等情況.為了防止標(biāo)點(diǎn)符號(hào)的使用不一致情況,本文將原始文本中的標(biāo)點(diǎn)全部使用英文標(biāo)點(diǎn)表示.實(shí)驗(yàn)發(fā)現(xiàn),沒有進(jìn)行過數(shù)據(jù)清洗的數(shù)據(jù)會(huì)比進(jìn)行過數(shù)據(jù)清洗的數(shù)據(jù)在訓(xùn)練結(jié)果上產(chǎn)生的誤差在10%左右,說明對(duì)于原始數(shù)據(jù)進(jìn)行清洗在模型訓(xùn)練中存在一定的作用.
本文提出的一種融合文字與標(biāo)簽的WT-MHABiLSTM-CRF 模型結(jié)構(gòu)如圖2 所示.在模型中,輸入層獲取電子病歷的每個(gè)文字及文字對(duì)應(yīng)的標(biāo)簽,將文字和標(biāo)簽分別建立字典,得到每個(gè)字和標(biāo)簽對(duì)應(yīng)在字典中的序號(hào),即向量化表示后的結(jié)果,將兩者進(jìn)行結(jié)合,輸入到multi-head attention[10]中,attention 機(jī)制會(huì)使得模型在句子中捕捉到更多的上下文信息,其輸出結(jié)果是在3 個(gè)維度上的加權(quán)整合,并映射到模型設(shè)定的矩陣維度上.該輸出的結(jié)果作為BiLSTM 模型的輸入,BiLSTM 模型根據(jù)上下文信息,計(jì)算每個(gè)字符在每一個(gè)類別中的概率值大小.基于BiLSTM-CRF 模型拋棄了Softmax 層并使用CRF 進(jìn)行代替,CRF 層在訓(xùn)練過程中可以自主學(xué)習(xí)到一些約束規(guī)則,這些約束可以保證預(yù)測(cè)標(biāo)簽的合理性,CRF 層將BiLSTM 層的輸出結(jié)果作為輸入,進(jìn)一步約束,得到更加準(zhǔn)確的輸出結(jié)果,整體模型將CRF 的輸出作為最后的預(yù)測(cè)結(jié)果,并與標(biāo)準(zhǔn)結(jié)果進(jìn)行比對(duì),計(jì)算預(yù)測(cè)的誤差.
圖2 WT-MHA-BiLSTM-CRF 模型結(jié)構(gòu)圖
本文提出的模型相對(duì)于傳統(tǒng)的命名實(shí)體識(shí)別模型來說,同時(shí)關(guān)注文字和標(biāo)簽中的信息,使得輸入信息更加充分,發(fā)現(xiàn)標(biāo)簽中的隱含信息對(duì)模型結(jié)果帶來的價(jià)值.
雙向長(zhǎng)短期神經(jīng)網(wǎng)絡(luò)(BiLSTM)[11]是一種為解決循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)中梯度消失或者梯度爆炸問題而提出的模型,它較好地解決了RNN 在長(zhǎng)依賴訓(xùn)練過程中的缺陷.長(zhǎng)短期神經(jīng)網(wǎng)絡(luò)(LSTM)是一種單向網(wǎng)絡(luò),主要使用門機(jī)制[12]來解決RNN 中的長(zhǎng)期依賴問題,其模型結(jié)構(gòu)如圖3 (圖中sig 代表Sigmoid 函數(shù))所示.
圖3 LSTM 模型結(jié)構(gòu)圖
LSTM[13]在隱藏單元中提出了3 種門的概念: 輸入門,輸出門,遺忘門.式(1)和式(2)體現(xiàn)了輸入門與單元狀態(tài)更新的計(jì)算公式:
輸入門用來確定當(dāng)前輸入中被保存狀態(tài)的個(gè)數(shù),其中,it為輸入門,W、b分別表示權(quán)重矩陣和偏置向量,σ(·)代表Sigmoid 激活函數(shù),tanh(·)代表tanh 激活函數(shù),其表達(dá)式分別為式(3)和式(4)所示.
輸出門將會(huì)決定傳輸多少個(gè)單元狀態(tài)作為 LSTM的當(dāng)前輸出值,通過計(jì)算隱藏節(jié)點(diǎn)ht來計(jì)算預(yù)測(cè)值和下一個(gè)時(shí)刻的輸入,式中ot代表輸出值.
遺忘門負(fù)責(zé)上一個(gè)時(shí)刻的單元狀態(tài)保存多少到當(dāng)前時(shí)刻,表現(xiàn)為Ct-1中哪些特征將被用于計(jì)算Ct,遺忘門ft中的每個(gè)值位于[0,1]中,計(jì)算公式見式(8).
單元狀態(tài)作為L(zhǎng)STM 中的核心部分,始終貫穿整個(gè)計(jì)算,其計(jì)算表達(dá)式為:
本文使用的BiLSTM 模型相對(duì)于LSTM 模型來說,能夠在未來上下文的預(yù)測(cè)中有較好的表現(xiàn),使得訓(xùn)練不僅能夠接受前文的序列也可以得到后續(xù)序列,在進(jìn)行命名實(shí)體識(shí)別的過程中會(huì)有更好的效果.
門控循環(huán)單元(GRU)也是為了解決循環(huán)神經(jīng)網(wǎng)絡(luò)存在的長(zhǎng)期依賴問題而提出的,模型中使用了更新門和重置門兩種門機(jī)制,使得模型在訓(xùn)練效果不變的同時(shí),計(jì)算更加簡(jiǎn)單,其計(jì)算過程如式(10)-式(13)所示.
其中,σ(·)、tanh(·)同上述描述,代表哈達(dá)馬乘積,用于計(jì)算兩個(gè)階相同矩陣的對(duì)應(yīng)位置,并將它們相乘得到一個(gè)新矩陣,zt代表更新門,其作用是決定多少信息從之前狀態(tài)ht-1保存到當(dāng)前狀態(tài)ht,以及在候選狀態(tài)h~t中得到多少信息.rt代表重置門,決定了候選狀態(tài)h~t的計(jì)算是否依賴于之前狀態(tài)ht-1.
由于單層的attention 所包含的信息可能不夠支持眾多的下游任務(wù),因此2017年谷歌推出的Transformer將其堆疊成multi-head attention (MHA),其本質(zhì)是多次的self-attention[14]計(jì)算.Attention 機(jī)制[15]會(huì)使網(wǎng)絡(luò)在訓(xùn)練過程中更多的注意到輸入包含的相關(guān)信息,而對(duì)無關(guān)信息進(jìn)行簡(jiǎn)略,從而提高訓(xùn)練的準(zhǔn)確性.
Self-attention 對(duì)輸入的每個(gè)詞向量創(chuàng)建3 個(gè)新向量:Query、Key、Value,這3 個(gè)向量分別是詞向量和Q,K,V三個(gè)矩陣乘積得到的,Q,K,V三個(gè)矩陣是一個(gè)需要學(xué)習(xí)的參數(shù),其定義如下所示:
圖4 Multi-head attention 計(jì)算過程圖
MHA 定義如式(15)所示:
其中,WiQ,WiK,WiV是需要訓(xùn)練的參數(shù)權(quán)重,Wo屬于Rdmodel×hdV,dmodel代表了模型中Q,K,V的維度,Concat()代表拼接函數(shù),用于將多層的Q,K,V函數(shù)拼接起來.
條件隨機(jī)場(chǎng)(CRF)[16]是一種較為經(jīng)典的條件概率分布模型,通過觀測(cè)序列X=(x1,x2,···,xn)來計(jì)算狀態(tài)序列Y=(y1,y2,···,yn)的條件概率值p(y|x),CRF 的簡(jiǎn)化定義公式如下:
其中,w代表權(quán)值向量,F(y,x)表示全局特征函數(shù).CRF 模型可以自主的學(xué)習(xí)到文本中的約束,例如在命名實(shí)體識(shí)別[17]中,I-標(biāo)簽的后面不會(huì)出現(xiàn)B-標(biāo)簽,O 標(biāo)簽的后面不會(huì)出現(xiàn)I-標(biāo)簽等,這些約束會(huì)幫助訓(xùn)練結(jié)果更加合理.
CRF 模型通過式(17)得到評(píng)估分?jǐn)?shù),式中Emit代表BiLSTM 輸出的概率,Trans代表對(duì)應(yīng)的轉(zhuǎn)移概率.
最后模型使用最大似然法來進(jìn)行訓(xùn)練,相應(yīng)的損失函數(shù)為:
由于Z(x)無法直接計(jì)算,因此使用前向算法進(jìn)行推導(dǎo),在深度學(xué)習(xí)框架中可以對(duì)損失函數(shù)進(jìn)行求導(dǎo)或者梯度下降的方法來優(yōu)化,使用Viterbi 算法進(jìn)行解碼,從而找到最優(yōu)結(jié)果.
實(shí)驗(yàn)過程中比較了4 種模型的訓(xùn)練情況,使用人工標(biāo)注過的1 000 份數(shù)據(jù)集,按照6:2:2 的比例將數(shù)據(jù)劃分為訓(xùn)練集、驗(yàn)證集、測(cè)試集.在實(shí)體識(shí)別中常用的實(shí)體標(biāo)注方式[18]包括BIO、BIOE、BIOES 等,本實(shí)驗(yàn)使用BIO 標(biāo)注方式,具體的標(biāo)注情況與實(shí)體數(shù)量見表1 和圖5 所示.根據(jù)第2.2 節(jié)中所述,數(shù)據(jù)集的準(zhǔn)確性對(duì)模型最終結(jié)果存在影響,因此實(shí)驗(yàn)對(duì)原始數(shù)據(jù)進(jìn)行預(yù)處理,主要包括中英文統(tǒng)一,利用程序檢查原始數(shù)據(jù)集中是否有啟始位置錯(cuò)誤信息,并針對(duì)錯(cuò)誤信息進(jìn)行修改.
圖5 實(shí)體數(shù)量圖
表1 數(shù)據(jù)標(biāo)注表
實(shí)驗(yàn)使用精確率(結(jié)果中的P值)、召回率(結(jié)果中的R值)和F1 值作為模型評(píng)價(jià)指標(biāo),其中精確率代表在所有預(yù)測(cè)結(jié)果中為正確的個(gè)數(shù)在實(shí)際正確分類所占的比例; 召回率代表所有預(yù)測(cè)正確的結(jié)果在實(shí)際正確中的占比;F1 值使用加權(quán)和平均來保證兩者在結(jié)果中的作用,由于綜合考慮了精確率和召回率的結(jié)果,因此F1 的值往往作為實(shí)驗(yàn)結(jié)果的最有力的證明,其值越高說明實(shí)驗(yàn)的效果越好,三者的計(jì)算過程見式(19)-式(21).
其中,Tp表示在測(cè)試集中正例被正確分類的個(gè)數(shù),Fp代表負(fù)例被錯(cuò)誤分類為正例的個(gè)數(shù),FN表示正例被錯(cuò)誤分類為負(fù)例的個(gè)數(shù).
本文中命名實(shí)體識(shí)別模型基于PyTorch 框架,詳細(xì)實(shí)驗(yàn)環(huán)境設(shè)置見表2 所示.
表2 訓(xùn)練環(huán)境表
訓(xùn)練中模型的詳細(xì)參數(shù)為: 每次訓(xùn)練選取的樣本數(shù)batch_size 值為64,學(xué)習(xí)率lr 設(shè)定為1E-4,訓(xùn)練輪數(shù)epoch 設(shè)置為30,時(shí)序模型的網(wǎng)絡(luò)層數(shù)設(shè)置為1,詞向量維數(shù)為128,使用Adam 優(yōu)化器,丟失率dropout 值為0.5.
本文對(duì)4 種模型進(jìn)行了測(cè)試來增強(qiáng)模型結(jié)果的說服力,4 種模型定義如下.
(1)BiLSTM-CRF: 使用單層的BiLSTM 網(wǎng)絡(luò),并將模型的輸出結(jié)果直接作為條件隨機(jī)場(chǎng)的輸入計(jì)算最終結(jié)果.
(2)BiGRU-CRF: 使用單層的BiGRU 模型,將輸出結(jié)果投入CRF 計(jì)算.
(3)MHA-BiLSTM-CRF: 對(duì)字向量做Embedding后先進(jìn)入mutli-head attention 模型中,模型輸出的結(jié)果作為BiLSTM 模型的輸入,其結(jié)果作為CRF 層輸入.
(4)WT-MHA-BiLSTM-CRF: 同時(shí)對(duì)字、標(biāo)簽做Embedding,將兩者結(jié)合,作為mutli-head attention 的輸入,之后進(jìn)入BiLSTM 模型訓(xùn)練,最終進(jìn)入CRF 層進(jìn)行訓(xùn)練.
表3 展示了4 種模型在各個(gè)實(shí)體上的精確率、召回率和F1 值,從結(jié)果來看,WT-MHA-BiLSTM-CRF 在大多數(shù)的實(shí)體分類結(jié)果上均有一定的提高,與BiLSTMCRF 模型的比較中,在病癥方面F1 值提高了3%,身體部位提高了6%,手術(shù)提高了4%,化驗(yàn)檢驗(yàn)提高了7%,影像檢驗(yàn)提高了11%.但是在藥物的類別方面,WT-MHA-BiLSTM-CRF 的結(jié)果與其他模型相比有些下降,初步分析原因是,由于本文提出的模型是針對(duì)字和標(biāo)簽同時(shí)作為模型的輸入來進(jìn)行訓(xùn)練,并且經(jīng)過attention 機(jī)制的處理,在實(shí)驗(yàn)過程中,可能過度的對(duì)某些字、標(biāo)簽產(chǎn)生了過度的關(guān)注,而使得分類結(jié)果產(chǎn)生了誤差,因而導(dǎo)致分類效果的下降,在以后的研究中會(huì)針對(duì)這一方面進(jìn)行深入研究.最后,圖6 展示了WTMHA-BiLSTM-CRF 模型在各個(gè)實(shí)體中的預(yù)測(cè)結(jié)果.
圖6 WT-MHA-BiLSTM-CRF 模型各類別結(jié)果圖
表3 實(shí)驗(yàn)結(jié)果表(%)
本文提出了一種結(jié)合字與標(biāo)簽同時(shí)訓(xùn)練的WTMHA-BiLSTM-CRF 模型,用于解決結(jié)構(gòu)化電子病歷中命名實(shí)體識(shí)別的問題.傳統(tǒng)的BiLSTM-CRF 模型更多的注重字在模型中訓(xùn)練產(chǎn)生的結(jié)果,忽略了標(biāo)簽中可能隱含的信息,因此在訓(xùn)練輸入之前,將字和標(biāo)簽同時(shí)做Embedding 處理.并使用mutli-head attention 使模型更多的注意力放在關(guān)鍵的字和標(biāo)簽上,BiLSTM 結(jié)合上下文得到每個(gè)字的類別概率,模型的最后使用CRF對(duì)分類結(jié)果進(jìn)行處理,使得模型的預(yù)測(cè)輸出更有說服力.從實(shí)驗(yàn)結(jié)果中可以看出,該模型在大部分的類別識(shí)別中均有提升.對(duì)于個(gè)別類別來說,考慮到模型的結(jié)果中可能有部分信息被過度關(guān)注,導(dǎo)致訓(xùn)練結(jié)果上有些許問題,在以后的研究中也會(huì)針對(duì)這個(gè)問題著重來處理.