吳曉鸰,陳祥旺,占文韜,凌 捷
(廣東工業(yè)大學 計算機學院, 廣東 廣州 510006)
命名實體識別(Named Entity Recognition,NER)是自然語言處理中的核心任務之一,目的是從一段序列文本中提取出實體,并且對實體進行正確的分類。例如在“細胞減少與肺內(nèi)病變程度及肺內(nèi)炎性病變吸收程度密切相關”這段文字中,出現(xiàn)了兩個表示疾病的命名實體,分別是“肺內(nèi)病變”和“肺內(nèi)炎性病變”,還出現(xiàn)了表示身體部位的命名實體“細胞”,此外還有一個臨床表現(xiàn)類型的命名實體“細胞減少”。
醫(yī)學命名實體識別任務是對電子病歷中的醫(yī)學實體進行自動識別和分類,這些實體在自然語言處理的許多下游任務中發(fā)揮著重要的作用,比如信息檢索、推薦系統(tǒng)、知識圖譜[1]等。
在基于深度學習[2]的醫(yī)學命名實體識別方法中,Wu等[3]提出了一個兩階段模型,首先預測句子中的實體,然后用Transformer網(wǎng)絡結(jié)合上下文信息表示,并引入多尺度的句子表示再次預測實體類型。Wang等[4]將醫(yī)學命名實體識別任務分解為兩個子任務,并引入超圖模型,首先提取所有可能的實體組合,然后預測實體組合之間的關系并分類。但超圖模型在模型訓練過程中,容易出現(xiàn)誤差傳播問題。因此,人們提出了基于跨度的方法,避免誤差傳播,這一類方法在預測實體時,只需要預測實體在字符中的開始位置、結(jié)束位置和實體的類別,實體相互是獨立的。Li等[5]提出了能較好地識別命名實體的模型,首先枚舉句子中所有的字符跨度,初步確定跨度的實體類型,再識別出實體跨度之間的關系,繼而預測出文本中所有的醫(yī)學命名實體。Gu等[6]使用兩個模塊來抽取實體,分別是規(guī)則感知模塊和規(guī)則無感模塊,用規(guī)則感知模塊捕獲跨度內(nèi)部的規(guī)律性,確定實體的類型,通過規(guī)則無感模塊定位實體的邊界,緩解對于跨度內(nèi)部規(guī)律性的過度關注,并結(jié)合正交空間,進一步加強模塊提取不同方面特征的能力。Luan等[7]使用多任務學習,用動態(tài)構造的跨度圖來識別命名實體,通過枚舉所有可能的跨度,識別出句子中所有的實體。Yu等[8]基于圖的依存分析方法,引入雙仿射模型做分類器,在字符的開始和結(jié)束位置做標記,使用這些標記枚舉所有的實體。
Wang 等[9]結(jié)合數(shù)據(jù)驅(qū)動的深度學習方法和知識驅(qū)動的字典方法,引入醫(yī)學領域的字典知識,提出了擴展的LSTM模型,在醫(yī)學數(shù)據(jù)集上取得了不錯的結(jié)果。Li等[10]利用BERT對上下文嵌入向量的提取能力,結(jié)合漢字的字根特征和字典知識,構建了一個用于醫(yī)學命名實體識別的模型。Li等[11]將命名實體識別任務轉(zhuǎn)換為閱讀理解任務,用回答問題的方式識別出文本中的命名實體。Pan等[12]使用語義引導的注意力方法,對標簽和文本分別進行編碼,并且將標簽知識融入到文本中,從而改善了Li等[11]提出的模型的效率。Hang等[13]提出了一種針對命名實體識別任務的“序列-序列”模型框架,該框架將命名實體識別問題轉(zhuǎn)化為實體跨度生成問題。Shen等[14]提出了一個并行查詢網(wǎng)絡模型,能夠并行地預測輸入文本中所有的命名實體,模型在訓練過程中自動學習與實體類型和實體位置相關的醫(yī)學知識,不需要借助外部知識構造特征。Li等[15]提出了融入詞匯信息的Transformer,把醫(yī)學領域的專業(yè)詞匯作為模型的輸入,并且在一個網(wǎng)格結(jié)構中構建了新的位置編碼。陳明等[16]設計的混合神經(jīng)網(wǎng)絡模型,利用自注意力、線性注意力和改進的WLSTM網(wǎng)絡提取多層次的語義特征,將特征融合后,利用條件隨機場識別出實體。梁倬騫等[17]從詞語屬性描述、詞語關系組織和相關知識鏈接3個維度構建財務報告領域本體,將非結(jié)構化的信息提取為結(jié)構化的信息并表示。Liu等[18]提出基于MRC模型擴展后的模型,該方法通過圖注意力網(wǎng)絡建模標簽之間的關系,將標簽信息和文本信息相融合,進一步改善了MRC模型的效果。
以上的這些模型在提取全局特征和局部特征方面效果顯著,但是忽略了醫(yī)學命名實體之間隱含的關聯(lián)性,以及醫(yī)學命名實體特征內(nèi)在的聯(lián)系。針對以上問題,本文提出了一個模型,將命名實體識別轉(zhuǎn)換為集合查詢?nèi)蝿眨疚哪P鸵还舶?個部分:文本編碼器、實體集合解碼器和基于二分圖匹配的損失函數(shù)。首先,文本編碼器從輸入的句子中獲取上下文信息,并引入實體查詢矩陣。再利用實體集合解碼器對上下文信息和實體查詢矩陣進行預測,解碼預測實體的開始位置、結(jié)束位置和實體類別。最后,利用二分圖的匹配算法,計算出模型訓練過程中的預測損失。本文提出的模型在3個數(shù)據(jù)集上進行實驗,并通過和其他模型的對比,驗證了本文模型的有效性。
本文提出的模型由3個部分組成,分別是文本編碼器、實體集合解碼器和基于二分圖匹配的損失函數(shù)。整體結(jié)構如圖1所示。
圖1 模型框架Fig.1 The architecture of the proposed model
與英文文本相比,中文命名實體識別中的漢字字符的邊界不清晰,并且需要結(jié)合中文分詞和語法分析才能準確識別命名實體。由于一般領域數(shù)據(jù)集的實體分布與生物醫(yī)學文獻的實體分布情況不同,所以很難估計一般領域的預訓練模型在生物醫(yī)學文本數(shù)據(jù)集上的性能。在一般領域和醫(yī)學領域中有很多相同的詞語、短語,但是它們屬于不同的實體類型。例如,“腹部”在一般領域中可以表示為器官、位置,在醫(yī)學文本中則可以作為解剖部位的醫(yī)學實體。因此,本文采用生物醫(yī)學領域?qū)S玫腗C-BERT模型對命名實體進行識別。
MC-BERT能夠處理醫(yī)學領域的長尾概念和術語,并且能更好地適應生物醫(yī)學中文語料庫。MCBERT首先使用不同的掩碼生成器來掩蓋詞元的范圍,而不僅僅是隨機的;其次引入了全實體掩碼和全跨度掩碼,全實體掩碼是指在醫(yī)學文本數(shù)據(jù)集中生成的候選醫(yī)學實體,使用醫(yī)學知識圖譜對生物醫(yī)學領域的實體進行篩選,包括檢查、治療等。最后進行全實體掩碼,并將醫(yī)學實體知識注入到模型學習過程中。全跨度掩碼使用完整的跨度掩碼為模型注入細粒度的生物醫(yī)學知識,例如,短語“肚子有點疼”和實體“腹痛”具有相同的意思。如果只使用全實體掩碼則不能將上述的短語知識注入到模型中,因此在訓練過程中,引入全跨度掩碼學習,將輸入文本中所有的短語字符都進行遮蓋操作,因此模型在訓練過程中能夠?qū)W習到短語和實體的先驗知識,MCBERT通過引導的方式讓模型明確地學習醫(yī)學領域的知識信息,這使得MC-BERT模型在生物醫(yī)學領域具有較好的適應性。
本文使用MC-BERT和BiLSTM作為模型的編碼器。模型輸入文本最大長度為510個字符,對于超過最大長度的文本,在標點符號處對文本進行截斷,將超過最大長度的文本部分,作為一段新的輸入文本,最大程度保留數(shù)據(jù)的完整性。對于中文文本,以字為最小單元對文本內(nèi)容進行拆分,并且在文本的開頭和結(jié)尾部分添加上“CLS”和“SEP”兩個特殊字符作為標記。對于命名實體識別任務,針對輸入的序列文本Ct,首先用MC-BERT獲取輸入文本的嵌入表示xi,將嵌入表示xi輸入到BiLSTM網(wǎng)絡中,該網(wǎng)絡能從不同的方向捕獲過去和未來的信息,再將兩個方向上的隱藏狀態(tài)連接起來,得到特征表示H,編碼器的計算過程如式(1) ~ (3) 所示。
式中: ⊕為串聯(lián)操作, θ為LSTM層的參數(shù),Hi為LSTM層在位置i上的隱藏狀態(tài)。
本文提出的實體集合解碼器包括交叉注意力機制和FLASH結(jié)構,其中FLASH結(jié)構由兩層門控注意力單元組成。
1.3.1 交叉注意力
為了加強模型對醫(yī)學詞匯的敏感性,本文采用交叉注意力機制,計算H和查詢矩陣之間的交互性,將編碼器中提取的醫(yī)學命名實體信息通過交叉注意力的方式融入到查詢矩陣中,提升模型對于醫(yī)學命名實體的識別效果。
將實體查詢矩陣Qspan輸入到實體集合解碼器中,用交叉注意力對H和Qspan進行計算,交叉注意力的計算公式可以表示為式(4)。
門控注意力單元GAU結(jié)構將Transformer中的注意力機制和前反饋層進行融合,并引入了門控線性單元GLU、GAU,結(jié)構如圖2所示,圖中B為神經(jīng)網(wǎng)絡中的偏置項,表示偏置矩陣。
圖2 門控注意力單元結(jié)構Fig.2 Structure of the gated attention unit
GAU結(jié)構將多頭自注意力機制和GLU結(jié)構進行融合作為統(tǒng)一的層,計算過程如式(7)~(8)所示。
式中:WU,WV和WO均為訓練過程中的參數(shù),ψU和ψV為激活函數(shù)Swish, ⊙為逐位對應相乘,即哈達瑪積。A為注意力機制矩陣,負責融合詞元之間的信息。當A為單位矩陣時,GAU結(jié)構就是GLU式的前反饋層;當A為全1矩陣時,GAU結(jié)構就是標準的自注意
力機制,注意力矩陣A的計算過程如式(9)~(10)所示。
式中:WZ是訓練過程中的參數(shù),f和g為簡單的仿射變換, ψZ表示激活函數(shù)Swish,1 /n表示簡單的歸一化因子,用來消除文本長度的影響。
1.3.3 FLASH結(jié)構
通過疊加兩層門控注意力單元,組成了本文提出的實體集合解碼器中的FLASH結(jié)構。結(jié)合查詢矩陣中融入的醫(yī)學詞匯信息,F(xiàn)LASH結(jié)構能夠進一步挖掘醫(yī)學命名實體間隱含的關聯(lián)性,通過GAU中的門控機制,可以提高模型對輸入文本中與醫(yī)學信息相關的漢字字符的關注度,對多頭自注意力機制進行稀疏化操作,減弱了FLASH結(jié)構對查詢矩陣中與醫(yī)學命名實體無關信息的關注,通過以上這些操作,可以加強模型對醫(yī)學命名實體的解碼效果。
在命名實體之間,通常存在著依賴關系和關聯(lián)信息,例如在醫(yī)學電子病歷中,身體部位類型的命名實體和臨床表現(xiàn)類型的命名實體經(jīng)常同時出現(xiàn)在一段文本中,因此,可以通過學習兩種命名實體類型之間的依賴關系,提高對命名實體識別的準確度。例如“咽痛”“鼻塞”這兩個臨床表現(xiàn)類型的實體中,都包含了身體部位類型的命名實體。
本文利用FLASH結(jié)構去提取實體間的依賴關系和關聯(lián)信息。因為GAU結(jié)構對Transformer中的多頭自注意力和前反饋層進行了融合,因此GAU結(jié)構也能通過和注意力機制類似的方式學習命名實體間的依賴關系。此外,GAU中的門控機制GLU能夠從長序列文本中提取局部信息和相對位置信息,加強模型對上下文語義特征的提取能力。
在命名實體識別任務中,命名實體之間的依賴關系主要是局部和短距離內(nèi)的,因此,模型對局部信息的提取能力更加重要。在FLASH結(jié)構中,采用了一種“局部-全局”分塊混合的注意力機制,這種注意力機制能更大程度地提高模型對局部關聯(lián)信息的提取能力,使得模型更多地關注命名實體間的依賴關系,但是又不會完全舍棄文本特征中的全局信息。因此在FLASH結(jié)構中,采用分塊混合的注意力機制提取命名實體間的依賴關系。
分塊混合注意力的計算過程如下:將輸入長度為k的序列,劃分成長度為e的塊,設Ug,Vg,Zg為第g塊,其中U,V,Z的定義同式(7)、(9)。對Zg進行式(10)的計算,通過4個簡單的仿射變換,將Zg變換分別得到成。用計算塊內(nèi)注意力,計算過程如式(11)所示。
最后,將上面兩種注意力計算過程相結(jié)合,整合到GAU中,按照式(8)進行計算就得到了具有線性復雜度的GAU,如式(13) 所示。
式中: ⊙表示哈達瑪積,WO表示訓練中可學習的參數(shù)。
通過交叉注意力和FLASH結(jié)構,實體集合解碼器的輸出嵌入表示為O。最后,利用MLP實現(xiàn)解碼操作,預測查詢矩陣中的命名實體。預測過程如式(14)~(16)所示。
式中:pc,pl,pr分別表示預測的實體類型、實體左邊界和實體右邊界的分類概率,MLP表示多層感知機模型。
在計算訓練損失時,本文方法將實體集合解碼器預測出的醫(yī)學命名實體和數(shù)據(jù)集中標簽命名實體分為兩個部分,將每一部分看作是二分圖的一部分,在計算模型訓練損失時,使用匈牙利算法來計算真實實體和預測實體之間的最大匹配。
為了計算二分圖的最大匹配,需要找到代價最小的集合α,尋找過程如式(17)所示。
式中:用y表示真實標簽集合,用y′表示預測實體集合,Lmatch為計算真實實體和預測實體之間的配對代價。
計算出實體間的最大匹配α后,可以用式(18)計算模型最終的訓練損失:
為了驗證本文模型對實體識別的有效性,實驗部分采用了CMeEE、CMQNN和MSRA數(shù)據(jù)集。
CMeEE數(shù)據(jù)集是生物醫(yī)學領域的常用數(shù)據(jù)集,包括身體部位(bod)、疾病(dis)等9個實體類別,CMeEE數(shù)據(jù)集的實體統(tǒng)計如表1所示。
表1 CMeEE數(shù)據(jù)集實體分布統(tǒng)計Table 1 CMeEE dataset statistics
CMQNN數(shù)據(jù)集是醫(yī)學領域的大型數(shù)據(jù)集,主要來源是醫(yī)院的電子病歷, CMQNN數(shù)據(jù)集的實體分布情況如表2所示。
表2 CMQNN數(shù)據(jù)集實體分布統(tǒng)計Table 2 CMQNN dataset statistics
為了驗證本文模型的適用性,在MSRA數(shù)據(jù)集上進行了實驗。MSRA數(shù)據(jù)集的文本來源包括博客、論壇等,包含了金融、娛樂、體育等多個領域。MSRA數(shù)據(jù)集實體類型的統(tǒng)計情況如表3所示。
表3 MSRA數(shù)據(jù)集實體分布Table 3 MSRA dataset statistics
本文采用精確匹配,只有當預測實體的實體類型、起始下標和結(jié)束下標都正確時,才認為實體預測正確。
本文模型的實驗環(huán)境如下:CPU型號是Intel(R)Xeon(R) Silver 4210R CPU @ 2.40 GHz,GPU型號是NVIDIA GeForce RTX3090 (24 G),Python版本是3.7.13,Pytorch版本是1.13,模型的超參數(shù)設置如表4所示。
表4 實驗參數(shù)設置Table 4 Experimental parameter setting
本文在驗證模型有效性時,采用了3個評價指標,分別是精確率P,召回率R和F1值,計算公式如式(19)~(21)。
式中:TP、FP分別為識別正確的實體個數(shù)和識別錯誤的實體個數(shù),F(xiàn)N為正例識別為反例的實體個數(shù)。
本文在3個數(shù)據(jù)集上進行了實驗,為保證實驗結(jié)果的可信度,采用了交叉驗證的方式,將多次實驗結(jié)果取平均值。由于對比模型原論文中使用了不同的數(shù)據(jù)集去驗證模型效果,因此本文在數(shù)據(jù)集的對比實驗中選擇的模型不一致。首先在CMeEE數(shù)據(jù)集上進行了實驗,實驗的結(jié)果對比如表5所示。對比實驗的模型介紹如下:
表5 CMeEE數(shù)據(jù)集實驗對比Table 5 Comparative experimental results on the CMeEE dataset%
RICON[6]:通過規(guī)律感知模塊和規(guī)律無感模塊同時提取實體內(nèi)部和邊界的規(guī)律性,并在正交空間內(nèi)對特征進行融合。
BERT-Biaffine[8]:用雙仿射模型對標記的開始和結(jié)束位置評分,通過詞元的標記評分來提取句子中的實體。
LEAR[12]:分別對文本和標簽進行獨立編碼,將標簽知識顯式地集成到文本中。
FLAT[15]:將網(wǎng)格結(jié)構轉(zhuǎn)換為跨度提取,并且在網(wǎng)格結(jié)構中構建了新的位置編碼。
MANM[16]:利用稀疏化的注意力和改進的WLSTM網(wǎng)絡提取多層次的語義特征。
FLR-MRC[18]:通過圖注意力網(wǎng)絡提取實體間關系,并且將實體信息和上下文語義信息相融合。
由表5可知,本文提出的SGAM模型在CMeEE數(shù)據(jù)集上取得了最佳的效果,F(xiàn)1值達到了70.74%,相比FLR-MRC模型的F1值提高了4.22%,與LEAR模型相比,F(xiàn)1值提升了4.95%。主要是因為SGAM模型使用交叉注意力將醫(yī)學領域?qū)I(yè)知識融入到查詢矩陣中,提高了模型對醫(yī)學命名實體的解碼效果,此外,SGAM模型使用了生物醫(yī)學領域的預訓練模型,對于醫(yī)學文本中的長尾術語有更強的上下文信息提取能力。
為了驗證本文模型在醫(yī)學命名實體識別上的優(yōu)勢,也在CMQNN數(shù)據(jù)集上進行了實驗,對比實驗結(jié)果如表6所示。對比實驗的模型介紹如下:
表6 CMQNN數(shù)據(jù)集實驗對比Table 6 Comparative experimental results on the CMQNN dataset%
BiLSTM+MultiCRF:結(jié)合雙向長短期記憶網(wǎng)絡和多層次的CRF網(wǎng)絡實現(xiàn)命名實體預測。
R o B E R T+C R F:使用預訓練語言模型RoBERT編碼命名實體,用CRF解碼出文本中的命名實體。
表6實驗結(jié)果表明本文提出的SGAM模型與FLAT模型相比,F(xiàn)1值提高了0.09%。本文模型在提取命名實體方面的優(yōu)勢相比其他模型有較大的提升,這是由于SGAM模型不再使用傳統(tǒng)的序列標注方案,序列標注的方法對每個字符只能分配唯一的預測,而本文模型采用基于跨度的方法預測文本中的實體,每個實體都標注為(實體類型,起始下標,結(jié)束下標)這種三元組的形式,能更加準確地預測出文本中的命名實體,因此SGAM模型在CMQNN和CMeEE數(shù)據(jù)集上均獲得了更佳的實驗結(jié)果。
為了驗證本文SGAM模型的在其他領域的應用性,本文在MSRA數(shù)據(jù)集上進行了實驗,在這部分的實驗中,文本編碼器中預訓練模型替換為BERT。實驗結(jié)果如表7所示,對比模型介紹如下:
表7 MSRA數(shù)據(jù)集實驗對比Table 7 Comparative experimental results on the MSRA dataset%
AAMwWIE[19]:用注意力機制動態(tài)地調(diào)整模型對實體的關注分布。
MECT[20]:模型中引入漢字結(jié)構信息,不僅能學習實體的邊界和語義信息,也能學習漢字字根的結(jié)構信息。
PLTE[21]:結(jié)合多孔網(wǎng)格Transformer和多孔注意力機制,增強模型對局部上下文信息的建模能力。
Softlexicon[22]:對字符表征層進行小部分調(diào)整就能引入詞庫信息。
由表7可知,本文提出的SGAM模型在MSRA數(shù)據(jù)集上的F1值達到了95.53%,優(yōu)于目前主流的模型。本文模型在CMeEE、CMQNN和MSRA數(shù)據(jù)集上的實驗結(jié)果都達到了最佳的效果,主要源于以下幾個方面:
(1) SGAM模型將實體提取轉(zhuǎn)換為集合分配問題,對于命名實體有著更強的識別能力,從而在3個數(shù)據(jù)集上達到了更佳的效果。
(2) 本文提出的交叉注意力和FLASH結(jié)構相結(jié)合的實體集合解碼器模型,將醫(yī)學領域的詞匯信息更好地融合到模型中,并且能提取醫(yī)學命名實體之間隱含的關聯(lián)性。
(3) 在模型訓練過程中,二分圖匹配算法在預測實體和真實實體之間尋找最大匹配,相比交叉熵損失,不會受到預測實體順序變化的影響。
首先研究實體集合解碼器層數(shù)對模型效果的影響,實驗結(jié)果如圖3所示。通過分析可知,當層數(shù)達到5層時,模型效果達到了最優(yōu),在CMeEE數(shù)據(jù)集上F1值達到了70.74%,當層數(shù)繼續(xù)增加時,模型效果開始下降。表明實體集合解碼器層數(shù)在5層時,模型能夠充分地提取命名實體間的依賴關系。
圖3 解碼器層數(shù)對比實驗Fig.3 Comparative experiment of decoder layer
在模型訓練過程中,為了選擇合適的實體查詢矩陣數(shù)量,本文進行了消融實驗,實驗結(jié)果如圖4所示。從實驗結(jié)果表明,當實體查詢的數(shù)量明顯大于文本中的真實實體數(shù)量時,模型的效果開始下降。
圖4 實體查詢數(shù)量對比實驗Fig.4 Comparative experiment of entity query
為了驗證本文模型的有效性,對所提出的SGAM模型進行了模塊的消融實驗,編碼器層數(shù)設置為5,實體查詢數(shù)量設置為50,在CMeEE數(shù)據(jù)集上進行模塊的消融實驗,實驗結(jié)果如表8所示,消融后的模型具體如下。
表8 CMeEE數(shù)據(jù)集消融實驗Table 8 Ablation experiment on the CMeEE dataset%
CE loss:用交叉熵損失替代模型中的二分圖匹配損失。
-attention:去掉本文模型中的交叉注意力機制。
-FLASH:去掉FLASH模塊,并用Transformer中的多頭自注意力機制和前反饋層代替。
表8中的各模塊消融實驗的結(jié)果表明:
(1) 損失函數(shù)用交叉熵損失替代后,模型的F1值下降了1.21%,證明了二分圖的匹配算法對實體順序不敏感,預測實體的排列不會影響模型訓練過程中損失的計算,能夠利用基于二分圖的匹配損失函數(shù)較好地完成命名實體識別。
(2) 本文模型中attention去掉之后,模型F1值下降了0.28%,表明加強實體查詢和醫(yī)學領域詞匯信息之間的交互計算有利于命名實體識別,可以提升本文模型對命名實體識別的準確率。
(3) 本文模型中的FLASH模塊用多頭自注意力和前反饋層替換后,模型F1值下降了0.78%,驗證了FLASH模塊在提取上下文語義信息和命名實體間的依賴關系上的有效性。
本文針對中文醫(yī)學命名實體識別任務設計了一個基于門控注意力單元的模型。首先,利用生物醫(yī)學領域的預訓練模型MC-BERT和BiLSTM網(wǎng)絡對輸入文本進行編碼,提取輸入文本中醫(yī)學領域的專業(yè)詞匯信息。其次,利用交叉注意力機制將醫(yī)學命名實體信息融入到查詢矩陣中,用FLASH結(jié)構提取醫(yī)學命名實體之間的依賴關系并捕捉醫(yī)學命名實體上下文相關的語境信息,提高模型對醫(yī)學命名實體識別的準確性。最后,用匈牙利算法計算模型訓練過程中的損失。實驗結(jié)果表明,與目前主流模型相比,本文模型在效果上達到了最佳,證明了本文模型在中文醫(yī)學命名實體識別任務上的有效性。在未來的工作中,將會嘗試在少樣本時,利用提示學習和對比學習進一步提升模型的性能。