顏柏楊 吳 陳
(江蘇科技大學(xué)計(jì)算機(jī)學(xué)院 鎮(zhèn)江 212003)
在智慧診療領(lǐng)域,構(gòu)建醫(yī)學(xué)知識(shí)圖譜對(duì)輔助決策和問(wèn)答系統(tǒng)至關(guān)重要,需要借助命名實(shí)體識(shí)別處理非結(jié)構(gòu)化的臨床文本,然后將提取出的實(shí)體映射到知識(shí)圖譜相同的結(jié)點(diǎn)。文本挖掘通常需要用到自然語(yǔ)言處理,命名實(shí)體識(shí)別(Named Entity Recognition,NER)是其重要的組成部分,作用是從半結(jié)構(gòu)或非結(jié)構(gòu)化文本中識(shí)別出疾病名稱、癥狀和藥品等醫(yī)學(xué)實(shí)體。醫(yī)學(xué)知識(shí)圖譜構(gòu)建通過(guò)醫(yī)療實(shí)體和實(shí)體間的關(guān)系連接而成,因此NER的精度關(guān)系到臨床醫(yī)療知識(shí)圖譜的嚴(yán)謹(jǐn)性。
國(guó)外通用實(shí)體識(shí)別技術(shù)發(fā)展比較完善,Bikel提出了基于齊次馬爾科夫假設(shè)和觀測(cè)獨(dú)立假設(shè)的隱馬爾科夫模型[1],該方法使用MUC-6數(shù)據(jù)集達(dá)到了90%的準(zhǔn)確率。Liao提出了條件隨機(jī)場(chǎng)模型[2],跳出了HMM算法觀測(cè)獨(dú)立假設(shè),提升了NER的準(zhǔn)確度。Feng[3]提出了基于BiLSTM神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的實(shí)體識(shí)別方法,該方法使用上下文的單詞嵌入和字符的單詞嵌入。相比需要手動(dòng)添加特征模統(tǒng)計(jì)學(xué)習(xí)的算法,Huang提出了Bi LSTM-CRF模型[4],采用BiLSTM抽出文本特征,條件隨機(jī)場(chǎng)算法處理字與字間的序列概率,該模型在NER和詞性標(biāo)注任務(wù)上達(dá)到state of the art。當(dāng)文本過(guò)長(zhǎng)時(shí),LSTM提取的特征并不完整,Luo提出了基于注意力[5]的雙向長(zhǎng)期短期記憶只需很少的特征工程即可實(shí)現(xiàn)更好的性能。
中文命名實(shí)體識(shí)別相對(duì)國(guó)外發(fā)展較晚,Wang、Liu[6]實(shí)現(xiàn)了基于中文字符的實(shí)體識(shí)別,Yang等[7]在提出的Lattice-LSTM模型是目前MSRA數(shù)據(jù)集上的最優(yōu)模型,相較與字符層次的方式,該模型很少出現(xiàn)邊界標(biāo)注錯(cuò)誤的問(wèn)題,其效果優(yōu)于基于字符和基于單詞的LSTM基線模型。
通用命名實(shí)體識(shí)別的發(fā)展推動(dòng)了醫(yī)療行業(yè)NER的前進(jìn)。Zhao針對(duì)生物醫(yī)學(xué)文本使用隱馬爾科夫模型[8](HMM),并基于單詞相似度進(jìn)行平滑處理。實(shí)驗(yàn)表明,基于單詞相似度的平滑可以通過(guò)使用很多沒(méi)有打標(biāo)記的序列來(lái)提高性能。Sahu提出了端到端遞歸神經(jīng)網(wǎng)絡(luò)模型用于疾病名稱識(shí)別[9]。同時(shí)在RNN結(jié)合卷積神經(jīng)網(wǎng)絡(luò)獲得基于字符的嵌入特征。
雖然國(guó)外醫(yī)療實(shí)體識(shí)別取得較大的發(fā)展,但是中文醫(yī)療實(shí)體與英文構(gòu)詞法不同。本文實(shí)現(xiàn)基于自注意力機(jī)制[10]的命名實(shí)體識(shí)別,利用Transformer-CNN-BiLSTM-CRF進(jìn)行序列標(biāo)注,提升了模型對(duì)醫(yī)療實(shí)體的識(shí)別率,平均F值達(dá)94%。
Transformer-CNN-BiLSTM-CRF模型整體結(jié)構(gòu)如圖1所示,模型主要由四部分構(gòu)成,分別是多層Transformer特征提取層,CNN層,BiLSTM層以及CRF層。
圖1 Transformer-CNN-BiLSTM-CRF網(wǎng)絡(luò)結(jié)構(gòu)
基于Transformer網(wǎng)絡(luò)可以通過(guò)拼接組成多層、泛化性能更好的復(fù)雜模型,抽取更多字級(jí)、詞級(jí)、句子級(jí)甚至句間關(guān)系特征。之后把多維度序列的特征傳入CNN-Bi LSTM,接下來(lái)的部分為CRF層,用于計(jì)算每個(gè)輸入向量的實(shí)體類別標(biāo)簽,如身體部位(body)、癥狀(symp)等實(shí)體類別,使用“B-”代表實(shí)體開頭,“I-”代表實(shí)體除頭以外字符。
Transformer的核心時(shí)編碼器,其內(nèi)部結(jié)構(gòu)如圖2。
圖2 Transformer編碼器
Transformer對(duì)輸入進(jìn)行位置編碼,免去了序列前后順序的約束:
使用正弦、余弦函數(shù)對(duì)給定位置的詞語(yǔ)做編碼,表示詞匯之間的位置偏移。
Transformer中最重要的是自注意力機(jī)制,在自注意力機(jī)制中,每個(gè)詞對(duì)應(yīng)3個(gè)不同的向量,它們分別是Q矩陣,K矩陣和V矩陣表示,序列輸入后每個(gè)字符的打分score由Q和K矩陣相乘得到。
而multi-head attention是將Q向量,K向量和V向量經(jīng)過(guò)線性映射成多份,對(duì)每一組矩陣做Attention,輸出h×dv,然后對(duì)各組通過(guò)注意力運(yùn)算后的矩陣進(jìn)行拼接,這樣可以獲得不同位置不同語(yǔ)義空間的特征。本文head參數(shù)設(shè)為8,隱藏層維度d設(shè)為512,這里設(shè)置更多的head可以提取到單個(gè)字符、專有名詞的詞性特征。
由于多層encoder模型在訓(xùn)練集上表現(xiàn)變差,在transformer中添加殘差連接,通過(guò)添加shortcut connections減輕因?yàn)槟P蛷?fù)雜而帶來(lái)的性能退化問(wèn)題。
隨著訓(xùn)練進(jìn)行,參數(shù)經(jīng)過(guò)每一層線性與非線性激活函數(shù)后,梯度隨著網(wǎng)絡(luò)的加深而增大,Transformer使用Batch normalization對(duì)每一層做批歸一化,消除了梯度彌散情況,加快模型收斂速度。
文本序列通過(guò)transformer后,輸出高維度的特征矩陣。在序列標(biāo)注任務(wù)之前加入卷積層[11],利用其卷積(conv)和池化(pool)的特性,壓縮矩陣的維度。循環(huán)神經(jīng)網(wǎng)絡(luò)模型[12]能按時(shí)序獲取卷積后的信息,在算法實(shí)現(xiàn)上容易產(chǎn)生梯度消失或爆炸問(wèn)題。Hochretr[13]提出的包含記憶unit和門機(jī)制的LSTM模型,可在更長(zhǎng)的時(shí)間維度提取特征,消除了梯度彌散的情況。Gravs[14]優(yōu)化了記憶unit和門機(jī)制,本文采用Graves等提出的改進(jìn)門限機(jī)制:
式(7~9)表示表示輸入門、遺忘門和輸出門,均使用前一時(shí)刻的隱藏單元與當(dāng)前時(shí)刻信號(hào)作為門控單元的輸入。
條件隨機(jī)場(chǎng)(Conditional Random Fields,CRF),是對(duì)于一組隨機(jī)輸入變量(x1,xi…,xn)條件下另外一組隨機(jī)輸出變量(y1,yi…,yn)的條件概率分布模型,如果輸出序列滿足Markov[15]獨(dú)立假設(shè):
在CRF解碼時(shí),通過(guò)轉(zhuǎn)移概率矩陣A對(duì)序列進(jìn)行打分即:
在訓(xùn)練過(guò)程中,使用對(duì)數(shù)似然函數(shù)是來(lái)最大化關(guān)于正確標(biāo)簽序列的概率,如式(14),維特比算法[16]常用于序列解碼,計(jì)算現(xiàn)階段的標(biāo)簽值到第i+1標(biāo)簽值的最短路徑,即輸出序列幾率最大的組合:
因?yàn)獒t(yī)療數(shù)據(jù)涉及患者隱私,所以本實(shí)驗(yàn)采用2018年CCKS評(píng)測(cè)任務(wù)二共600份的電子病歷作為實(shí)驗(yàn)數(shù)據(jù),CCKS的病歷文本已采取脫敏處理,同時(shí)標(biāo)定癥狀、疾病、藥品、檢查檢驗(yàn)多個(gè)類別實(shí)體。本文使用三元集{B,I,O},“B”實(shí)體的第一個(gè)字符,“I”是其余部分,“O”不屬于任何類型詞。所有實(shí)體標(biāo)簽如表1。
表1 實(shí)體標(biāo)簽
取該CCKS2018中500份病歷當(dāng)作訓(xùn)練集,100份當(dāng)作測(cè)試集,分為兩組做統(tǒng)計(jì),各個(gè)類型實(shí)體分布如表2所示。
表2 CCKS文本數(shù)據(jù)統(tǒng)計(jì)
醫(yī)療領(lǐng)域?qū)嶓w識(shí)別任務(wù)通過(guò)召回率R、精確率P和F值來(lái)綜合評(píng)判,并定義T正確標(biāo)識(shí)的實(shí)體,定義F標(biāo)識(shí)無(wú)關(guān)的實(shí)體、Fn為模型沒(méi)有檢測(cè)到的相關(guān)實(shí)體個(gè)數(shù)。
本文的實(shí)驗(yàn)環(huán)境是GTX1080Ti的Gpu,python3.6和tensoflow1.14。
實(shí)驗(yàn)一共有四組,模型分別為CRF、BiLSTM-CRF、Word2Vec-BiLSTM-CRF和Transformer-CNN-BiLSTM-CRF。其中基于統(tǒng)計(jì)的方法CRF作為基準(zhǔn)模型,使用開源工具CRF++,手動(dòng)添加Unigram模板。
本文設(shè)計(jì)的Transformer-CNN-BiLSTM-CRF模型采用的多頭注意力機(jī)制提取序列特征。在Transformer中設(shè)置了6層ecnoders,每個(gè)encoder層設(shè)置multi-head數(shù)目為8。
在測(cè)試集上,四個(gè)實(shí)驗(yàn)F1曲線如圖3所示。
圖3 F-score曲線
根據(jù)表3,Transformer-CNN-BiLSTM-CRF準(zhǔn)確率比傳統(tǒng)統(tǒng)計(jì)學(xué)習(xí)的方法提高了6%,F(xiàn)值高了7%。比Word2Vec-BiLSTM-CRF準(zhǔn)確率高了0.6%,F(xiàn)值高了2%。
表3 實(shí)驗(yàn)結(jié)果
考慮到醫(yī)學(xué)領(lǐng)域數(shù)據(jù)較難獲取,從訓(xùn)練集隨機(jī)抽取200份病歷,測(cè)試集中抽取40份,對(duì)比四個(gè)模型在小樣本數(shù)據(jù)上的結(jié)果。如表4所示,基于自注意力機(jī)制的方法比F值達(dá)到了91.77%。但是基于統(tǒng)計(jì)的CRF模型在小樣本數(shù)據(jù)集的準(zhǔn)確率F值只有84.71%,出現(xiàn)這樣的結(jié)果是因?yàn)镃RF時(shí)基于訓(xùn)練序列的概率分布模型,當(dāng)訓(xùn)練數(shù)據(jù)很少時(shí)模型所能學(xué)習(xí)到的信息就會(huì)減少,而Transformer依然能充分提取少量數(shù)據(jù)里的特征,準(zhǔn)確率相對(duì)較好。
表4 小樣本實(shí)驗(yàn)
雖然Transformer-CNN-BiLSTM-CRF總體準(zhǔn)確率提升很多,但是其對(duì)不同類型實(shí)體識(shí)別的結(jié)果卻不同,如表5所示。
表5 各類型實(shí)體識(shí)別結(jié)果
其中藥品drug識(shí)別準(zhǔn)確率偏低,主要原因是藥品名稱中包含身體器官或組織的名稱,同時(shí)存在修飾詞導(dǎo)致名稱過(guò)長(zhǎng)、歧義等信息的干擾。在這些drug實(shí)體沒(méi)有充足上下文時(shí)容易預(yù)測(cè)錯(cuò)誤。
以上實(shí)驗(yàn)結(jié)果表明,雖然基于統(tǒng)計(jì)的CRF方法在測(cè)試集上的準(zhǔn)確度有一定提升,但是需要手動(dòng)添加特征模板,這都需要花費(fèi)很多時(shí)間。而自注意力模型不但省去了這一環(huán)節(jié),而且在把握語(yǔ)義方面比word2vec訓(xùn)練的靜態(tài)語(yǔ)言模型更加精準(zhǔn),這與Transformer中的自注意力機(jī)制選擇信息特征的能力有著密不可分的關(guān)系,使得命名實(shí)體識(shí)別任務(wù)提升比較大。
近年來(lái),中文醫(yī)療命名實(shí)體識(shí)別任務(wù)借助深度學(xué)習(xí)方法取得了快速的發(fā)展,本文使用基于自注意力機(jī)制的Transformer-CNN-BiLSTM-CRF模型。該模型將使用文本數(shù)據(jù)進(jìn)行位置編碼作為輸入,對(duì)比使用循環(huán)神經(jīng)網(wǎng)絡(luò),Transformer不依賴上下文支持并行計(jì)算的特點(diǎn),加快了模型訓(xùn)練的速度,同時(shí)模型可以充分學(xué)習(xí)文本的特征信息,增強(qiáng)了字符間的推理能力。雖然Transformer-CNN-BiLSTMCRF比傳統(tǒng)的命名實(shí)體識(shí)別模型效果有所提升,但是對(duì)于嵌套、修飾詞過(guò)長(zhǎng)的部分醫(yī)療實(shí)體較難準(zhǔn)確抽取,未來(lái)還有很多問(wèn)題有待研究。