鄧嘉樂(lè) 胡振生 連萬(wàn)民 華赟鵬 周 毅
(1中山大學(xué)中山醫(yī)學(xué)院 廣州 510080 2廣東省第二人民醫(yī)院 廣州 510317
3 中山大學(xué)附屬第一醫(yī)院 廣州 510080)
肝癌患者在醫(yī)院就診時(shí)產(chǎn)生大量電子病歷數(shù)據(jù),記錄患者入院檢查、治療以及出院全過(guò)程,蘊(yùn)含大量醫(yī)學(xué)專業(yè)數(shù)據(jù)和專業(yè)知識(shí)。然而這些數(shù)據(jù)多是非結(jié)構(gòu)化文本數(shù)據(jù)。對(duì)其進(jìn)行結(jié)構(gòu)化處理,將相關(guān)知識(shí)自動(dòng)提取出來(lái),有助于后續(xù)醫(yī)療輔助決策系統(tǒng)、醫(yī)療知識(shí)圖譜的構(gòu)建以及精準(zhǔn)醫(yī)學(xué)研究。此外,結(jié)構(gòu)化數(shù)據(jù)有助于患者和醫(yī)生直觀獲取所需信息。如何將這些信息從無(wú)結(jié)構(gòu)化文本中自動(dòng)抽取出來(lái)成為研究的重點(diǎn)問(wèn)題。而應(yīng)用自然語(yǔ)言處理技術(shù)中的命名實(shí)體識(shí)別技術(shù)可以完成電子病歷自動(dòng)化知識(shí)抽取任務(wù)。
肝癌又名肝臟惡性腫瘤,分為原發(fā)性肝癌和繼發(fā)性肝癌。世界衛(wèi)生組織國(guó)際癌癥研究機(jī)構(gòu)發(fā)布的2020年最新全球癌癥負(fù)擔(dān)數(shù)據(jù)顯示,中國(guó)肝癌新發(fā)病例數(shù)約占全球45.3%,死亡例數(shù)約占全球47.1%,是目前我國(guó)第4位常見惡性腫瘤及第2位致死腫瘤。在實(shí)體識(shí)別領(lǐng)域,國(guó)內(nèi)肝癌電子病歷實(shí)體識(shí)別研究較少。運(yùn)用機(jī)器學(xué)習(xí)算法對(duì)肝癌電子病歷進(jìn)行實(shí)體識(shí)別有利于肝癌電子病歷規(guī)范化、結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ),以及相關(guān)潛在醫(yī)學(xué)知識(shí)挖掘。
命名實(shí)體識(shí)別[1]是自然語(yǔ)言處理任務(wù)中的重要一環(huán),對(duì)關(guān)系抽取[2]等任務(wù)有重要影響。其目的是從非結(jié)構(gòu)化文本中抽取實(shí)體,醫(yī)療實(shí)體包括癥狀、療效以及疾病名稱等。在機(jī)器翻譯[3]任務(wù)中,實(shí)體翻譯有特殊規(guī)則或固定表達(dá)。精準(zhǔn)找出實(shí)體并通過(guò)預(yù)先規(guī)則或字典庫(kù)翻譯,可提升機(jī)器翻譯的效果和流暢性。Wang Q等[4]將命名實(shí)體識(shí)別技術(shù)應(yīng)用于中文實(shí)體鏈接方法,實(shí)現(xiàn)了將中文診斷和程序術(shù)語(yǔ)規(guī)范化為國(guó)際疾病分類(international classification of diseases,ICD)代碼的應(yīng)用。實(shí)體識(shí)別相關(guān)技術(shù)在生物醫(yī)學(xué)[5]、專病庫(kù)建設(shè)[6]和健康醫(yī)療大數(shù)據(jù)[7]等多個(gè)領(lǐng)域得到較好應(yīng)用。
命名實(shí)體識(shí)別發(fā)展經(jīng)歷3個(gè)階段。第1階段是基于詞典和規(guī)則的方法,需要不同領(lǐng)域?qū)<抑贫ㄔ~典與規(guī)則模板,在文本中進(jìn)行匹配。第2階段是基于統(tǒng)計(jì)機(jī)器學(xué)習(xí)的方法,基于序列化標(biāo)注方式并最大化聯(lián)合概率進(jìn)行求解。第3階段是深度學(xué)習(xí)方法,代表模型有長(zhǎng)短期記憶人工神經(jīng)網(wǎng)絡(luò)(long-short term memory,LSTM)[8]、雙向編碼器表征(bidirectional encoder representations from transformers,BERT)[9]等。
電子病歷研究在國(guó)外已開展多年,Clark C等[10]提出基于最大熵模型和條件隨機(jī)場(chǎng)的方法。Jiang M等[11]采用支持向量機(jī)方法,F(xiàn)1值達(dá)0.848。Bruijn B等[12]則采取統(tǒng)一醫(yī)學(xué)語(yǔ)言系統(tǒng)(unified medical language system,UMLS)資源半監(jiān)督隱馬爾科夫模型,F(xiàn)1值達(dá)0.852 3。Gligic L等[13]使用基于注意力的序列到序列模型。英文電子病歷實(shí)體識(shí)別經(jīng)過(guò)數(shù)年發(fā)展完善,已形成標(biāo)準(zhǔn)處理流程。
中文醫(yī)療實(shí)體識(shí)別[14]難度更大,邊界定義模糊,存在嵌套關(guān)系,缺少統(tǒng)一公開的大規(guī)模語(yǔ)料庫(kù)。用統(tǒng)計(jì)學(xué)習(xí)方法進(jìn)行實(shí)體識(shí)別[15]時(shí),特征選擇影響結(jié)果。Lei J等[16]根據(jù)出入院記錄,分別采用條件隨機(jī)場(chǎng)(conditional random field,CRF)、支持向量機(jī)(support vector machine,SVM)、最大熵等模型對(duì)4類醫(yī)療實(shí)體進(jìn)行識(shí)別。Wang Y等[17]在自標(biāo)注中醫(yī)文本語(yǔ)料上,采用分句形式,F(xiàn)1值達(dá)0.95。李博等[18]采用Transformer[19]模型,使數(shù)據(jù)中長(zhǎng)依賴關(guān)系進(jìn)一步提升。楊紅梅等[20]對(duì)肝癌電子病歷采用BiLSTM-CRF模型取得較好效果;馬歡歡等[21]利用CNN-BiLSTM-CRF模型對(duì)癲癇電子病歷進(jìn)行實(shí)驗(yàn),達(dá)到較好效果。
近年來(lái),研究者提出BERT算法,通過(guò)注意力學(xué)習(xí)字符間上下文關(guān)系。核心創(chuàng)新點(diǎn)在于兩個(gè)訓(xùn)練任務(wù):掩碼語(yǔ)言模型訓(xùn)練和下句話預(yù)測(cè)任務(wù)。掩碼策略下,模型在訓(xùn)練中隨機(jī)掩蓋單詞再進(jìn)行預(yù)測(cè)。下句話預(yù)測(cè)任務(wù)目的是服務(wù)問(wèn)答、句主題關(guān)系等任務(wù)。針對(duì)BERT的缺點(diǎn),研究人員提出RoBERTa模型[22]。該模型有更大參數(shù)量、更大批大小、更多訓(xùn)練數(shù)據(jù)。在掩碼策略上,修改關(guān)鍵超參數(shù),實(shí)現(xiàn)動(dòng)態(tài)掩碼策略,刪除下句話預(yù)測(cè)任務(wù),使模型能更好推廣到下游任務(wù)。
該層輸入向量由詞嵌入向量、位置嵌入向量、段嵌入向量組成。詞嵌入向量詞表為50 000比特級(jí)別的文本編碼詞匯。位置嵌入向量可以記錄詞位置,彌補(bǔ)自注意力模型無(wú)法感知詞位置的缺點(diǎn)。段嵌入向量記錄句子位置關(guān)系。
該層使用編碼器雙向編碼,使詞可以無(wú)視前后遠(yuǎn)近被其他詞參與編碼。編碼器中包含多頭自注意力,以全連接前饋網(wǎng)絡(luò)方式連接。多頭自注意力將關(guān)注句子不同信息的注意力融合計(jì)算。以3個(gè)向量為例,多頭自注意力計(jì)算方式如下:
MultijheadAttention(X,Y,Z)=
Concat(head1,head2,...,headh)WO
(1)
(2)
自注意力對(duì)X,Y,Z3個(gè)向量進(jìn)行向量運(yùn)算,編碼器輸入的字向量在整個(gè)輸入中點(diǎn)積和加權(quán)求和,得到此位置的自注意力,計(jì)算方式如下:
(3)
訓(xùn)練方法上,去掉下一句預(yù)測(cè)任務(wù),實(shí)現(xiàn)動(dòng)態(tài)掩碼策略。每次輸入序列隨機(jī)選擇15%的詞,其中80%被[Mask]標(biāo)簽代替,10%用另一個(gè)詞代替,10%不改變。數(shù)據(jù)分多序列輸入過(guò)程中,不同掩碼模式生成,模型在不同掩碼模式中預(yù)測(cè)被掩碼覆蓋或者被替換的原詞匯。
CRF對(duì)類之間的決策邊界進(jìn)行建模。命名實(shí)體識(shí)別可看成多分類問(wèn)題,因此該層任務(wù)是由輸入序列對(duì)輸出序列預(yù)測(cè),形式為對(duì)數(shù)線性模型,學(xué)習(xí)方法是極大似然估計(jì)或正則化極大似然估計(jì)。假定句子長(zhǎng)度為n,句子序列為X=(x1,x2,...,xn),對(duì)應(yīng)預(yù)測(cè)標(biāo)簽序列為Y=(y1,y2,...,yn),該預(yù)測(cè)序列總分?jǐn)?shù)如下:
(4)
其中,T表示標(biāo)簽間的轉(zhuǎn)移分?jǐn)?shù),Pi,yi表示每個(gè)字到對(duì)應(yīng)yi標(biāo)簽的分?jǐn)?shù)。預(yù)測(cè)序列有多種可能性,只有一種正確,應(yīng)對(duì)所有可能序列進(jìn)行全局歸一化。學(xué)習(xí)方向是調(diào)整參數(shù)將模型正確預(yù)測(cè)的概率提升。歸一化預(yù)測(cè)序列概率如下:
(5)
將CRF的輸入變?yōu)楹懈鼫?zhǔn)確語(yǔ)言表征的詞向量,組合模型預(yù)測(cè)能力會(huì)得到提升。因此將CRF層作為第2層,在CRF層之前加入RoBERTa層。用分詞工具對(duì)原始語(yǔ)料句子分詞后,RoBERTa層可學(xué)習(xí)到更準(zhǔn)確的字符向量表示。再將字符向量輸入到CRF層中,可得到更好預(yù)測(cè)結(jié)果,見圖1。
所用數(shù)據(jù)集為500位肝癌患者的電子病歷數(shù)據(jù),已進(jìn)行脫敏處理。電子病歷中包含入院記錄、出院記錄和超聲檢查3部分。結(jié)合相關(guān)醫(yī)學(xué)知識(shí),本文定義23類肝癌數(shù)據(jù)相關(guān)實(shí)體(不包含無(wú)標(biāo)簽實(shí)體),并對(duì)數(shù)據(jù)進(jìn)行BIO方法標(biāo)注(實(shí)體第1個(gè)字符標(biāo)簽為“B-實(shí)體類型”,后續(xù)字符為“I-實(shí)體類型”,無(wú)標(biāo)簽字符為“O”)。為驗(yàn)證語(yǔ)料標(biāo)注一致性,3名標(biāo)注人員分別標(biāo)注同樣5份數(shù)據(jù),計(jì)算標(biāo)注一致性達(dá)88%。全部標(biāo)注后得到有效標(biāo)注242份,見表1。
表1 實(shí)體類型
將標(biāo)注后的數(shù)據(jù)按1∶1∶3劃分為測(cè)試集、驗(yàn)證集和訓(xùn)練集。訓(xùn)練集實(shí)體類型頻數(shù)分布,見圖2。
圖2 訓(xùn)練集實(shí)體類型頻數(shù)分布
訓(xùn)練集各實(shí)體類別數(shù)量存在較大差異,分布極不均衡,如疾病、體位等實(shí)體數(shù)量大約在35 000個(gè)左右,性別、年齡等實(shí)體數(shù)目只有幾百個(gè)。對(duì)每份電子病歷數(shù)據(jù)的文本長(zhǎng)度進(jìn)行分析統(tǒng)計(jì),主要集中在2 000個(gè)字符,同時(shí)也存在包含8 000~10 000個(gè)字符的超長(zhǎng)文本,文本長(zhǎng)度過(guò)長(zhǎng)會(huì)導(dǎo)致模型難以捕獲到文本間的長(zhǎng)依賴關(guān)系,因此在模型訓(xùn)練前需要對(duì)數(shù)據(jù)進(jìn)行截?cái)嗲蟹帧?/p>
數(shù)據(jù)平移是將原始電子病歷數(shù)據(jù)從不同切分點(diǎn)開始切分,然后將切分后的數(shù)據(jù)分別進(jìn)行訓(xùn)練,最終對(duì)多個(gè)模型進(jìn)行投票。本實(shí)驗(yàn)將每份電子病歷數(shù)據(jù)拆分成最大長(zhǎng)度為256個(gè)字符的樣本,第1種切分方式為從起始位置累計(jì)達(dá)到256個(gè)字符進(jìn)行切分;第2種切分方式是首先將數(shù)據(jù)中前兩個(gè)句子作為一個(gè)樣本,然后再依次切分。
采用5折交叉驗(yàn)證,將訓(xùn)練集劃分為5部分,每次以其中4部分作為訓(xùn)練集剩余部分組成驗(yàn)證集,最終訓(xùn)練得到5個(gè)模型參數(shù)。對(duì)于實(shí)體識(shí)別任務(wù),可以對(duì)5個(gè)模型結(jié)果進(jìn)行投票,也可以將5個(gè)模型參數(shù)平均后再進(jìn)行解碼預(yù)測(cè)。本文采用投票方式。
本實(shí)驗(yàn)中RoBERTa預(yù)訓(xùn)練模型使用RoBERTa-zh-base版本,模型層數(shù)為24層,使用30G原始文本,近3億個(gè)句子,100億個(gè)中文字,產(chǎn)生2.5億個(gè)訓(xùn)練數(shù)據(jù)。覆蓋新聞、社區(qū)問(wèn)答、多個(gè)百科數(shù)據(jù)等。RoBERTa訓(xùn)練時(shí)使用批大小為12,學(xué)習(xí)率為1e-4,優(yōu)化器為Adam優(yōu)化器,CRF層學(xué)習(xí)率為1e-2。
實(shí)驗(yàn)使用精確率P=TP/(TP+FP),召回率R=TP/(TP+FN)以及F1=2×P×R/(P+R)值對(duì)模型效果進(jìn)行評(píng)價(jià)。其中,真陽(yáng)性(true positive,TP)是指預(yù)測(cè)的實(shí)體類型與原本實(shí)體類型一致的觀測(cè)樣本數(shù)量,假陽(yáng)性(false positive,F(xiàn)P)是指模型將本不屬于該實(shí)體類型的觀測(cè)預(yù)測(cè)為該實(shí)體類型的樣本數(shù)量,假陰性(false negative,F(xiàn)N)是指模型將原本屬于該實(shí)體類型的觀測(cè)預(yù)測(cè)為非該實(shí)體類型的數(shù)量。
4.6.1 多模型性能對(duì)比 實(shí)驗(yàn)使用RoBERTa-CRF命名實(shí)體算法模型,并將命名實(shí)體識(shí)別中傳統(tǒng)的隱馬爾科夫(hidden markov model,HMM)模型、條件隨機(jī)場(chǎng)、BiLSTM-CRF、BERT-CRF算法模型作為基線模型進(jìn)行對(duì)比,見表2。
表2 各模型測(cè)試集性能對(duì)比
RoBERTa-CRF算法模型在肝癌電子病例數(shù)據(jù)上各指標(biāo)均達(dá)最高,表現(xiàn)最好。BiLSTM-CRF模型F1值相對(duì)CRF模型略低,主要是因?yàn)楦伟╇娮硬v數(shù)據(jù)中存在很多短句和縮略詞,其中縮略詞記錄患者病情或者身體狀況,短句間沒(méi)有很強(qiáng)語(yǔ)義關(guān)系,模型未學(xué)得合理的上下文語(yǔ)義表示。BERT-CRF在3個(gè)指標(biāo)上都低于RoBERTa-CRF,說(shuō)明RoBERTa層學(xué)習(xí)到的詞向量有更加準(zhǔn)確的語(yǔ)義表示。
4.6.2 RoBERTa-CRF模型實(shí)驗(yàn)結(jié)果分析 本實(shí)驗(yàn)中RoBERTa-CRF模型在各標(biāo)簽上的F1值、精確率、召回率結(jié)果,見圖3。
圖3 RoBERTa-CRF模型識(shí)別結(jié)果
RoBERTa-CRF模型在全部實(shí)體上的精確率達(dá)到0.901 2,召回率達(dá)到0.812 6。精確率較高代表模型實(shí)體識(shí)別正確率高,部分未正確識(shí)別可能是由于模型對(duì)標(biāo)簽之間的邊界沒(méi)有正確界定,例如number標(biāo)簽原意是病變區(qū)域個(gè)數(shù),但是其數(shù)字表達(dá)形式可能會(huì)使模型誤識(shí)別為period;召回率相比之下較低,有部分實(shí)體被模型判斷為非實(shí)體。通過(guò)學(xué)習(xí)更多高質(zhì)量肝癌電子病歷語(yǔ)料集可以提高模型性能。具體到各實(shí)體標(biāo)簽的識(shí)別結(jié)果,可以看到大部分實(shí)體類別有較高的精確率、召回率、F1值。RoBERTa-CRF模型在這類標(biāo)簽中達(dá)到較好學(xué)習(xí)效果。然而在某些標(biāo)簽中并沒(méi)有達(dá)到理想效果。例如pathology_feature、condition_change等,模型由于該類標(biāo)簽定義比較模糊并且沒(méi)有充足的樣本訓(xùn)練,沒(méi)有達(dá)到很好效果。針對(duì)該問(wèn)題,可以擴(kuò)大該類訓(xùn)練樣本容量來(lái)達(dá)到更好效果。而在test、test_result標(biāo)簽上,在沒(méi)有關(guān)系定義的前提下,模型很難將test和對(duì)應(yīng)的test_result相聯(lián)系。針對(duì)該問(wèn)題,將關(guān)系抽取與實(shí)體識(shí)別相結(jié)合,會(huì)產(chǎn)生更加全面準(zhǔn)確的判別能力。在drug標(biāo)簽上,模型沒(méi)有在專業(yè)醫(yī)藥庫(kù)中訓(xùn)練過(guò),因此專業(yè)藥物名稱識(shí)別能力較差。針對(duì)該問(wèn)題,可以將模型在專業(yè)醫(yī)藥語(yǔ)料中進(jìn)行訓(xùn)練,以增強(qiáng)模型醫(yī)藥識(shí)別能力。
預(yù)訓(xùn)練模型在通用語(yǔ)料庫(kù)各項(xiàng)任務(wù)上都表現(xiàn)出較好性能,但是針對(duì)肝癌電子病歷數(shù)據(jù)某些語(yǔ)句較短語(yǔ)義聯(lián)系不強(qiáng)的特點(diǎn),RoBERTa-CRF模型、BERT-CRF模型表現(xiàn)較好,BiLSTM-CRF表現(xiàn)相對(duì)于CRF模型F1值略差。其原因是肝癌電子病歷數(shù)據(jù)中存在大量短句和縮略詞,導(dǎo)致基于LSTM的深度學(xué)習(xí)模型未能學(xué)到合理的上下文表示,反而通過(guò)CRF定義的局部特征效果較好。相較于BERT-CRF模型,RoBERTa-CRF模型中,RoBERTa有更高魯棒性、更優(yōu)訓(xùn)練策略以及更大規(guī)模預(yù)訓(xùn)練數(shù)據(jù),因此模型性能表現(xiàn)更好。
針對(duì)這一問(wèn)題,可以從肝癌電子病歷數(shù)據(jù)本身著手,規(guī)范記錄形式或者提高數(shù)據(jù)標(biāo)簽質(zhì)量。此外,本實(shí)驗(yàn)中使用的RoBERTa預(yù)訓(xùn)練模型是應(yīng)用通用領(lǐng)域數(shù)據(jù)訓(xùn)練的預(yù)模型,如果能夠使用大量醫(yī)學(xué)文本數(shù)據(jù)對(duì)模型參數(shù)進(jìn)行訓(xùn)練調(diào)整,訓(xùn)練出醫(yī)學(xué)領(lǐng)域?qū)S肦oBERTa預(yù)訓(xùn)練模型,將會(huì)在該任務(wù)上有更好表現(xiàn)。而針對(duì)具體標(biāo)簽識(shí)別能力差的問(wèn)題,應(yīng)分析具體原因,采取相應(yīng)措施,彌補(bǔ)模型短板。