龔汝鑫,余肖生
(三峽大學(xué) 計(jì)算機(jī)與信息學(xué)院,湖北 宜昌 443002)
健康醫(yī)療大數(shù)據(jù)是國家重要的基礎(chǔ)性戰(zhàn)略資源,其應(yīng)用發(fā)展將帶來健康醫(yī)療模式的深刻變化,有利于提升健康醫(yī)療服務(wù)效率和質(zhì)量[1]。其中,健康醫(yī)療文本數(shù)據(jù)是健康醫(yī)療大數(shù)據(jù)的重要組成部分之一,多為包含患者病史、現(xiàn)狀、診斷、檢查、治療信息的非結(jié)構(gòu)化長文本,并且上下文結(jié)構(gòu)聯(lián)系緊密、內(nèi)容專業(yè)性強(qiáng),容易出現(xiàn)醫(yī)療信息抽取難度大、利用率低的情況[2]。
2010年之前多采用機(jī)器學(xué)習(xí)方法來處理文本中的信息,但時(shí)間成本投入大,且未利用語言之間的相關(guān)性,無法充分學(xué)習(xí)、利用所包含的信息[3-4]。而后利用神經(jīng)網(wǎng)絡(luò)緊密聯(lián)系上下文的特點(diǎn),讓CNN、RNN及變體LSTM、GRU在文本提取和分類研究中取得不錯(cuò)表現(xiàn)[5-7]。為減少重要信息的流失,張志昌等人將BIGRU與注意力機(jī)制相結(jié)合,重點(diǎn)處理影響力較強(qiáng)的文本信息[8-9]。
現(xiàn)有的關(guān)系提取方法沒有針對性地考慮如何獲取和充分利用醫(yī)療領(lǐng)域文本包含的信息,該文提出一種BERT和雙向長短期記憶神經(jīng)網(wǎng)絡(luò)(bidirectional long short-term memory,BILSTM)融合的關(guān)系提取方法,來獲取健康醫(yī)療文本中實(shí)體間隱含的價(jià)值信息。在預(yù)處理階段,針對醫(yī)療詞語進(jìn)行關(guān)鍵詞提取,減小醫(yī)療實(shí)體提取難度;再使用BERT模型進(jìn)行詞嵌入,將詞向量、位置向量、句子級特征輸入到BILSTM中進(jìn)行處理,最后結(jié)合注意力機(jī)制來優(yōu)化特征向量,從而充分理解和利用文本中的重要信息,提高準(zhǔn)確率。
關(guān)系提取的實(shí)質(zhì)是關(guān)系分類,即確定兩實(shí)體間的關(guān)系類別。2010年之前多采用人工標(biāo)注特征結(jié)合淺層分類模型來進(jìn)行分類,Kambhatla等人采用模式匹配方法,利用基于文本特征的統(tǒng)計(jì)模型進(jìn)行關(guān)系提取,取得一定成果[3]。2010年之后,文本分類方法逐漸向深層模型過渡,Liu等人使用CNN模型處理特征時(shí),結(jié)合實(shí)體語義信息,將多個(gè)同義詞使用同一向量作為模型輸入值[4,10]。Mikolov等人利用RNN將詞語與上下文信息聯(lián)系起來,實(shí)驗(yàn)結(jié)果表明,RNN模型比CNN模型更適合用于文本分類研究[11]。LSTM-RNN[12]、LSTM-CNN[13]、LSTM-GRU[14-15]等混合神經(jīng)網(wǎng)絡(luò)模型在關(guān)系提取、情感分類等任務(wù)中的準(zhǔn)確率進(jìn)一步提高。在單向神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)取得一定成果后,研究目光轉(zhuǎn)向BILSTM和BIGRU,關(guān)舉鵬等人使用BILSTM模型提取文本特征,減少了人工制定特征帶來的麻煩,還進(jìn)一步提升了關(guān)系抽取效果[7]。雙向循環(huán)神經(jīng)網(wǎng)絡(luò)可充分學(xué)習(xí)詞語和上下文語義信息,為減少噪聲帶來的影響,可集成其他研究方法,發(fā)揚(yáng)和彌補(bǔ)各自優(yōu)缺點(diǎn)。
2015年Bahdanau等人使用注意力機(jī)制進(jìn)行機(jī)器翻譯,讓注意力機(jī)制在自然語言處理領(lǐng)域得到認(rèn)可[16]。朱星嘉等人將注意力機(jī)制與LSTM相結(jié)合,重點(diǎn)處理對于關(guān)系分類影響力強(qiáng)的詞語,減少重要信息的流失[17-20]。為進(jìn)一步完善模型架構(gòu),在預(yù)訓(xùn)練階段進(jìn)行優(yōu)化,Shi等人使用BERT模型進(jìn)行詞嵌入,緩解了Word2Vec語言模型存在的一詞多義問題,還加入位置向量、句子特征向量拼接成新向量作為模型輸入,豐富了語義表征[21-24]。
健康醫(yī)療文本有內(nèi)容上下文聯(lián)系緊密、名詞專業(yè)化等特點(diǎn),相較于情感分析、人物關(guān)系等文本,更加難以處理。Ozlem等人在醫(yī)療文本中定義了6大常見醫(yī)療實(shí)體關(guān)系,通過確定實(shí)體間關(guān)系類別來獲取隱含信息[25]。Frunza等人使用樸素貝葉斯和SVM模型對疾病治療、預(yù)防、副作用三者之間的語義關(guān)系進(jìn)行分類,結(jié)合生物醫(yī)學(xué)文獻(xiàn)和臨床醫(yī)療知識,得到了更加準(zhǔn)確的結(jié)果[26]。Sahu等人首次使用CNN結(jié)合多種向量表征方式進(jìn)行中醫(yī)醫(yī)學(xué)關(guān)系提取,減小了對專家定義特征質(zhì)量的依賴[5]。Zhang等人利用CNN和RNN優(yōu)勢,構(gòu)成CNN-RNN模型對生物醫(yī)學(xué)文本中實(shí)體進(jìn)行關(guān)系分類[6]。Chikka等人使用BILSTM模型來提取治療和醫(yī)療問題之間的關(guān)系,結(jié)合基于規(guī)則的方法,可對小樣本數(shù)據(jù)進(jìn)行關(guān)系分類[27]。張志昌等人使用BIGRU模型結(jié)合注意力機(jī)制,增強(qiáng)特征識別的性能,減少誤差帶來的影響[8-9]。武小平等人將把BERT作為語言訓(xùn)練模型,相較于常見語言模型,新加入位置向量、句子特征向量,來豐富詞性[28]。在文本處理領(lǐng)域,可采用神經(jīng)網(wǎng)絡(luò)模型作為基礎(chǔ)架構(gòu),與注意力機(jī)制相結(jié)合,充分學(xué)習(xí)、利用文本信息,但準(zhǔn)確率還有提升空間。
在醫(yī)療領(lǐng)域,存在大量非結(jié)構(gòu)化文本數(shù)據(jù),采用CNN、RNN進(jìn)行處理,會出現(xiàn)文本利用率低,重要信息大量流失的情況。因此,提出了一種基于BERT和BILSTM-ATT融合的關(guān)系提取模型(如圖1所示),來充分學(xué)習(xí)和利用健康醫(yī)療文本中的重要信息。利用BERT語言模型生成詞向量嵌入到BILSTM層,不僅能讓詞語緊密聯(lián)系上下文,還能緩解中文詞語存在的一詞多義問題;在BILSTM層,獲取正反兩方向的隱含特征,讓詞語緊密聯(lián)系上下文;再結(jié)合注意力機(jī)制考慮輸入文本中部分詞語重要性,合理分配權(quán)重;最后使用Softmax分類器得到關(guān)系概率。
圖1 基于BERT與BILSTM融合的 關(guān)系提取模型架構(gòu)
基于已有的Word2Vec、GPT等語言模型,2018年Google團(tuán)隊(duì)提出BERT語言模型,由多層Transformer語言架構(gòu)組合而成,憑借龐大語料庫和超強(qiáng)算力,在文本處理任務(wù)中取得優(yōu)異表現(xiàn)[29]。BERT模型嵌入值由詞向量、位置向量和句子特征向量組成,能保證文本中詞語正確排序,并獲得句子級表征能力,從而豐富向量表征信息,有利于后續(xù)任務(wù)的進(jìn)行[16]。健康醫(yī)療文本的上下文聯(lián)系較為緊密,實(shí)體需要結(jié)合上下文進(jìn)行處理才能獲取精確的信息,且中文詞語可在不同句子中表示不同意思,存在一詞多義的情況,使用BERT模型代替常用的Word2Vec模型進(jìn)行詞嵌入,能很好地緩解這些問題。
該文采用的是BERT中文預(yù)訓(xùn)練模型(BERTBASE),Transformer層數(shù)為12,隱藏層維度為768,多頭注意力機(jī)制個(gè)數(shù)為12,總參數(shù)為110 M。以句子“患者出現(xiàn)胸悶、氣短,診斷為高血壓,口服速效救心丸后緩解”為例,展示BERT模型處理后的文本向量。
1997年Hochreiter提出RNN變體─LSTM,由門控記憶單元組成,包括輸入門、遺忘門、輸出門。計(jì)算過程見式(1)~式(6):
ft=σ(Wfht-1+Ufxt+bf)
(1)
it=σ(Wiht-1+Uixt+bi)
(2)
at=tanh(Waht-1+Uaxt+ba)
(3)
ct=ct-1·ft+it·at
(4)
ot=σ(Woht-1+Uoxt+bo)
(5)
ht=ot·tanh(ct)
(6)
其中,ht-1表示上一單元的隱藏狀態(tài),xt表示本單元輸入信息,ft表示對上一單元隱藏狀態(tài)的遺忘概率,決定保留多少過去狀態(tài)信息;ht-1和xt使用不同激活函數(shù)構(gòu)成本單元輸入值,由上一單元部分記憶和本單元輸入值共同組成本單元記憶ct,ct和之前未處理的隱藏狀態(tài)信息ot共同構(gòu)成本單元隱藏狀態(tài)信息ht,決定向后傳遞多少信息。利用LSTM的鏈?zhǔn)浇Y(jié)構(gòu)選擇記憶信息,緩解了RNN存在的長距離依賴問題,避免信息快速流失[30]。
BILSTM由正向和反向LSTM組成,同時(shí)從兩個(gè)方向開始訓(xùn)練,能有效獲取過去和未來信息,從而緩解了單向LSTM只能序列化處理文本的情況。BILSTM模型處理過程如圖2所示,以句子“患者出現(xiàn)胸悶、氣短,診斷為高血壓,口服速效救心丸后緩解”為例,獲取LSTM處理后的向量;{hi1,hi2,hi3,hi4,hi5,hi6,hi7,hi8,hi9}和{hj1,hj2,hj3,hj4,hj5,hj6,hj7,hj8,hj9}分別代表“患者”“出現(xiàn)”“胸悶”“氣短”“診斷”“高血壓”“口服”“速效救心丸”“緩解”在正向LSTM和反向LSTM中的向量,對正向和反向的隱藏向量進(jìn)行疊加,得到向量{h1,h2,h3,h4,h5,h6,h7,h8,h9},從而做到基于上下文進(jìn)行處理,使BILSTM中每個(gè)字詞包含整句的信息。由于健康醫(yī)療文本數(shù)據(jù)存在多模態(tài)、碎片化、記錄時(shí)間不規(guī)律等特點(diǎn),僅使用LSTM模型效果有限,故與其他方法結(jié)合進(jìn)行集成分析,擴(kuò)展其在醫(yī)療領(lǐng)域應(yīng)用范圍。
圖2 BILSTM模型示例圖
在健康醫(yī)療文本中,每個(gè)詞語對于實(shí)驗(yàn)?zāi)康牡呢暙I(xiàn)不相上下,若統(tǒng)一分配權(quán)重,會遺漏部分重要信息,降低準(zhǔn)確率,故結(jié)合注意力機(jī)制對權(quán)重進(jìn)行調(diào)整,快速篩選并重點(diǎn)處理高價(jià)值信息。計(jì)算過程見式(7)~式(9):
ut=tanh(Wuht+bu)
(7)
(8)
(9)
其中,ut為隨機(jī)初始化矩陣,以鍵值對的形式計(jì)算當(dāng)前詞語與句子中其他詞語的相似度,得到占比權(quán)重at,權(quán)重at和BILSTM層輸出向量ht乘積的累加和得到新的表示向量st[16]。
注意力機(jī)制模型見圖3,以句子“患者出現(xiàn)胸悶、氣短,診斷為高血壓,口服速效救心丸后緩解”為例,根據(jù)BILSTM層輸出向量{h1,h2,h3,h4,h5,h6,h7,h8,h9},得到對應(yīng)權(quán)重{a1,a2,a3,a4,a5,a6,a7,a8,a9},乘積累加得到新的隱藏狀態(tài)向量st,最后使用Softmax函數(shù)進(jìn)行分類,得到預(yù)測標(biāo)簽。
圖3 注意力機(jī)制模型示例圖
BERT-BILSTM-ATT模型以健康醫(yī)療文本數(shù)據(jù)集、實(shí)驗(yàn)參數(shù)作為輸入,利用BERT模型把文本處理成向量形式,再使用BILSTM結(jié)合注意力機(jī)制獲取關(guān)系類別,算法如下:
輸入:健康醫(yī)療文本數(shù)據(jù)集、實(shí)驗(yàn)參數(shù);
輸出:健康醫(yī)療文本中實(shí)體間關(guān)系類別。
Step1:使用BERT模型進(jìn)行詞嵌入,詞語對應(yīng)向量為xt。
Step2:使用BILSTM和注意力機(jī)制對數(shù)據(jù)集中每條健康醫(yī)療文本記錄進(jìn)行處理,其中文本中單詞數(shù)量為n。
for hop=1 ton:
ut=tanh(Wuht+bu)
end for
Step3:根據(jù)最終的表示向量st,使用Softmax函數(shù)計(jì)算各關(guān)系概率,確定關(guān)系類別。
健康醫(yī)療文本除了包含醫(yī)學(xué)專業(yè)詞語外,還包含大量常用詞語。若未提前對健康醫(yī)療文本中詞語進(jìn)行篩選,直接使用jieba工具提取關(guān)鍵詞,會出現(xiàn)關(guān)鍵詞中常用詞語較多、醫(yī)療相關(guān)詞語較少的情況,妨礙獲取文本中醫(yī)療實(shí)體。為減少高頻無意義詞語(如:的、不能、月末等)對醫(yī)療信息獲取的影響,在預(yù)處理階段先過濾掉部分無意義詞語,再進(jìn)行醫(yī)療關(guān)鍵詞提取,降低醫(yī)療信息獲取的困難程度,使模型重點(diǎn)針對醫(yī)療相關(guān)實(shí)體進(jìn)行處理。
3.1.1 實(shí)驗(yàn)數(shù)據(jù)
通過查閱國內(nèi)公開電子健康病歷、咨詢專家后,將醫(yī)療相關(guān)實(shí)體分為12類(例如:身體部位、疾病名稱、藥品名稱等),實(shí)體間關(guān)系分為10類(例如:檢查治療方式、診斷結(jié)果等),具體內(nèi)容如圖4所示。
圖4 醫(yī)療實(shí)體關(guān)系表
選取2個(gè)健康醫(yī)療文本數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)研究。Yidu-S4K數(shù)據(jù)集:由“醫(yī)渡云”醫(yī)學(xué)數(shù)據(jù)智能平臺根據(jù)真實(shí)病歷的分布情況人工編輯而成,共包含8 000條數(shù)據(jù),80%為腫瘤疾病文本,每條記錄包含現(xiàn)狀、診斷內(nèi)容、治療項(xiàng)目、恢復(fù)情況等;本地?cái)?shù)據(jù)集:由2017-2018年間某市疾控中心的高血壓患者數(shù)據(jù)組成,數(shù)據(jù)集已經(jīng)過脫敏處理,包含記錄5 830條,每條記錄包含患者現(xiàn)狀、診斷內(nèi)容、治療項(xiàng)目等。
3.1.2 對健康醫(yī)療文本的預(yù)處理過程
將尋醫(yī)問藥網(wǎng)(https://www.xywy.com/)詞庫作為文中的疾病詞庫,其中詞庫包含疾病、檢查方式、科室、癥狀、治療項(xiàng)目、身體部位等12類實(shí)體,共計(jì)19 832條數(shù)據(jù),用于判斷是否為醫(yī)療相關(guān)實(shí)體,有利于提取醫(yī)療關(guān)鍵詞。
健康醫(yī)療文本處理步驟如圖5所示,輸入健康醫(yī)療文本,去除無用符號(如逗號、引號等),保留句號、分號作為句子隔斷,再使用jieba工具進(jìn)行分詞處理。為減少無意義詞語(如:年前、出現(xiàn)、不會等)對醫(yī)療領(lǐng)域文本處理的影響,以疾病詞庫為基礎(chǔ)過濾掉部分詞語,即存在于疾病詞庫則判斷為關(guān)鍵詞并保存,否則刪除;使用jieba工具統(tǒng)計(jì)排名靠前的關(guān)鍵詞作為研究實(shí)體,專家對實(shí)體間關(guān)系類別進(jìn)行標(biāo)注,最后將處理后的數(shù)據(jù)輸入到文中模型中。
圖5 健康醫(yī)療文本預(yù)處理步驟
實(shí)驗(yàn)使用精確率(precision)、召回率(recall)、F1值(f1-score)3個(gè)標(biāo)準(zhǔn)作為評價(jià)指標(biāo),它們的計(jì)算公式如下:
(10)
(11)
(12)
表1 數(shù)據(jù)集實(shí)驗(yàn)結(jié)果
對BERT-BILSTM-ATT模型進(jìn)行迭代,得到各類別實(shí)驗(yàn)結(jié)果和總體平均值,見表1。由于LSTM模型參數(shù)量大,存在過擬合的風(fēng)險(xiǎn),聯(lián)合觀察精確率和損失值動態(tài)變化來判斷模型擬合狀態(tài),并做出參數(shù)調(diào)整;如圖6,迭代過程無異常波動,模型良好擬合。
各模型訓(xùn)練得到的結(jié)果如表2所示,其中BERT-BILSTM-ATT模型效果最佳。對比未提取關(guān)鍵詞的BERT-BILSTM-ATT模型,BERT-BILSTM-ATT模型精確率提升12.18%~12.85%,證明突出醫(yī)療詞語有助于進(jìn)行后續(xù)健康醫(yī)療文本關(guān)系提取實(shí)驗(yàn)。對比Word2Vec-BILSTM-ATT模型,BERT-BI LSTM-ATT模型精確率提升3.36%~3.76%,證明在詞嵌入過程中,BERT語言模型優(yōu)于Word2Vec語言模型。與CNN模型、BILSTM-CNN模型進(jìn)行對比,精確率大幅度提升,說明本模型效果優(yōu)于其他CNN、RNN神經(jīng)網(wǎng)絡(luò)模型,能充分學(xué)習(xí)、利用健康醫(yī)療文本包含的信息,提高準(zhǔn)確率;與BERT-LSTM-ATT模型進(jìn)行對比,精確率提高3.35%~4.8%,說明雙向LSTM模型結(jié)構(gòu)優(yōu)于單向結(jié)構(gòu),可獲取更加準(zhǔn)確的語義信息;與BERT-BIGRU-ATT模型對比,精確率提高4.07%~4.45%,說明雖然LSTM結(jié)構(gòu)比GRU結(jié)構(gòu)復(fù)雜,但靈活性強(qiáng),更加適合提取內(nèi)容復(fù)雜的文本信息??傮w來看,本模型對健康醫(yī)療文本關(guān)系提取效果較優(yōu)。
圖6 loss和acc變化過程 表2 各類模型實(shí)驗(yàn)結(jié)果
Methods Yidu-S4K數(shù)據(jù)集 本地?cái)?shù)據(jù)集 precisionrecallf1-sorceprecisionrecallf1-sorceCNN0.555 40.393 60.460 70.347 20.285 80.312 5BILSTM-CNN0.307 10.356 20.329 80.264 50.321 20.290 1BERT-BIGRU-ATT0.841 10.862 40.851 60.891 20.895 30.893 2BERT-LSTM-ATT0.835 20.844 70.839 90.900 70.900 20.900 4未提取關(guān)鍵詞的BERT-BILSTM-ATT0.775 60.773 20.774 40.829 80.827 10.828 4Word2Vec-BILSTM-ATT0.843 60.842 20.842 90.900 60.891 00.895 8BERT_BILSTM_ATT0.875 30.873 40.873 60.930 90.925 40.927 1
針對健康醫(yī)療文本處理面臨著利用不充分、信息獲取難度大、準(zhǔn)確率較低等問題,提出一種基于BERT和BILSTM融合的健康醫(yī)療文本關(guān)系提取方法,來對此類問題進(jìn)行處理。與單向LSTM、CNN、BIGRU等模型進(jìn)行對比,該模型分類性能表現(xiàn)最好,精確率提高3.35%以上,驗(yàn)證了基于BERT和BILSTM的融合模型能很好地獲取實(shí)體間關(guān)系,滿足醫(yī)療領(lǐng)域?qū)嶋H應(yīng)用需要。但還存在一些問題,需進(jìn)一步思考,如:不同病種數(shù)據(jù)對于健康醫(yī)療文本關(guān)系提取模型的影響;在健康醫(yī)療文本預(yù)處理階段需專家進(jìn)行標(biāo)注,存在部分主觀因素。