段建勇,朱奕霏,王 昊,何 麗,李 欣
(1.北方工業大學 信息學院,北京 100144;2.CNONIX 國家標準應用與推廣實驗室,北京 100144)
命名實體識別(Named Entity Recognition,NER)是從一段復雜文本中找到特定文本跨度并為其分配所屬類型的任務。該任務在信息抽取(Information Extraction,IE)領域中是一項重要的基礎研究,給許多其他任務提供信息支撐,例如實體鏈接[1]、機器翻譯[2]和問題回答[3]。命名實體識別任務是深度語言理解的第一階段[4],在近十年的發展過程中涌現出許多行之有效的方法,并且隨著計算機硬件性能的提高,LSTM[5]、BERT[6]等深度學習模型的提出使得該任務在整體上取得了較大進展,但許多命名實體存在多層嵌套的現象卻較少得到關注。
嵌套命名實體識別作為命名實體識別任務的主要組成部分,是問答系統、知識圖譜、人工智能等科學研究中最為基礎、核心的技術之一,并且相關識別方法成果在實際生活中也具有廣泛的應用。中文的復雜性使得在文本內往往存在較多的嵌套命名實體。深度學習在命名實體識別領域的廣泛應用有效克服了淺層序列模型面臨的特征稀疏等問題,但由于序列標注模型只能識別扁平結構的命名實體,因此深度學習下的序列模型仍無法有效識別嵌套命名實體。
在中文語言環境下嵌套命名實體的詞匯邊界十分模糊[7]。由于嵌套命名實體識別的關鍵是通過明確實體邊界來判斷實體之間的嵌套關系,因此如何在正確識別出實體類別的同時確定實體邊界成為該項工作需要解決的首要問題。本文針對嵌套命名實體識別模型在中文數據集上位置信息逐層衰減的問題,建立基于位置嵌入和多級預測的中文嵌套命名實體識別模型。在編碼層,使用添加了嵌套實體準確位置的嵌入層的Transformers 模型提高輸入序列的特征表示能力,構建與嵌套層級相關的相互獨立的隱藏狀態輸出,排除最優路徑對預測多級嵌套實體的影響,并且在維護原始文本信息的同時為條件隨機場(Conditional Random Field,CRF)提供了包含次優路徑的隱藏狀態矩陣。在解碼層,使用排除最優路徑影響的次優路徑多級CRF 聯合邊界預測單元(Boundary Prediction Unit,BPU),實現中文實體邊界的準確預測以及中文嵌套實體的識別,相對于單一的多級CRF 識別嵌套實體,添加了BPU 的解碼層更加適用于中文嵌套實體的識別。
近年來,學者們對嵌套命名實體進行了研究并提出了一些可行方法。WANG 等[8]提出一種基于超圖的方法來考慮所有可能的跨度。SOHRAB 等[9]提出一個神經窮舉模型,該模型列舉和分類所有可能的跨度,并設置一個閾值來丟棄過長的實體跨度,如果閾值設置得很低,則運行時間會相對減少,但較長的跨度就會被遺漏。SHEN 等[10]利用圖像識別與嵌套命名實體任務的相似性,提出一種窮舉分類的兩階段識別模型。然而,上述方法在實現高性能的同時會增加數據的復雜性。連藝謀等[11]提出強化實體分類模型,利用卷積神經網絡提取鄰接詞特征,通過多頭注意力獲取實體邊界。SHIBUYA 等[12]提出使用多級CRF 尋找次優解的方式,由外到內分層輸出實體,識別嵌套實體。WANG 等[13]改進了這種分層輸出,排除了最優解對輸出結果的影響,由內到外分層輸出嵌套實體。上述研究在英文數據集上也取得了較好的結果。
中文嵌套命名實體識別的難點在于中文語言結構特點本身缺乏邊界,要獲得準確的分詞結果十分困難。早期的中文命名實體識別使用的是一種基于人工制定規則的系統,例如LaSIE-II[14]、NetOwl[15]、FACILE[16]和SAR[17]都是基于規則的模型。隨著隱馬爾可夫模型(HMM)[18]、決策樹[19]、最大熵模型[20]、支持向量機(SVM)[21]和條件隨機場(CRF)[22]等越來越多的機器學習方法在NER 領域的應用,一些融合了上述方法的深度神經網絡模型使中文命名實體識別效果得到顯著提升。ZHANG 等[23]提出一種LSTM 模型的變種模型(Lattice-LSTM),將所有的字符向量與通過詞典匹配到的詞匯向量作為輸入。崔麗平等[24]提出一種融合詞典信息的有向圖神經網絡模型(L-CGNN),通過卷積神經網絡提取豐富的字特征,并且構造句子的有向圖,以生成鄰接矩陣來融合字詞信息。WU 等[25]利用漢字的結構信息,提出一種基于多元數據嵌入的Cross-Transformer 模型。
許多研究都在中文命名實體任務的基礎上發現了嵌套命名實體問題。SUI 等[26]為了融合語音和文字信息,在構建文字數據集時發現了大量嵌套實體。廖濤等[27]提出一種基于交互式特征融合的嵌套命名實體識別模型,通過構建不同特征之間的通信橋梁來捕獲多特征之間的依賴關系,但是該模型忽略了實體本身的位置信息。LI 等[28]提出FLAT 中文命名實體識別模型,使用的數據集為嵌套結構,但是模型本身并未對嵌套實體進行優化。為了豐富中文嵌套命名實體識別領域的研究,筆者查閱了大量相關文獻,結合中文嵌套命名實體與序列模型和機器學習方法的特點,提出一種基于位置嵌入和多級邊界預測的改進模型。
使用改進的Transformer 模型的數據編碼層來融合中文文本中存在長距離依賴的上下文信息。在嵌入層,將文本中的嵌套實體抽離出來拼接到文本尾部,形成新的含有融合嵌套實體信息的序列輸入,再通過多頭自注意力層以及全連接層進行編碼。根據嵌套層級的數目生成多個隱藏狀態,每個CRF 層獨立計算發射分數,最后經過BPU 計算嵌套實體的邊界偏移量得到最終結果,如圖1 所示。

圖1 模型總體結構Fig.1 Overall structure of the proposed model
2.1.1 嵌套詞匯相對位置標記
為了獲取融合中文嵌套實體信息的序列標注信息,將文本中的嵌套實體的首尾信息作為獨立元素提取出來,用符號e表示,E={e1,e2,…,en}表示嵌套實體首尾信息的集合。
記錄嵌套實體開始和結束的兩個標記來表示嵌套實體在中文文本中的絕對位置信息,如式(1)所示:
其中:ei,begin、ei,end表示嵌套實體ei的開始和結束字符在輸入文本中的絕對位置。
在嵌套實體中含有多個字符,開始位置和結束位置在序列中不一致,但是對于單個字符,開始和結束的位置在序列中一致。在標記后,嵌套實體之間存在交叉關系、包含關系、互斥關系3 種,這些關系可以由嵌套實體的開始和結束位置來確定。為了更好地表示這種關系,將嵌套實體的絕對位置分別嵌入文本字符序列的尾部,如式(2)、式(3)所示:
其中:Sbegin、Send表示融合了嵌套實體開始和結束位置信息的文本序列;c表示原始文本序列中字符的絕對位置,開始和結束的絕對位置相等。
2.1.2 嵌套詞匯融合嵌入
為了使模型更具魯棒性,不直接將這3 種關系作為參數融入序列,而是采用FLAT 模型的思想重新構建一個特殊向量矩陣來建模嵌套實體之間的相互關系。這個矩陣是通過對嵌套實體開始和結束位置與文本字符之間的信息差異來進行統一計算。這種表示首先能夠體現出嵌套實體之間的相互關系,其次可以明確嵌套實體在本文中的位置關系,以及嵌套實體與無意義字符之間的距離關系。使用這種向量矩陣表示獲得了更多的嵌套實體與原始文本之間的融合信息,增強了嵌套實體與原始文本之間的關系,如式(4)所示:
多頭自注意力層在每個時間步內只能輸出一個隱藏狀態,在進行嵌套實體識別任務時,預測當前層級嵌套實體的標簽序列時需要使用上一層級嵌套實體預測的發射分數矩陣。因此,當前層級的標簽序列預測會偏向上一層的最優路徑,從而影響多級嵌套實體的識別準確率。
為了消除最優路徑的影響,重新設計了模型的多頭自注意力層的結構。按照嵌套層數,在多頭自注意力層設置與嵌套層數量一致的嵌套層級權重矩陣,用符號w表 示,W={w1,w2,???,wl}表示嵌 套層級權重矩陣的集合,其中l表示嵌套層數。使多頭自注意力矩陣分別與嵌套層級權重矩陣相乘,從而生成多個隱藏狀態塊,配合解碼階段多級輸出時的發射矩陣計算,如式(5)所示:
其中:hi表示隱藏狀態塊;Z表示多頭自注意力矩陣。
使用Ht={h1,h2,???,hl}表示隱藏狀態塊集合。隱藏狀態塊的個數與嵌套層級一致,這就使得每個層級的標簽序列預測都有對應層級的發射分數矩陣,同時也保證了每個層級使用的原始文本信息的一致性,增強了模型的可靠性。
解碼層使用經過特殊設計的CRF 與BPU 聯合模型來處理得到的嵌套實體向量,具體結構如圖2所示。
2.3.1 多級CRF 層
使用多層次序列標注的方式來實現對嵌套命名實體的識別,次優路徑多級CRF 是一種排除最優路徑對多級別嵌套實體識別產生影響的優化的多級CRF 模型,對于不同級別的嵌套實體使用與當前級別關聯度最高的發射函數,并且計算完成后將其從可選發射函數候選矩陣中剔除,這樣就可以使每一級的嵌套實體序列都使用獨立于最優路徑之外的發射函數,使其可以更加準確地預測嵌套實體類別。使用編碼層輸出構建CRF 層的轉移矩陣,如式(6)所示:
其中:Ai,j表示標簽集合中標簽yi到yj的概率轉移矩陣;n為標簽數量;y0、yn為文本輸入的開始與結束標志。
對于不同級別的CRF 函數,在每個時間步長內都會維護一個與級別相關的塊集,從塊集中選擇與當前級別標簽序列關聯度最高的塊集矩陣來計算最終的發射得分,從而獲得最符合當前級別標簽序列的標簽分類輸出結果,如式(7)所示:
對于已經選擇的塊集,需要將其從Htl中刪除[如式(8)所示]來排除該塊集對每個時間步驟的影響,從而排除最佳路徑對全局結果的影響,直到將所有級別的嵌套實體標簽識別完畢。
對于所維護的塊集而言,每次都會排除當前級別的一個最相似塊,而不是按照順序排除,這種方式避免了隱藏狀態塊只學習特定層級的信息,加強了多級嵌套實體信息之間的聯系。
2.3.2 BPU
多級CRF 層在輸出最優路徑標簽序列時,會將最符合當前發射分數的類別標簽作為最終輸出,但是嵌套實體的邊界信息還是不夠準確。為此,在CRF 層添加了一個邊界預測單元來進一步明確嵌套實體的邊界。對多級CRF 層預測出的實體,采集其在訓練模型多頭自注意力層隱藏狀態序列時間步內的左右字符信息矩陣進行進一步訓練,從而確定最終的嵌套實體輸出。
首先定位CRF 層預測的實體的開始和結束邊界;然后從隱藏狀態字符輸出矩陣{o1,o2,…,on}中提取出該實體字符信息以及外部邊界字符信息,構建融合跨度表示,其中n為文本長度;最后計算邊界偏移量,如式(9)、式(10)所示:
其中:oi,bpu、ok表示嵌套實體的BPU 邊界融合輸出矩陣和隱藏狀態字符輸出矩陣;bbegin、eend分別表示實體開 始、結束字 符序號;Wbpu、W1、W2為可學 習矩陣;b1、b2為可學習參數;ti表示邊界偏移量。
對整體實體進行學習后,再對左右邊界按照不同的方式進行計算得到最新的實體邊界偏移表示,如式(11)、式(12)所示:
2.3.3 聯合損失函數優化
多級CRF 層輸出嵌套實體的準確類別和大致邊界,BPU 通過聯合多級CRF 層輸出結果以及隱藏狀態序列進行精確邊界預測。最終通過聯合多級CRF 層以及BPU 的損失函數,訓練出適合當前級別的邊界預測模型。
對于多級CRF 層,對每層分別計算預測標簽在當前級別的條件概率,如式(13)~式(15)所示:
其中:p(yl|Hl)表示第l級輸出在Hl隱藏塊集合的條件下預測標簽序列yl的條件概率;Z(Hl)為第l級輸出的所有標簽序列結果的和;Lcrf為多級CRF 層的損失函數。
對于BPU,使用平滑損失函數來優化模型,如式(16)所示:
最終設置權重并聯合兩個損失函數,如式(17)所示:
其中:λ表示調優參數,為多級CRF 層和BPU 的聯合損失權重。
為了能夠較好地驗證所提模型的有效性,從醫學與日常這兩個領域選取合適的中文嵌套命名實體數據集。醫學作為出現較多嵌套命名實體并且包含許多特有名詞的專業領域,能夠驗證模型的準確度與精度;日常語料中的嵌套實體更為隨機并且也缺乏既定的邏輯性,同時還包含較多的噪聲,這種類型的數據可以驗證模型的健壯性以及泛化性。
選用專業醫療領域數據集(CMQNN)以及大型中文日常領域數據集(CNERTA)。在CMQNN 中包含55 000 條數據,訓練集包含43 896 條數據,嵌套實體比例為47.60%,驗證集包含5 583 條數據,嵌套實體比例為43.74%,測試集包含5 521 條數據,嵌套實體比例為46.28%,包含身體部位(body)、標準疾病(ICD_10)、常見疾病(disease)、醫學科室(department)、常見藥物(drug)5種實體類型。CNERTA 包含42 987條數據,訓練集包含34 102 條數據,嵌套實體比例為31.25%,驗證集包含4 440 條數據,嵌套實體比例為29.50%,測試集包含4 445 條數據,嵌套實體比例為38.25%,主要包含的實體類型為地點(LOC)、人名(PER)和組織(ORG)。
所提模型是一種基于融合了實體位置信息的多級邊界回歸的嵌套命名實體識別模型。為了驗證所提模型的有效性,基線模型選取了一些在嵌套命名實體識別中常用的具有類似結構的序列模型作為基線模型,具體為:1)Layered-BiLSTM+CRF 模型[29],基于LSTM 模型進行文本信息編碼,通過動態堆疊平面NER 層來識別嵌套實體,也是基礎的基于序列標注方法的嵌套命名實體模型;2)Flat-Lattice Transformer+CRF 模型[28],面向中文命名實體識別的基于Transformer 結構的序列標注模型,可以有效增強對命名實體詞匯信息的學習能力,并且在中文數據集上達到了較好的性能;3)BERT+FLAIR 模型[12],基于BERT 預訓練模型編碼,并使用次優路徑思想進行嵌套命名實體識別。
所提模型在Windows 和Linux 系統平臺上均可運行,所有實驗均使用Python 3.8.8 環境,模型使用PyTorch 1.8.1 深度學習框架構建,使用GTX2060 顯卡,顯存大小為6 GB。
模型內部的可學習參數使用隨機梯度下降(SGD)算法進行優化。在實驗中的超參數設置如表1 所示。對于數據集嵌套層數l,在CMQNN 和CNERTA 數據集上均設置為6。采用準確率、召回率、F1 值3 個指標作為模型性能的評價標準。

表1 實驗超參數設置Table 1 Experiment hyperparameter setting
3.4.1 模型訓練結果
4 種中文嵌套命名實體識別模型對比結果如表2 所示。由表2 可以看出,所提模型性能與常用的中文嵌套命名實體識別模型相比在CMQNN 與CNERTA 兩個數據集上均有所提升,其中在CMQNN 數據集上準確率、召回率和F1 值相比于基線模型中的最高值分別提升0.34、1.06 和0.80 個百分點,在CNERTA 數據集上準確率、召回率和F1 值相比于基線模型中的最高值分別提升11.90、0.78 和6.23 個百分點。

表2 中文嵌套命名實體識別模型對比結果Table 2 Comparison results of nested Chinese named entity recognition models %
實驗結果表明,所提模型在專業醫療領域和日常領域這兩種不同類型的數據集上均獲得了優于常用的中文嵌套命名實體識別模型的識別效果,也證明了所提模型在識別中文嵌套命名實體方面具有較好的泛化性能和實用效果。通過實驗還可以看出:使用Transformer 編碼器的模型在識別具有嵌套結構的中文數據集時效果要優于使用LSTM 編碼器的模型,主要原因為Transformer 編碼器特有的位置編碼對嵌套實體有更優的適配性,可以深入挖掘實體內部的信息,這也證明了使用位置嵌入編碼模型可以更好地識別嵌套實體;與僅使用多級CRF 的Layered-BiLSTM+CRF 模型相比,所提模型在CMQNN 與CNERTA 兩個數 據集上,F1 值分別提高了2.43 和10.82 個百分點,說明使用改進的Transformer 模型以及CRF+BPU 聯合模型能更加充分地學習到中文嵌套實體的潛在信息,而且對于專業詞匯和日常用語領域均有所提升,也證明了所提模型對于中文語言模式具有更佳的適配性。
3.4.2 消融實驗結果
為了進一步驗證所提模型的重要參數設置以及各組件的有效性,設計消融實驗來驗證不同l、位置嵌入以及BPU 對模型性能的影響。
消融實驗結果如表3 所示,由表3 可以看出:

表3 不同嵌套深度模型中組件有效性結果對比Table 3 Comparison of component validity results of the models with different nested depths %
1)所提模型(with embedding)為單獨使用了位置嵌入,通過調整l發現不管對于具有較深嵌套實體層數的CMQNN 數據集還是具有較淺嵌套實體層數的CNERTA 數據集,當l=6 時均可獲得最好的識別效果。對于CMQNN 數據集,當l=4 時效果最差,主要原因為CMQNN 數據集中包含較多的初級醫療名詞,當l=2 時模型忽略了較深嵌套實體反而更加專注于淺層嵌套實體的識別,也就是說更加類似于非嵌套實體識別模型。
2)所提模型(with BPU)在單獨使用了BPU 后具有一定的性能提升,說明對于中文而言,字詞之間的邊界模糊問題得到了一定的改善,但并沒有完全解決模型在多級信息傳遞時對中文字詞間關系關注度不夠的問題。
3)所提模型(Full)通過使用位置嵌入和BPU 有效提升了模型本身挖掘中文字詞間關系的能力,使得BPU 可以進一步提高每一層模型識別結果的準確性。
消融實驗的結果進一步驗證了所提模型使用的位置嵌入和BPU 模塊的有效性,它們能有效提升所提模型的中文嵌套命名實體識別能力。
本文建立一種基于位置嵌入和多級結果邊界預測的嵌套命名實體識別模型,通過位置嵌入方式提高模型對于中文字詞間關系的關注力,增強模型識別嵌套實體多級信息的能力,并且對于模型識別的最終結果進行進一步調整,使得中文字詞邊界更加清晰。使用兩種數據內容和形式完全不同的數據集進行實驗,在實體密集且相關性強的專業醫療領域和實體分散且相關性弱的日常領域中都具有較好的實驗效果,驗證了所提模型的健壯性和泛化性。后續將嘗試引入知識圖譜或者使用外部詞典的方式,增強模型對于日常領域實體的識別能力,同時深入研究中文詞匯的邊界關系,提高中文詞匯的識別準確率。