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