連藝謀,張英俊,謝斌紅
(太原科技大學 計算機科學與技術學院,太原,030024)
命名實體識別(Named Entity Recognition,NER)[1]是自然語言處理(Natural Language Processing,NLP)中的一項基本任務,目的是識別出自然語言文本中具有特定意義的語言塊,如人名、地名、組織名等。命名實體識別的結果會作為前期基礎數據輸入到關系抽取、事件抽取、知識圖譜等下游任務中,其識別的準確性一定程度上決定了NLP 應用的最終效果。在實體中可能會存在嵌套實體,例如“IL-2 Promoter”是一種“DNA”實體,該實體中的“IL-2”又是一種“protein”實體。根據實體中是否存在嵌套實體的情況,NER可分為flat NER和nested NER。實體嵌套是自然語言處理中的一種常見問題,研究該問題的解決方案,對落實命名實體識別的應用具有重要意義。
目前對于NER的研究大多是針對flat NER的研究,然而在醫學、新聞等領域的數據集中存在大量嵌套實體,如生物醫學領域常用的GENIA語料庫中存在約10%的嵌套實體。在處理flat NER 時,現有方法通常是將其當作序列標注的問題去解決[2-3],如BiLSTM-CRF 模型[4]。但是這種方法要求每個詞在標注時對應一個標簽,而在nested NER 中,每個詞會對應多個標簽,將flat NER方法直接應用在nested NER上效果并不理想。因此,解決nested NER 存在的問題,提高命名實體識別的效果,是當前的研究熱點。
對于nested NER 任務,一種解決方法是借助超圖的方法,該方法以有向超圖結構代替平面命名實體識別中常用的無向圖結構,通過設計標記模式來識別嵌套實體,但這種方法在設計超圖時需要大量人工,而且當句子過長或實體類別過多時,超圖結構會很復雜。另一種解決方法是利用片段抽取分類的方法,該方法通過抽取出句子中的子序列并進行分類來完成實體識別,但這種方法需要找出句子中所有的子序列,計算代價大,且在表示子序列時沒有充分利用到文本特征。
針對上述問題,本文提出一種邊界強化分類模型。將卷積神經網絡(Convolutional Neural Network,CNN)和多頭注意力機制應用到序列標記模型中,增強模型檢測實體邊界的能力。在進行分類時,結合實體片段關鍵字和實體邊界詞進行實體表示,從而更充分地利用模型學到的特征。在此基礎上,引入多任務損失對模型進行訓練,進一步優化模型性能。
早期關于nested NER 的研究主要采用手工特征的方法或是依賴規則的處理,如文獻[5-6]采用隱馬爾可夫模型識別內部的平面實體,然后通過基于規則的方法獲取外部實體,文獻[7]提出基于支持向量機的方法來提取嵌套實體。但是這些依賴手工特征和規則的方法移植性差、容錯率低,需要消耗大量的人力和時間。
隨著深度學習的不斷發展以及NER 應用日漸成熟,對于nested NER 的研究也主要集中在了深度學習方法上。文獻[8-9]利用超圖解決nested NER問題,通過設計超圖來表示所有可能的嵌套結構,然后從超圖標簽中恢復嵌套實體。但是為了避免虛假結構和結構歧義,在設計超圖時需要消耗大量的人力,并且這種使用超圖的方法在訓練和推理中有著較高的時間復雜度。文獻[10]提出一種多層神經網絡模型,通過動態堆疊flat NER 層來識別嵌套實體,其中flat NER 層利用BiLSTM 捕獲序列的上下文表示,然后將其輸入到CRF 中。但這種方法由于下一層的計算依賴上一層的表示結果,因此無法并行計算,同時層級之間容易出現錯誤傳遞。而且由于嵌套層數較深的實體數量較少,因此該方法還存在深層實體稀疏的問題。文獻[11]提出的錨區域檢測模型,通過對實體的頭部驅動短語結構進行建模來檢測嵌套的實體,即先使用錨點詞檢測器檢測句子中的每個詞,判斷其是否為實體的錨點詞,并且判斷其對應的實體類別,再設計區域識別器來識別以每個錨點詞為中心的實體邊界,最終完成嵌套實體的檢測。文獻[12]則通過將詞或實體合并形成新實體來完成嵌套實體的檢測。
對于nested NER 任務,另一種解決方法是對文本進行片段抽取分類。文獻[13]提出一種考慮所有可能片段的嵌套神經網絡窮舉模型,先窮舉出所有小于最大實體長度的片段,再對每個片段進行向量表示,最后通過一個分類器為每個片段打上實體類型或非實體類型的標簽。該模型雖然避免了層級檢測模型錯誤傳播的問題,但由于要對所有可能的片段進行分類篩選,因此計算開銷大、推理效率低,而且由于缺乏精確的邊界信息,抽取出的片段多為非實體片段。文獻[14]提出使用一種局部探測方法,利用固定長度的片段及其前后文對實體進行識別。文獻[15]提出一種邊界感知的神經網絡模型,將序列標注模型應用到片段抽取中,通過序列標注模型檢測邊界來精確定位實體,并在檢測所得邊界的基礎上,對邊界內的實體進行向量的平均表示。文獻[16]結合詞性進行實體邊界檢測,對實體邊界檢測和分類進行共同訓練。雖然文獻[15-16]模型利用了邊界信息,但在表示實體時沒有充分利用到實體特征信息。
綜上可知,現有的嵌套命名實體識別方法存在對實體邊界的檢測不夠準確、未有效利用實體邊界信息的問題。本文提出一種邊界強化分類模型進行嵌套實體的識別。利用不同卷積核大小的卷積神經網絡獲取鄰近單詞的特征,利用多頭注意力強化模型的表達能力,從而獲得有效的實體邊界信息。同時,在表示實體時充分利用實體特征信息,計算實體內部各詞權重并結合實體邊界詞,得到準確的實體表示。
本文邊界強化分類模型的整體結構如圖1 所示。該模型由以下3 個部分組成:1)詞表示層,用于提取字符之間的依賴信息,得到準確的單詞表示;2)特征提取層,用于提取單詞的局部信息和上下文信息;3)實體識別層,用于對特征提取層輸出的單詞特征進行實體邊界的分類,對類別為“B”和“E”的單詞進行匹配,將匹配得到的區間作為候選實體,并對候選實體的類別進行預測。

圖1 邊界強化分類模型架構Fig.1 Framework of boundary enhanced classification model
字符中包含單詞的語法、語義等信息,提取字符中包含的特征已經在自然語言處理中廣泛應用,如文獻[17]在研究flat NER 時將字符嵌入結合到詞嵌入中,取得了較好的結果。因此,本文在進行詞嵌入表示時將字符級別的特征與詞級別的特征進行融合,作為最終單詞的表示。
假設句子由n個詞組成[t1,t2,…,tn],通過查找預先訓練好的詞嵌入表得到每個詞ti對應的詞嵌入wi:

其中:ew為預訓練得到的詞嵌入表。對于詞ti中的每個字符ci,對其進行隨機初始化得到字符嵌入表示并輸入到BiLSTM[18]中,以獲取單詞的拼寫和形態特征,如式(2)所示:

并將xi作為最終的單詞表示,輸入到后序網絡中。
長短期記憶(Long Short Term Memory Network,LSTM)網絡雖然可以進行序列建模,但局部特征提取能力不如CNN,只依靠LSTM 可以學習到上下文特征,但卻忽略了局部的特征。因此,本文使用CNN-BiLSTM 作為文本特征提取模型,將CNN 關注局部信息特征和BiLSTM 能夠學習文本長距離依賴關系的優點相結合來獲取文本語義特征。
2.2.1 CNN 特征提取
卷積神經網絡[19]在自然語言處理中多為一維卷積(Convolution1D)。因此,本文模型的卷積層使用一維卷積,卷積核寬度與輸入的單詞向量的嵌入維度相同,高度采用1、3、5 這3 種不同尺寸的卷積核提取詞本身以及鄰接詞的信息,從而獲得短距離單詞間的依賴信息,為后續實體的表示提供更豐富的局部信息。
在本文模型中,第1 層卷積分別使用100 個高度為1、50 個高度為1、50 個高度為3 以及100 個高度為3 的卷積核進行卷積,第2層卷積分別使用50個高度為3的卷積核對100 個高度為1 情況下的結果進行卷積,使用50 個高度為5 的卷積核對100 個高度為3 情況下的結果進行卷積。多尺度卷積的計算如式(4)所示:

其中:zi表示卷積操作得到的第i個特征;w表示一個卷積核的權重;? 表示非線性函數ReLU;b表示偏置。
通常在卷積層后會加池化層來提取特征,但在池化時會丟失部分細節特征。因此,本文在卷積后沒有進行池化操作,而是保留卷積結果,將最終的4 種卷積結果進行拼接,作為后續模型的輸入,如式(5)所示:


圖2 多尺度CNN 特征提取過程Fig.2 Process of multi-scale CNN feature extraction
2.2.2 LSTM 特征提取
本文模型使用BiLSTM 作為特征提取器。單向的LSTM 只能獲得前文的信息,而BiLSTM 能夠從2 個方向學習到序列中的上下文信息,更有效地將單詞在上下文中的隱藏狀態表示出來。BiLSTM 中隱藏狀態表示如式(6)~式(8)所示:

其中:gi是上節中利用不同卷積核拼接的結果分別表示hi在BiLSTM 中向前和向后的隱藏狀態。BiLSTM 輸出的結果H={h1,h2,…,hn}將被輸入到后續模型中。
2.2.3 多頭注意力機制
雖然BiLSTM 能夠學習語序信息,進而獲取實體間的依賴關系,但在處理長句子時其效果會有所影響。而多頭注意力機制通過多個子空間表示來提升模型關注不同特征的能力,這對后續實體的邊界分類和類型分類都有所幫助。因此,本文在BiLSTM 后加入多頭注意力來提升模型性能。多頭注意力Attention(K,Q,V)的計算公式如式(9)所示:

其中:K、Q、V分別表示查詢矩陣、鍵矩陣和值矩陣;dh表示嵌 入維度;H={h1,h2,…,hn}表示之 前BiLSTM 的輸出。本文設置K=Q=V=H。
通過投影到不同子空間來獲得不同的注意力,并將不同子空間的特征進行連接,如式(10)、式(11)所示:

其中:Qi、Ki、Vi是網絡 中學習 的參數;k表示網 絡中設置的子空間個數;Ti表示輸入的句子對第i個子空間提取的特征。
對于嵌套在內部的實體,難以確定實體層數和實體個數,采用多層的CRF 模型會造成錯誤傳播的問題。因此,本文利用片段抽取分類的方法,通過檢測實體邊界,先抽取出候選的實體片段(包括嵌套實體片段),再進行標簽類別的判斷。
2.3.1 實體邊界檢測
雖然分層序列標注思想和窮舉區域分類思想各有不足,但它們是相輔相成的。之前的工作對2 種方法的使用過于分離,受文獻[15]啟發,本文在進行實體識別時,同樣利用序列標注的思想來判斷邊界標簽。將序列T[ta,ta+1,…,tb](a
對T中的每個詞tm,將與之對應的通過多頭注意力得到的特征輸入到激活函數LeakyReLU 中計算其可能的邊界標簽dm,然后利用softmax 分類器,得到該詞最可能的邊界標簽如式(12)、式(13)所示:


其中:α為權重因子;γ為可調節因子。
對于序列T[ta,ta+1,…,tb],計算出T中各詞對應的標簽后,對所得邊界標簽序列中所有邊界標簽為‘B’和‘E’的詞進行匹配,將匹配得到的詞片段作為候選實體。
2.3.2 標簽類別判斷
得到候選實體后對其進行分類,為目標實體分配正確標簽,將非目標的候選實體排除。分類時首先要計算候選實體的向量表示。傳統方法在對抽取出的實體進行表示時,多是采用實體片段的平均表示,即把實體片段內的詞向量相加,再除以片段長度即詞向量的個數,得到該實體的表示。但是這種方法沒有考慮到實體片段內不同詞對實體類型分類的貢獻度,如詞序列“the department of education”是一個標簽應為“organization”的實體,在該實體中,詞“department”應為關鍵詞,其對實體最終標簽分類所作的貢獻應大于其他詞。因此,在實體表示時,詞“department”的表示在整個實體表示中所占比重應更大。此外,實體的邊界詞包含了實體片段的邊界信息。為了充分利用這些信息,獲得更準確的實體表示,本文在進行實體表示時將實體內關鍵字與實體頭尾詞相結合。實體邊界檢測和標簽類別判斷示意圖如圖3 所示。

圖3 實體邊界檢測和標簽類別判斷示意圖Fig.3 Schematic diagram of entity boundary detection and tag category judgment
本文使用前饋神經網絡(Feedforward Neural Network,FFNN)進行實體片段關鍵字注意力的計算,如式(15)~式(18)所示:

其中:hm是第t個詞經CNN-BiLSTM 后得到的隱藏狀態。在得到候選實體Ri,j的表示后,將其輸入到ReLU 激活函數中,并用softmax 對結果進行分類,得到最終的實體標簽,如式(19)所示:

其中:Ui,j和bi,j是網絡中學習的參數。同樣地,考慮到實體的類別數量不同,為緩解實體類別不平衡現象對實體分類模型造成的影響,使用FocalLoss 對實體分類器進行優化,如式(20)所示:

由于本文模型在進行實體邊界檢測和類別判斷時共享相同的實體邊界,因此對實體邊界檢測和實體類別判斷這2 個任務的損失進行聯合訓練。在訓練階段,將數據的真實實體邊界標簽輸入到模型中來訓練實體邊界檢測分類器,避免分類器在訓練時受到錯誤邊界檢測影響。在測試階段,邊界檢測分類器的輸出用于指示在預測分類標簽時應考慮哪些實體片段。
模型的總損失為實體邊界檢測和實體類別判斷兩部分的損失之和,如式(21)所示:

其中:λ是一個超參數,用于控制實體邊界檢測和標簽類別判斷兩部分損失的重要程度。
在GENIA、GermEval 2014、JNLPBA 這3 個公共數據集上進行實驗,評估本文模型性能。其中,GENIA 和GermEval 2014 是nested NER 中常用的公共數據集。
GENIA 數據集是基于語料庫GENIA3.0.2 構建而成的,共有語句18 546 句。按照之前Finkel and Manning[20]以及文獻[8]的劃分規則,將其中的實體類型DNA、RNAs、protein subtypes 分別歸類到實體類型DNA、RNA、Protein 中,保留Cell line 和Cell type實體類型,除去其他實體類型。最終,數據集中包含5 種實體類型:DNA,RNA,Protein,Cell line,Cell type,其中嵌套實體占比10%。數據集以8.1∶0.9∶1的比例分為訓練集,驗證集和測試集,即訓練集包含語句15 023 句,驗證集包含1 669 句,測試集包含1 854 句。5 種實體類型的具體數量如表1 所示。

表1 GENIA 數據集統計指標Table 1 GENIA dataset statistics
GermEval 2014 數據集是一個德語語料的嵌套命名實體數據集,本文使用這個數據集來評估模型在不同語言中的性能。GermEval 2014 數據集中含有31 000 多條語句,對應有590 000 多個詞。
JNLPBA 數據集來源于GENIA 語料庫,在該數據集中僅保留最外層的實體。因此,本文使用這個數據庫來評估模型在識別flat NER 方面的表現。在實驗中,按照與GENIA 數據集相同的劃分設置將JNLPBA 數據集中的實體子類別合并為5 種類別。
本文模型基于PyTorch 框架實現,預訓練的詞向量維度為200 維,字符嵌入的維度為50 維并隨機初始化。模型其他參數的取值如表2 所示。

表2 模型參數設置Table 2 Setting of model parameters
采用整體準確率、召回率和F1 值(F1-score)作為最終的評價指標,且使用一個嚴格的評估標準,即當實體邊界的分類和實體類別的分類同時正確時,才會認為實體分類正確。準確率、召回率和F1-score 的計算公式如式(22)~式(24)所示:

其中:TP表示模型正確識別出的真實體數目;FP表示實際為假實體但模型識別為真實體的實體數目;FN表示實際為真實體但模型并未識別出的實體數目。
為驗證本文模型的有效性與性能優勢,選取與本文模型相關的且具有代表性的模型作為基線模型,具體如下:
1)文獻[8]模型。該模型使用基于超圖的方法來解決命名實體識別問題。
2)文獻[21]模型。該模型對基于超圖的方法進行了改進。
3)文獻[13]提出的深度窮舉模型。該模型通過窮舉出所有可能片段來找出實體。
4)文獻[10]提出的多層的CRF 模型。該模型以由內向外的方式識別不同級別的嵌套實體。
5)文獻[11]模型。該模型先識別錨點詞,再識別以錨點詞為中心的實體邊界,進而確定實體。
6)文獻[15]模型。該模型利用序列標注模型檢測嵌套實體邊界,合并相應的邊界標簽序列,完成分類預測。
7)文獻[16]模型。該模型結合詞性進行實體邊界檢測,對實體邊界檢測和分類進行共同訓練。
不同模型在GENIA 數據集上的性能指標如表3所示,其中,加粗數據表示最優值。由表3 可知,本文模型在召回率和F1-score 上都優于其他對比模型,準確率僅低于文獻[16]模型,優于其他模型。

表3 不同模型在GENIA 上的性能指標Table 3 Performance index of different models on GENIA %
從整體上看,基于超圖的方法及文獻[13]模型準確率和召回率略低于其他模型,而文獻[10]模型可能受到錯誤在分層模型中逐層傳遞的影響,其召回率也有所不足,而對邊界分類和實體分類加以約束的方法在效果上有所提升。
相較于文獻[15]模型,本文模型在準確率上獲得1.8%的提升,在召回率上,本文模型達到最優的74.5%,這說明本文模型識別出的實體絕大多數是真實有效的,這是因為結合實體片段關鍵字和實體頭尾詞的方法為模型提供了更準確的實體表示,使得分類器有能力確定候選片段是否為有效的實體。因此,本文模型獲得了更好的F1-Score,表明本文模型能夠更準確地識別實體包括嵌套實體。
表4 對比了不同模型在GENIA 的5 種實體類型檢測上的性能表現,其中,加粗數據表示最優值。可以看出,文獻[15]模型在RNA 上F1-score 略高于本文模型,而在其他不同類型的實體上,本文模型性能較對比模型有不同程度的提高。

表4 不同模型在GENIA 上實體類型檢測的性能指標Table 4 Performance index of entity type detection of different models on GENIA %
本文模型與文獻[15]模型檢測句子中每個詞對應邊界標簽的性能對比如表5 所示。可以看出,本文模型結果優于文獻[15]模型的結果,說明加入多尺度CNN和多頭注意力后模型能夠更高效準確地判斷邊界標簽的類型。

表5 不同模型在GENIA上實體邊界標簽預測的性能指標Table 5 Performance index of entity type boundary tag prediction of different models on GENIA %
在GermEval 2014 數據集上的實驗結果如表6 所示,其中,加粗數據表示最優值。可以看出,本文模型在召回率與F1-Score 上較其他對比模型均有所提升。對比表3 和表6 可以發現,在GENIA 數據集上的效果比GermEval 2014數據集上的效果好,這是因為GENIA數據集中嵌套實體數量更多,而GermEval 2014 數據集中實體較為稀疏。

表6 不同模型在GermEval 2014 上的性能指標Table 6 Performance index of different models on GermEval 2014 %
此外,為驗證本文模型在Flat NER 上的適用性,在JNLPBA 數據集上進行實驗,實驗結果表明,F1-Score達到74.2%。
為驗證CNN-BiLSTM 特征提取、多頭注意力機制以及結合關鍵字和實體邊界詞表示實體的有效性,設計以下5 種模型進行對比,并在GENIA 數據集上進行實驗與分析。
1)BiLSTM+M-head-att+SEKey:只使用BiLSTM進行上下文特征提取,在BiLSTM 之后使用多頭注意力機制,實體分類時使用結合實體邊界詞和關鍵字的方法。
2)CNN-BiLSTM+SEKey:使用CNN 和BiLSTM進行文本的信息特征提取,之后不使用多頭自注意力機制,直接使用結合實體邊界詞和關鍵字的分類方法進行實體分類。
3)CNN-BiLSTM+M-head-att+Mean:使 用CNN和BiLSTM 進行文本的信息特征提取,之后使用多頭注意力機制,實體分類時不使用結合實體邊界詞和關鍵字的方法,而是將實體片段內的詞向量表示進行平均化,得到實體表示。
4)CNN-BiLSTM+M-head-att+Key:使用CNN 和BiLSTM 進行文本的信息特征提取,之后使用多頭注意力機制,實體分類時不結合實體邊界詞,只使用關鍵字注意力的方法來得到實體表示。
5)CNN-BiLSTM+M-head-att+SEMean:使用CNN和BiLSTM 進行文本的信息特征提取,之后使用多頭注意力機制,實體分類時不使用關鍵字注意力的方法,使用結合實體頭尾詞和向量平均化表示的方法得到實體表示。
各個消融模型的實驗結果如表7所示,與BiLSTM+M-head-att+SEKey 相比,本文模型在特征提取時加入CNN 有助于模型識別出真實有效的實體,這得益于不同的卷積核對長度不定的實體進行特征提取時起到了作用。相較CNN-BiLSTM+SEKey,使用多頭注意力機制使得本文模型在準確率和召回率上都有所提高。CNNBiLSTM+M-head-att+Mean 和CNN-BiLSTM+M-headatt+Key 的對比結果表明,單獨使用關鍵字注意力方法來表示實體比向量平均化表示實體的整體性能值略高。CNN-BiLSTM+M-head-att+Mean、CNN-BiLSTM+Mhead-att+SEMean 以 及 CNN-BiLSTM+M-head-att+SEMean 的對比結果表明,在表示實體時加上實體開始結束邊界詞后,模型的正確率都得到提升,且在召回率上提升尤為明顯,說明在表示實體時加上實體邊界詞能夠增強模型識別有效實體的能力。與CNN-BiLSTM+M-head-att+SE Mean 的對比結果表明,本文模型準確率、召回率和F1-Score 都有所提升,說明結合實體邊界詞和實體關鍵字的方法得到的實體表示更準確,且真實有效的實體數量更多,因此得到了更好的效果。

表7 消融模型在GENIA 上的性能指標Table 7 Performance index of ablation models on GENIA %
結合以上結果可知,綜合使用CNN-BiLSTM、多頭注意力機制進行特征提取以及結合關鍵字和實體頭尾詞來表示實體,能夠有效提高模型的性能。
針對目前嵌套命名實體識別方法實體邊界識別不準確、未能對特征信息有效利用的問題,本文提出一種注意力增強的邊界強化分類模型。通過CNN-BiLSTM和多頭注意力捕獲鄰近單詞及上下文的依賴關系,獲得更有效的文本特征,同時結合實體中的關鍵字和實體邊界詞的實體表示方法,強化實體的頭尾信息和主要信息,為實體分類提供更準確的實體表示。后續將研究實體間的依賴關系以及詞語與實體間的語義關系,進一步提升模型識別性能。