胡 穩(wěn),張?jiān)迫A
(浙江理工大學(xué)信息科學(xué)與工程學(xué)院,浙江 杭州 310018)
基于傳統(tǒng)就醫(yī)方式存在的就醫(yī)排隊(duì)時(shí)間長(zhǎng)、獲取問(wèn)診結(jié)果遲緩等問(wèn)題,因此,智能醫(yī)療問(wèn)答系統(tǒng)有了廣泛的市場(chǎng)需求,而實(shí)體識(shí)別則可視為是問(wèn)答系統(tǒng)中極為重要的一個(gè)組成部分。
命名實(shí)體識(shí)別一般認(rèn)為是序列化標(biāo)注任務(wù),主要分為傳統(tǒng)機(jī)器學(xué)習(xí)模型和深度神經(jīng)網(wǎng)絡(luò)模型兩類(lèi)。在傳統(tǒng)機(jī)器學(xué)習(xí)領(lǐng)域,一般使用的模型有HMM[1](Hidden Markov Model)、CRF[2](conditional random field)、SVM[3](Support Vector Machine)等。然而傳統(tǒng)機(jī)器學(xué)習(xí)方法仍然需要大量的人工參與特征的提取,識(shí)別效果并非特別理想。近些年來(lái),深度學(xué)習(xí)技術(shù)快速發(fā)展,使得該技術(shù)被廣泛應(yīng)用到實(shí)體識(shí)別任務(wù)中。得益于長(zhǎng)短期記憶網(wǎng)絡(luò)的優(yōu)秀序列化建模能力,Hammerton[4]才能夠率先把神經(jīng)網(wǎng)絡(luò)中的LSTM(Long-Short Term Memory)應(yīng)用到實(shí)體識(shí)別領(lǐng)域中,如李明浩等人[5]將該模型使用在中醫(yī)臨床癥狀識(shí)別上,該模型隨后成為了命名實(shí)體識(shí)別的基礎(chǔ)模型之一。張聰品等人[6]使用LSTM-CRF 模型識(shí)別醫(yī)療電子病歷中的身體部位、疾病名稱(chēng)、檢查、癥狀和治療五類(lèi)實(shí)體,準(zhǔn)確率達(dá)到96.29%。2017 年Google 公司提出了基于注意力機(jī)制(Attention)的Transformer模型[7],提高了模型的并行效率,獲得了非常好的實(shí)驗(yàn)效果。李博等人[8]構(gòu)建了Transformer-CRF 神經(jīng)網(wǎng)絡(luò)模型用于識(shí)別醫(yī)療領(lǐng)域的命名實(shí)體,具有較好的識(shí)別性能。
本文使用醫(yī)療領(lǐng)域數(shù)據(jù)為研究對(duì)象,使用BERT模型(Bidirectional Encoder Representation from Transformers)對(duì)原始文本數(shù)據(jù)進(jìn)行詞向量嵌入表示,再輸入到BiGRU(BidirectionalGatedRecurrentUnits)層中獲得每個(gè)詞向量在所有標(biāo)簽中的模型得分,最后使用CRF 進(jìn)行糾正BiGRU 模型得到的非法結(jié)果從而生成最終的分類(lèi)結(jié)果。
BERT[9]是由Google 公司推出的基于變換器的雙向編碼器表示技術(shù),性能十分強(qiáng)大,一經(jīng)推出就取得了非常優(yōu)秀的成績(jī)。BERT 模型將自注意力機(jī)制融合進(jìn)雙向的Tansformer 編碼器,從而使得關(guān)于語(yǔ)句上下文的語(yǔ)義信息能夠被更深層次的從兩個(gè)方向同時(shí)獲取,達(dá)到獲取更強(qiáng)的語(yǔ)義特征的目的。BERT 模型的基本結(jié)構(gòu)如圖1 所示,圖中的Trm 表示Transformer模型,Ei表示第i個(gè)文本輸入向量,Ti表示第i個(gè)輸出的表示向量,通過(guò)使用多層雙向堆疊的Transformer 模型使得整個(gè)模型的效果更好。
圖1 BERT模型結(jié)構(gòu)
BERT 模型除了使用上述模型結(jié)構(gòu)之外,還提出基于Masked掩碼語(yǔ)言模型以及下一句預(yù)測(cè)兩個(gè)任務(wù),針對(duì)一個(gè)語(yǔ)句分別從詞語(yǔ)角度和語(yǔ)句角度進(jìn)行模型訓(xùn)練。Masked 語(yǔ)言模型會(huì)隨機(jī)遮住句子里的一些詞語(yǔ),讓編碼器來(lái)預(yù)測(cè)被遮住的原始單詞。有80%的情況中獎(jiǎng)單詞使用Mask標(biāo)記,10%的情況將其替換為其他單詞,另10%的情況不變。這樣做使得模型對(duì)于上下文語(yǔ)義信息獲取的更為充分,如表1 所示。如果一個(gè)詞語(yǔ)的一部分被Mask,這個(gè)詞語(yǔ)其他部分也要被Mask,這種情況是全詞Mask。下一句預(yù)測(cè)是指訓(xùn)練一個(gè)二分類(lèi)模型,用這個(gè)模型來(lái)對(duì)當(dāng)前兩個(gè)句子是否為后繼關(guān)系進(jìn)行判斷,即用于學(xué)習(xí)句子之間的關(guān)系。輸入兩個(gè)連續(xù)的句子,對(duì)該句子在句頭插入[CLS]來(lái)標(biāo)記,使用[SEP]標(biāo)記語(yǔ)句結(jié)束。同時(shí)對(duì)BERT 模型進(jìn)行訓(xùn)練,訓(xùn)練過(guò)程中這兩個(gè)任務(wù)會(huì)一起進(jìn)行,訓(xùn)練目標(biāo)則是將他們的組合損失函數(shù)降到最低。
表1 Mask語(yǔ)言模型
在使用RNN(Recurrent Neural Network)模型時(shí)研究人員發(fā)現(xiàn)使用過(guò)程中可能會(huì)出現(xiàn)梯度消失,為了解決這一問(wèn)題研究人員基于RNN 進(jìn)行改進(jìn)從而提出了LSTM[10]以及GRU 模型[11](Gate Recurrent Unit)。在LSTM 模型的使用過(guò)程中,通過(guò)三個(gè)門(mén)的設(shè)計(jì)來(lái)控制數(shù)據(jù)的流動(dòng)。而GRU 模型是RNN 的另外一種改進(jìn)方案,通過(guò)將LSTM 原有的三個(gè)門(mén)修改成兩個(gè)門(mén),合并了其中的兩個(gè)門(mén),GRU 單元如圖2 所示。其中的ht?1表示前一時(shí)刻的輸出,ht表示當(dāng)前時(shí)刻的輸出信息,xt表示當(dāng)前時(shí)刻的輸入信息,zt是一個(gè)更新門(mén),用于控制信息流入下一個(gè)時(shí)刻,rt是一個(gè)重置門(mén),用于控制信息丟失,zt和rt共同控制隱藏狀態(tài)的輸出。計(jì)算公式如式⑴~式⑷所示。
圖2 GRU單元結(jié)構(gòu)圖
BiGRU 模型是在BiLSTM 和GRU 模型的基礎(chǔ)上提出的一種改進(jìn)模型,雙向結(jié)構(gòu)的GRU單元被使用來(lái)構(gòu)成BiGRU 模型,這樣做可以讓模型同時(shí)從過(guò)去和未來(lái)兩個(gè)角度獲取句子特征。BiGRU 模型比原有基礎(chǔ)模型的參數(shù)少,可以減少訓(xùn)練時(shí)間。
條件隨機(jī)場(chǎng)CRF 模型是指提供任意數(shù)據(jù)時(shí)模型會(huì)給出對(duì)應(yīng)的輸出數(shù)據(jù),而輸出輸出數(shù)據(jù)滿(mǎn)足馬爾科夫隨機(jī)場(chǎng)定義。條件隨機(jī)場(chǎng)結(jié)合了馬爾科夫隨機(jī)場(chǎng)和最大熵模型,主要應(yīng)用于自然語(yǔ)言處理領(lǐng)域的標(biāo)注問(wèn)題中,其中最典型的是線(xiàn)性鏈,其形式一般如式⑸、式⑹所示。
本文提出的算法模型主要由三個(gè)部分組成,分別是BERT 預(yù)訓(xùn)練模型、BiGRU 模型、CRF 模型。模型結(jié)構(gòu)圖如圖3 所示。先將原始的問(wèn)答數(shù)據(jù)被傳入到BERT 模型中,對(duì)原始問(wèn)答數(shù)據(jù)完成詞向量的表示,詞向量表示的數(shù)字矩陣被傳入到BiGRU 模型進(jìn)行獲取語(yǔ)句的前后語(yǔ)義之間的特征。然而,BiGRU 模型在訓(xùn)練過(guò)程中考慮的是整體上下文信息,而針對(duì)標(biāo)簽和標(biāo)簽之間的依賴(lài)關(guān)系沒(méi)有給予重視,所以會(huì)導(dǎo)致實(shí)驗(yàn)結(jié)果中標(biāo)簽前后語(yǔ)義出現(xiàn)問(wèn)題。
圖3 BERT-BiGRU-CRF模型結(jié)構(gòu)圖
根據(jù)BIO 標(biāo)注法來(lái)說(shuō),B 表示當(dāng)前單詞為開(kāi)頭部分,I 表示當(dāng)前單詞為中間部分,O 表示無(wú)關(guān)的實(shí)體。如果對(duì)于某個(gè)疾病的標(biāo)注符號(hào)為“dis”,對(duì)于癥狀的標(biāo)注符號(hào)為“sym”,則針對(duì)這個(gè)實(shí)體識(shí)別得到的結(jié)果應(yīng)該是“B-dis”、“I-dis”、“O”、“B-sym”、“I-sym”。然而對(duì)于BiGRU 模型來(lái)說(shuō),它并沒(méi)有考慮標(biāo)簽之間的關(guān)系,而是單純輸出當(dāng)前得分最高的標(biāo)簽。因此會(huì)出現(xiàn)“I-sym”、“I-dis”、“O”、“B-sym”、“I-sym”的輸出,這種情況很明顯不符合標(biāo)注規(guī)則。因此本文在BiGRU模型的輸出結(jié)果之后增加了CRF 模型來(lái)控制不合法的情況,即糾正錯(cuò)誤。CRF 模型主要是在訓(xùn)練過(guò)程中根據(jù)標(biāo)簽之間的依賴(lài)關(guān)系學(xué)習(xí)到約束規(guī)則,從而糾正BiGRU層得到的非法標(biāo)簽輸出。
本文使用了某醫(yī)療網(wǎng)站的數(shù)據(jù)作為數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),一共8000 條數(shù)據(jù),隨機(jī)將數(shù)據(jù)進(jìn)行打亂,按照80:10:10 的比值進(jìn)行切分,分別用于模型的訓(xùn)練測(cè)試和驗(yàn)證,實(shí)驗(yàn)?zāi)P偷某跏蓟瘏?shù)如表2所示。
表2 模型初始化參數(shù)
本文將隨機(jī)選出的驗(yàn)證集數(shù)據(jù)與人工標(biāo)注結(jié)果進(jìn)行比照,人工標(biāo)注的實(shí)體為正類(lèi),其他為負(fù)類(lèi),評(píng)估設(shè)置如表3所示。其評(píng)價(jià)指標(biāo)的計(jì)算公式如下:
表3 評(píng)估設(shè)置
在對(duì)驗(yàn)證集進(jìn)行的實(shí)驗(yàn)中我們可以看到,BiLSTM 模型的F1 值為69.37%,BiGRU 模型的F1 值為70.15%,BERT-BiLSTM-CRF 模型的F1 值為75.17%,BERT-BiGRU-CRF 模型的F1 值為76.39%。以上數(shù)據(jù)的具體Precision、Recall 和F1 值如表4 所示。在這一實(shí)驗(yàn)數(shù)據(jù)中我們可以看到,單模型的F1結(jié)果明顯低于使用了BERT 模型和CRF 模型的兩組模型,而其中使用BiGRU 模型在本數(shù)據(jù)集上的表現(xiàn)略好于BiLSTM 模型的結(jié)果。對(duì)比兩組模型的訓(xùn)練時(shí)間,BERT-BiGRU-CRF 模型運(yùn)行使用了4 小時(shí)31 分鐘,而B(niǎo)ERT-BiLSTM-CRF 模型足足使用了將近6 小時(shí),BiGRU 模型更簡(jiǎn)單,從而,其運(yùn)行速度也明顯優(yōu)于BiLSTM模型。
表4 實(shí)驗(yàn)結(jié)果
本文基于醫(yī)療領(lǐng)域數(shù)據(jù)集研究了實(shí)體識(shí)別任務(wù),首先將原始的問(wèn)答數(shù)據(jù)傳入到BERT 模型中,對(duì)原始的問(wèn)答數(shù)據(jù)完成詞向量表示,詞向量表示的數(shù)值矩陣被傳入到BiGRU 模型進(jìn)行獲取語(yǔ)句的上下文特征,在完成以上操作后針對(duì)原BiGRU 模型針對(duì)標(biāo)簽問(wèn)題的錯(cuò)誤判定,使用CRF 模型進(jìn)行修改。通過(guò)試驗(yàn)對(duì)比,模型最終得到的F1 值為76.39%,相比其他模型有所提升。針對(duì)實(shí)體識(shí)別任務(wù),未來(lái)還需要做進(jìn)一步實(shí)驗(yàn),目前的數(shù)據(jù)來(lái)源不足,未來(lái)可以著眼于更加豐富的醫(yī)療數(shù)據(jù)來(lái)訓(xùn)練模型,提升模型表現(xiàn)。此外,BERT 模型使用的是通用語(yǔ)言模型,并沒(méi)有使用醫(yī)療領(lǐng)域預(yù)訓(xùn)練數(shù)據(jù),針對(duì)專(zhuān)用名詞不能很好地識(shí)別。