張博,孫逸,李孟穎,鄭馥琦,張益嘉,王健,林鴻飛,楊志豪
(大連理工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,遼寧 大連 116024)
隨著現(xiàn)代生物醫(yī)學(xué)的快速發(fā)展,大量的臨床醫(yī)學(xué)數(shù)據(jù)呈現(xiàn)指數(shù)增長(zhǎng),且大多為非結(jié)構(gòu)化文本。為構(gòu)建臨床試驗(yàn)篩選結(jié)構(gòu)化文本,通過(guò)自然語(yǔ)言處理和機(jī)器學(xué)習(xí)的方法對(duì)臨床試驗(yàn)篩選標(biāo)準(zhǔn)自動(dòng)解析,并以此構(gòu)建自動(dòng)化篩選病人的系統(tǒng)是一個(gè)很有前景的研究熱點(diǎn),具有很大的實(shí)際應(yīng)用前景和醫(yī)學(xué)臨床價(jià)值。臨床試驗(yàn)是指通過(guò)人體志愿者也稱為受試者進(jìn)行的科學(xué)研究,篩選標(biāo)準(zhǔn)是臨床試驗(yàn)負(fù)責(zé)人擬定的鑒定受試者是否滿足某項(xiàng)臨床試驗(yàn)的主要指標(biāo),分為入組標(biāo)準(zhǔn)和排出標(biāo)準(zhǔn),一般為無(wú)規(guī)則的自由文本形式。臨床試驗(yàn)的受試者招募一般是通過(guò)人工比較病歷記錄表和臨床試驗(yàn)篩選標(biāo)準(zhǔn)完成,這種方式費(fèi)時(shí)費(fèi)力且效率低下。因此通過(guò)現(xiàn)有的深度學(xué)習(xí)等一些自然語(yǔ)言處理技術(shù)來(lái)實(shí)現(xiàn)臨床試驗(yàn)篩選標(biāo)準(zhǔn)短文本分類系統(tǒng)具有重要意義。
本文旨在解決醫(yī)學(xué)短文本分類問(wèn)題,實(shí)驗(yàn)數(shù)據(jù)集選擇的是中國(guó)健康信息處理會(huì)議(CHIP2019)評(píng)測(cè)數(shù)據(jù),如圖1所示,輸入為一系列中文臨床試驗(yàn)篩選標(biāo)準(zhǔn)的描述句子,輸出為根據(jù)每一條臨床試驗(yàn)數(shù)據(jù)返回篩選標(biāo)準(zhǔn)的具體類別。
圖1 數(shù)據(jù)示例Fig.1 An example of data
傳統(tǒng)的文本分類方法主要基于特征工程等機(jī)器學(xué)習(xí)方法,該方法需要大量的人工介入,需耗費(fèi)大量的時(shí)間和精力,近年來(lái),深度學(xué)習(xí)技術(shù)逐漸取代傳統(tǒng)的機(jī)器學(xué)習(xí)技術(shù)成為文本分類領(lǐng)域的主流方法[1]?;谏疃葘W(xué)習(xí)的自然語(yǔ)言處理技術(shù)主要有2013年Mikolov等人[2]提出基于神經(jīng)網(wǎng)絡(luò)的語(yǔ)言模型CBOW和Skip-gram并提出分布式詞向量的概念。2014年Sutskever等人[3]提出Seq2Seq模型,通過(guò)一些深度神經(jīng)網(wǎng)絡(luò)模型構(gòu)建編碼器和解碼器,常用的神經(jīng)網(wǎng)絡(luò)主要是長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)。2017年Vaswani等人[4]提出transformer機(jī)制,其中的編碼器和解碼器是由基本的前饋神經(jīng)網(wǎng)絡(luò)和注意力機(jī)制堆疊形成。2018年Jacob等人[5]提出預(yù)訓(xùn)練語(yǔ)言模型BERT。2019年Facebook團(tuán)隊(duì)在BERT基礎(chǔ)上進(jìn)行優(yōu)化提出Roberta預(yù)訓(xùn)練語(yǔ)言模型[6]。
本文提出的臨床試驗(yàn)篩選標(biāo)準(zhǔn)短文本分類方法主要分為三個(gè)階段,一是微調(diào)預(yù)訓(xùn)練語(yǔ)言模型,在此階段使用的語(yǔ)言模型是BERT[5]和Roberta[6];二是微調(diào)分類模型,面向醫(yī)學(xué)短文本分類任務(wù)將第一階段得到的語(yǔ)言模型與神經(jīng)網(wǎng)絡(luò)模型進(jìn)行結(jié)合構(gòu)建醫(yī)學(xué)分類模型,微調(diào)過(guò)程是針對(duì)結(jié)合后的整體模型即包含語(yǔ)言模型和神經(jīng)網(wǎng)絡(luò)模型,上述兩個(gè)階段的微調(diào)使用的數(shù)據(jù)集均為無(wú)監(jiān)督領(lǐng)域相關(guān)的外部資源數(shù)據(jù)集;三是利用集成學(xué)習(xí)的知識(shí)來(lái)實(shí)現(xiàn)最終的醫(yī)學(xué)文本分類,將第二階段得到的多個(gè)分類器進(jìn)行集成學(xué)習(xí),通過(guò)投票方式和beam search ensemble算法選擇出最佳的模型組合并將其作為醫(yī)學(xué)文本分類系統(tǒng)的最終分類模型。實(shí)驗(yàn)結(jié)果表明本文方法的有效性,在CHIP2019評(píng)測(cè)三臨床試驗(yàn)篩選標(biāo)準(zhǔn)短文本分類任務(wù)測(cè)試集上其F1值達(dá)到0.811 1。
文本分類任務(wù)是自然語(yǔ)言處理領(lǐng)域經(jīng)典任務(wù)之一,有著廣泛的應(yīng)用。醫(yī)學(xué)文本分類技術(shù)可輔助醫(yī)療,構(gòu)建結(jié)構(gòu)化電子病例等醫(yī)學(xué)數(shù)據(jù),具有重要意義。近年來(lái),一些經(jīng)典的文本分類方法主要是基于深度學(xué)習(xí)模型,如Kim等人[7]提出多尺度并行的單層卷積神經(jīng)網(wǎng)絡(luò)(CNN)結(jié)合預(yù)訓(xùn)練詞向量實(shí)現(xiàn)句子級(jí)別的文本分類,Hochreiter等人[8]為了解決原始循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)在訓(xùn)練時(shí)存在梯度消失和梯度爆炸問(wèn)題提出長(zhǎng)短時(shí)記憶神經(jīng)網(wǎng)絡(luò)(LSTM)進(jìn)行文本分類。Yang等人[9]提出基于分層注意力機(jī)制的神經(jīng)網(wǎng)絡(luò)模型實(shí)現(xiàn)文檔分類。上述方法在通用領(lǐng)域文本分類任務(wù)中起到了很大的作用,但在生物醫(yī)學(xué)領(lǐng)域中的短文本分類任務(wù)中存在一定的局限性。主要原因有臨床試驗(yàn)電子病歷文本中含有大量的醫(yī)學(xué)專業(yè)詞匯;病歷文本中存在的字符形式較多,包含中文、英文縮寫,阿拉伯?dāng)?shù)字、科學(xué)計(jì)數(shù)法等;病歷文本中在不同類別的短文本存在一定程度的重疊。因此,為解決上述問(wèn)題本文提出一種基于遷移學(xué)習(xí)和深度學(xué)習(xí)的方法,采用微調(diào)技術(shù),使在通用領(lǐng)域上表現(xiàn)好的模型在生物醫(yī)學(xué)領(lǐng)域上也有較好的性能。
遷移學(xué)習(xí)對(duì)計(jì)算機(jī)視覺(jué)領(lǐng)域產(chǎn)生了很大的影響。應(yīng)用在計(jì)算機(jī)視覺(jué)領(lǐng)域的模型大多是利用已有模型進(jìn)行微調(diào),很少?gòu)念^開(kāi)始訓(xùn)練,即在ImageNet, MS-COCO等大數(shù)據(jù)上得到預(yù)訓(xùn)練模型[10-13]。雖然深度學(xué)習(xí)模型在許多自然語(yǔ)言處理領(lǐng)域任務(wù)上達(dá)到了很好的效果,但是這些模型都是從頭開(kāi)始訓(xùn)練,需要花費(fèi)大量時(shí)間和精力收集大型數(shù)據(jù)集和訓(xùn)練模型。目前應(yīng)用到自然語(yǔ)言處理領(lǐng)域的遷移學(xué)習(xí),主要是針對(duì)模型的第一層,通過(guò)微調(diào)預(yù)訓(xùn)練的數(shù)據(jù),雖是一種簡(jiǎn)單的遷移學(xué)習(xí)技術(shù),但是在實(shí)際應(yīng)用中有很大的價(jià)值和影響,并可應(yīng)用到各種深度學(xué)習(xí)模型中,但該方法仍需要從頭訓(xùn)練主要任務(wù)模型,并將預(yù)訓(xùn)練詞嵌入視為固定參數(shù),限制了遷移學(xué)習(xí)方案的有效性。
圖2 模型框架Fig.2 Framework of model
目前的研究成果表明,預(yù)訓(xùn)練語(yǔ)言模型能夠提升自然語(yǔ)言推斷、語(yǔ)義相似度計(jì)算、命名實(shí)體識(shí)別、情感分析、檢索式問(wèn)答匹配等多個(gè)自然語(yǔ)言處理任務(wù)的性能。因此,針對(duì)上述問(wèn)題,我們利用預(yù)訓(xùn)練模型,采用遷移學(xué)習(xí)技術(shù)來(lái)完成臨床試驗(yàn)篩選標(biāo)準(zhǔn)短文本分類任務(wù)。根據(jù)自然語(yǔ)言處理領(lǐng)域最新研究,遷移學(xué)習(xí)較為有效的方案是進(jìn)行模型微調(diào),其中通用語(yǔ)言模型微調(diào)(ULMFiT)[14]在多個(gè)分類任務(wù)中表現(xiàn)出優(yōu)越的性能,因此我們采用ULMFiT中的一些方法,如傾斜的三角學(xué)習(xí)率,逐層解凍等來(lái)提高醫(yī)學(xué)文本分類系統(tǒng)性能和訓(xùn)練效率。
本文搭建的模型框架如圖2所示,先對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)單地預(yù)處理,得到中文臨床試驗(yàn)篩選標(biāo)準(zhǔn)短文本描述,將其作為輸入,按照字級(jí)別輸入到預(yù)訓(xùn)練語(yǔ)言模型中,然后將語(yǔ)言模型中最后一層transformer的輸出作為下游神經(jīng)網(wǎng)絡(luò)層的輸入,再經(jīng)過(guò)一些深度學(xué)習(xí)網(wǎng)絡(luò)層學(xué)習(xí)文本特征,最后通過(guò)softmax函數(shù)得到分類結(jié)果。
本文的研究方案主要分為三個(gè)階段:第一個(gè)階段是使用預(yù)訓(xùn)練語(yǔ)言模型,并對(duì)語(yǔ)言模型進(jìn)行微調(diào);第二個(gè)階段是將第一階段得到的語(yǔ)言模型與神經(jīng)網(wǎng)絡(luò)模型進(jìn)行拼接得到醫(yī)學(xué)短文本分類模型,并對(duì)分類模型進(jìn)行微調(diào);第三階段是將第二階段得到的多個(gè)分類模型進(jìn)行集成學(xué)習(xí)來(lái)提高總體的分類結(jié)果。
1.2.1 預(yù)訓(xùn)練語(yǔ)言模型選擇
本文使用的兩個(gè)預(yù)訓(xùn)練語(yǔ)言模型均基于BERT模型方法,分別為Google發(fā)布的中文版 BERT-base, Chinese[5]和哈工大訊飛聯(lián)合實(shí)驗(yàn)室發(fā)布的RoBERTa-wwm-ext, Chinese[15]。
1.2.2 語(yǔ)言模型微調(diào)
雖然Google訓(xùn)練BERT模型時(shí)使用的通用領(lǐng)域數(shù)據(jù)集是非常多樣的,但是相對(duì)臨床試驗(yàn)篩選標(biāo)準(zhǔn)短文本分類任務(wù)的數(shù)據(jù)仍有很多不同的分布。
因此,本文受遷移學(xué)習(xí)思想啟發(fā)對(duì)上述兩個(gè)預(yù)訓(xùn)練模型進(jìn)行微調(diào)得到適用于生物醫(yī)學(xué)領(lǐng)域的語(yǔ)言模型。微調(diào)過(guò)程中使用的數(shù)據(jù)集是通過(guò)相關(guān)爬蟲程序爬取的213,154條關(guān)于臨床試驗(yàn)篩選標(biāo)準(zhǔn)短文本數(shù)據(jù),并選取CHIP2019評(píng)測(cè)任務(wù)三官方發(fā)布的數(shù)據(jù)集(包含訓(xùn)練集和驗(yàn)證集)做微調(diào)結(jié)果驗(yàn)證。
為了使BERT和Roberta兩個(gè)語(yǔ)言模型參數(shù)適應(yīng)醫(yī)學(xué)文本分類任務(wù),我們采用傾斜的三角學(xué)習(xí)率方法進(jìn)行微調(diào)使模型在訓(xùn)練開(kāi)始時(shí)快速收斂到參數(shù)空間的合適區(qū)域,再細(xì)化其參數(shù)。傾斜的三角學(xué)習(xí)率是指先線性地增加學(xué)習(xí)率,再根據(jù)公式(1)(2)(3)更新時(shí)間表形成線性衰減,如圖3所示。
圖3 傾斜三角學(xué)習(xí)率Fig.3 Slanted triangular learning rates
(1)
(2)
(3)
其中T是訓(xùn)練的總迭代次數(shù);cut-frac 是增加學(xué)習(xí)率的迭代次數(shù)比例;cut 是學(xué)習(xí)率從增加到減少的臨界迭代次數(shù);p是一個(gè)分段函數(shù),分別表示遞增和遞減的迭代次數(shù)比例;ratio 表示學(xué)習(xí)率最小時(shí)與最大學(xué)習(xí)率的比值,就是學(xué)習(xí)率的衰減比例;ηt表示迭代次數(shù)為t時(shí)的學(xué)習(xí)率。實(shí)驗(yàn)過(guò)程將cut-frac設(shè)定為0.1,ratio設(shè)定為32,ηmax設(shè)定為0.01。在使用該方法微調(diào)語(yǔ)言模型后,分類結(jié)果會(huì)有顯著提升,在文中實(shí)驗(yàn)部分會(huì)具體論述。
針對(duì)臨床試驗(yàn)篩選標(biāo)準(zhǔn)短文本分類任務(wù),我們使用了當(dāng)前主流的四種神經(jīng)網(wǎng)絡(luò)分類模型來(lái)實(shí)現(xiàn)醫(yī)學(xué)文本分類,使用的模型主要有卷積神經(jīng)網(wǎng)絡(luò)(CNN)[7],新型卷積神經(jīng)網(wǎng)絡(luò)(DPCNN)[16],長(zhǎng)短時(shí)記憶神經(jīng)網(wǎng)絡(luò)(LSTM)[8]以及自注意力機(jī)制(self-attention)[4],將其與上述BERT和Roberta語(yǔ)言模型進(jìn)行拼接最終形成的模型分類器有以下9種:bert-base, bert+bilstm+attention, bert+cnn, bert+dpcnn, roberta-base, roberta+attention, roberta+bilstm+attention,roberta+cnn, roberta+dpcnn,其中,“+” 表示把預(yù)訓(xùn)練模型最后一個(gè)transformer層的輸出結(jié)果輸入到分類模型的對(duì)應(yīng)層中。base表示用預(yù)訓(xùn)練模型最后一個(gè)transformer的第一個(gè)token的值(即CLS)作為一個(gè)全連接層的輸入直接進(jìn)行分類得到的結(jié)果。
為了使上述分類模型適用于臨床試驗(yàn)篩選標(biāo)準(zhǔn)文本分類任務(wù),我們使用逐層解凍策略來(lái)對(duì)模型分類器進(jìn)行微調(diào)。該策略最先提出用于ULMFiT模型[14]最后的分類器微調(diào)階段。簡(jiǎn)單來(lái)說(shuō),該策略是指模型訓(xùn)練時(shí)不是一次微調(diào)所有層而是從最后一層開(kāi)始逐漸解凍模型。逐層微調(diào)解決了因一次性微調(diào)所有層導(dǎo)致的致災(zāi)難性遺忘問(wèn)題。研究表明最后一層會(huì)包括最通用的特征,因此,在訓(xùn)練時(shí),先解凍最后一層(凍住其他層),在一個(gè)Epoch內(nèi)微調(diào)所有未凍結(jié)的層,而不是所有層一起訓(xùn)練。然后在第二個(gè)Epoch內(nèi),再解凍倒數(shù)第二層來(lái)訓(xùn)練,以此類推。即,每個(gè)Epoch向下解凍一層,直至所有層都微調(diào)完畢,直到最后一次迭代收斂。
基于上述策略思想,我們將前50%個(gè)Epoch按照比例依次解凍,后50%個(gè)Epoch將所有權(quán)重一起訓(xùn)練。實(shí)驗(yàn)過(guò)程中設(shè)置了Epoch=10, Roberta語(yǔ)言模型有12個(gè)transformer層和1個(gè)詞嵌入層,因此在我們的模型訓(xùn)練過(guò)程中,不是每個(gè)Epoch內(nèi)解凍一層,而是5個(gè)Epoch內(nèi)依次解凍13層,即5/13個(gè)Epoch解凍一層。在本文后續(xù)的實(shí)驗(yàn)部分會(huì)進(jìn)行消融實(shí)驗(yàn)分析來(lái)論證該策略的有效性。
考慮到不同分類模型會(huì)學(xué)習(xí)到不同的文本特征,因此本文采用投票機(jī)制和集成學(xué)習(xí)來(lái)提高整個(gè)醫(yī)學(xué)文本分類系統(tǒng)的性能。針對(duì)上述9種分類模型進(jìn)行集成學(xué)習(xí)得到相應(yīng)的模型組合,模型之間進(jìn)行內(nèi)部投票得到最終的分類結(jié)果。在集成學(xué)習(xí)過(guò)程中我們提出了一種模型集成算法beam search ensemble。
隨著模型數(shù)量的增多,從所有模型組合中選取最優(yōu)結(jié)果所耗費(fèi)的時(shí)間呈指數(shù)級(jí)增長(zhǎng),且無(wú)法對(duì)模型合理分配投票權(quán)重。因此我們提出一種beam search ensemble算法,即將beam search算法應(yīng)用到融合模型中并對(duì)其進(jìn)行了一些改進(jìn),具體算法如圖4所示。該算法有效減少了時(shí)間復(fù)雜度,可使單個(gè)模型重復(fù)投票,充分考慮了性能好的模型的優(yōu)勢(shì),以及降低性能差的模型所帶來(lái)的偏差,有效更新了投票權(quán)重,并且在泛化能力上優(yōu)于全部的模型融合,在文中實(shí)驗(yàn)部分有具體對(duì)比。
在實(shí)驗(yàn)過(guò)程中我們將beam search ensemble算法中的beam size參數(shù)設(shè)為3,得到最佳組合模型為bert-base,bert+dpcnn, bert+lstm+attention, roberta+attention, roberta+cnn * 2, roberta+dpcnn, roberta+lstm+attention,即這7個(gè)模型之間進(jìn)行投票得到的集成模型效果最佳,F1值達(dá)到0.811 1。
基于遷移學(xué)習(xí)和深度學(xué)習(xí)的臨床試驗(yàn)篩選標(biāo)準(zhǔn)短文本分類研究任務(wù)來(lái)源是中國(guó)健康信息處理會(huì)議(CHIP2019)評(píng)測(cè)三任務(wù),具體任務(wù)為根據(jù)官方給定事先定義好的44種篩選標(biāo)準(zhǔn)類別和一系列中文臨床試驗(yàn)篩選的標(biāo)準(zhǔn)描述句子,結(jié)果返回每一條篩選標(biāo)準(zhǔn)的具體類別,示例如表1所示。
本文使用的數(shù)據(jù)集有CHIP2019評(píng)測(cè)三任務(wù)發(fā)布的數(shù)據(jù)集和通過(guò)爬蟲方式獲得的領(lǐng)域相關(guān)外部資源數(shù)據(jù)集。其中,官方發(fā)布的數(shù)據(jù)集包含訓(xùn)練集,驗(yàn)證集和測(cè)試集,按照大約3∶1∶1的比例劃分,訓(xùn)練集和驗(yàn)證集包含人工標(biāo)注的句子類別標(biāo)簽,屬于有監(jiān)督數(shù)據(jù)。我們獲取的領(lǐng)域相關(guān)的外部資源數(shù)據(jù)集屬于無(wú)監(jiān)督數(shù)據(jù),即不含有句子類別標(biāo)簽。數(shù)據(jù)集數(shù)量統(tǒng)計(jì)如表2所示。實(shí)驗(yàn)過(guò)程中先對(duì)所有數(shù)據(jù)集進(jìn)行簡(jiǎn)單地去重等預(yù)處理,無(wú)監(jiān)督數(shù)據(jù)集主要用于模型微調(diào),有監(jiān)督數(shù)據(jù)集用于模型的訓(xùn)練和驗(yàn)證。
表1 任務(wù)示例
表2 數(shù)據(jù)統(tǒng)計(jì)
本任務(wù)的評(píng)價(jià)指標(biāo)包括宏觀準(zhǔn)確率(Macro Precision),宏觀召回率(Macro Recall),AverageF1值。最終排名以AverageF1值為基準(zhǔn)。假設(shè)我們有n個(gè)類別,C1,…,Ci,…,Cn,則準(zhǔn)確率Pi、召回率Ri和AverageF1值的計(jì)算公式(4)(5)(6)如下:
(4)
(5)
(6)
其中TP(Ci)表示正確預(yù)測(cè)為類別Ci的樣本個(gè)數(shù),P(Ci)預(yù)測(cè)為Ci的樣本個(gè)數(shù),T(Ci)為真實(shí)的Ci的樣本個(gè)數(shù)。
2.3.1 超參數(shù)設(shè)置
我們模型訓(xùn)練的輪數(shù)設(shè)置為10輪,輸入序列長(zhǎng)度設(shè)置為128,衰減權(quán)重設(shè)置為0.001,學(xué)習(xí)率設(shè)置為0.000 05,每一輪保存一次模型,隨機(jī)種子設(shè)為914,優(yōu)化器選擇為Adam[17]。分類模型中一些神經(jīng)網(wǎng)絡(luò)層參數(shù)超參數(shù)設(shè)置如表3所示。
2.3.2 損失函數(shù)
因臨床試驗(yàn)篩選標(biāo)準(zhǔn)短文本數(shù)據(jù)中含有44種類別,存在嚴(yán)重的樣本類別不均衡的問(wèn)題,例如在訓(xùn)練集中“bedtime”類別只存在14個(gè)樣本數(shù)據(jù),而“disease”類別存在5 127個(gè)樣本數(shù)據(jù)。此外,該任務(wù)還存在其他簡(jiǎn)單與復(fù)雜樣本問(wèn)題,例如“age”類別樣本存在較為明顯的關(guān)鍵字且訓(xùn)練集數(shù)量較多,較為容易區(qū)分,為簡(jiǎn)單樣本,但有一些樣本如“體檢發(fā)現(xiàn)有任何顯著的臨床疾病癥狀者”存在多重含義和多個(gè)關(guān)鍵字等問(wèn)題,較難區(qū)分它為“Symptom”類別還是“Laboratory Examinations”類別。為解決樣本不平衡以及區(qū)分簡(jiǎn)單與復(fù)雜樣本問(wèn)題,我們使用He Kaiming和RBG提出的焦點(diǎn)損失函數(shù)focal loss[18]。Focalloss函數(shù)首次提出后被應(yīng)用在圖像領(lǐng)域的目標(biāo)檢測(cè)任務(wù)中,它是在標(biāo)準(zhǔn)交叉熵?fù)p失的基礎(chǔ)上修改得到的。Focal loss函數(shù)通過(guò)減少易分類樣本的權(quán)重來(lái)使得模型在訓(xùn)練時(shí)更專注于難分類的樣本,如公式(7)所示。
表3 神經(jīng)網(wǎng)絡(luò)參數(shù)設(shè)置
FL(Pt)=-αt(1-Pt)γlog(Pt),
(7)
其中,αt表示每個(gè)類別的權(quán)重系數(shù),Ct表示訓(xùn)練集中第t個(gè)類別的個(gè)數(shù),γ為調(diào)制系數(shù),實(shí)驗(yàn)時(shí)設(shè)置γ=2。由公式可以看出,當(dāng)一個(gè)樣本被分錯(cuò)時(shí),Pt非常小,因此調(diào)制系數(shù)γ就趨于1,即相比原來(lái)的損失基本沒(méi)有改變。當(dāng)Pt趨于1的時(shí)候(此時(shí)分類正確而且是易分類樣本),調(diào)制系數(shù)趨于0,也就是對(duì)于總的損失貢獻(xiàn)很小。當(dāng)γ=0的時(shí)候,focal loss就是傳統(tǒng)的交叉熵?fù)p失,當(dāng)γ增加的時(shí)候,調(diào)制系數(shù)也會(huì)增加。其核心思想是用一個(gè)合適的函數(shù)去度量難分類和易分類樣本對(duì)總的損失的貢獻(xiàn),這樣既能調(diào)整正負(fù)樣本的權(quán)重,又能控制難易分類樣本的權(quán)重。
為了解決臨床試驗(yàn)篩選標(biāo)準(zhǔn)文本數(shù)據(jù)集44種類別中的少類別問(wèn)題,同時(shí)又要避免過(guò)度關(guān)注,αt參數(shù)選取如公式(8)所示。
αt= 2max(log Ct)-log Ct。
(8)
最終使用了9種神經(jīng)網(wǎng)絡(luò)模型來(lái)進(jìn)行文本分類,對(duì)不同的具體模型分別使用5折交叉驗(yàn)證,所得模型對(duì)測(cè)試集進(jìn)行預(yù)測(cè),取5個(gè)預(yù)測(cè)結(jié)果的加權(quán)平均值作為最終預(yù)測(cè)結(jié)果,每個(gè)模型分配的權(quán)重值為其在交叉驗(yàn)證時(shí)得到的F1值。最后通過(guò)投票法對(duì)上述的9個(gè)模型做最后的模型融合,選取最佳模型組合。9種模型單獨(dú)進(jìn)行臨床試驗(yàn)篩選標(biāo)準(zhǔn)分類結(jié)果如表4所示,其中,bert-base表示用最后一個(gè)transformer的第一個(gè)token的值(即CLS)做為一個(gè)全連接層的輸入得到的分類結(jié)果。bert-lstm-att表示用bert的最后一個(gè)transformer層的輸出作為L(zhǎng)STM的輸入并加入注意力機(jī)制得到的實(shí)驗(yàn)結(jié)果,其他模型結(jié)果記錄方式同上。
表4 實(shí)驗(yàn)結(jié)果
從表4中可以看出,在語(yǔ)言模型后拼接神經(jīng)網(wǎng)絡(luò)模型組成分類器在一定程度上可以提高分類結(jié)果。不同的神經(jīng)網(wǎng)絡(luò)模型得到的分類結(jié)果不盡相同,但總體差別不大,具體實(shí)驗(yàn)結(jié)果還與語(yǔ)言模型有關(guān)系。在BERT預(yù)訓(xùn)練語(yǔ)言模型中,拼接LSTM與注意力機(jī)制模型效果最優(yōu),在Roberta預(yù)訓(xùn)練語(yǔ)言模型中,拼接CNN模型效果最好。因最初考慮到可能會(huì)出現(xiàn)上述實(shí)驗(yàn)結(jié)果,即不同的預(yù)訓(xùn)練模型與不同的深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)模型進(jìn)行拼接會(huì)得到不同的實(shí)驗(yàn)結(jié)果,每個(gè)單個(gè)模型從臨床試驗(yàn)篩選標(biāo)準(zhǔn)短文本數(shù)據(jù)集中學(xué)習(xí)到的知識(shí)特征是不同的,這樣集成之后的模型之間可以結(jié)果互補(bǔ)使整個(gè)分類系統(tǒng)的性能得以提升。9個(gè)模型全部集成學(xué)習(xí)得到分類結(jié)果的F1值為0.809 9,比單個(gè)模型(roberta-cnn)最優(yōu)結(jié)果高出0.36%,比單個(gè)BERT模型結(jié)果高出1.35%,證明模型集成的有效性。用我們提出的beam search ensemble算法進(jìn)行模型集成時(shí)得到的最佳模型組合為bert-base,bert+dpcnn, bert+lstm+attention, roberta+attention, roberta+cnn * 2, roberta+dpcnn, roberta+lstm+attention這7個(gè)模型。這7個(gè)模型被分配了不同的投票權(quán)重后集成得到的結(jié)果比所有模型共同集成結(jié)果高出0.12%,充分論證了beam search ensemble算法的有效性。
為了驗(yàn)證微調(diào)模型以及微調(diào)方案的有效性,我們進(jìn)行了消融對(duì)比實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果如表5所示。
表5 消融實(shí)驗(yàn)結(jié)果
roberta-fine表示只對(duì)預(yù)訓(xùn)練語(yǔ)言模型進(jìn)行微調(diào),通過(guò)與不進(jìn)行微調(diào)的實(shí)驗(yàn)結(jié)果(0.785 0)對(duì)比可知,微調(diào)語(yǔ)言模型可使分類結(jié)果提高1.27%,充分說(shuō)明了微調(diào)模型的有效性。roberta-fine-gu表示在微調(diào)分類器模型時(shí),采用逐層解凍方案來(lái)實(shí)現(xiàn)模型的快速收斂。通過(guò)與不進(jìn)行任何微調(diào)的單個(gè)roberta模型相比,分類結(jié)果提高了1.40%,與只進(jìn)行語(yǔ)言模型微調(diào)的roberta-fine相比提高了0.13%,因而證明了模型微調(diào)(包括語(yǔ)言模型微調(diào)和分類器模型微調(diào))的有效性。
本文集成模型與評(píng)測(cè)比賽中其他模型實(shí)驗(yàn)結(jié)果比較如表6所示。
表6 其他模型實(shí)驗(yàn)結(jié)果
評(píng)測(cè)第一名采用的方案是基于BERT與模型融合的短文本分類方法。該方法采用了BERT模型和一些當(dāng)前主流的深度學(xué)習(xí)模型進(jìn)行集成。評(píng)測(cè)第二名采用的方案是一種基于預(yù)訓(xùn)練模型的醫(yī)學(xué)短文本分類方法。該方法與本文大體相同,不同的地方是其最終沒(méi)有用到改進(jìn)的beam search ensemble算法來(lái)尋找最佳的模型組合。評(píng)測(cè)第三名采用的方案是基于BERT融合多特征的臨床試驗(yàn)篩選標(biāo)準(zhǔn)短文本分類。該方法是通過(guò)采用BERT等一系列預(yù)訓(xùn)練語(yǔ)言模型集成和抽取一些文本特征來(lái)提高分類結(jié)果,融合的特征主要有句法特征、詞性標(biāo)注特征和關(guān)鍵詞特征等。通過(guò)以上實(shí)驗(yàn)結(jié)果分析可知本文方法得到模型的有效性。
本文提出一種基于遷移學(xué)習(xí)和集成學(xué)習(xí)的醫(yī)學(xué)短文本分類方案,利用相關(guān)領(lǐng)域外部資源數(shù)據(jù)對(duì)語(yǔ)言模型和分類模型進(jìn)行微調(diào),在微調(diào)過(guò)程中利用了斜三角學(xué)習(xí)率和逐層解凍的微調(diào)方法,最后用模型集成學(xué)習(xí)來(lái)提高醫(yī)學(xué)文本分類系統(tǒng)的性能,在模型集成過(guò)程中提出了改進(jìn)的beam search ensemble 算法,該算法可以選出最佳分類模型組合從而可以提高了分類結(jié)果,其F1值達(dá)到0.811 1。
未來(lái)將繼續(xù)利用遷移學(xué)習(xí)的一些知識(shí),并嘗試在神經(jīng)網(wǎng)絡(luò)分類模型算法上有所改進(jìn),進(jìn)一步提升醫(yī)學(xué)文本分類系統(tǒng)的性能。
山西大學(xué)學(xué)報(bào)(自然科學(xué)版)2020年4期