念永明,陳艷平,秦永彬,黃瑞章
1.貴州大學 公共大數(shù)據(jù)國家重點實驗室,貴陽 550025
2.貴州大學 計算機科學與技術學院,貴陽 550025
命名實體識別(named entity recognition,NER)是自然語言處理(nature language processing,NLP)中的一項基礎性工作,目標是從句子中提取如人、位置和組織等特定的命名實體。識別命名實體通常被認為是理解一個句子語義的關鍵的第一步,被廣泛應用于支持眾多下游任務,包括關系抽取[1]、機器翻譯[2]、問答系統(tǒng)[3]等。由于句子中的命名實體可以相互重疊,從而導致了它們之間的嵌套結(jié)構。實體的嵌套現(xiàn)象經(jīng)常出現(xiàn)[4],并且實體的嵌套結(jié)構通??梢员磉_實體之間的一些重要的語義信息,如從屬關系、隸屬關系、上下級關系等[5],因此嵌套命名實體的識別引起了廣泛的關注。
不同于傳統(tǒng)的平面實體的識別,嵌套實體由于句子中的一個詞可以同時被多個標簽所標記,所以通常不易采用輸出最大化概率的標簽序列的方式進行識別。很多相關工作采用跨度分類的方法來進行嵌套命名實體識別。跨度分類是識別嵌套的文本提及的一種直接而有效的方式,在識別嵌套命名實體的應用上也取了不錯的成果??缍确诸惖姆椒▽⒕渥拥拿總€子序列視為一個潛在的實體跨度,通過窮舉所有可能的跨度并使用跨度內(nèi)的語義信息對每一個跨度進行驗證,可以方便而有效地識別嵌套實體,同時在識別以往的方法難以識別的較長的實體上也具有優(yōu)勢。然而因為需要窮舉所有的跨度,所以傳統(tǒng)方法存在著計算復雜度較高和數(shù)據(jù)不平衡的問題。并且,句子中的實體普遍存在緊密的依賴關系,即一個實體是依賴于句子中的其他實體出現(xiàn)的。由于傳統(tǒng)的跨度方法對每個跨度的判別是獨立分開進行的,忽視了句子中重要的實體和實體之間的依賴關系。
學習和捕獲實體間的依賴關系,對于輔助和增強實體識別有特別的意義??梢酝ㄟ^如圖1 所示的一個例子來對捕獲實體間依賴關系的重要性進行理解,圖1所示的句子中存在兩個實體,并出現(xiàn)了嵌套的現(xiàn)象,外部是一個DNA 實體,而內(nèi)部是一個蛋白質(zhì)實體。通常DNA 通過控制蛋白質(zhì)的合成來表達遺傳信息,所以在對“Interleukin-2”進行預測時,如果已知“Mouse Interleukin-2 receptor alpha gene”是DNA實體,那么將更有把握將“Interleukin-2”正確識別為蛋白質(zhì)。實體間相互依賴的現(xiàn)象在現(xiàn)實中大量存在,探索一種機制來對實體間依賴進行學習和捕獲,將有助于提供更加豐富的語義信息來支持識別句子中的存在相互依賴關系的實體。
圖1 GENIA數(shù)據(jù)集上實體嵌套的例子Fig.1 Example of entity nesting on GENIA dataset
為此,本文提出一種基于跨度解碼的嵌套命名實體識別方法。首先結(jié)合字符特征、詞性嵌入、詞嵌入向量以及預訓練語言模型輸出的上下文向量對句子進行編碼,獲得句子豐富的語義信息以支持后續(xù)的工作。然后不同于傳統(tǒng)的跨度分類方法對所有跨度進行窮舉,通過先檢測可能的實體開始邊界錨定實體的位置,減少了所需要列舉和驗證的跨度數(shù)量。最后以解碼的形式,逐一識別具有同一開始的嵌套實體,在解碼過程中利用注意力機制關注于已預測的實體信息,并將預測的實體跨度信息和標簽信息進行傳遞。通過以解碼的形式層層傳遞實體跨度信息,可以有效學習實體跨度之間存在的依賴關系。
基于多特征編碼、實體開始邊界檢測以及跨度解碼,本文提出一個編解碼結(jié)構的方法來對嵌套命名實體進行識別,并且以多目標學習的方式加強實體開始邊界檢測和跨度分類任務之間的交互性。本文的主要貢獻如下:
(1)通過檢測實體的開始邊界,錨定實體位置,一定程度緩解了傳統(tǒng)跨度分類方法存在的計算復雜度較高和數(shù)據(jù)不平衡問題。
(2)結(jié)合跨度分類和編解碼結(jié)構的優(yōu)勢,提出了一個基于跨度解碼的方法來識別嵌套實體,在解碼過程中傳遞實體信息,能夠捕獲傳統(tǒng)跨度分類方法所忽視的實體之間的依賴關系。
(3)實驗證明了所提出的方法能夠有效識別英文和中文的嵌套命名實體,并且優(yōu)于以往基于跨度分類的方法。
嵌套命名實體識別的方法可大概歸結(jié)為以下3類:基于序列的方法、基于超圖的方法以及基于跨度的方法。
基于序列的方法將命名實體識別視為輸出句子相對應的最大概率的標簽序列的任務。由于嵌套實體中的單詞可以被多個標簽所標記,所以傳統(tǒng)的序列標注方法并不能直接使用,但是通過將多個標簽進行組合形成新的標簽便可以沿用序列標注的方法來識別嵌套實體,Strakova等人[6]就采用了這樣的方案。但是這種拓展標簽集的方法往往存在標簽稀疏的情況。通過編解碼的方式可以產(chǎn)生與輸入序列數(shù)量不同的實體標簽序列,例如Yan等人[7]提出一種通用的解碼框架可以同時處理平面、嵌套和不連續(xù)實體。還有通過疊加重復使用序列標注模型,也可以對嵌套的實體進行識別,例如:Alex 等人[8]提出為每個實體類型分別用一個CRF進行識別,以及堆疊CRF層以從內(nèi)到外識別嵌套的實體;Ju等人[9]通過堆疊LSTM+CRF 的平面實體識別層,設計了一種深度的神經(jīng)網(wǎng)絡模型來從內(nèi)到外識別嵌套實體;Shibuya和Hovy[10]為每種實體類型訓練一個CRF,先識別最優(yōu)路徑,然后識別其中的次優(yōu)路徑;Wang等人[11]提出一個金字塔狀的嵌套命名實體識別模型,每一層識別特定長度的實體。
基于超圖的方法是通過將句子構造成一個超圖,以此來識別嵌套實體。最初由Lu和Roth[12]提出通過構造超圖來抽取文本中嵌套的提及。后來Muis和Lu[13]在此基礎上,通過標記詞之間的間隙拓展了超圖的構造方法。Katiyar 等人[14]通過使用Bi-LSTM 來對超圖的邊概率進行建模,進一步改進了超圖的表示。再后來,Wang等人[15]提出一種分段的超圖的表示,可以捕獲到之前的方法無法捕獲的特征。
基于跨度的方法通過生成所有可能的跨度并進行分類來識別嵌套實體。最近,Xu 等人[16]試圖通過將每個子序列編碼為一個固定大小的表示,然后直接對一個句子的所有子序列進行分類。Sohrab和Miwa[17]提出了一個深度窮舉的方法,通過枚舉所有不超過特定長度的區(qū)域并通過Bi-LSTM 來學習其表示,然后對區(qū)域進行分類,以此識別嵌套實體。之后Zheng等人[18]通過定位實體邊界并聯(lián)合學習邊界檢測和實體分類任務,改進了深度窮舉的方法。Eberts 和Ulges 使用了預訓練的Transformer 以跨度分類的方式聯(lián)合抽取實體和實體之間的關系[19],預訓練的Transformer在跨度分類方法上的應用,帶來了性能的顯著提升。之后,Tan 等人[20]通過實體邊界檢測器來獲取高質(zhì)量的跨度以過濾大部分的負例。
傳統(tǒng)的基于跨度的方法對于每一個跨度的預測都是獨立進行,對于跨度標簽的預測,僅僅只利用該跨度的信息,即,其中表示第i個詞到第j個詞的跨度,yi,j表示其該跨度對應的標簽。不同于傳統(tǒng)的跨度分類的方法,本文所提出對跨度預測的前提不僅是當前的跨度信息,而且還需要之前的預測的實體跨度信息以及對應的預測的標簽信息,即,其中分別是之前已預測出的實體跨度以及對應的實體標簽信息。并且,本文通過傳遞實體跨度信息和跨度對應標簽信息,利用注意力機制關注于與已經(jīng)預測出的實體跨度信息相關的上下文信息,從而能夠捕獲之前方法所不能捕獲的實體間的依賴關系,并獲取更加豐富的語義信息以支持對實體跨度的預測。
本文所提出的模型由三個模塊組成:多特征編碼、跨度生成和跨度解碼。模型的概況如圖2 所示。多特征編碼模塊對輸入序列進行上下文、詞級、詞性、字符特征的映射然后將多種特征進行融合,以獲得豐富的上下文語義信息支持開始邊界檢測和跨度分類。跨度生成模塊通過邊界檢測器檢測實體開始,然后再從可能開始位置生成潛在的實體跨度??缍冉獯a模塊以解碼的結(jié)構,依次對不同開始位置對應的跨度進行驗證,并且將預測的實體信息傳遞,以幫助識別后續(xù)的實體。下面將對各模塊進行詳細介紹。
圖2 模型結(jié)構圖Fig.2 Model structure diagram
在編碼階段,結(jié)合上下文特征、詞特征、詞性特征以及字符特征對輸入的文本序列進行編碼。主要思想是將特征向量進行拼接,然后使用長短期記憶網(wǎng)絡(long short-term memory,LSTM)來融合多特征以及進一步捕獲序列的上下文信息。
對于一個輸入的文本序列S={s1,s2,…,sn},si表示其中的第i個單詞。通過一個嵌入層(embedding layer)獲得文本序列的多個特征表示,具體過程是:通過預訓練的語言模型獲得S的句子級別的上下文特征表示,通過預訓練的詞嵌入獲得詞級別的特征表示,通過隨機的詞性嵌入映射S中詞的詞性得到詞性特征表示。然后,對于S中的每個詞使用隨機的字符嵌入映射其字符表示,然后對其字符表示使用字符級別的LSTM捕獲詞的拼寫和字符級別的上下文特征,以此獲得序列S的字符特征
將上述的Xs,Xw,Xp,Xc進行向量維度的拼接后,然后通過雙向的LSTM 進行語義融合并進一步提取雙向的上下文信息,得到融合多特征的句子的編碼表示,形式化如下:
上述編碼過程中所使用的LSTM 是一種特殊的循環(huán)神經(jīng)網(wǎng)絡(recurrent neural network,RNN),它具有能夠?qū)W習較長距離依賴的優(yōu)勢。
一個LSTM 單元的組成包括輸入門、遺忘門、更新門和細胞狀態(tài),LSTM 單元的結(jié)構如圖3 所示。LSTM的計算公式如下所示:
圖3 LSTM單元的結(jié)構Fig.3 Structure of LSTM cell
其中,σ是Sigmoid 函數(shù),可以將數(shù)值歸一化到為0 到1之間。it對應輸入門,控制細胞狀態(tài)更新值(由當前輸入xt和前一個隱藏態(tài)ht-1中所得到)中的哪些信息保留在當前細胞狀態(tài)中。ft對應遺忘門,控制遺忘之前細胞狀態(tài)ct-1中的哪些信息。ot對應輸出門,控制當前細胞狀態(tài)ct的哪些信息在當前輸出。
先識別可能的實體跨度開始,然后從可能的開始位置生成可能的實體跨度。首先對文本序列S中的每個詞進行預測:
其中,MLPs為多層感知機(multilayer perceptron),輸出將位置i預測為實體開始邊界的預測概率。Sigmoid層將預測值進行歸一化。當大于一定的閾值,即認為位置i是實體跨度的開始位置。
通過對每個位置預測,得到可能的實體開始邊界集合(b1,b2,…,bm)∈B,m是預測出的開始邊界的數(shù)量。對于每個可能的開始位置,生成不超過預先設置的最大實體長度M的跨度。Ei表示以bi為開始的跨度集合,其中每一個跨度用兩個索引進行表示eij=(bi,bi+j)∈Ei,j=(1,2,…),分別表示其開始和結(jié)束位置。將跨度范圍內(nèi)的對應的單詞的編碼向量進行最大池化,得到跨度的向量表示:
在得到可能的實體跨度集合后,需要對每個跨度進行驗證并預測其類型。不同于傳統(tǒng)方法對每一個跨度分開獨立進行驗證,本文以解碼的方式,使用解碼器在已知之前預測的實體信息的前提下來對當前跨度的類型進行預測。解碼器按先后順序?qū)ν婚_始的跨度集合進行驗證,將預測到實體信息利用LSTM細胞單元進行傳遞,并利用注意力機制關注于已預測的實體信息以獲得具有實體級別語義來支持當前跨度的檢測。
解碼器由一個用于傳遞實體預測信息的隱藏層維數(shù)為d的LSTM細胞單元,和一個用于跨度分類的多層感知機組成。在時間步數(shù)為t時,對從第t個跨度開始bt對應的跨度集合Et進行預測。在每個時間步內(nèi),通過已預測的跨度信息zt-1,上一步LSTM細胞單元的隱藏狀態(tài)和跨度表示對跨度類型進行預測。zt-1用來表示之前預測的實體信息,計算公式如下:
例如:人教版實驗4-5干燥的氯氣能否漂白物質(zhì)的實驗,探討次氯酸的漂白性與二氧化硫漂白性的區(qū)別,可把這些實驗過程中的現(xiàn)象進行錄像,制作成微課.使用微課視頻教學,學生可以直觀觀察演示操作,掌握操作技能,而且實驗現(xiàn)象清晰可見,形象生動,便于學生理解記憶,而且上課不管哪個位置的學生都能仔細觀察實驗過程.
其中,ri表示當t=i時所預測出的實體信息。當t=1時,zt-1初始化為全0。
將實體開始邊界的預測值和真實標簽的交叉熵作為實體開始邊界檢測的損失,公式如下:
然后同樣使用交叉熵作為跨度分類的損失函數(shù),公式如下:
最后將兩個任務的損失相加作為整個模型損失函數(shù):
3.1.1 數(shù)據(jù)集
本文在具有嵌套命名實體標注的公共英文數(shù)據(jù)集ACE2005 和GENIA 上進行實驗。ACE2005 英文和GENIA數(shù)據(jù)集的實體統(tǒng)計結(jié)果如表1所示。
表1 對ACE2005英文和GENIA數(shù)據(jù)集的統(tǒng)計Table 1 Statistics on ACE2005 English and GENIA datasets
(1)ACE2005 英文數(shù)據(jù)集[21]:具有7 類實體,包括了人(PER)、地理位置(LOC)、交通工具(VEH)、政治實體(GPE)、武器(WEA)、組織(ORG)、設施(FAC)。本文跟隨之前大多數(shù)人所采用的Lu 等人的數(shù)據(jù)劃分方式,將數(shù)據(jù)集按80%∶10%∶10%的比例劃分為訓練集、驗證集和測試集。
為確定在實驗中所需要設定的最大實體長度M,對ACE2005英文和GENIA數(shù)據(jù)集上的不同長度的實體數(shù)量進行了統(tǒng)計,統(tǒng)計結(jié)果如圖4所示。
圖4 不同長度的實體數(shù)量統(tǒng)計Fig.4 Statistics on number of entities of different lengths
統(tǒng)計結(jié)果顯示,在ACE2005 英文和GENIA 數(shù)據(jù)集上實體長度越長其對應實體數(shù)量越少,絕大多數(shù)實體長度在實體在15以內(nèi)。
為驗證模型在中文數(shù)據(jù)集上的有效性,文本還選用ACE2005 中文數(shù)據(jù)集進行實驗。ACE2005 中文數(shù)據(jù)集與ACE2005 英文數(shù)據(jù)集具有同樣的實體類型標注,并且同樣按8∶1∶1的比例對數(shù)據(jù)集進行劃分。
3.1.2 實驗指標
實驗采用精確率P(Precision)、召回率R(Recall)和F1分數(shù)作為評價指標,計算公式如下:
其中,TP是正確識別的實體個數(shù),F(xiàn)P是識別錯誤的實體個數(shù),F(xiàn)N是未識別出的正確實體個數(shù)。
3.1.3 實驗參數(shù)
本文的實驗所使用的顯卡型號為NVIDIA A100,編程語言為Python3.8,深度學習框架為pytorch1.8。編碼部分所使用的預訓練詞嵌入來自于FastText[23],維數(shù)dw為300。所使用的詞性嵌入和字符嵌入通過隨機初始化獲得,維數(shù)dp和dc均為100。ACE2005英文數(shù)據(jù)集所使用的詞性標注來自于第三方工具StanfordCorenlp[24],GENIA數(shù)據(jù)集的詞性標注從原始數(shù)據(jù)集獲得。ACE2005英文數(shù)據(jù)集上使用的預訓練語言模型為谷歌官方提供的bert-large-cased 模型[25],GENIA 上使用的預訓練語言模型為biobert-large-cased模型[26],其隱藏層維數(shù)dz均為1 024。在ACE2005 中文數(shù)據(jù)集上由于不能提供字符、詞性、單詞等特征嵌入,編碼部分僅用了基于預訓練語言模型輸出的上下文向量,使用的預訓練語言模型為bert-base-chinese,隱藏層維數(shù)為768。
本文所使用的MLP為3層,隱藏層維數(shù)為輸入維度的一半,使用ReLU 作為激活函數(shù),并具有dropout 層。實驗中的主要超參數(shù)設置如表2所示。
表2 中,Start Threshold 是實體開始邊界檢測的閾值,為了盡可能找全實體的邊界設置得較小。并且,設定最大實體長度M是為降低訓練和預測時的計算復雜度,在進行評估時不會過濾長度大于M的正確實體。
3.2.1 英文數(shù)據(jù)集上的實驗
實體開始邊界的檢測結(jié)果如表3 所示。實驗結(jié)果表明,在ACE2005英文數(shù)據(jù)集上邊界檢測性能較好,F(xiàn)1值為94.11%。但在GENIA數(shù)據(jù)集上,檢測性能不佳,其原因可能是GENIA 上的實體多數(shù)是生物醫(yī)學專有名詞,相當一部分實體的結(jié)構較為復雜和生僻且邊界特征不明顯,所以其邊界檢測較為困難。
表3 實體開始邊界檢測結(jié)果Table 3 Entity start boundary detection results 單位:%
在ACE2005英文和GENIA上的實體識別結(jié)果分別如表4 和表5 所示。實驗結(jié)果表明,本文提出的方法能夠有效識別命名實體。但在ACE2005英文數(shù)據(jù)集上對LOC 類型實體的識別性能較差,原因可能是LOC 實體在數(shù)據(jù)集中出現(xiàn)較少,缺乏相應的學習樣本,模型對該類型實體的學習不夠泛化。在GENIA 上,受限于邊界檢測性能不佳,最終的實體識別性能表現(xiàn)一般。
表4 在ACE2005英文上的實體識別結(jié)果Table 4 Entity recognition results on ACE2005 English 單位:%
表5 在GENIA上的實體識別結(jié)果Table 5 Entity recognition results on GENIA 單位:%
為驗證本文模型的優(yōu)勢和有效性,與其他在英文數(shù)據(jù)集上表現(xiàn)先進的模型進行了對比,如表6所示。
表6 在英文數(shù)據(jù)集上與其他模型進行對比Table 6 Comparison with other methods on English datasets 單位:%
對于表6中所比較的方法,本文均列出他們所報告的最佳性能。其中,文獻[6]、[7]、[9]、[11]為基于序列的方法,文獻[12]、[13]為基于超圖的方法,文獻[17]、[18]、[20]為基于跨度的方法,具體介紹詳見第1 章相關工作部分。對于本文的跨度解碼方法,展示了三種不同解碼結(jié)構的結(jié)果:“正向”是在句子層面上從前往后進行解碼得到的結(jié)果,“反向”是從后往前進行解碼的結(jié)果,而雙向是同時進行前向解碼和后向解碼以后,將兩次得到的預測概率(公式(22)所示)取平均值所得到的結(jié)果。實驗結(jié)果表明,本文所提出的跨度解碼方法具有明顯的優(yōu)勢,比之前的方法在ACE2005 英文和GENIA 上分別將F1值提高了0.45和0.14個百分點。并且正向解碼召回率較高,反向解碼的精確率較高,而結(jié)合了正向和反向解碼的雙向解碼取得最好的F1值。
3.2.2 中文數(shù)據(jù)集上的實驗
為驗證本文模型對中文嵌套命名實體識別的有效性,在ACE2005 中文數(shù)據(jù)集上進行了實驗并與其他用于中文嵌套命名實體識別的模型進行對比,結(jié)果如表7所示。其中“ShallowBA”模型是使用了邊界信息的跨度分類模型,它采用CRF識別實體的開始和結(jié)束邊界并將邊界組合為候選實體,然后使用最大熵分類器對實體候選進行分類[27]?!癈ascading-out”模型對每個實體類型使用獨立的BERT-Bi-LSTM-CRF模型來進行識別,如果遇到相同類型的嵌套實體,則只識別最外層的?!癓ayeringout”模型用兩個獨立BERT-Bi-LSTM-CRF 模型分別識別最內(nèi)層和最外層的實體?!癗NBA”模型是采用了先進的神經(jīng)網(wǎng)絡模型BERT,bi-LSTM 等對“ShallowBA”進行改進的版本[4]。實驗結(jié)果表明,本文所提出的模型(雙向)在對中文嵌套命名實體識別方面也具有顯著優(yōu)勢,比以往的方法在F1分數(shù)上提升了4.32個百分點。
表7 在ACE2005中文數(shù)據(jù)集上與其他模型進行對比Table 7 Comparison with other methods on ACE2005 Chinese 單位:%
為驗證本文所使用的基于注意力機制的解碼器的有效性,在ACE2005英文上進行了消融實驗,實驗結(jié)果如表8所示。默認是本文所提出模型(正向結(jié)構),在移除注意力機制后F1 分數(shù)下降了0.21 個百分點,在完全移除解碼器后F1 分數(shù)下降了0.36 個百分點,這證明了基于注意力機制的解碼器的有效性。
表8 在ACE2005英文上的消融實驗結(jié)果Table 8 Results of ablation experiments on ACE2005 English 單位:%
解碼器將已預測實體的跨度語義信息用于計算上下文注意力分數(shù),并且作為關鍵的語義信息通過LSTM單元的進行傳遞,這樣有效利用和傳遞了實體的跨度語義信息,使得預測的精確率明顯提升。但實驗結(jié)果也表明,傳遞和利用實體跨度語義的機制仍有較大的改進空間,探究更有效地傳遞和利用跨度語義的機制,可以更好地學習實體間依賴,促進命名實體識別性能的提升。
本文提出了一種基于跨度解碼的嵌套命名實體識別方法,首先將句子的不同的特征信息進行編碼,然后識別開始邊界,最后以解碼的形式逐一識別同一開始的嵌套實體,并在解碼過程中傳遞實體信息并利用注意力機制關注與已預測實體相關的上下文信息,這有效緩解了傳統(tǒng)跨度分類方法對實體間依賴存在忽視的問題。實驗結(jié)果表明,該方法比傳統(tǒng)的基于跨度的方法在識別性能上有明顯的優(yōu)勢。
在未來的工作中,將嘗試捕獲更加全面的實體間的依賴信息,比如現(xiàn)階段還未考慮到的同一開始的不同實體之間的依賴關系。并且,未來將探究更加充分有效地利用和傳遞跨度語義的機制,以更好地學習實體間的依賴關系。