祁鵬年,廖雨倫,覃 飆
(中國人民大學 信息學院,北京 100872)
命名實體識別 (NER) 作為獨立的信息抽取工具,被廣泛應用于各種自然語言處理應用中,如機器翻譯[1]、文本理解[2,3]、信息檢索[4,5]、問答系統(tǒng)[6]以及知識圖譜[7]等.而且它在推動自然語言處理技術落地實踐的過程中也占著非常關鍵的地位.下面是比較常見的應用場景:
1) 機器翻譯
在機器翻譯[1]過程中,像人名、地名、機構名以及專有名詞等命名實體的翻譯通常會根據(jù)特定的翻譯規(guī)則,如中文名翻譯成英文時先要把名字轉化成拼音然后再調換姓和名的順序.但對非命名實體單詞的翻譯則不需要添加額外的規(guī)則.可見,正確識別命名實體對機器翻譯而言至關重要.
2) 知識圖譜
知識圖譜[7]主要由頭實體、尾實體、關系及屬性和屬性值組成.顧名思義,知識圖譜中的實體也在命名實體所涵蓋的范圍之內,所以實體不僅是知識圖譜中最基本的組成元素,其抽取任務也是構建知識圖譜的關鍵一步,所以命名實體識別的質量與知識圖譜的質量息息相關.
3) 問答系統(tǒng)
在問答系統(tǒng)[6]中能否準確的識別出問題的各個組成部分及問題所屬的領域和相關概念是影響后續(xù)任務的必要條件,這也是問答系統(tǒng)所面臨的重點和難點.在分析問題時首先需要對用戶輸入的問題進行命名實體識別,抽取出問題所包含的實體,然后進一步使用關系分類、句法解析、指代消歧在內的其他自然語言處理任務,以便準確把握用戶的意圖.可見在問答系統(tǒng)中命名實體識別的重要性.
4) 語義網絡
語義網絡一般是由概念、實例以及對應關系組成.而語義網絡中的實例一般是指命名實體,所以構建語義網絡之前,命名實體識別是一個基礎性的工作.
命名實體一般是指從預定義語義類型的文本中識別出有特殊意義或有很強指代性的名詞(如人名、地名、機構名、時間和日期等).顧名思義,中文命名實體識別就是將中文文本中的上述實體抽取出來.然而,命名實體識別任務一開始是為英文文本而設計.但隨著自然語言處理技術的不斷發(fā)展,開始逐漸應用于其他語言文本中.由于英語和其他語言之間存在的差異,無法將其算法完全適配到其他語言文本中,因為英文中帶有明顯的形式標志,所以識別實體相對更加容易.與之相比,中文句子則由連續(xù)的漢字組成,實體本身也無明顯的形式特征,識別難度更大面臨更多問題.目前尚無系統(tǒng)介紹中文命名實體識別的研究成果發(fā)表,鮮有的工作也是圍繞著英文命名實體識別展開,并以不同時期的技術發(fā)展為主線對現(xiàn)有的工作進行概述,沒有從模型層面進行深入分析,對基于深度學習的方法介紹過于籠統(tǒng).
近年來,命名實體識別技術不斷發(fā)展,從基于規(guī)則的傳統(tǒng)研究方法[8]到非監(jiān)督學習[12],再從非監(jiān)督學習到基于特征工程的監(jiān)督學習[13]方法,最后到基于深度學習的研究方法[9-11].具體來說,基于規(guī)則的命名實體識別方法,將手工規(guī)則與實體庫相結合并根據(jù)二者之間的相似性來做實體類型判斷.基于無監(jiān)督學習的方法通常利用統(tǒng)計模型來做命名實體識別,比如使用聚類算法將聚類組中上下文的相似性進行對比來識別命名實體.基于特征的監(jiān)督學習方法,先從標注的數(shù)據(jù)樣本中提取特征并利用這些特征來學習模型,然后從未標注的數(shù)據(jù)中識別出學習過的模式.基于深度學習的方法,憑借最優(yōu)越的性能占據(jù)目前研究的主導地位,它利用向量化表示和深度神經網絡處理,能夠從大量訓練樣本中自動學習隱藏的特征.對中文命名實體識別而言,傳統(tǒng)研究方法使用較少,主要圍繞深度學習技術展開.所以本文將基于深度學習的CNER做了分類,根據(jù)不同的增強方法將其分為數(shù)據(jù)和結構增強兩大類,對每個分類做了更細粒度的劃分.
本文主要介紹了基于深度學習的CNER相關模型、數(shù)據(jù)集、評價標準及性能.第1節(jié)對該領域已有的方法進行了系統(tǒng)歸納,并提出了系統(tǒng)的分類方法.第2節(jié)主要介紹了用于測評CNER性能的相關數(shù)據(jù)集,并對4大常用數(shù)據(jù)集(OntoNotes 4.0、MSRA、Weibo、Resume)進行重點介紹,也分析比較了近期提出的新數(shù)據(jù)集.第3節(jié)討論了模型的評價標準.第4節(jié)分析和對比了不同時期的經典模型.第5節(jié)探討了CNER任務當下存在的挑戰(zhàn)以及未來的發(fā)展機遇.
在當下的CNER領域中,傳統(tǒng)的研究方法使用較少,主要是基于深度學習的方法占據(jù)主導地位,而近些年陸續(xù)提出的模型也都是基于深度學習的.如圖1所示,本文將基于深度學習的CNER方法分為3類,分別是數(shù)據(jù)增強和模型結構增強,以及二者同時增強.然后對每一類中的方法進行更細粒度的剖析.
圖1 基于深度學習的CNER方法分類Fig.1 CNER method classification based on deep learning
1) 基于字詞的方法
字符級表示對英文文本而言可以有效處理前后綴信息,而對中文文本來說也可以有效避免分詞不準確導致的模型傳播錯誤.文獻[20-22]指出,在中文命名實體識別系統(tǒng)中基于字符級表示的方法比基于詞級表示的方法效果更好.其中,He等人[20]針對中文分詞和命名實體識別任務提出了一種基于字符的條件隨機場模型,分別對比了字符級表示、詞級表示以及詞級表示加詞性特征的中文命名實體識別任務,結果表明基于字符表示方法的效果最好.Zhang等人[25]使用輸入的字符級表示并結合了分詞和語法解析,實驗表明基于字符的特征可以顯著提高中文句法分析的準確性.Chen等人[23]將中文命名實體識別視為一個字符序列標注問題,構建了一個基于條件隨機場(CRFs)的命名實體識別系統(tǒng),其中包含基本的特征和基于條件隨機場的附加特征.Lu[24]等人認為,字的使用非常靈活,每個字在不同的詞中可以有不同的意思,通過對每個字符使用一個固定的表示很難完全捕獲字符的意義.因此,提出了一種多原型字符表示方法,該方法在給定輸入句子的情況下,可以同時做預測字符表示和字符語義.實驗結果也表明,字符的多原型表示在中文命名實體識別任務上比單原型基準有更好的表現(xiàn),而且多原型字符表示模型也成為了當時最先進的模型.Dong等人[26]將BiLSTM+CRF架構引入到CNER任務中,并使用了字符和部首級聯(lián)合表示的方法,模型最終取得了不錯的性能.
文獻[14-16]中則采用了詞級表示,使用無監(jiān)督算法對大量英文文本進行預訓練,并將預訓練好的詞嵌入作為輸入,然后在NER模型訓練時進行固定或進一步微調即可.這類方法的典型代表如連續(xù)詞袋(CBOW)和連續(xù)skip-gram模型[18],而文獻[17,19]也進一步證明了預訓練詞嵌入的重要性.目前,在中文命名實體識別模型的訓練中,主要也是采用字符或詞向量模型的預處理方法.以字符向量作為神經網絡的輸入不能使用單詞的語義并且要放棄單詞的顯式邊界信息,而以單詞向量作為神經網絡的輸入則依賴于分割算法的準確性.因此,選擇什么樣的表示方式,這取決于不同文本的語言特征和具體的應用場景,也有研究將字和詞的表示結合起來取得了很好的效果.Liu等人[21]使用序列標注的方法,研究了在中文命名實體識別任務中字符級和單詞級表示應該采用哪一種表示粒度.結果表明,根據(jù)附加知識庫的規(guī)模應該采用不同的方法.在相關知識不足的情況下,基于字符的方法適用于具有相同特征的姓名和地點的識別.在特征數(shù)量足夠的情況下,基于詞的模型對NER任務來說更有效.而且,基于詞的NER模型在使用更有用的全局知識特征(如人名、地名等)的情況下,可以達到更好的效果.
由于字詞表示都有其各自的優(yōu)勢與缺陷,所以有些方法使用字詞融合的思路來取長補短.Ye等人[27]提出了一種基于字詞向量融合的CNER模型CWVF-BiLSTM-CRF,該模型先利用Word2Vec得到字詞向量和字詞向量對應的字典.然后將字詞向量集成到BiLSTM網絡的輸入單元中,并利用CRF解決標簽序列不合理的問題.文中指出,該模型可以有效減少對分詞算法精度的依賴,并能有效地利用詞的語義特征.
2) 基于詞典的方法
在基于字符表示的基礎上融合中文分詞信息已成為中文命名實體識別方向的研究熱點,此類方法以中文更有效的字符表示為基礎,盡可能多的融合其他外部信息來豐富所表示的特征,而且已有的大量工作表明借助外部詞典信息可以有效提高中文NER的性能.因此,本節(jié)歸納了結合外部詞典來做中文命名實體識別的系列工作.首先,介紹此類工作的開山鼻祖Lattice-LSTM[28],然后深入剖析了它的各種變體,最后做全面的分析.
外部資源信息已被廣泛應用于命名實體識別任務中,特別是詞典信息的使用,文獻[34-37]中均使用詞典信息來增加NER.LSTM已成為NER任務中序列建模的主要選擇,但其受到基本架構的限制,只允許嚴格順序的信息傳播,因此Tai等人[29]將LSTM架構擴展成了基于樹形結構的Tree-LSTM,如圖4所示,該模型結構不僅可以支持多種網絡拓撲而且每個根節(jié)點都可以融合其子節(jié)點的信息.已有的工作[28,30-33]中都使用Tree-LSTM結構來構建模型并取得了很好的效果.
Zhang等人[28]基于Tree-LSTM結構設計了一種中文命名實體識別模型,該模型是基于詞典的中文NER的開山之作,此后有一系列的優(yōu)秀工作都是在此基礎上的展開.該模型使用當時英文NER中表現(xiàn)最好的LSTM-CRF[108]模型作為主要的網絡架構.文中同時構建了基于字符和詞以及Lattice結構的中文NER模型.其中,基于字符的模型使用的是BiLSTM+CRF架構,而且在字符表示的時候分別融入了二元語法(bigrams)信息和標簽分割信息.而基于詞的模型則是在詞表示的基礎上添加了詞中所包含字的表示,也就是將字詞表示相融合,并且文中對詞中所包含字符的表示使用了3種不同的表示方法:第1種是使用一個雙向循環(huán)神經網絡來做字符的表示;第2種則為每一個字符使用一個單獨的BiLSTM來獲取前向和反向的特征;第3種是在每個詞的字符序列上使用標準的CNN結構來獲得其字符表示.而基于Lattice[28]的NER模型首先通過自動分割大量的原始文本構建詞典,然后將所有的輸入字符序列一同去字典中匹配相關的詞.該模型以字符表示為基本結構,但是與基于字符模型不同的是需要考慮句子中的詞在詞典中對應的詞序列,并在句子開始時候會使用一個細胞(Cell)來表示在詞典中查到的詞在RNN中的狀態(tài).實驗結果表明:與單純基于字和詞的LSTM-CRF[108]相比,Zhang等人提出的方法在4個數(shù)據(jù)集上的表現(xiàn)都非常優(yōu)異,而且Lattice模型不受分詞結果的困擾,可以自由選擇詞典中的匹配詞.
Yang等人[65]的研究結果表明,LSTM由于本身的門結構特征,有時錯誤的路徑選擇會使得Lattice-LSTM模型[28]退化成基于詞表示的模型,而詞模型面臨著詞邊界檢測錯誤的影響,這種情況下Lattice-LSTM就失去了結構優(yōu)勢.為此,Liu等人[63]提出了一種新的字詞LSTM(WC-LSTM),用于將單詞信息集成到基于字符的模型中,為了防止模型退化為基于詞的部分模型,給每個字符分配固定的單詞信息.該模型以LSTM-CRF作為主要的網絡結構,但與標準LSTM-CRF模型之間的差異主要在于嵌入層和LSTM層.基于WC-LSTM[63]的模型,首先將中文句子表示為一系列字-詞對,其目的是將單詞信息集成到每個字符中.其次,為了使模型能夠批量訓練并滿足不同的應用需求,文中引入了4種編碼策略來從單詞中提取固定大小但不同的信息.最后,使用鏈結構的字詞LSTM層從字符和單詞中提取特征.具體來說,在字詞嵌入層,每一個向量都是由兩部分組成,分別是對應的字符和分配的詞,并且詞按其長度進行排序.為了有效利用過去和將來的信息,模型使用了雙向WC-LSTM.因為考慮到連續(xù)標簽之間的依賴性,所以使用CRF層來做序列標記.最后該模型在幾個常用數(shù)據(jù)集上進行評估,并以Zhang等人[28]提出的Lattice-LSTM模型為主要的比較對象,實驗結果表明基于WC-LSTM的模型比Lattice LSTM模型更高效快速,并且和當時最新的模型相比都有一定的優(yōu)勢.
由于中文句子不是天然分割的,所以中文NER任務的一種常見做法是先使用現(xiàn)有的CWS (Chinese Word Segmentation)系統(tǒng)執(zhí)行分詞,然后對分詞結果進行將詞級序列標注.但CWS系統(tǒng)不可避免地會錯誤地對查詢語句進行分段,這將導致NER中實體邊界的檢測和實體類別預測時出現(xiàn)錯誤.所以目前很多研究者直接在字符級別上執(zhí)行中文NER任務,而這種方法被已有的工作證明是非常有效的.基于純字符的模型無法有效融合詞信息.但Lattice-LSTM[28]模型結構過于復雜,為了引入詞典信息,在輸入序列中不相鄰字符之間添加了多個附加邊,使得訓練和推理的速度大大減慢.而且該模型很難移植到可能更適合于某些特定任務的其他神經網絡模型中.由此,Ma等人[56]提出了一種更簡單的方法來實現(xiàn)Lattice-LSTM[28]的思想,該模型以字符模型為基礎,在字符表示形式中對詞典信息進行編碼,并設計編碼方案以保留盡可能多的詞典匹配結果.該方法避免了對復雜模型結構的需求,易于實現(xiàn),并且可以通過調整字符表示層來快速適應任何合適的神經網絡架構.具體來說,該模型依然使用BiLSTM+CRF結構來做序列建模,而字符表示層也是使用Lattice-LSTM[28]相同的方法,其創(chuàng)新點在于構建了SoftLexicon特征并將其融入到了字符表示層中.SoftLexicon的特征構建分為3步,第1步是分類匹配的單詞,將每個字符的所有匹配單詞根據(jù)字符位置的不同分類到4個詞集“BMES”中.第2步是壓縮單詞集,也就是在獲得每個字符的“BMES”單詞集之后將每個單詞集壓縮為固定維向量.第3步是與字符表示相結合,即將4個單詞集的表示形式組合到一個固定維特征中,并將其添加到每個字符的表示形式中.為了保留盡可能多的信息,文中選擇了串聯(lián)4個單詞集的表示形式.該模型在4個基準中文NER數(shù)據(jù)集的實驗研究表明,可以實現(xiàn)更快的推理速度和更好的性能.
3) 基于字形和部首的方法
部首對于漢語的計算處理非常重要,因為具有相同部首的字符通常具有相似的語義和語法角色.例如,動詞“打” (hit) 和“拍”(pat)共享同一個部首“扌”(手),二者不僅語義相同,而且在句子中都充當動詞.現(xiàn)有的中文處理算法通常以單詞或字符為基本單位,忽略了重要的部首信息.Sun等人[66]提出了一種基于部首增強的中文字符嵌入模型,利用部首信息來學習漢字的連續(xù)表示.文中設計了一個專用的神經網絡模型,該模型由兩個模塊組成:基于上下文的模塊和基于部首的模塊,其中基于上下文的模塊主要是為了捕獲上下文信息,而基于部首的模塊則用于充分融合部首信息.該模型應用于漢字相似性判斷和中文分詞中并取得了不錯的效果.Shi等人[67]深入探討了漢語處理的特點和基本層次,也提出了一種新的“部首嵌入”方法,并通過3個實驗驗證了其可行性和實用性:兩個關于短文本分類(STC)和漢語分詞(CWS)以及一個搜索排名的現(xiàn)場實驗.
從簡單的詞袋模型[77]和線性遞歸神經網絡模型[77,78]到更加復雜的樹結構[80]或卷積神經網絡[81]模型均可學習如何將單詞組合成一個有意義的完整句子.Liu等人[68]根據(jù)中文字符的視覺特征來創(chuàng)建嵌入,首先將每個字符的Unicode表示轉換為圖像,然后通過卷積神經網絡來計算字符的表示,最后將得到的字符表示作為下游處理任務的輸入.并且實驗結果表明,在文本分類任務中,該模型能夠更好地處理中文、日文和韓文等語言中含有罕見字符的句子.Dai等人[69]也明確地將中文字形的視覺特征納入到字符的最終表示中,從而實現(xiàn)了一種新穎的漢字字形感知嵌入模型.在語言建模和分詞這兩個基本中文NLP任務中,該模型可以在字符級嵌入中有效學習其語義和句法信息.Su等人[70]也認為中文單詞是由包含豐富語義的字符組成,一個漢字的意義往往與其組成漢字的意義有關.因此,漢語單詞嵌入可以通過其組合字符嵌入來增強[80,81].此外,漢字由若干字形組合而成,具有相同字形的字符可能具有相似的語義或發(fā)音.而且除部首之外的其他成分可能包含單詞表征學習中潛在的有用信息,所以文中首先使用convAE從位圖中提取字符特征來表示字形,然后,使用與Skip gram[18]或GloVe[83]平行的模型從字符字形特征中學習單詞表示.
前期利用CNN來提取字符視覺特征以豐富字符最終嵌入的工作[68-70,84]中,文獻[68,69,84]得到的性能提升較為有限,而Su等人[70]也只證明了字形嵌入在單詞類比和單詞相似性比較中比較有用.Meng等人[71]則總結了使用CNN提取中文字符特征時最終效果不夠理想的主要原因:首先,沒有使用正確字體版本,因為漢字從易于繪制開始,慢慢過渡到易于書寫,變得越來越不象形不具體,而迄今為止使用最廣泛的簡體中文是最容易書寫的字體,不可避免地會丟失最大量的象形文字信息;其次,沒有設計合適的網絡結構,ImageNet[86]圖像的尺寸大多為 800×600,而字符的灰度圖尺寸明顯小很多(通常為12×12),所以需要設計一個合適的CNN架構來捕獲字符圖像的局部圖形特征;最后,由于常用的漢字字符大約只有10000個左右,所以需要考慮過擬合問題還要想方設法提高模型的泛化能力.基于這些考慮,Meng等人[71]使用不同時期的中文字體來豐富漢字的字形特征,還設計了專門的神經網絡結構對中文字符圖進行編碼.此后,有一系列基于Glyce的工作出現(xiàn),Sehanobish等人[72]就使用圖像分類的方法來提取中文字符中“有意義的”特征,并且提出了一個自動編碼器體系結構GLYNN對字形進行編碼,然后將編碼后的特征作為NER系統(tǒng)的附加特征.Xuan等人[61]則指出上述工作只對字形和分布式表示進行了獨立編碼,忽略了字符與上下文之間的交互信息,而多模態(tài)深度學習已經對此做了相應研究[86-88].此外,由于單個漢字的意義不完整,字符的單獨編碼并不是一個很好的方法,而相鄰字符的符號之間的交互信息可能有利于NER任務.并且漢語中有很多相似的語義可以通過相鄰符號之間的交互信息進行區(qū)分.為此,文中提出了一種融合字形和上下文信息的模型,其中使用CNN來獲取字符的字形特征,使用預訓練好的BERT捕捉相鄰字符之間的潛在信息.此外,還設計了一種基于Attention的滑動窗口機制來融合字形特征和字符表示之間的交互信息.實驗結果表明,該模型可以有效提高NER任務的性能,也進一步揭示了在OntoNotes 4.0和Weibo數(shù)據(jù)集上使用BERT可以大幅提高其性能.
Sun等人[73]指出目前基于中文的預訓練模型忽略了漢語中的兩個重要特性:字形和拼音,因為字形和拼音承載著重要的句法和語義信息,這對語言的理解來說至關重要.文中提出了一種將中文字形特征和拼音信息結合到預訓練模型中的ChineseBERT方法.根據(jù)漢字的不同字體獲得字形嵌入,能夠從漢字的視覺特征中捕捉漢字語義,而拼音嵌入字符則是漢字的發(fā)音可以有效處理漢語中普遍存在的“異音異義”現(xiàn)象.首先將ChineseBERT模型在大規(guī)模無標記中文語料庫上進行了預訓練,在訓練步驟較少的情況下與基準模型相比,具有顯著的性能提升.
在英語中不同的單詞可能有相同的詞根或詞綴,它們可以更好地代表單詞的語義.而且根據(jù)英語單詞的信息可知,詞根或詞綴往往決定了單詞的一般意義[89].即使是最先進的方法,如BERT[50]和GPT[51],在大規(guī)模數(shù)據(jù)集上訓練時也采用這種精細的詞分割方法來提高性能.而對于漢字來說,也有類似于英語詞根和詞綴的結構.Wu等人[48]認為漢字從古代的象形文字進化而來其結構往往反映了更多有關漢字的信息,所以將漢字的結構分解為詞根、頭尾和結構成分3部分來獲取字符級嵌入.由于LSTM基于時序建模的特點,使每個cell的輸入依賴于前一個cell的輸出,不僅模型結構比較復雜而且并行能力有限.所以文中使用FLAT[46]來實現(xiàn)高效并行計算并結合其在詞匯學習方面的優(yōu)勢,在此基礎上引入了漢字結構作為擴展.模型不僅具有FLAT的詞邊界和語義學習能力,還增加了漢字的結構信息,結果表明這對NER任務來說非常有效.
1)基于字詞的方法
雖然Zhang等人[28]提出的基于詞典的Lattice模型在中文NER領域中取得了巨大的成功,但Gui等人[38]認為該方法明顯存在著兩方面的問題.首先,基于RNN的架構由于受到網絡本身的限制不能夠充分利用GPU的并行性[39].具體來說,Lattice-LSTM結構使用雙重循環(huán)神經網絡來處理字詞表示,由于其順序處理的特點使得處理效率嚴重受限.而且Lattice-LSTM也無法選擇詞典中的最優(yōu)匹配詞,這可能會誤導模型.
Gui等人[38]使用CNN來并行處理整個句子和潛在的詞以提高處理的速度,然后使用Rethinking機制[40]中的高級語義來細化嵌入詞的權重以解決潛在詞之間的沖突.Rethinking機制中提出了兩個全新的層——反饋層和強調層,利用反饋層中候選對象類別的反饋后驗概率來賦予網絡模型在訓練過程中對決策進行“反思”的能力.基于CNN和Rethinking機制的中文NER模型的構建分為3步,首先是構建基于詞典的CNN網絡,其次是添加Rethinking機制,最后使用條件隨機場來做NER預測.Wu等人[111]提出了一種用于CNER的神經網絡模型.該模型中,先引入了CNN-LSTM-CRF架構來捕獲CNER任務中的本地和遠程上下文信息,然后設計了統(tǒng)一的框架同時訓練中文命名實體識別模型和分詞模型來輔助CNER模型中實體邊界檢測.此外,基于卷積神經網絡的模型主要集中于使用漢字的灰度圖來提取字形的特征方法中,本文將在后面章節(jié)對其做系統(tǒng)的梳理.
2)基于圖神經網絡的模型
基于RNN的中文NER模型受到鏈結構特點的影響再加上全局語義的缺乏很容易產生歧義.而基于Lattice-LSTM[28]的模型,大多數(shù)使用RNN或CRF對句子進行順序編碼,語言的底層結構并不是嚴格順序的,會遇到嚴重的詞雙值問題,特別是對中文文本來說更具挑戰(zhàn)性.Gui和Zou等人[41]提出了一種將詞典與圖神經網絡相結合的模型.該模型中使用詞典知識來連接字符以捕獲局部特征,并利用全局節(jié)點來捕獲全局句子語義和遠程依賴.而且基于圖的字符、潛在詞和整個句子語義之間的多種交互可以有效地解決歧義問題.該模型使用了一種高效的圖消息傳遞架構[44],通過詞匯信息來構造圖神經網絡以實現(xiàn)中文NER作為節(jié)點的分類任務.
Sui等人[42]則認為自動構建的詞典雖然包含了豐富的詞邊界信息和詞語義信息,但對基于詞匯信息的漢語NER任務來說仍面臨著兩方面的重要挑戰(zhàn).第1個挑戰(zhàn)是整合字符在詞典中自匹配的詞,字符的自匹配詞是指詞典中所有包含該字符的詞.第2個挑戰(zhàn)則是直接整合詞典中最近的上下文詞匯.因此,Sui等人[145]提出了一種基于字符的協(xié)作圖網絡.具體而言,在圖形層中包含3個“單詞-字符交互圖”.第1個是包含圖(C-graph),它用于集成自匹配詞法單詞并模擬了字符和自匹配詞之間的聯(lián)系.第2個是過渡圖(T-graph),它建立了字符和最接近的上下文匹配單詞之間的直接連接來應對直接集成最接近的上下文單詞的挑戰(zhàn).第3個是格子圖(L-graph),它受Lattice[28]模型的啟發(fā),L-graph通過多次跳躍隱式捕獲自匹配詞和最近的上下文詞匯詞的部分信息.這些圖是在沒有外部NLP工具的情況下構建的,不僅可以避免錯誤傳播,而且這可以很好地互補.
地名詞典被證明在命名實體識別任務中很有用[45].現(xiàn)有許多基于機器學習的NER系統(tǒng)中都納入了地名詞典,但目前仍然受限于手動選擇,特別是同時涉及到多個詞典時單純的靠手動選擇可能不會帶到很好的效果.在中文NER任務中更是如此,因為詞典中的詞并沒有被標記出來,所以可能會帶來歧義.為了將多個地名詞典自動的合并到NER系統(tǒng)中,Ding等人[43]提出了一種基于圖神經網絡的創(chuàng)新方法,該網絡可以使用多圖結構來捕獲地名詞典提供的信息.該模型由多圖及經過改進的GGNN嵌入層和BiLSTM-CRF層組成.其中,多圖顯式地將文本與命名實體地名詞典信息結合在一起,并使用改進的圖神經網絡對所有特征進行建模,然后使用BiLSTM-CRF架構來實現(xiàn)序列預測.
3)基于Transformer的模型
由于Lattice[28]模型天生擁有復雜的動態(tài)結構,而且LSTM只能進行順序建模,無法有效利用GPU的并行能力.由此,Li等人[46]提出了一種將復雜Lattice結構轉換為更為簡單的平面結構的模型.模型借助Transformer結構特性并精心設計位置編碼功能可充分利用格子信息并具有出色的并行化能力,整個過程構建分為兩步,第1步是將Lattice的嵌入結構轉化為由基本單元組成的平坦結構,第2步則對每一個基本單元進行相對位置編碼.FLAT由一系列基本單元組成,而每一個單元(span)由對應的token、頭部和尾部組成.其中,token是指字符或單詞,而頭部和尾部表示該token在原始序列中的首尾字符的位置索引,即在晶格中的位置.對于單個字符而言,其頭和尾是相同的.為了對跨度之間的交互進行編碼,模型使用了相對位置編碼,對于晶格中的兩個跨度xi和xj,它們之間存在3種關系:相交,包含和分離.模型不直接編碼這3種關系,而是使用密集向量通過頭和尾信息的連續(xù)轉換來對它們之間的關系進行建模.Wu等人[48]利用FLAT[46]在高效并行計算和詞典融合方面的巨大優(yōu)勢,結合雙流Transformer提出了一種融合漢字結構信息的中文NER模型.具體來說,模型在一個雙流Transformer中使用多元數(shù)據(jù)嵌入來整合部首級的漢字特征,因為利用漢字的結構特點可以更好地捕捉漢字的語義信息,而且模型又繼承了FLAT的特性所以具備詞邊界和語義學習能力,實驗結果也表明了該方法在性能上的優(yōu)越性.Yan等人[110]也提出了一種自適應Transformer編碼器,通過結合方向感知、距離感知和未縮放注意力來建模字符級特征和字級特征的NER架構.
預訓練模型[50,51,109]在各種中文NLP任務中已被證明其有效性[52-55].近期研究表明,在中文命名實體識別[46,56]、中文分詞[57]以及中文詞性標注[58]等領域均使用詞典和BERT相結合的方法,其核心思想是將BERT和詞匯特征的上下文表征集成到神經序列標注模型中.Liu等人[49]受BERT適配器[58-60]的啟發(fā),提出了一種基于詞典增強的BERT(LEBERT)模型,該方法通過一個詞典Adapter層將外部的詞典知識直接集成到BERT層中.具體來說,使用字符到字符的雙線性注意機制,動態(tài)地為每個字符提取最相關的匹配詞將句子轉換為字詞對序列.Xuan等人[61]提出了一種將中文字形特征與BERT相結合的模型,該模型首先使用CNN提取中文字形特征,然后利用預先訓練好的中文BERT對句子中的每個字符進行編碼,最后將二者的輸出融合成最終嵌入送到LSTM-CRF架構中做序列標注.值得一提的是,與常規(guī)的BERT微調策略不同,該模型先在訓練集中用CRF層作為標記器對BERT進行微調,然后凍結BERT參數(shù)并將其應用于字符表示中.Xue等人[62]提出了一種為中文NER量身定制的Transformer編碼器擴展模型—PLTE.PLTE在Lattice結構的基礎上通過位置關系表示法來增強自注意力(self-attention),并引入一種多孔機制來增強局部建模并保持捕獲豐富的長期依賴關系的強度.該模型主要由3部分組成,分別為:Lattice輸入層、多孔Lattice Transformer編碼器以及BiGRU-CRF解碼層.其中,輸入層是將tokens的語義信息和位置信息都融合到其嵌入中.多孔Lattice Transformer編碼器中提出了兩種編碼機制,一種是Lattice感知的自注意力編碼機制(LASA),另一種則是多孔多頭注意力機制(PMHA).由于位置編碼不能捕獲Lattice結構中輸入的相對位置信息,所以提出了相對位置關系矩陣來表示這樣的位置信息,LASA就是將這種位置關系合并到Attention層中,而為了保持捕獲長距離依賴項的強度并增強捕獲短距離依賴項的能力,PMHA則是引用Guo等人[63]提出的樞軸共享結構來替換全連接結構以達到簡化Transformer架構的目的.最后將字符序列表示形式送到BiGRU-CRF解碼層中以進行序列標記.
CNER任務和中文分詞(CWS)任務雖然都有各自的特點,但卻存在許多相似的單詞邊界.Cao等人[47]指出,絕大多數(shù)工作中都沒有考慮將中文分詞系統(tǒng)中的詞邊界信息有效整合到CNER任務中,也沒有考慮將分詞任務中的特定屬性過濾掉,所以將對抗遷移學習整合到CNER模型中,幫助模型在使用共有詞邊界信息的同時也能有效過濾分詞專屬的邊界特性.此外,文中也使用了自注意力機制來獲取句子的全局依賴關系.該模型結構可以分解為:輸入表示層,共享-專用特征提取器,自注意力層以及特定的CRF和任務判別器.與其他神經網絡模型一樣,輸入表示層就是將離散字符映射到分布式表示中.而共享-私有特征提取器的作用是分別提取分詞任務與CNER任務共享的詞邊界信息和分詞系統(tǒng)獨有的信息.自注意力機制則用來捕捉字符之間的依賴信息,以此獲取句子的內部結構特性.由于兩個任務最終的輸出標簽不同,所以特定任務的CRF是為每個任務引入了一個特定的CRF層來打標簽.受對抗網絡[91]的啟發(fā),文中使用對抗訓練來獲取共享的邊界信息.任務判別器的作用就是用于估計句子來自哪個任務.最后,該框架在兩個數(shù)據(jù)集(WeiboNER和SighanNER)上取得了不錯的效果.
Zhu等人[90]也提出了一種不依賴任何外部資源(如詞典)的CNER卷積注意力網絡模型,該模型使用兩個不同的注意力層分別捕獲不同級別的特征,其中基于字符的卷積神經網絡(CNN)用于捕捉局部特征,而基于門控遞歸單元(GRU)則獲取全局信息.模型將BiGRU-CRF作為基本架構,并設計三層結構來提取上下文特征,三層結構分別為卷積注意力層,GRU層以及全局注意力層.其中,卷積注意力層是將輸入進行分布式表示并提取局部上下文特征,然后將最終結果輸入到BiGRU中.通過卷積注意力層是對連續(xù)句子信息建模,而全局自注意力層的作用是處理句子級別的信息.實驗結果表明,該模型在不同領域的數(shù)據(jù)集上都有不錯的表現(xiàn).
Wang等人[107]探究了如何在神經條件隨機場的框架下,通過NER和成分分析聯(lián)合建模來改善中文命名實體識別.文中將解析任務(Parsing Task)重新配置為高度受限的成分解析,從而降低計算復雜度,并且保留了大多數(shù)短語級語法.具體來說,該模型將神經Semi-CRF模型和神經Tree-CRF模型相統(tǒng)一,可以同時實現(xiàn)單詞分割,詞性(POS)標記,NER和解析任務.該聯(lián)合模型的難點在于如何實現(xiàn)有效的訓練和推斷.因此,Wang等人設計了一種用于訓練和推理的動態(tài)編程算法,其復雜度為O(n·4h),其中n是句子長度,h是限制高度.
Li等人[112]使用詞與詞之間的關系來建模NER問題,不僅使用新的數(shù)據(jù)編碼模式,而且提出了全新的模型架構,在嵌套、非嵌套以及不連續(xù)數(shù)據(jù)集中均表現(xiàn)很出色,同樣在4個中文數(shù)據(jù)集上也取得了不錯的效果.Qi等人[113]提出的基于文本相似度和互信息最大化的CNER模型中,首先通過計算文本相似度尋找字符的潛在詞邊界,然后分別最大化字符、潛在詞邊界以及句子之間的互信息來增強輸入特征.此外,還設計了特定的網絡架構來做結構增強.該方法在4個CNER數(shù)據(jù)集上均取得了最好的結果.
在中文命名實體識別中使用最廣泛的數(shù)據(jù)集包括:OntoNotes 4.0[92]、MSRA[93]、Weibo[94-95]、Resume[28].OntoNotes 4.0中文部分包括新聞專線數(shù)據(jù)250K、廣播新聞270K、廣播對話170K.其中新聞專線數(shù)據(jù)由100K的新華社新聞數(shù)據(jù)和150K光華新聞雜志數(shù)據(jù)組成.廣播新聞數(shù)據(jù)選取使用LDC標注的用于自動內容抽取(ACE)程序的數(shù)據(jù),廣播對話數(shù)據(jù)取自LDC的GALE數(shù)據(jù),其中50K的原始中文數(shù)據(jù)是用英文標注的,另外還有55K的數(shù)據(jù)是從將原始的英語廣播對話翻譯成中文的.MSRA是由微軟亞研院標注的CNER數(shù)據(jù)集,該數(shù)據(jù)集中共有5萬多條CNER的標注數(shù)據(jù),其實體類別相對較少,分別為地點、機構、人物.Weibo是從中文社交媒體(微博)上選取的消息作為命名實體識別數(shù)據(jù)集,并根據(jù)DEFT ERE標注規(guī)則進行標注,其中實體類別包括名稱.和名義上的提及.該語料庫包含2013年11月~2014年12月期間從微博中抽取的1890條信息.Resume數(shù)據(jù)集是由Zhang等人[28]提供的從各類公司高管簡歷中隨機抽取了一部分并使用YEDDA系統(tǒng)標注出來的CNER數(shù)據(jù)集,其中包含8種命名實體,分別為國家、教育機構、位置、人名、機構、職業(yè)、種族背景、職務.此外,近期公開發(fā)表的數(shù)據(jù)集CLUENER2020[105]是將文本分類數(shù)據(jù)集THUCTC進行了進一步處理得到的一個細粒度CNER數(shù)據(jù)集.CLUENER2020共有10個不同的實體類別,包括:組織、人名、地址、公司、政府、書籍、游戲、電影、職位和景點.常用的4個數(shù)據(jù)集中所包含的句子、字符以及實體數(shù)量統(tǒng)計如表1所示.
表1 數(shù)據(jù)集統(tǒng)計Table 1 Dataset statistics
如表2所示,本文列出了可用于中文命名實體識別幾個工具.Fast NLP是由復旦大學NLP組開發(fā)的一款面向NLP領域的快捷工具包,提供了一些常用的預訓練模型和數(shù)據(jù)集并支持多種NLP任務.NLPIR是中科院計算所開發(fā)的中文分詞系統(tǒng),有效支持多種依賴分詞的下游任務,如NER、POS tagging、新詞識別等任務,而且該系統(tǒng)支持跨平臺、跨語言開發(fā).LTP是哈工大開發(fā)的NLP工具包,也支持多種常見的NLP任務.斯坦福大學NLP組開發(fā)的CoreNLP已支持中文,其中也實現(xiàn)了命名實體識別任務.此外,由于傳統(tǒng)的中文NER任務被分割成分詞加序列標注兩步實現(xiàn),所以表2中也列出了常用的分詞工具.Jieba作為分詞工具的典型代表應用最為廣泛.由清華大學開發(fā)的THULAC也支持中文分詞和其他主流的NLP任務,而且與其他同類型工具相比速度更快、精度更高.ZPar是用C++開發(fā)的NLP工具包,支持中英文兩種語言,用戶可根據(jù)需求自行選擇,支持中英文分詞、詞性標注、依存關系和短語結構解析等功能.
表2 可用于中文命名實體識別的工具Table 2 Available Chinese NER tools
通常使用兩個標準來評價一個命名實體識別任務.首先是能否正確識別實體的邊界,另一個是實體的類型是否被正確標記.所以可能會出現(xiàn)以下幾種錯誤,不能正確識別實體,實體邊界正確而類型錯誤或實體類型正確而邊界錯誤等.只有當實體邊界和類型都被正確識別時,才能認為命名實體識別任務的正確性.對于NER任務來說,衡量的標準有精確度(Precision)、召回率(Recall)和F值(F-score),它們分別是由True Positive(TP)、False Positive(FP)、False Negative(FN)3個統(tǒng)計量計算而來,其中True Positive(TP)是指正樣本預測判定為正、False Positive(FP)是指負樣本被預測判定為正、False Negative(FN)是指被模型預測為負的正樣本數(shù),具體的計算如下所示:
精確率和召回率均不能單獨衡量命名實體識別任務效果的好壞,所以F值是二者的調和平均值.
表3~表6介紹了近年來大多數(shù)最先進模型的在4個公開數(shù)據(jù)集上的表現(xiàn).‘*’表示在基于半監(jiān)督學習的模型中使用外部標記數(shù)據(jù),‘#’表示模型利用了離散特征,‘§’表示黃金分割.表3列出了OntoNotes 4.0數(shù)據(jù)集上的最先進結果,目前來看,使用BERT可以有效增強中文NER任務在該數(shù)據(jù)集上的性能.因為MECT[48]不使用BERT的F1值為76.92%,使用BERT以后則為82.57%,二者相差5.65%.表4列出了Resume數(shù)據(jù)集上的最先進結果,其中SSMI[113]的F1值最高,因為該模型從數(shù)據(jù)和架構兩個維度去做增強.表5為Weibo數(shù)據(jù)集上的最新結果比較,其中使用字形增強方法相較于詞典增強的方法有明顯的性能優(yōu)勢.表6是MSRA上的實驗結果匯總,由表可知,基于詞典的方法和字形融合的方法在性能上相差不大,使用BERT對F1值有明顯的增強.
表3 數(shù)據(jù)集OntoNotes 4.0 的最新結果比較Table 3 Results on OntoNotes 4.0
表4 數(shù)據(jù)集Resume的最新結果比較Table 4 Results on Resume
表5 數(shù)據(jù)集Weibo的最新結果比較Table 5 Results on Weibo
表6 數(shù)據(jù)集 MSRA的最新結果比較Table 6 Results on Weibo MSRA
隨著技術的飛速迅速,各種先進的模型不斷被提出,然而目前依然面臨諸多問題,如命名規(guī)則多樣化、分類嵌套模糊以及非正式文本和未登錄詞等,仍需要不斷地研究.總的來說,目前的NER任務仍處于向上發(fā)展的階段,CNER是在英文的基礎上,根據(jù)自身的語言特性衍生出了一套獨特的處理體系.相比之下識別難度更大,但隨著深度學習技術的不斷發(fā)展識別精度也逐漸上升.但依然面臨諸多挑戰(zhàn).比如:
1)數(shù)據(jù)標注問題
在基于監(jiān)督學習的NER系統(tǒng)中,數(shù)據(jù)標注工作至關重要,因為標注任務不僅非常依賴領域知識而且相當費時費力,特別對特定領域來說更是挑戰(zhàn)巨大.語言本身的多義性使標注質量和一致性很難得到保證.而且每個實體都不是采用通用的類型進行標注,可能存在多種標注規(guī)范.
2)實體嵌套問題
在NER任務中,嵌套實體非常普遍,不管是數(shù)據(jù)標注工作還是實體識別任務相較于普通實體而言都更加困難.Katiyar等人[106]指出,GENIA和ACE語料庫中分別包含17%和30%的嵌套實體.在數(shù)據(jù)標注方面,還沒有面向嵌套實體開發(fā)出通用的標注方案.
3)非結構化文本問題
基于結構化文本(如新聞文章)的數(shù)據(jù)集可以取得很好的實驗結果.而基于非結構化的文本 (如推文、評論、用戶論壇)大多面向特定領域,不僅簡短而且嘈雜,相比于結構化文本更具有挑戰(zhàn)性,如WUT-17數(shù)據(jù)集,最好的F1值略高于40%.但在很多應用場景中,NER系統(tǒng)往往需要處理很多非結構化文本,如電商平臺用戶評論等.
4)未登錄詞問題
對分詞系統(tǒng)而言,識別不在詞表和訓練語料中的詞常困難,一般的做法是系統(tǒng)中集成一個新詞發(fā)現(xiàn)模塊來挖掘新詞,經過驗證后才會加入到詞典中,即便如此,對未登錄詞的識別并不理想.
基于以上的挑戰(zhàn),未來的研究工作可以從以下方面展開:
1)更細粒度的NER
目前的研究工作過于聚焦一般領域的粗粒度NER上,以至于忽略了對特定領域細粒度NER的究.相比之下,不同粒度包含不同的實體類型,顯然細粒度NER有更多的實體類型并且不同實體類型會帶來更多的復雜性問題.這需要重新定義NER的處理方法,其中將邊界檢測和實體類型識別解耦成兩個獨立的子任務是不錯的解決方案.
2)結合實體消歧的NER
現(xiàn)有的研究大多將NER和實體消歧視為流水線環(huán)境下的兩個獨立任務.因為實體消歧不僅有助于成功檢測實體邊界而且對實體類型的正確分類也有幫助,所以如何有效的將實體消歧和NER任務結合在一起是一個值得探究的方向.
3)能處理非結構化文本的NER
基于深度學習的NER模型在非結構化文本中的性能很差,這驅使研究人員在該領域需要進行更多的研究.本文發(fā)現(xiàn)NER的性能顯著受到外部資源可用性的影響,如地名詞典的使用會提高NER在一般領域中性能,所以外部資源的輔助對NER來說是非常必要.
4)基于遷移學習的NER
將NER任務與遷移學習結合在的一起的工作很少,很多應用中都是用現(xiàn)成的NER系統(tǒng)來識別實體,但由于不同的標注方法以及語言上的差異使得模型在不同的數(shù)據(jù)集之間遷移很難得到較好的性能.為了節(jié)省人力物力,將NER任務與遷移學習結合是一個不錯的研究方向.
本文主要介紹了基于深度學習的CNER相關模型、數(shù)據(jù)集、評價標準及性能.首先,對該領域已有的方法進行了系統(tǒng)歸納,并提出了系統(tǒng)的分類方法.然后討論了CNER任務相關的數(shù)據(jù)集,對4大公用數(shù)據(jù)集進行重點解讀.最后,分析了模型的評價標準及性能并深入探討了中文命名實體識別任務存在的挑戰(zhàn)和展望.期待能有更多研究人員參與到CNER的研究工作中,也希望本文能對CNER的研究有一些參考價值.