鄭承宇,王 新,王 婷,徐權(quán)峰
(云南民族大學(xué) 數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,云南 昆明 650500)
挖掘隱藏在醫(yī)療文本中的豐富語(yǔ)義信息是文本挖掘領(lǐng)域的重要任務(wù)之一。醫(yī)療文本具有復(fù)雜的專(zhuān)業(yè)術(shù)語(yǔ)等現(xiàn)象,常見(jiàn)的文本分類(lèi)模型在處理醫(yī)療文本時(shí)常常面臨文本語(yǔ)義稀疏、知識(shí)利用不足等問(wèn)題。傳統(tǒng)的主流機(jī)器學(xué)習(xí)算法如ML-KNN[1]、ML-DT[2]、Rank-SVM[3]在處理數(shù)據(jù)稀疏、維度過(guò)高的大規(guī)模數(shù)據(jù)集時(shí),效果并不理想。近年來(lái),基于大數(shù)據(jù)驅(qū)動(dòng)的深度學(xué)習(xí)算法如CNN、RNN以及其他混合神經(jīng)網(wǎng)絡(luò)模型取得了快速發(fā)展,在情感分析[4]、信息檢索[5]、問(wèn)答系統(tǒng)[6]等領(lǐng)域得到了廣泛應(yīng)用?;谏疃葘W(xué)習(xí)算法的文本分類(lèi)模型為了取得優(yōu)異的性能,需要大量的時(shí)間和精力去采集目標(biāo)領(lǐng)域的大型數(shù)據(jù)集和進(jìn)行模型的參數(shù)訓(xùn)練過(guò)程,且易造成巨大的計(jì)算資源耗費(fèi)。為了解決這一問(wèn)題,該文引入文本遷移學(xué)習(xí)方法,將在通用領(lǐng)域表現(xiàn)較好的預(yù)訓(xùn)練語(yǔ)言模型,通過(guò)模型微調(diào)技術(shù),遷移到特定目標(biāo)醫(yī)學(xué)領(lǐng)域數(shù)據(jù)集上進(jìn)行文本遷移學(xué)習(xí),并微調(diào)網(wǎng)絡(luò)結(jié)構(gòu),針對(duì)醫(yī)療文本語(yǔ)義稀疏、維度過(guò)高的特點(diǎn),采用混合神經(jīng)網(wǎng)絡(luò)進(jìn)行集成訓(xùn)練,解決傳統(tǒng)文本分類(lèi)算法對(duì)醫(yī)療文本語(yǔ)義理解不足的問(wèn)題。
2013年,Mikolov等[7]提出Word2Vec詞向量表征模型,推動(dòng)了深度學(xué)習(xí)算法在自然語(yǔ)言處理領(lǐng)域中的發(fā)展。隨后,基于卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)、循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)和長(zhǎng)短期記憶網(wǎng)絡(luò)(long-short term memory network,LSTM)的文本分類(lèi)模型被廣泛應(yīng)用到句子分類(lèi)、多模態(tài)分析和語(yǔ)義關(guān)聯(lián)等自然語(yǔ)言處理任務(wù)中[8-9]。在醫(yī)療文本多標(biāo)簽分類(lèi)領(lǐng)域,Chen等[10]提出一種卷積神經(jīng)網(wǎng)絡(luò)與循環(huán)神經(jīng)網(wǎng)絡(luò)在多標(biāo)簽文本分類(lèi)中的集成應(yīng)用模型CNN-RNN,同時(shí)捕獲醫(yī)療文本詞匯信息和上下文語(yǔ)義信息。Ibrahim[11]等提出一種用于多標(biāo)簽生物醫(yī)療文本分類(lèi)的混合神經(jīng)網(wǎng)絡(luò)模型,分別利用CNN和LSTM模塊提取醫(yī)療文本最具區(qū)分度的特征和上下文信息特征,然后進(jìn)行特征融合。上述算法結(jié)合CNN、RNN和LSTM提取文本特征的優(yōu)點(diǎn),有效提升了深度學(xué)習(xí)算法對(duì)醫(yī)療文本的分類(lèi)效果。
Word2Vec詞向量表征打破了文本相似詞匯不同表達(dá)的隔閡,訓(xùn)練完成的詞向量表達(dá)包含不同文本的詞意信息,但面臨文本詞向量表示無(wú)法根據(jù)具體語(yǔ)境進(jìn)行動(dòng)態(tài)調(diào)整的問(wèn)題,從而造成文本語(yǔ)義信息損失?;诖耍絹?lái)越多的研究者開(kāi)始采用遞進(jìn)式網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行堆疊式搭建,提取文本特征時(shí)充分利用單一網(wǎng)絡(luò)優(yōu)勢(shì)。2018年,Du等[12]提出一種基于嵌入式語(yǔ)言學(xué)習(xí)模型(embeddings from language models,ELMO)的深層神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)框架,結(jié)合具體語(yǔ)境對(duì)文本向量表達(dá)進(jìn)行動(dòng)態(tài)調(diào)整,并利用雙向長(zhǎng)短期記憶網(wǎng)絡(luò)(bidirectional long-short term memory network,Bi-LSTM)和Attention注意力機(jī)制捕獲文本上下文的語(yǔ)義關(guān)聯(lián),用于生物醫(yī)學(xué)文本的多標(biāo)簽分類(lèi),取得了不錯(cuò)的效果。ELMO詞向量表征模型可以有效學(xué)習(xí)文本上下文語(yǔ)義信息進(jìn)行動(dòng)態(tài)詞向量表征[13],但仍面臨著梯度消失以及無(wú)法并行化等問(wèn)題。
針對(duì)上述問(wèn)題,2018年,Devlin等[14]提出一種基于雙向Transformer結(jié)構(gòu)表示的文本預(yù)訓(xùn)練語(yǔ)言模型(bidirectional encoder representations from transformers,BERT),利用Transformer 結(jié)構(gòu)中的encoder部分代替?zhèn)鹘y(tǒng)的LSTM模塊,在文本向量表示方面展示出了強(qiáng)大的算法性能。BERT模型作為一種高效的文本向量表示方法,其有效性依賴(lài)于大量的模型參數(shù)訓(xùn)練,需要耗費(fèi)大量的時(shí)間和資源成本。2020年,Lan等[15]提出了一種輕量化網(wǎng)絡(luò)結(jié)構(gòu)ALBERT(A Lite BERT),通過(guò)采用幾種優(yōu)化策略獲得一種輕量化網(wǎng)絡(luò)模型,在多項(xiàng)自然語(yǔ)言處理任務(wù)數(shù)據(jù)集上超越了BERT模型?;谏鲜鲅芯?,該文提出一種基于遷移學(xué)習(xí)和集成學(xué)習(xí)的醫(yī)療文本分類(lèi)算法,從通用領(lǐng)域表現(xiàn)較好的ALBERT預(yù)訓(xùn)練語(yǔ)言模型中,通過(guò)模型微調(diào)技術(shù)實(shí)現(xiàn)醫(yī)療文本的語(yǔ)義增強(qiáng),然后設(shè)計(jì)Bi-LSTM-CNN混合神經(jīng)網(wǎng)絡(luò)模塊進(jìn)行集成訓(xùn)練,提取醫(yī)療文本蘊(yùn)涵的豐富語(yǔ)義特征,實(shí)現(xiàn)醫(yī)療文本的深層語(yǔ)義信息抽取。
ALBERT預(yù)訓(xùn)練語(yǔ)言模型在通用領(lǐng)域的中文文本向量表示方面展現(xiàn)出了優(yōu)越的算法性能,通過(guò)采用多層雙向的Transformer結(jié)構(gòu)[16]設(shè)計(jì),對(duì)大量中文語(yǔ)料庫(kù)進(jìn)行訓(xùn)練,得到融合詞匯本身和上下文語(yǔ)義信息的動(dòng)態(tài)向量表示,在一定程度上解決了同義詞、多義詞等現(xiàn)象對(duì)文本語(yǔ)義的影響,其模型結(jié)構(gòu)如圖1所示。分析ALBERT預(yù)訓(xùn)練語(yǔ)言模型的網(wǎng)絡(luò)結(jié)構(gòu),通過(guò)遷移學(xué)習(xí)和模型微調(diào)技術(shù),將其應(yīng)用到特定的目標(biāo)領(lǐng)域,結(jié)合醫(yī)療領(lǐng)域文本數(shù)據(jù)集進(jìn)行訓(xùn)練,可以實(shí)現(xiàn)醫(yī)療文本的語(yǔ)義增強(qiáng)。
圖1 ALBERT模型遷移學(xué)習(xí)框架
文本領(lǐng)域的遷移學(xué)習(xí)主要是調(diào)整預(yù)訓(xùn)練語(yǔ)言模型的第一層網(wǎng)絡(luò)結(jié)構(gòu),將在通用領(lǐng)域性能表現(xiàn)較好的預(yù)訓(xùn)練網(wǎng)絡(luò)模型遷移到特定醫(yī)學(xué)領(lǐng)域數(shù)據(jù)集上進(jìn)行訓(xùn)練。ALBERT模型在句子層面按照字符級(jí)別進(jìn)行文本向量輸入,基于遷移學(xué)習(xí)和模型微調(diào)技術(shù),使得該模型在特定領(lǐng)域也具有較好的算法性能,在實(shí)際應(yīng)用中具有重要的應(yīng)用價(jià)值。
ALBERT模型采用多層雙向Transformer結(jié)構(gòu)設(shè)計(jì),多頭自注意力機(jī)制[17]是其中最重要的組成部分,可以計(jì)算文中每個(gè)詞與該句子中所有詞的相互關(guān)系,并通過(guò)這種相互關(guān)系調(diào)整每個(gè)詞在句子中的權(quán)重從而獲得新的表達(dá),其計(jì)算原理如下:
MultiHead(Q,K,V)=Concat(head1,head2,…,
headh)Wo
(1)
(2)
(3)
(4)
基于ALBERT預(yù)訓(xùn)練語(yǔ)言模型的文本遷移學(xué)習(xí)方法,根據(jù)不同任務(wù)需要可將最后一層Transformer結(jié)構(gòu)的輸出向量輸入到下游任務(wù)的深層神經(jīng)網(wǎng)絡(luò)中進(jìn)行訓(xùn)練。醫(yī)療文本作為一種復(fù)雜的序列信息,具有語(yǔ)義稀疏、維度過(guò)高的特點(diǎn),Bi-LSTM模型采用雙向的序列結(jié)構(gòu)設(shè)計(jì),可以更深入地抽取文本序列的全局結(jié)構(gòu)信息,實(shí)現(xiàn)序列信息的復(fù)雜關(guān)系建模。隨后,采用CNN卷積神經(jīng)網(wǎng)絡(luò)模塊對(duì)Bi-LSTM模塊獲取的文本語(yǔ)義信息特征進(jìn)行進(jìn)一步地抽取,可以獲取得到維度更低的深層語(yǔ)義表達(dá),模型結(jié)構(gòu)如圖2所示。
圖2 Bi-LSTM-CNN集成學(xué)習(xí)框架
Bi-LSTM模型考慮了文本的詞序信息和語(yǔ)義信息,對(duì)帶有上下文依賴(lài)關(guān)系的文本具有很好的建模能力,可適用于各種特定任務(wù)的模型構(gòu)建,是目前常用的文本語(yǔ)義編碼模型。Bi-LSTM-CNN集成學(xué)習(xí)框架基于RCNN[18]混合神經(jīng)網(wǎng)絡(luò)模型框架進(jìn)行搭建,在雙向長(zhǎng)短期記憶網(wǎng)絡(luò)后面連接一個(gè)卷積層和最大池化層,構(gòu)成Bi-LSTM-CNN集成網(wǎng)絡(luò)模塊,解決了RNN循環(huán)神經(jīng)網(wǎng)絡(luò)梯度消失或梯度爆炸的問(wèn)題,且充分考慮當(dāng)前字符所在上下文的語(yǔ)義信息,從而學(xué)習(xí)文本的全局結(jié)構(gòu)信息。
Bi-LSTM包含與LSTM相同的遺忘門(mén)、輸入門(mén)和輸出門(mén)三個(gè)細(xì)胞狀態(tài),這三個(gè)門(mén)協(xié)同工作,進(jìn)行信息的篩選、更新與輸出,各細(xì)胞狀態(tài)的更新如下:
f=σ(W(f)xt+U(f)ht-1+b(f))
(5)
i=σ(W(i)xt+U(i)ht-1+b(i))
(6)
u=tanh(W(u)xt+U(u)ht-1+b(u))
(7)
ct=i⊙u+f⊙ct-1
(8)
o=σ(W(o)xt+U(o)ht-1+b(o))
(9)
ht=o⊙tanh(ct)
(10)
其中,xt表示當(dāng)前輸入單元狀態(tài),i,o,f,u分別表示當(dāng)前輸入門(mén)、輸出門(mén)、遺忘門(mén)和候選細(xì)胞生成,ct,ht表示細(xì)胞狀態(tài)更新和隱藏狀態(tài)輸出,σ(·)表示激活函數(shù),W表示權(quán)重矩陣,b表示偏置項(xiàng)。
針對(duì)醫(yī)療文本語(yǔ)義稀疏、維度過(guò)高的特點(diǎn),該文引入ALBERT預(yù)訓(xùn)練語(yǔ)言模型進(jìn)行遷移學(xué)習(xí),采用多層雙向Transfomer編碼器進(jìn)行醫(yī)療文本的動(dòng)態(tài)的詞向量表征。在此基礎(chǔ)上,利用Bi-LSTM雙向長(zhǎng)短期記憶網(wǎng)絡(luò)和CNN卷積神經(jīng)網(wǎng)絡(luò)搭建Bi-LSTM-CNN集成學(xué)習(xí)模塊,實(shí)現(xiàn)文本特征的深層語(yǔ)義信息提取。輸出層采用二交叉熵?fù)p失和sigmiod激活函數(shù)進(jìn)行文本的多標(biāo)簽分類(lèi)訓(xùn)練,提出一種基于遷移學(xué)習(xí)和集成學(xué)習(xí)的醫(yī)療文本多標(biāo)簽分類(lèi)算法(Trans-LSTM-CNN-Multi,TLCM),算法流程如圖3所示。
圖3 TLCM模型框架
TLCM醫(yī)療文本分類(lèi)模型采用Bi-LSTM雙向長(zhǎng)短期記憶網(wǎng)絡(luò)學(xué)習(xí)文本序列的上下文依賴(lài)關(guān)系,即全局結(jié)構(gòu)信息特征,然后利用CNN卷積神經(jīng)網(wǎng)絡(luò)對(duì)Bi-LSTM模塊獲取的文本全局結(jié)構(gòu)信息特征進(jìn)一步地進(jìn)行高維特征向量表達(dá),實(shí)現(xiàn)更深層次的文本語(yǔ)義抽取,且在一定程度上可以解決醫(yī)療文本語(yǔ)義信息表達(dá)維度過(guò)高、知識(shí)利用不足的問(wèn)題。
基于遷移學(xué)習(xí)和集成學(xué)習(xí)的多標(biāo)簽醫(yī)療文本分類(lèi)算法流程如下:
算法1:基于TLCM模型的醫(yī)療文本多標(biāo)簽分類(lèi)算法。
輸出:各訓(xùn)練參數(shù)確定的TLCA文本多標(biāo)簽分類(lèi)網(wǎng)絡(luò)。
(1)Wo={wk=1/N|k=1,2,…,N} //初始化N個(gè)樣本的權(quán)值
(2) repeat //迭代輪次,重復(fù)訓(xùn)練
(4) forkin range(N)
(5)wk={w1,w2,…,wn} //讀取文本數(shù)據(jù)wk
(6)Tk=embedding(wk) //文本序列化
(7)foroin range(O) //遍歷第o層Trans
(9)end for
(10)forpin range(P) //遍歷第p層Bi-LSTM
(14)end for
(15)forqin range(Q) //遍歷第q層卷積模塊
(17)end for
(18)μ=MaxPooling(υq) //最大值池化
(22)end for
(23) 根據(jù)E計(jì)算各參數(shù)的梯度
(24) 更新k個(gè)樣本的權(quán)值Wo
(25) end for
(26) until 訓(xùn)練誤差E收斂到一個(gè)較小的值
(27) end
實(shí)驗(yàn)使用的語(yǔ)料庫(kù)來(lái)源于中華醫(yī)學(xué)會(huì)提供的5 000條公共醫(yī)療中文健康問(wèn)句數(shù)據(jù),每一條中文健康提問(wèn)數(shù)據(jù)已被標(biāo)注為多個(gè)醫(yī)學(xué)類(lèi)別,且具有0個(gè)至6個(gè)不確定的標(biāo)簽數(shù)量,屬于典型的多標(biāo)簽分類(lèi)任務(wù)數(shù)據(jù)集。根據(jù)實(shí)驗(yàn)需求,將數(shù)據(jù)集按照4∶1的比例劃分為訓(xùn)練集與驗(yàn)證集。該數(shù)據(jù)集的樣本標(biāo)簽分布統(tǒng)計(jì)如表1和表2所示。
表1 樣本標(biāo)簽個(gè)數(shù)分布
表2 樣本類(lèi)別分布
實(shí)驗(yàn)采用Micro-F1衡量算法的整體性能,對(duì)于文本分類(lèi)多標(biāo)簽分類(lèi)任務(wù),每條文本文檔具有0個(gè)或多個(gè)標(biāo)簽,每個(gè)標(biāo)簽具有“0”或“1”兩個(gè)類(lèi)別,Micro-F1是測(cè)試不平衡數(shù)據(jù)集的重要指標(biāo)。
(11)
(12)
(13)
Micro-F1同時(shí)考慮了所有標(biāo)簽整體精確率(Precision)和召回率(Recall),是兩者的調(diào)和平均值。其中,Precision表示預(yù)測(cè)結(jié)果為正例的樣本里面預(yù)測(cè)正確的樣本所占的比例,Recall表示實(shí)際結(jié)果為正例的樣本里面預(yù)測(cè)正確的樣本所占的比例。
該文提出一種基于遷移學(xué)習(xí)和集成學(xué)習(xí)的醫(yī)療文本分類(lèi)算法,模型參數(shù)主要包括ALBERT、Bi-LSTM、CNN三個(gè)模塊的參數(shù),依次調(diào)整各個(gè)網(wǎng)絡(luò)模塊參數(shù)的數(shù)值,可以得到模型的最優(yōu)超參數(shù)。在實(shí)驗(yàn)過(guò)程中,遷移學(xué)習(xí)采用Google發(fā)布的中文版預(yù)訓(xùn)練語(yǔ)言模型,Bi-LSTM-CNN集成框架采用ALBERT模型進(jìn)行詞嵌入表示。模型訓(xùn)練相關(guān)參數(shù)詳細(xì)展示如表3所示。
表3 模型參數(shù)設(shè)置
為了驗(yàn)證所提TLCM模型的分類(lèi)效果,該文做了4組對(duì)比實(shí)驗(yàn),其中2組基于Word2Vec詞向量表示,另外2組基于ALBERT預(yù)訓(xùn)練語(yǔ)言模型,分別集成Bi-LSTM和CNN模型進(jìn)行對(duì)比實(shí)驗(yàn),每組實(shí)驗(yàn)采用相同的測(cè)試集和驗(yàn)證集。為了比較模型性能的差異,對(duì)照組實(shí)驗(yàn)的Bi-LSTM和CNN模塊涉及參數(shù)與該文保持一致。實(shí)驗(yàn)采用Precision、Recall和Micro-F1值作為算法性能評(píng)價(jià)指標(biāo),實(shí)驗(yàn)結(jié)果如圖4和圖5所示。
圖4 基于Word2Vec和ALBERT的算法性能對(duì)比
圖5展示了各模型的分類(lèi)結(jié)果。實(shí)驗(yàn)結(jié)果表明,單獨(dú)引入Bi-LSTM和CNN模塊進(jìn)行集成訓(xùn)練的ALBERT模型,Micro-F1值分別為89.4%和90.5%,該文所提基于遷移學(xué)習(xí)和集成學(xué)習(xí)的文本分類(lèi)模型在上述數(shù)據(jù)集上,Precision、Recall表現(xiàn)出了優(yōu)良的算法性能,三項(xiàng)評(píng)測(cè)指標(biāo)分別達(dá)到了91.7%,91.8%和91.8%,說(shuō)明Bi-LSTM-CNN集成模塊充分結(jié)合兩者的優(yōu)點(diǎn),表現(xiàn)出了優(yōu)良的算法性能。此外,如圖4所示,基于傳統(tǒng)Word2Vec詞向量表示的文本分類(lèi)模型在上述數(shù)據(jù)集中,模型預(yù)測(cè)Micro-F1值分別為80.1%,78.6%,顯著低于ALBERT預(yù)訓(xùn)練語(yǔ)言模型,這是因?yàn)锳LBERT預(yù)訓(xùn)練語(yǔ)言模型可以結(jié)合具體語(yǔ)境對(duì)文本向量表達(dá)進(jìn)行動(dòng)態(tài)調(diào)整,進(jìn)一步驗(yàn)證了遷移學(xué)習(xí)在醫(yī)療文本分類(lèi)領(lǐng)域應(yīng)用的可行性。此外,實(shí)驗(yàn)采用中文健康問(wèn)句語(yǔ)料庫(kù),數(shù)據(jù)規(guī)模較小,標(biāo)簽分布嚴(yán)重不均衡,一定程度上影響了模型的分類(lèi)效果,增加偽數(shù)據(jù)、多模態(tài)數(shù)據(jù)等,調(diào)整模型相關(guān)超參數(shù)可進(jìn)一步提升該算法的多標(biāo)簽分類(lèi)性能。
圖5 基于遷移學(xué)習(xí)和集成學(xué)習(xí)的算法性能
針對(duì)醫(yī)療文本語(yǔ)義稀疏、維度過(guò)高的問(wèn)題,提出了一種基于遷移學(xué)習(xí)和集成學(xué)習(xí)的醫(yī)療文本分類(lèi)算法,遷移學(xué)習(xí)ALBERT預(yù)訓(xùn)練語(yǔ)言學(xué)習(xí)模型,通過(guò)模型微調(diào)技術(shù),實(shí)現(xiàn)對(duì)目標(biāo)領(lǐng)域醫(yī)療文本的動(dòng)態(tài)詞向量表征。在此基礎(chǔ)上,構(gòu)建Bi-LSTM-CNN集成學(xué)習(xí)模塊,采用Bi-LSTM雙向長(zhǎng)短期記憶網(wǎng)絡(luò)學(xué)習(xí)文本序列的上下文依賴(lài)關(guān)系,然后利用CNN卷積神經(jīng)網(wǎng)絡(luò)對(duì)Bi-LSTM模塊獲取的文本全局結(jié)構(gòu)信息特征進(jìn)一步地進(jìn)行高維特征向量表達(dá),實(shí)現(xiàn)更深層次的文本語(yǔ)義抽取。在一定程度上解決了醫(yī)療文本語(yǔ)義信息表達(dá)維度過(guò)高、知識(shí)利用不足的問(wèn)題。實(shí)驗(yàn)結(jié)果表明,該模型在各項(xiàng)評(píng)測(cè)指標(biāo)中均具有良好的表現(xiàn),基于遷移學(xué)習(xí)和集成學(xué)習(xí)的文本分類(lèi)方法,在小規(guī)模醫(yī)療文本數(shù)據(jù)集上表現(xiàn)出了優(yōu)越的算法性能。在下一步的工作中,擴(kuò)展模型到多層級(jí)和包含隸屬關(guān)系的醫(yī)療文本多標(biāo)簽分類(lèi)任務(wù)中,探討基于標(biāo)簽序列的文本分類(lèi)方法,進(jìn)一步提高模型分類(lèi)準(zhǔn)確率。