謝斌紅,李書寧,張英俊
(太原科技大學 計算機科學與技術學院,太原 030024)
命名實體識別(Named Entity Recognition,NER)是一種規范的信息抽取任務,旨在從給定的文本中識別出所包含的命名實體并給其分配預定義的語義標簽(如person、location和organization 等),在關系抽取[1]、實體鏈接[2]、問答系統[3]和知識庫構建[4]等多種自然語言處理任務中發揮著重要的作用。
隨著深度學習的興起,各種深度學習模型和預訓練語言模型被應用到NER 系統,并分別從輸入的分布式表示、上下文編碼和標簽解碼三方面提升系統性能。輸入的分布式表示主要經歷了三個階段的發展:1)單詞級的詞向量表示,如Word2vec、GloVe(Global Vectors for word representation)[5]和FastText[6]等;2)字符級的詞向量表示,如Peters等[7]提出的字符級語言模型ELMo(Embeddings from Language Models),它能夠隨著上下文動態生成不同的詞嵌入向量;3)單詞級和字符級的混合表示,如Devlin等[8]基于混合表示提出了一種語言表示模型BERT(Bidirectional Encoder Representations from Transformers)。上下文編碼主要使用卷積神經網絡(Convolutional Neural Network,CNN)、循環神經網絡(Recurrent Neural Network,RNN)和長短期記憶(Long Short-Term Memory,LSTM)網絡[9]等作為輸入文本的特征提取網絡。而標簽解碼以編碼器對文本進行上下文編碼后的語義信息為輸入,生成與輸入序列對應的標記序列,常見的標簽解碼器有條件隨機場(Conditional Random Field,CRF)、多層感知機(Multi-Layer Perceptron,MLP)和Softmax 函數。
NER 任務在理論研究和實驗效果上已經較為成熟,但是在實際場景中卻凸顯出一系列問題,如傳統的NER 任務僅能識別粗粒度(如人名、地名、組織機構名等)標簽類別,而無法滿足更精細類別標簽分類的要求,這就需要通過對現有的實體類型體系進行擴充,將命名實體分配到更細粒度標簽類別中。細粒度的實體標簽將提供更加豐富的語義信息,為關系抽取等下游任務提供幫助,因此,更多的學者將研究方向轉向細粒度實體分類。
細粒度實體分類(Fine-Grained Entity Typing,FGET)是在一段已知實體的文本中,結合上下文語境給實體指定一個或多個具有層級結構的實體類型。如在“Yao Ming is an excellent basketball player,playing for the Houston Rockets.”這個句子中“Yao Ming”為實體,根據其所在的上下文為其分配的實體類型為“/person/athlete/basketballer”,然而在傳統的命名實體識別任務中,只能將其分類為“/person”類型。在近年來的細粒度實體分類研究中,許多研究人員將研究重點聚焦于更好提取實體和上下文的特征,并在分類時簡單將其建模為多標簽分類問題,平等對待所有實體類型,而忽略了實體類型所具有的層次結構信息,這樣很容易產生模型輸出違反標簽層級結構的問題。因此,如何在FGET 任務中利用實體類型標簽之間的層次結構信息成為了提升模型性能的突破點,也成為了該任務研究的熱點。
為了解決上述問題,一些學者開始探索如何將實體類型標簽所具有的層次結構信息融合到FGET 任務中,進一步提升模型的分類性能。Ren等[4]認為語義信息更接近的類型往往更相關,為此提出了自適應邊界排序損失,讓語義相似的實體類型之間有更短的路徑,但這種方法只能將語義信息相似的標簽進行聚類,而未能充分融合標簽的層級信息。Xu等[10]提出了層次損失歸一化函數,該函數懲罰了違反實體類型層級的輸出,可以使模型在一定程度上融入預定義的實體類型層次結構信息。Lin等[11]為了捕獲標簽類型之間的相互依賴關系,提出了一個包含類型潛在表示的混合模型,該模型學習預測了一個通過標簽空間轉換獲得的潛在類型特征的低維向量,并從這種潛在表示中重構稀疏和高維類型向量,但該方法沒能充分捕獲實體類型的語義信息導致不能得到更好的實體特征表示。Chen等[12]提出了利用標簽類型層次結構信息的多層級排序學習方法,在給定實體的條件下對候選實體類型進行排序,因為對于類型層次樹的每個層級分類難易程度不同,細粒度的實體類型相較于粗粒度的實體類型更難分類,所以該方法提出了一個由粗粒度標簽到細粒度標簽的解碼器,通過對每個層級設置不同的邊距參數來適應不同層級的分類,保證模型的輸出不違反標簽之間的層級關系,從而得到更準確的標簽輸出。
綜上所述,目前的研究工作通過相同語義的標簽進行聚類,標簽空間轉換得到潛在類型特征的低維向量,設置不同層級的分類器等方法來感知標簽之間的層級關系,取得了可觀的性能表現,但仍沒能真正將類型層次信息融合到模型分類學習和推理過程中。為此,本文提出一種基于層次結構感知的細粒度實體分類(Hierarchy-Aware Fine-Grained Entity Typing,HAFGET)方法,該方法首先使用圖卷積網絡(Graph Convolutional Network,GCN)對實體類型層次結構構建層次結構感知模型,然后分別用實體標簽信息和實體信息作為層次結構感知模型的輸入,使最終的實體表示具有層次結構信息,為最終的分類提供更好的表示。本文在三個公共數據集驗證了所提的層次結構感知細粒度實體分類方法的有效性。
HAFGET 方法的整體框架如圖1 所示。HAFGET 方法的整體框架包括三部分:輸入層、實體信息編碼層和層次結構感知信息融合層。在層次結構感知信息融合層中提出了基于層次結構感知的細粒度實體分類多標簽注意力(Hierarchy-Aware Fine-Grained Entity Typing Multi-Label Attention,HAFGET-MLA)模型和基于層次結構感知的細粒度實體分類實體特征傳播(Hierarchy-Aware Fine-Grained Entity Typing Mention Feature Propagation,HAFGET-MFP)模型,兩種層次結構感知模型以不同的方式對實體和實體上下文特征進行層次結構感知和分類,二者區別在于前者可以融合實體類型特征的信息。
HAFGET 方法的學習過程分為三個步驟:
步驟1 通過預訓練語言模型ELMo 獲得輸入文本對應的詞向量。
步驟2 使用不同的方法對生成的文本詞向量按實體和實體上、下文三部分分別進行特征提取和融合,獲得最終的實體特征表示。
步驟3 使用層次結構感知信息融合層對最終的實體特征進行處理,使其特征融合實體類型及其層次結構信息,該部分分為兩種方法:1)將實體表示和通過層次結構編碼器編碼的標簽類型表示運用注意力機制進行特征融合,最后通過標簽解碼層獲取其對應的實體類型;2)將實體的最終實體特征表示輸入到層次結構編碼器使其最終表示融合實體類型層次結構信息,最后通過標簽解碼層獲取其對應的實體類型。
本文使用Peters等[7]提出的動態預訓練詞向量ELMo 來捕獲實體和上下文語義信息并生成詞的嵌入向量,由于ELMo 是字符級信息嵌入表示,所以能更好地表示實體和實體的上下文特征。在文本信息編碼層中,把句子分成實體和實體上、下文三部分進行編碼,其中實體嵌入表示m=(w1,w2,…,wM),實體左邊文本嵌入表示cl=(w1,w2,…,wL)和實體右邊文本嵌入表示cr=(w1,w2,…,wR),其中wi∈Rdw,M表示實體的長度,L和R分別表示實體左右文本的長度,句子的長度表示為dS=M+L+R。
實體信息編碼層包括實體和實體上下文信息的編碼,將其對應的特征向量輸入到實體信息編碼層可得到最終的實體特征表示。
1.2.1 實體表示
由于實體中的每個單詞對實體分類結果作用不同,受Lin等[11]的啟發,在實體表示上使用注意力機制學習不同單詞的重要程度。具體實體嵌入表示m的計算如式(1)所示:
其中:ai是實體中第i個字符對實體表示的注意力權重系數;We∈和va∈Rda是可訓練參數,這樣相對簡單的實體表示可以防止模型過擬合。
1.2.2 實體上下文表示
在實體的上下文表示中,引入了Zhang等[13]提出的實體上下文注意力,將實體向量m作為查詢向量,采用Luong等[14]提出的乘法注意力得到實體上下文特征向量c,因為實體左、右上下文的注意力系數計算方式類似,所以只給出了左邊上下文注意力系數,具體計算如式(3)~(5)所示:
實體類型層次結構表征了實體類型之間的依賴關系及整體層次結構,其中實體類型依賴關系用實體類型之間的先驗概率表示,層次結構基于語料庫預定義。
1.3.1 構建實體類型層次結構
其中:P(va∩vb)是指{va,vb}同時發生的概率;Na、Nb為標簽在數據集中出現的次數,并且對于節點va的所有子標簽的條件概率之和為1。
圖2 是OntoNotes 數據集中部分標簽的有向無環圖結構,其中從“ROOT”節點到“organization”“location”“person”“other”四個子節點的先驗概率和為1,由于上述四個節點的子節點眾多,所以第三層僅顯示了部分標簽。
1.3.2 層次結構信息編碼器
圖卷積網絡(GCN)被廣泛用于編碼聚合層次結構分類中的節點信息[15],為了充分利用實體類型的層次結構信息,本文使用GCN 作為結構編碼器,提出了基于細粒度層次結構的圖卷積網絡模型,對實體類型標簽間的層次關系進行建模。
細粒度層次結構的圖卷積網絡對上文構建的實體類型層次結構有向圖進行編碼,得到了編碼后細粒度層次結構信息,具體來說,實體類型va的特征是基于相鄰節點的特征來編碼的,假設節點va相鄰節點表示為N(va)={va,child(va),parent(va)},則其特征表示hva計算如式(7)~(9)所示:
1.3.3 實體類型層次結構感知器
在構建好層次結構編碼器的基礎上,本文采用HAFGET-MLA 模型和HAFGET-MFP 模型來感知實體類型層次結構信息。前者將實體類型的特征向量作為輸入,通過層次結構編碼器后獲得具有實體類型層次結構信息的實體類型特征;后者則是將實體特征作為輸入后得到具有實體類型層次結構信息的實體特征。
HAFGET-MLA 模型是在You等[16]的多標簽注意力機制基礎上提出的,具體是將實體特征與經過層次結構編碼器編碼的實體類型特征進行融合,融合后的特征Z計算如下:
其中:實體特征S是通過兩層前饋網絡映射到類型空間S∈RD×dim,使用層次結構編碼器的隱藏狀態向量作為標簽表示。將最終的實體特征Z映射到低維向量后輸入到分類器中預測。
HAFGET-MFP 模型受Duvenaud等[17]啟發,該模型利用圖神經網絡獲得局部節點的相關性和整體圖結構,并在整個層次結構中傳播實體特征,使其實體的表示融合實體類型層次結構信息。將實體特征S作為編碼器的輸入,并通過具有層次結構感知的結構編碼器更新實體特征,計算公式如下:
其中:M∈是可訓練的權重矩陣;S∈是實體特征的表示;Z∈RN×dim是層次結構編碼器的輸入。實體經過層次結構編碼器編碼后得到具有實體類型層級結構特征表示,將編碼器的隱藏狀態輸出h作為分類器的輸入,最終得到實體的分類結果。
由于HAFGET-MFP 模型在文本信息上進行了轉化,不需要標簽嵌入向量的融合,結構編碼器在訓練和驗證過程中更新參數,用于傳遞跨層次結構文本信息,收斂速度更快,但是相較于HAFGET-MLA 模型有較高的計算復雜度。
經過編碼得到最終的層次結構感知特征之后,輸入到一個全連接層進行實體類型標簽預測,模型的損失函數是遞歸正則損失函數和二元交叉熵損失函數的組合,損失函數計算如式(12)~(14)所示:
其中:Lr是遞歸正則損失函數;Lq是用于多標簽分類的二元交叉熵損失函數;λ是訓練過程中可學習的參數;Ti是對應該實體的正確標簽是模型輸出的標簽。在測試階段,將≥0.5 類型輸出,如果預測的所有概率<0.5,則將其中概率最大的標簽類型輸出。
為了驗證模型的有效性和泛化能力,本文遵循Xin等[18]使用以下三個公開數據集對HAFGET 的性能進行評估。數據集中訓練集、驗證集和測試集的樣本分配情況,以及標簽數量、標簽層數和每一層的標簽數如表1 所示。其中L1、L2、L3 分別對應標簽第1、2、3 層級的標簽數。

表1 數據集統計信息Tab.1 Dataset statistics
1)FIGER 數據集[19]。該數據集于2012 年發布,從Wikipedia 的文章中抽取得到訓練數據和驗證數據,通過把Wikipedia 的標識符映射到Freebase 中自動生成。FIGER 數據集是一個兩層的分類體系,使用113 個類型標注了實體。包含來自維基百科的270 萬個自動標注的訓練實例和來自新聞報道的434 個人工標注的句子。
2)KNET(dataset)數據集[18]。該數據集是在FIGER 數據集的基礎上從Wikipedia 派生的數據集。它由一個運用遠程監督自動標注(WIKI-AUTO)的子集和一個人工注釋(WIKIMAN)的測試集組成。數據集包含74 種細粒度實體類型,實體類型層級為2 層。
3)OntoNotes 數據集。該細粒度的實體類型數據集來自OntoNotes 語料庫,并由Gllick等[20]選擇了其中新聞語料作為遠程監督細粒度實體分類的數據集,文檔共13 109篇,其中77 篇作為測試集由人工標注。數據集包含87 種細粒度實體類型,實體類型層級為3 層。
本文采用了與Lin等[11]相同的評價標準,即通過準確率(Acc)、宏平均F1 值(F1Macro)和微平均F1 值(F1Micro)來評價HAFGET 的性能。對于第i個句子中的實體,模型預測的標簽結果為,該實體的真實標簽類型為Ti。
準確率(Acc)的計算如式(15)所示:
宏平均F1 值是由宏平均準確率和宏平均召回率計算得到,具體計算分別如式(16)~(18)所示:
微平均F1 值是由微平均準確率和微平均召回率計算得到,具體計算分別如下所示:
本實驗中使用的相關參數設置主要根據經驗設定,具體的實驗參數設置如表2 所示。

表2 參數設置Tab.2 Parameters setting
為了驗證HAFGET 在細粒度實體分類任務中的有效性,本文在2.1 節的三個公開數據集上對HAFGET 的性能進行了評估,并與以下幾種主流模型進行對比:
1)基于知識注意力機制的神經細粒度實體分類(Knowledge-attention Neural fine-grained Entity Typing,KNET)模型[18]。KNET 模型是將知識庫的信息引入特征向量,同時利用了實體注意力(Mention Attention,MA)機制、知識注意力(Knowledge Attention,KA)機制和消除歧義的知識注意力(Knowledge Attention with Disambiguation,KAD)機制來提取實體特征。
2)使用潛在類型表示的細粒度實體分類模型[11]。該模型首先預測一個低維向量,并通過潛在標簽空間對其轉換獲得潛在類型特征,然后利用從該特征表示中重構的稀疏高維類型向量對實體類型進行預測。
3)基于多級學習排序的層次實體分類模型[12]。該模型多級標簽排序學習給定了實體的候選實體類型,并且保證預測不違反層次結構屬性。還提出了exclusive 和undefined 兩種實體類型標注方法:exclusive 表示數據集預定義的層次結構中不包含其實體類型(修改數據集的標簽,每個根節點下后添加一個“/other”節點表示不屬于其類型);undefined 表示不修改數據集的預定義層次結構。
表3~4 是在KNET(dataset)數據集的不同測試集上的實驗對比結果,WIKI-MAN 是人工標注的測試集,與WIKIAUTO 自動標注的測試集相比,其實體標簽的標注粒度更細,模型預測難度更大。從實驗結果可以看到,本文提出的MLA 模型和MFP 模型在F1Macro和F1Micro上均高于對比模型,特別地,在WIKI-AUTO 數據集上與文獻[11]模型相比,MLA、MFP 模型的準確率分別提高了2.9、2.4 個百分點。此外,在WIKI-AUTO 數據集上,MLA 模型比MFP 模型在準確率指標上提升了0.5 個百分點。由此可知,實體類型標簽信息的融合豐富了模型的分布式表示,通過圖卷積網絡對實體類型的層級關系進行建模,充分利用實體類型之間的相互依賴,可以幫助模型更好地對實體進行細粒度標簽的分類。

表3 WIKI-AUTO數據集上的實驗結果 單位:%Tab.3 Experimental results on WIKI-AUTO dataset unit:%

表4 WIKI-MAN數據集上的實驗結果 單位:%Tab.4 Experimental results on WIKI-MAN dataset unit:%
表5 是在OntoNotes 數據集上的實驗結果,其中,文獻[11]模型的實驗結果明顯高于本文模型,這是因為文獻[11]中所使用的訓練集數量是本文所用訓練集的10倍,隨著訓練數據量越大,模型性能通常也會越好。由于文獻[11]未公開處理數據集,所以本文的測試結果不能與其進行公平對比。除文獻[11]模型之外,本文模型在3 個評價指標上均達到了最優性能,與基于多級學習排序的層次實體分類模型[12]相比,MLA 模型的F1Macro最少提升了8.3 個百分點。OntoNotes 數據集相較于KNET(dataset)數據集,其實體類型和層次結構更多,在這種復雜場景下,本文模型仍能對實體準確分類,展現出較好的性能。

表5 OntoNotes數據集上的實驗結果 單位:%Tab.5 Experimental results on OntoNotes dataset unit:%
在FIGER 數據集的測試結果如表6 所示,MLA 模型在3個指標上均優于文獻[11]模型;與文獻[12]模型(exclusive)、文獻[12]模型(undefined)相比,MLA 模型的F1Macro值提升了至少3.6 個百分點;但是文獻[12]模型(exclusive)的準確率最高,這是因為該模型改變了數據集標簽層次結構,在每一個子樹上都添加了“/Other”節點,每個未分類的實體都會給定一個“/Other”節點,因而其準確率最高。相較于KNET(dataset)數據集和OntoNotes 數據集,本文模型在FIGER 數據集上實現了最好的性能表現,Acc、F1Macro和F1Micro最高分別達到了66.9%、86.2%和82.2%。FIGER 數據集訓練數據量較大,實體類型多達113種,這說明隨著訓練數據量的增加,本文模型有潛力準確分類出更多更細粒度的實體類型。

表6 FIGER數據集上的實驗結果 單位:%Tab.6 Experimental results on FIGER dataset unit:%
此外,本文將文獻[11]模型作為基線模型(baseline),在WIKI-AUTO 數據集上對本文提出的基于層次結構感知的多標簽注意力模型(HAFGET-MLA)進行了消融實驗,以詳細考察HAFGET-MLA 中各個模塊組件對整體性能的貢獻,實驗結果如表7 所示。通過分析可以得出結論,添加到模型中的每個關鍵組件都對模型性能的提高做出了積極貢獻。其中,添加層次結構感知的注意力模塊使準確率提升了2.9 個百分點,對模型性能影響最大,說明附加類型標簽之間的層級結構信息作為先驗知識,對分類標簽起到一定的約束作用;同時通過注意力機制將其與實體特征融合,進一步豐富了實體表示,因而提高了性能;同樣地,使用GCN 編碼學習標簽之間的層級關系并增加先驗概率都對模型起到了積極作用。

表7 在WIKI-AUTO數據集上的消融實驗結果 單位:%Tab.7 Ablation experimental results on WIKI-AUTO dataset unit:%
最后,為了更直觀地證明添加注意力模塊的有效性,對添加注意力后的實體(表8)特征做了可視化表示,實體特征和實體類型特征融合后的注意力權重熱力圖如圖3 所示。圖3 中的左縱軸S1~S6 表示6 條輸入句子中的實體,對應句子中的實體(表8 中加粗標識)和標簽,右縱軸表示句子中的實體與每個標簽的語義相似度,顏色越深表示與該標簽的相似度越大。從圖3 中可以看到,在融合實體類型層級結構后能加強實體正確標簽的表示,為其分配更高的權重并成功預測出了句子中實體的正確類型。

表8 句子及所對應的標簽Tab.8 Sentences and corresponding labels
本文提出了一種基于層次結構感知的細粒度實體分類模型HAFGET,將預定義實體類型層次結構和先驗概率先驗層知識作為圖卷積網絡層次結構編碼器的輸入,通過感知層次信息與實體特征的融合提升了實體分類性能,并在多個數據集上對模型的性能進行了評估。實驗結果驗證了該模型在細粒度實體分類任務中的有效性,表明了充分利用標簽本身所具有的層級結構信息對細粒度實體分類的性能提升有很大幫助,但是對于標簽層次不明確的數據集上性能提升比較小,說明標簽層次劃分的好壞對實驗結果有較大影響。接下來的研究工作期望基于數據集的降噪和標簽層次結構的分類,更好地提升細粒度實體分類模型的性能。