鄧嘉樂 胡振生 連萬民 華赟鵬 周 毅
(1中山大學中山醫學院 廣州 510080 2廣東省第二人民醫院 廣州 510317
3 中山大學附屬第一醫院 廣州 510080)
肝癌患者在醫院就診時產生大量電子病歷數據,記錄患者入院檢查、治療以及出院全過程,蘊含大量醫學專業數據和專業知識。然而這些數據多是非結構化文本數據。對其進行結構化處理,將相關知識自動提取出來,有助于后續醫療輔助決策系統、醫療知識圖譜的構建以及精準醫學研究。此外,結構化數據有助于患者和醫生直觀獲取所需信息。如何將這些信息從無結構化文本中自動抽取出來成為研究的重點問題。而應用自然語言處理技術中的命名實體識別技術可以完成電子病歷自動化知識抽取任務。
肝癌又名肝臟惡性腫瘤,分為原發性肝癌和繼發性肝癌。世界衛生組織國際癌癥研究機構發布的2020年最新全球癌癥負擔數據顯示,中國肝癌新發病例數約占全球45.3%,死亡例數約占全球47.1%,是目前我國第4位常見惡性腫瘤及第2位致死腫瘤。在實體識別領域,國內肝癌電子病歷實體識別研究較少。運用機器學習算法對肝癌電子病歷進行實體識別有利于肝癌電子病歷規范化、結構化數據存儲,以及相關潛在醫學知識挖掘。
命名實體識別[1]是自然語言處理任務中的重要一環,對關系抽取[2]等任務有重要影響。其目的是從非結構化文本中抽取實體,醫療實體包括癥狀、療效以及疾病名稱等。在機器翻譯[3]任務中,實體翻譯有特殊規則或固定表達。精準找出實體并通過預先規則或字典庫翻譯,可提升機器翻譯的效果和流暢性。Wang Q等[4]將命名實體識別技術應用于中文實體鏈接方法,實現了將中文診斷和程序術語規范化為國際疾病分類(international classification of diseases,ICD)代碼的應用。實體識別相關技術在生物醫學[5]、專病庫建設[6]和健康醫療大數據[7]等多個領域得到較好應用。
命名實體識別發展經歷3個階段。第1階段是基于詞典和規則的方法,需要不同領域專家制定詞典與規則模板,在文本中進行匹配。第2階段是基于統計機器學習的方法,基于序列化標注方式并最大化聯合概率進行求解。第3階段是深度學習方法,代表模型有長短期記憶人工神經網絡(long-short term memory,LSTM)[8]、雙向編碼器表征(bidirectional encoder representations from transformers,BERT)[9]等。
電子病歷研究在國外已開展多年,Clark C等[10]提出基于最大熵模型和條件隨機場的方法。Jiang M等[11]采用支持向量機方法,F1值達0.848。Bruijn B等[12]則采取統一醫學語言系統(unified medical language system,UMLS)資源半監督隱馬爾科夫模型,F1值達0.852 3。Gligic L等[13]使用基于注意力的序列到序列模型。英文電子病歷實體識別經過數年發展完善,已形成標準處理流程。
中文醫療實體識別[14]難度更大,邊界定義模糊,存在嵌套關系,缺少統一公開的大規模語料庫。用統計學習方法進行實體識別[15]時,特征選擇影響結果。Lei J等[16]根據出入院記錄,分別采用條件隨機場(conditional random field,CRF)、支持向量機(support vector machine,SVM)、最大熵等模型對4類醫療實體進行識別。Wang Y等[17]在自標注中醫文本語料上,采用分句形式,F1值達0.95。李博等[18]采用Transformer[19]模型,使數據中長依賴關系進一步提升。楊紅梅等[20]對肝癌電子病歷采用BiLSTM-CRF模型取得較好效果;馬歡歡等[21]利用CNN-BiLSTM-CRF模型對癲癇電子病歷進行實驗,達到較好效果。
近年來,研究者提出BERT算法,通過注意力學習字符間上下文關系。核心創新點在于兩個訓練任務:掩碼語言模型訓練和下句話預測任務。掩碼策略下,模型在訓練中隨機掩蓋單詞再進行預測。下句話預測任務目的是服務問答、句主題關系等任務。針對BERT的缺點,研究人員提出RoBERTa模型[22]。該模型有更大參數量、更大批大小、更多訓練數據。在掩碼策略上,修改關鍵超參數,實現動態掩碼策略,刪除下句話預測任務,使模型能更好推廣到下游任務。
該層輸入向量由詞嵌入向量、位置嵌入向量、段嵌入向量組成。詞嵌入向量詞表為50 000比特級別的文本編碼詞匯。位置嵌入向量可以記錄詞位置,彌補自注意力模型無法感知詞位置的缺點。段嵌入向量記錄句子位置關系。
該層使用編碼器雙向編碼,使詞可以無視前后遠近被其他詞參與編碼。編碼器中包含多頭自注意力,以全連接前饋網絡方式連接。多頭自注意力將關注句子不同信息的注意力融合計算。以3個向量為例,多頭自注意力計算方式如下:
MultijheadAttention(X,Y,Z)=
Concat(head1,head2,...,headh)WO
(1)
(2)
自注意力對X,Y,Z3個向量進行向量運算,編碼器輸入的字向量在整個輸入中點積和加權求和,得到此位置的自注意力,計算方式如下:
(3)
訓練方法上,去掉下一句預測任務,實現動態掩碼策略。每次輸入序列隨機選擇15%的詞,其中80%被[Mask]標簽代替,10%用另一個詞代替,10%不改變。數據分多序列輸入過程中,不同掩碼模式生成,模型在不同掩碼模式中預測被掩碼覆蓋或者被替換的原詞匯。
CRF對類之間的決策邊界進行建模。命名實體識別可看成多分類問題,因此該層任務是由輸入序列對輸出序列預測,形式為對數線性模型,學習方法是極大似然估計或正則化極大似然估計。假定句子長度為n,句子序列為X=(x1,x2,...,xn),對應預測標簽序列為Y=(y1,y2,...,yn),該預測序列總分數如下:
(4)
其中,T表示標簽間的轉移分數,Pi,yi表示每個字到對應yi標簽的分數。預測序列有多種可能性,只有一種正確,應對所有可能序列進行全局歸一化。學習方向是調整參數將模型正確預測的概率提升。歸一化預測序列概率如下:
(5)
將CRF的輸入變為含有更準確語言表征的詞向量,組合模型預測能力會得到提升。因此將CRF層作為第2層,在CRF層之前加入RoBERTa層。用分詞工具對原始語料句子分詞后,RoBERTa層可學習到更準確的字符向量表示。再將字符向量輸入到CRF層中,可得到更好預測結果,見圖1。
所用數據集為500位肝癌患者的電子病歷數據,已進行脫敏處理。電子病歷中包含入院記錄、出院記錄和超聲檢查3部分。結合相關醫學知識,本文定義23類肝癌數據相關實體(不包含無標簽實體),并對數據進行BIO方法標注(實體第1個字符標簽為“B-實體類型”,后續字符為“I-實體類型”,無標簽字符為“O”)。為驗證語料標注一致性,3名標注人員分別標注同樣5份數據,計算標注一致性達88%。全部標注后得到有效標注242份,見表1。

表1 實體類型
將標注后的數據按1∶1∶3劃分為測試集、驗證集和訓練集。訓練集實體類型頻數分布,見圖2。

圖2 訓練集實體類型頻數分布
訓練集各實體類別數量存在較大差異,分布極不均衡,如疾病、體位等實體數量大約在35 000個左右,性別、年齡等實體數目只有幾百個。對每份電子病歷數據的文本長度進行分析統計,主要集中在2 000個字符,同時也存在包含8 000~10 000個字符的超長文本,文本長度過長會導致模型難以捕獲到文本間的長依賴關系,因此在模型訓練前需要對數據進行截斷切分。
數據平移是將原始電子病歷數據從不同切分點開始切分,然后將切分后的數據分別進行訓練,最終對多個模型進行投票。本實驗將每份電子病歷數據拆分成最大長度為256個字符的樣本,第1種切分方式為從起始位置累計達到256個字符進行切分;第2種切分方式是首先將數據中前兩個句子作為一個樣本,然后再依次切分。
采用5折交叉驗證,將訓練集劃分為5部分,每次以其中4部分作為訓練集剩余部分組成驗證集,最終訓練得到5個模型參數。對于實體識別任務,可以對5個模型結果進行投票,也可以將5個模型參數平均后再進行解碼預測。本文采用投票方式。
本實驗中RoBERTa預訓練模型使用RoBERTa-zh-base版本,模型層數為24層,使用30G原始文本,近3億個句子,100億個中文字,產生2.5億個訓練數據。覆蓋新聞、社區問答、多個百科數據等。RoBERTa訓練時使用批大小為12,學習率為1e-4,優化器為Adam優化器,CRF層學習率為1e-2。
實驗使用精確率P=TP/(TP+FP),召回率R=TP/(TP+FN)以及F1=2×P×R/(P+R)值對模型效果進行評價。其中,真陽性(true positive,TP)是指預測的實體類型與原本實體類型一致的觀測樣本數量,假陽性(false positive,FP)是指模型將本不屬于該實體類型的觀測預測為該實體類型的樣本數量,假陰性(false negative,FN)是指模型將原本屬于該實體類型的觀測預測為非該實體類型的數量。
4.6.1 多模型性能對比 實驗使用RoBERTa-CRF命名實體算法模型,并將命名實體識別中傳統的隱馬爾科夫(hidden markov model,HMM)模型、條件隨機場、BiLSTM-CRF、BERT-CRF算法模型作為基線模型進行對比,見表2。

表2 各模型測試集性能對比
RoBERTa-CRF算法模型在肝癌電子病例數據上各指標均達最高,表現最好。BiLSTM-CRF模型F1值相對CRF模型略低,主要是因為肝癌電子病歷數據中存在很多短句和縮略詞,其中縮略詞記錄患者病情或者身體狀況,短句間沒有很強語義關系,模型未學得合理的上下文語義表示。BERT-CRF在3個指標上都低于RoBERTa-CRF,說明RoBERTa層學習到的詞向量有更加準確的語義表示。
4.6.2 RoBERTa-CRF模型實驗結果分析 本實驗中RoBERTa-CRF模型在各標簽上的F1值、精確率、召回率結果,見圖3。

圖3 RoBERTa-CRF模型識別結果
RoBERTa-CRF模型在全部實體上的精確率達到0.901 2,召回率達到0.812 6。精確率較高代表模型實體識別正確率高,部分未正確識別可能是由于模型對標簽之間的邊界沒有正確界定,例如number標簽原意是病變區域個數,但是其數字表達形式可能會使模型誤識別為period;召回率相比之下較低,有部分實體被模型判斷為非實體。通過學習更多高質量肝癌電子病歷語料集可以提高模型性能。具體到各實體標簽的識別結果,可以看到大部分實體類別有較高的精確率、召回率、F1值。RoBERTa-CRF模型在這類標簽中達到較好學習效果。然而在某些標簽中并沒有達到理想效果。例如pathology_feature、condition_change等,模型由于該類標簽定義比較模糊并且沒有充足的樣本訓練,沒有達到很好效果。針對該問題,可以擴大該類訓練樣本容量來達到更好效果。而在test、test_result標簽上,在沒有關系定義的前提下,模型很難將test和對應的test_result相聯系。針對該問題,將關系抽取與實體識別相結合,會產生更加全面準確的判別能力。在drug標簽上,模型沒有在專業醫藥庫中訓練過,因此專業藥物名稱識別能力較差。針對該問題,可以將模型在專業醫藥語料中進行訓練,以增強模型醫藥識別能力。
預訓練模型在通用語料庫各項任務上都表現出較好性能,但是針對肝癌電子病歷數據某些語句較短語義聯系不強的特點,RoBERTa-CRF模型、BERT-CRF模型表現較好,BiLSTM-CRF表現相對于CRF模型F1值略差。其原因是肝癌電子病歷數據中存在大量短句和縮略詞,導致基于LSTM的深度學習模型未能學到合理的上下文表示,反而通過CRF定義的局部特征效果較好。相較于BERT-CRF模型,RoBERTa-CRF模型中,RoBERTa有更高魯棒性、更優訓練策略以及更大規模預訓練數據,因此模型性能表現更好。
針對這一問題,可以從肝癌電子病歷數據本身著手,規范記錄形式或者提高數據標簽質量。此外,本實驗中使用的RoBERTa預訓練模型是應用通用領域數據訓練的預模型,如果能夠使用大量醫學文本數據對模型參數進行訓練調整,訓練出醫學領域專用RoBERTa預訓練模型,將會在該任務上有更好表現。而針對具體標簽識別能力差的問題,應分析具體原因,采取相應措施,彌補模型短板。