張汝佳,代 璐,王 邦,郭 鵬
(華中科技大學(xué) 電子信息與通信學(xué)院,湖北 武漢 430074)
命名實(shí)體識別(Named Entity Recognition, NER)是自然語言處理(Nature Language Processing, NLP)的一項(xiàng)基礎(chǔ)任務(wù),也是構(gòu)建知識圖譜[1]的重要組成部分。NER任務(wù)在信息檢索[2-3]、智能問答[4]、機(jī)器翻譯[5]等領(lǐng)域中發(fā)揮著巨大作用,例如,在貝殼找房(1)https://wh.ke.com/的智能搜索應(yīng)用中,用戶的搜索詞包含大量與地址相關(guān)的字段,命名實(shí)體識別系統(tǒng)可以識別出地址實(shí)體,從而幫助智能客服準(zhǔn)確定位,迅速做出回應(yīng)。
中文命名實(shí)體識別(Chinese Named Entity Recognition,CNER)任務(wù)的主要目的在于確定中文文本中命名實(shí)體的邊界,并將命名實(shí)體分類到預(yù)先定義的類別中。如圖1所示,CNER系統(tǒng)應(yīng)識別出 “李小峰”和“華中科技大學(xué)”兩個實(shí)體,并分別分類到人名(Person,PER)和地名(Location,LOC)中。在學(xué)術(shù)研究中,命名實(shí)體一般分為3大類(實(shí)體類、時間類、數(shù)字類)和7小類(人名、地名、組織機(jī)構(gòu)名、時間、日期、貨幣、百分比);在實(shí)際應(yīng)用中,NER模型通常只需要識別出人名、地名、組織機(jī)構(gòu)名、時間等,對于貨幣、百分比等實(shí)體可以使用正則匹配方法得到;在很多特定領(lǐng)域中,NER任務(wù)往往要求識別領(lǐng)域?qū)S袑?shí)體,如醫(yī)藥名[6-7]、農(nóng)作物名等。
圖1 中文命名實(shí)體識別示例
最近幾年深度學(xué)習(xí)已被廣泛應(yīng)用于包括命名實(shí)體識別在內(nèi)的大量自然語言處理任務(wù)(Natural Language Processing, NLP),并取得了大幅性能提升。其中一些深度學(xué)習(xí)模型在英文命名實(shí)體識別任務(wù)上也取得了較好的性能提升,但將這些模型直接應(yīng)用到中文命名實(shí)體識別任務(wù)上并不能得到很好的實(shí)驗(yàn)性能,這主要是由于中文文本具有一些獨(dú)特的語言特點(diǎn)。相比于英文文本,中文文本沒有空格作為顯式邊界標(biāo)識符,難以確定分詞邊界;而且現(xiàn)代漢語文本中常出現(xiàn)中英文交替使用的情況,命名實(shí)體識別任務(wù)不僅需要識別出中文實(shí)體,還需要識別出中英文混合實(shí)體并分類;加之中文實(shí)體本身存在有歧義、構(gòu)詞靈活等問題,加大了實(shí)體識別的難度。如圖2中文本“王剛剛剛離開”存在歧義,既可以理解為“王剛剛/剛離開”,也可以理解為“王剛/剛剛離開”,此時難以準(zhǔn)確判定人名實(shí)體邊界。不僅如此,隨著網(wǎng)絡(luò)漢語文本日新月異,中文命名實(shí)體識別任務(wù)還面臨著識別未登錄詞的問題,例如,網(wǎng)紅的諧音外號、游戲的虛擬人物名稱等。
圖2 中文命名實(shí)體邊界難以判定示例
此外,在中文文本或英文文本中,都存在命名實(shí)體類別模糊的問題。例如,在判定地名和機(jī)構(gòu)名時容易發(fā)生混淆,在圖1的示例中,如果文本“李小峰離開了華中科技大學(xué)”表達(dá)的意思是學(xué)生放假離校,那么CNER模型應(yīng)將實(shí)體“華中科技大學(xué)”分類為地名(LOC);如果這句話是指老師辭職離校,那么實(shí)體“華中科技大學(xué)”應(yīng)被標(biāo)記為機(jī)構(gòu)名(Organization,ORG)。可見,命名實(shí)體識別任務(wù)的準(zhǔn)確率與語言特點(diǎn)、特征提取能力息息相關(guān)。
按照任務(wù)分類,中文命名實(shí)體識別任務(wù)可以分為扁平命名實(shí)體識別(Flat Named Entity Recognition)和嵌套命名實(shí)體識別(Nested Named Entity Recognition)兩類。本文重點(diǎn)闡述深度學(xué)習(xí)在中文扁平命名實(shí)體識別任務(wù)(Chinese Flat Named Entity Recognition,CFNER)上的研究現(xiàn)狀,介紹CNER任務(wù)的性能評估指標(biāo)和常見的數(shù)據(jù)集,然后對中文嵌套命名實(shí)體識別任務(wù)(Chinese Nested Named Entity Recognition,CNNER)的研究現(xiàn)狀進(jìn)行歸納梳理,并討論中文命名實(shí)體識別現(xiàn)在面臨的挑戰(zhàn)及其未來的發(fā)展方向。
數(shù)據(jù)集在模型性能評估環(huán)節(jié)中處于不可或缺的地位,其數(shù)據(jù)質(zhì)量和注釋質(zhì)量對于評判模型性能起著非常重要的作用。接下來先介紹中文命名實(shí)體識別任務(wù)中常用的數(shù)據(jù)集和評估指標(biāo)。
表1列舉了10個常見的中文命名實(shí)體識別數(shù)據(jù)集,并對其來源、實(shí)體類型數(shù)量等特點(diǎn)進(jìn)行了對比。這些數(shù)據(jù)集來源廣泛,有用于比賽的數(shù)據(jù),例如,PKU語料、Bakeoff-3中文語料和Bakeoff-4中文語料分別來源于SIGHAN(2)http://sighan.cs.uchicago.edu/舉辦的第二屆、第三屆和第四屆國際中文處理競賽;也有公司提供的數(shù)據(jù),例如Boson中文語料。此外,還有為特殊領(lǐng)域創(chuàng)建的數(shù)據(jù)集,例如用于電子商務(wù)領(lǐng)域的E-commerce-NER中文數(shù)據(jù)集、用于臨床醫(yī)學(xué)領(lǐng)域的CCKS-2017(3)CCKS-2017: China Conference on Knowledge Graph and Semantic Computing, 2017Task 2 benchmark中文數(shù)據(jù)集等。
表1 常見中文命名實(shí)體識別數(shù)據(jù)集列表
OntoNotes數(shù)據(jù)集[8]版權(quán)屬于LDC(4)https://www.ldc.upenn.edu/(Linguistic Data Consortium),是大型的手工注釋語料庫,包含各種類型文本(新聞、博客、雜志、電話語音等),具有結(jié)構(gòu)信息和淺層語義。雖然數(shù)據(jù)集中標(biāo)注了18種實(shí)體類型,但在實(shí)際CNER任務(wù)中常用Person、Location、Organization和Geo-political四種實(shí)體類型。Bakeoff中文數(shù)據(jù)集是由SIGHAN(Special Interest Group for Chinese Language Processing of the Association for Computational Linguistics)舉辦的國際中文處理競賽(The Third International Chinese Language Processing Bakeoff)開源的數(shù)據(jù)集。其中,Bakeoff-4中文數(shù)據(jù)集是由第四屆國際中文處理競賽開源的MSRA(Microsoft Research Asia)數(shù)據(jù)集,目前未開源。PKU、Bakeoff-3[9]、Bakeoff-4[10]三個數(shù)據(jù)集都標(biāo)注了3種實(shí)體類型: Person、Location和Organization。
Resume中文數(shù)據(jù)集在2018年由Zhang和Yang[11]構(gòu)建,包含了1 027條高管簡歷,標(biāo)注了8種實(shí)體類型,分別是Country、Educational Institution、Person、Location、Organization、Profession、Ethnicity/Background和Job Title。作為同屬社交媒體領(lǐng)域的數(shù)據(jù)集,Weibo中文數(shù)據(jù)集[12-13]不僅標(biāo)注了4種實(shí)體: Person、Location、Organization和Geo-political,同時還標(biāo)注了Named Entity和Nominal Mention。Boson中文數(shù)據(jù)集則包含了6種實(shí)體類型: Person_name、Time、Location、Org_name、Company_name、Product_name。
在特定領(lǐng)域中,E-commerce-NER中文數(shù)據(jù)集[14]是從電子商務(wù)領(lǐng)域收集的數(shù)據(jù)集,主要標(biāo)注了兩種類型實(shí)體: PROD(“products”)和BRAN(“brands”)。CCKS-2017 Task 2 benchmark中文數(shù)據(jù)集屬于臨床醫(yī)學(xué)領(lǐng)域,與電子病歷測評相關(guān),包含5種臨床命名實(shí)體: diseases、symptoms、exams、treatments、body parts。
不難看出,在通用領(lǐng)域中,實(shí)體標(biāo)簽往往包含人名、地名、機(jī)構(gòu)名三種基礎(chǔ)類型,而在專有領(lǐng)域中,實(shí)體類型通常具有很強(qiáng)的專業(yè)性。
除了數(shù)據(jù)資源外,一個性能良好的中文命名實(shí)體識別模型在訓(xùn)練過程中還離不開優(yōu)化器的配合,由于模型本身存在非線性、高維度、多參數(shù)等特點(diǎn),如何在參數(shù)空間中快速尋找到局部最優(yōu)點(diǎn)就顯得至關(guān)重要。當(dāng)前主要通過梯度下降的方式去優(yōu)化模型參數(shù),中文命名實(shí)體識別任務(wù)中常見的的優(yōu)化器(Optimizer)有: 隨機(jī)梯度下降法(SGD)、Adam算法等。
中文命名實(shí)體識別任務(wù)的評估方法遵循精確匹配模式[15-16](Exact-match Evaluation),即實(shí)體的預(yù)測邊界和預(yù)測類型與人工標(biāo)注的結(jié)果完全相同時,才能判定該實(shí)體被正確識別。評估過程中用到了True Positives(TP)、False Positives(FP)及False Negatives(FN)這三個參數(shù)來計(jì)算CNER任務(wù)的三個重要指標(biāo)Precision、Recall和F1-score。這些指標(biāo)的含義分別是: Precision,精確率,表示模型識別的實(shí)體中被正確識別的實(shí)體的百分比;Recall,召回率,表示所有標(biāo)注實(shí)體中被模型正確識別的實(shí)體的概率;F1-score值,精確率和召回率的調(diào)和平均值。計(jì)算如式(1)~式(3)所示。
其中,TP參數(shù)表示模型正確識別的實(shí)體,F(xiàn)P參數(shù)表示被模型識別出來但是識別錯誤的實(shí)體,F(xiàn)N參數(shù)表示未被模型識別出來但是真實(shí)存在的實(shí)體。F1-score值是個綜合性的指標(biāo),用于評估任務(wù)優(yōu)劣,只有在精確率和召回率兩個值都很高的情況下,F(xiàn)1-score值才會很高。
命名實(shí)體識別任務(wù)從20世紀(jì)末開始發(fā)展至今,已有二十余年的研究歷史,其研究方法也由早期依賴特征工程和領(lǐng)域知識[17-18]轉(zhuǎn)移到傳統(tǒng)機(jī)器學(xué)習(xí)上?;谝?guī)則的方法[19-22]是CNER系統(tǒng)早期廣泛使用的方法之一,這類方法通常需要手工構(gòu)建規(guī)則。雖然這些規(guī)則可以靈活地定義與擴(kuò)展,但對領(lǐng)域知識的依賴性很強(qiáng),創(chuàng)建和修改過程往往花費(fèi)領(lǐng)域?qū)<掖罅繒r間,加之命名實(shí)體類型多種多樣、不斷更新,難以構(gòu)建一套統(tǒng)一的規(guī)則,所以在機(jī)器學(xué)習(xí)方法興起之后,基于規(guī)則的方法一般被整合到基于機(jī)器學(xué)習(xí)的CNER模型的后期處理中[23-24]。
傳統(tǒng)的基于機(jī)器學(xué)習(xí)的方法主要包括: 隱馬爾可夫模型[25](Hidden Markov Model, HMM)、最大熵[26](Maximum Entropy, ME)模型、決策樹[27](Decision Tree)模型、支持向量機(jī)[28](Support Vector Machine, SVM)模型、條件隨機(jī)場[29](Conditional Random Fields, CRF)模型等。Fu等人在2005年[30]利用分詞器和Lexicalized HMM模型探索豐富的上下文語境信息和實(shí)體構(gòu)成模式,進(jìn)而識別中文文本中不同類型的命名實(shí)體。Chen等人在2006年[31]同時利用CRF和ME兩個條件概率模型識別中文文本中的人名、地名和機(jī)構(gòu)名,Yu等人則在2008年[32]先利用基礎(chǔ)模型CRFs對數(shù)據(jù)進(jìn)行分割標(biāo)記,再利用領(lǐng)域知識和MLNs(Markov Logic Networks)對實(shí)體信息進(jìn)行驗(yàn)證和錯誤糾正,改進(jìn)了中文命名實(shí)體識別任務(wù)。Zhang等人在2008年[33]利用CRF結(jié)合多種特征信息來提升CNER系統(tǒng)的魯棒性和準(zhǔn)確率。我們注意到,基于CRF的NER模型廣泛應(yīng)用于多種領(lǐng)域,例如,生物醫(yī)學(xué)領(lǐng)域[34-35]、商務(wù)領(lǐng)域[36]、旅游領(lǐng)域[37]等。
近年來,深度學(xué)習(xí)在各領(lǐng)域上的成功應(yīng)用引起了巨大的關(guān)注。得益于深度學(xué)習(xí)本身端到端的特性,無需復(fù)雜的特征工程,深度學(xué)習(xí)的網(wǎng)絡(luò)框架通用性好,精確度高,在神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)和訓(xùn)練范式方面效果顯著,目前深度學(xué)習(xí)網(wǎng)絡(luò)已成為解決命名實(shí)體識別任務(wù)的最主要模型。
當(dāng)前解決CNER任務(wù)的思路分為序列標(biāo)注(token-based)和基于分類(span-based)兩類。其中,序列標(biāo)注方法最為常見。
如圖3所示,基于深度學(xué)習(xí)的中文命名實(shí)體識別任務(wù)的流程主要分為三部分: 輸入的分布式表示層、文本編碼層和標(biāo)簽序列解碼層。其中第一層以字符信息為主,可附加偏旁部首特征、字形特征、詞典信息等;文本編碼層常用RNN、CNN、Transformer Encoder等網(wǎng)絡(luò)獲取上下文依賴關(guān)系,提取關(guān)鍵特征信息;標(biāo)簽序列解碼層預(yù)測標(biāo)簽序列并進(jìn)行標(biāo)注,其中CRF最為常見,也有BiGRU+CRF、Softmax等。
圖3 基于深度學(xué)習(xí)的中文命名實(shí)體識別任務(wù)流程圖
根據(jù)主要網(wǎng)絡(luò)架構(gòu)進(jìn)行分類,可將token-based的中文命名實(shí)體識別任務(wù)的模型分為4大類: 基于RNN的模型、基于CNN的模型,基于圖結(jié)構(gòu)的模型、基于Transformer的模型等。
3.1.1 基于RNN的模型
基于RNN的模型擅長捕獲序列信息,適用的任務(wù)場景廣泛。例如,在文本生成中,對一個文本序列,預(yù)測下一個詞的概率需要基于前面出現(xiàn)過的單詞,然后根據(jù)輸出概率分布進(jìn)行采樣,用于生成文本。但是RNN模型只擁有短暫的記憶能力,對長期依賴關(guān)系并不敏感,同時存在梯度爆炸和梯度消失的問題。為了解決上述問題,有學(xué)者引入門控機(jī)制和細(xì)胞狀態(tài),提出了LSTM網(wǎng)絡(luò)[38]及其變種網(wǎng)絡(luò)GRU[39]。目前,BiLSTM+CRF已成為基于深度學(xué)習(xí)的命名實(shí)體識別方法中的主流模型,其基本結(jié)構(gòu)如圖4所示。
圖4 字符級BiLSTM+CRF的主要網(wǎng)絡(luò)結(jié)構(gòu)
3.1.1.1 基于LSTM的方法
Dong等在2016年[40]首次將字符級BiLSTM+CRF網(wǎng)絡(luò)結(jié)構(gòu)應(yīng)用在中文命名實(shí)體識別任務(wù)上,并率先引入偏旁部首特征。通過拆解中文字符并對字符進(jìn)行編碼的方式增強(qiáng)字符本身的特征,然后利用BiLSTM+CRF模型完成序列標(biāo)注任務(wù)。同樣是在Embedding層挖掘中文字符信息,Jia和Ma在2019年[41]將每個中文字符都視為圖像,利用CNN提取字符圖像的字形特征,并利用attention機(jī)制將其與字符嵌入進(jìn)行動態(tài)合并,輸入到LSTM模型中進(jìn)行特征提取,提升了中文命名實(shí)體識別任務(wù)的性能。
基于字符的中文命名實(shí)體識別模型雖然取得了較好性能,但是沒有利用相鄰字符之間的語義聯(lián)系,忽略了顯性的詞邊界信息和詞序信息。例如,“鍵盤鼠標(biāo)”和“倉鼠”中都有字符“鼠”,但其攜帶的語義信息完全不一樣,無法直接利用相同的字符嵌入表示。由于中文沒有像英文那樣以空格作為明顯的分詞邊界,所以沒有完全基于詞的中文命名實(shí)體識別模型,一般會通過引入外部資源加入詞邊界信息,將其作為輔助提升模型性能的工具之一。
一種常見的解決思路是聯(lián)合中文命名實(shí)體任務(wù)與中文分詞任務(wù)(Chinese Word Segmentation,CWS),進(jìn)行多任務(wù)聯(lián)合學(xué)習(xí),利用CWS任務(wù)向CNER任務(wù)提供詞邊界信息,此時,這兩個任務(wù)都可轉(zhuǎn)化為字符級序列標(biāo)注問題,CNER任務(wù)可拆解為提取實(shí)體和實(shí)體分類兩個子任務(wù),并在第一個子任務(wù)上與CWS任務(wù)產(chǎn)生交集。Cao等在2018年[42]提出對抗遷移學(xué)習(xí)框架,巧妙結(jié)合了三個LSTM結(jié)構(gòu),分別用于CNER任務(wù)私有空間、CWS任務(wù)私有空間以及用于尋找兩個任務(wù)交集的共享空間,通過對抗學(xué)習(xí)的方式,在CNER過程中融入分詞信息,在分詞過程中融合NER,同時排除了噪聲的干擾,提升了模型性能。Wu等在2019年[43]提出CNN-LSTM-CRF架構(gòu),并利用統(tǒng)一框架聯(lián)合訓(xùn)練CNER與CWS模型,通過共享字符嵌入與CNN網(wǎng)絡(luò)結(jié)構(gòu),巧妙引入分詞信息,提升了CNER任務(wù)預(yù)測實(shí)體邊界的能力。但是這種方法并沒有考慮到分詞結(jié)果的粒度與CNER提取的實(shí)體粒度不一致,會導(dǎo)致噪音的引入。
另一種常見的思路是將中文詞典信息引入基于字符的序列標(biāo)注模型中,通過不斷優(yōu)化詞典信息的融合方式,提升模型的性能、效率,同時不斷完善詞典內(nèi)容,提升模型的穩(wěn)健性。Zhang和Yang在2018年[11]首次引入詞典信息處理中文命名實(shí)體識別任務(wù),并設(shè)計(jì)出了Lattice LSTM結(jié)構(gòu),通過使用格子結(jié)構(gòu)將潛在的單詞信息整合到基于字符的LSTM+CRF中。這樣做可以避免分詞錯誤帶來的干擾,但同時也存在著一些問題: ①每個字符對應(yīng)的格子數(shù)量不一致,導(dǎo)致模型訓(xùn)練時無法batch并行化,即batch size只能取1,這大大增加了計(jì)算時間,降低了計(jì)算效率; ②每個字符只能疊加以其為結(jié)尾的單詞信息,減少了可用的詞典信息,造成信息損失; ③可遷移性不好,Lattice LSTM結(jié)構(gòu)只適用于LSTM模型,不具備遷移到其他模型(例如CNN,Transformer等)上的特性; ④識別新詞的效果差,這是依賴詞典信息的模型的“通病”,因?yàn)樵~典內(nèi)容并不能做到實(shí)時更新。為了解決上述這些問題,同時保持Lattice LSTM本身的優(yōu)勢,近兩年不斷有學(xué)者提出改進(jìn)方案。Ding等在2019年[14]利用多維圖融合Gazetteer信息,與字符特征結(jié)合并通過LSTM+CRF進(jìn)行序列標(biāo)注。Liu等在2019年[44]提出WC-LSTM模型,通過給每個字符添加有且僅有一個遠(yuǎn)程詞信息,解決了Lattice LSTM模型訓(xùn)練時無法batch并行化的問題,大大提升了計(jì)算效率,同時該模型還可適用于各種應(yīng)用場景。
在醫(yī)學(xué)領(lǐng)域中,中文命名實(shí)體識別也是一個非常重要的課題。Wang等在2019年[45]首次將詞典信息引入醫(yī)學(xué)中文命名實(shí)體識別任務(wù),在以BiLSTM+CRF為主要網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上,探索了n-gram、PIET和PDET三種不同的利用詞典信息的模式對任務(wù)性能的影響,同時對比了兩種結(jié)合詞典特征與字符特征的方法的優(yōu)缺點(diǎn)。
3.1.1.2 基于GRU的方法
Xu等在2019年[46]提出綜合利用偏旁部首特征、字符特征、詞特征的方法,將不同粒度的語義信息有機(jī)結(jié)合,然后利用BiGRU+CRF模型實(shí)現(xiàn)序列標(biāo)注。偏旁部首作為中文字符的重要組成部分,攜帶著字符本身的語義信息,例如,帶有“钅”“木”“氵”“火”等偏旁的字符往往會出現(xiàn)在人名中,而含有“疒”“尸”等偏旁的字符則不會出現(xiàn),這一類現(xiàn)象在某種程度上可以輔助CNER任務(wù)識別人名。Zhu等在2019年[47]提出了CAN網(wǎng)絡(luò),首次將CNN與attention機(jī)制結(jié)合起來捕獲局部相鄰字符的語義信息,同時將GRU與global attention組合,提取全局語義信息,這種讓網(wǎng)絡(luò)自行探索字詞特征的網(wǎng)絡(luò)結(jié)構(gòu),擺脫了對外部詞典、詞嵌入的依賴,對于日常生活中構(gòu)建命名實(shí)體識別系統(tǒng)非常有實(shí)用性。
3.1.2 基于CNN的模型
CNN的卷積本質(zhì)上是利用一個共享參數(shù)的過濾器,通過計(jì)算加權(quán)和來實(shí)現(xiàn)特征提取,起初在圖像領(lǐng)域取得了巨大成功。Collobert和Weston在2008年[48]將CNN引入到句子建模中,為NLP任務(wù)定義了一個統(tǒng)一的體系 結(jié)構(gòu), 可在有限的先驗(yàn)知識下學(xué)習(xí)到與當(dāng)前任務(wù)相關(guān)的特征。2011年,Collobert等[49]擴(kuò)展了之前的工作,提出了基于CNN的通用框架,適用于多種NLP任務(wù)。隨后,Kalchbrenner[50]、Kim[51]等學(xué)者陸續(xù)推進(jìn)了CNN在NLP領(lǐng)域的普及。
在文本領(lǐng)域中,CNN網(wǎng)絡(luò)一般使用一維卷積核捕獲局部特征,并自動對這些特征進(jìn)行組合、篩選,將信息量豐富的潛在語義特征用于下游任務(wù),但也存在著對長序列輸入提取特征能力弱的問題。Strubell等在2017年[52]提出了ID-CNN網(wǎng)絡(luò)模型,利用空洞卷積,以損失少部分信息為代價(jià)的方式擴(kuò)大卷積核的感受野,同時保留了CNN并行運(yùn)算的優(yōu)點(diǎn),相比于LSTM結(jié)構(gòu)的序列預(yù)測方式更為高效迅速。ID-CNN網(wǎng)絡(luò)結(jié)構(gòu)雖然對CNER任務(wù)有效,但是無法融合詞典信息,Gui等在2019年[53]提出的LR-CNN模型,如圖5所示,利用動態(tài)CNN結(jié)構(gòu)解決了這一問題,同時模型中的Rethinking機(jī)制可以將高層語義信息反饋到底層,更新潛在詞的權(quán)重分配比,這種“讓模型重新思考”的方式可以防止信息單向流通,有效解決了Lattice LSTM模型無法有效處理詞匯信息沖突的問題。
圖5 LR-CNN模型圖片引自文獻(xiàn)[53]
3.1.3 基于圖結(jié)構(gòu)的模型
近年來,基于圖結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)的研究越來越多,人們逐漸發(fā)現(xiàn)基于RNN的模型由于鏈?zhǔn)浇Y(jié)構(gòu)難以長期保持整體語義信息,導(dǎo)致對單詞理解出現(xiàn)歧義,進(jìn)而影響序列標(biāo)注性能,而圖神經(jīng)網(wǎng)絡(luò)可以忽略節(jié)點(diǎn)的輸入順序。同時,在計(jì)算過程中不會因受鄰居節(jié)點(diǎn)的影響而改變圖本身的連接方式。常見的圖神經(jīng)網(wǎng)絡(luò)有圖卷積網(wǎng)絡(luò)[54](Graph Convolution Networks,GCN)、 圖注意力網(wǎng)絡(luò)[55](Graph Attention Networks,GAT)以及門控圖神經(jīng)網(wǎng)絡(luò)[56](Gated Graph Neural Networks,GGNN)等。
Sui等在2019年[57]提出CGN(Collaborative Graph Network)網(wǎng)絡(luò)結(jié)構(gòu),率先將GAT網(wǎng)絡(luò)和自動構(gòu)建語義圖引入CNER任務(wù),通過三種構(gòu)圖方式獲取多角度全方位詞語信息,并在融合層進(jìn)行合并,該網(wǎng)絡(luò)結(jié)構(gòu)不僅提升了CNER任務(wù)的準(zhǔn)確率,而且大大降低了時間成本。Gui等在2019年[58]提出基于詞典的LGN(Lexicon-based Graph Neural Network)網(wǎng)絡(luò)結(jié)構(gòu),將CNER任務(wù)轉(zhuǎn)化為圖節(jié)點(diǎn)分類問題,利用詞典知識豐富局部語義信息,并添加全局中繼節(jié)點(diǎn)捕獲全局語義信息和長距離依賴,通過不斷地遞歸聚合實(shí)現(xiàn)節(jié)點(diǎn)與連接邊的信息更新,實(shí)現(xiàn)了對模型性能的提升。
3.1.4 基于Transformer的模型
自2017年谷歌提出了Transformer模型[59],便有很多學(xué)者不斷對Transformer進(jìn)行拆分或改造,以提升在各種任務(wù)上的性能。Transformer是一個Seq2Seq模型,由一個Encoder和一個Decoder組成,相比于RNN和CNN模型,Transformer不僅具有高度并行化的模型結(jié)構(gòu),可以解決RNN并行計(jì)算能力弱的問題,而且其內(nèi)部注意力結(jié)構(gòu)能夠解決CNN無法捕獲長距離依賴的問題,但是在面對過長的輸入文本時,Transformer模型的計(jì)算復(fù)雜度大大增加,速度嚴(yán)重下降,計(jì)算效率低下。
Li等在2020年[60]提出的FLAT(Flat-Lattice Transformer)網(wǎng)絡(luò)模型,將Lattice結(jié)構(gòu)從一個有向無環(huán)圖展平為Flat-Lattice Transformer結(jié)構(gòu),并對Transformer模型中的傳統(tǒng)位置編碼方式進(jìn)行改進(jìn),有效保留了位置信息,同時Transformer模型中的attention機(jī)制不僅可以建模遠(yuǎn)程依賴關(guān)系,而且允許每個字符與其自匹配詞語進(jìn)行交互,解決了Lattice LSTM模型無法充分捕獲中文文本語義信息和不能并行利用GPU資源的問題。Mengge等在2019年[61]提出了PLTE(Porous Lattice-based Transformer Encoder)網(wǎng)絡(luò)結(jié)構(gòu),捕獲字符與對應(yīng)匹配詞之間的依賴性,并利用多孔機(jī)制提升了局部建模的能力,提高了CNER任務(wù)的性能,如圖6所示。值得一提的是,這篇論文在解碼層利用了BiGRU+CRF的網(wǎng)絡(luò)結(jié)構(gòu),主要是因?yàn)镚RU網(wǎng)絡(luò)可以加強(qiáng)序列信息的建模,彌補(bǔ)了編碼層不能很好地捕捉序列信息的不足。
3.1.5 其他模型
傳統(tǒng)提升CNER模型性能的思路除了對主要網(wǎng)絡(luò)結(jié)構(gòu)的改進(jìn)外,還有對信息表示層的改進(jìn),顯然后一個思路可以有效避免引入復(fù)雜的序列建模體系結(jié)構(gòu)。如圖7所示, Peng等在2019年[62]對字符表示層進(jìn)行改進(jìn),為每個字符保留所有匹配詞并對其權(quán)重進(jìn)行平滑處理,巧妙地結(jié)合了詞典信息,并驗(yàn)證了此改進(jìn)在不同序列標(biāo)注模型結(jié)構(gòu)上的可遷移性。相比之下,Zhu等在2019年[47]提出的CAN網(wǎng)絡(luò)雖然本質(zhì)上也是增強(qiáng)字符表示,但不具備良好的可遷移性和適應(yīng)性。
圖7 改進(jìn)信息表示層圖片引自文獻(xiàn)[62]
目前解決CNER任務(wù)的思路大都是將其視為序列標(biāo)注任務(wù),但是這類模型往往存在著耗費(fèi)時間、實(shí)體邊界預(yù)測不準(zhǔn)確等缺點(diǎn),于是有學(xué)者提出利用span-based的方案[63-65]來提升NER系統(tǒng)性能,如圖8所示。該方案[66-67]的主要思想是通過始末位置概率分布圖將潛在實(shí)體的所有可能區(qū)域或范圍枚舉出來,然后用深度神經(jīng)網(wǎng)絡(luò)對其進(jìn)行分類。此方法雖然提升了實(shí)體邊界預(yù)測的準(zhǔn)確性,但由于缺少文本序列信息,容易導(dǎo)致后續(xù)對實(shí)體分類的準(zhǔn)確率降低。
圖8 利用span-based方案提取候選實(shí)體圖片引自文獻(xiàn)[63]
Mao等人在2020年[68]結(jié)合自學(xué)習(xí)提出了一套動態(tài)的基于分類的方法,用于遠(yuǎn)程監(jiān)督學(xué)習(xí)CNER任務(wù)。此外,也可以通過指針網(wǎng)絡(luò)(Pointer Network)對實(shí)體邊界進(jìn)行預(yù)測。指針網(wǎng)絡(luò)最早應(yīng)用于MRC任務(wù)中[69],該任務(wù)通常先根據(jù)問題從文本中抽取一個答案片段,然后利用兩個n元Softmax分類預(yù)測頭指針和尾指針。Li等在2019年[70]利用機(jī)器閱讀理解(Machine Reading Comprehension,MRC)算法加單層指針網(wǎng)絡(luò)的方法,將序列標(biāo)注數(shù)據(jù)轉(zhuǎn)化為三元組(問題,答案,文本)形式,其中答案和文本可直接獲取,問題需要自行設(shè)計(jì),例如需要識別文本“袁隆平被譽(yù)為世界雜交水稻之父”中的人名時,構(gòu)造的對應(yīng)三元組為(問題: “文中提到了哪些人名?”,答案: “袁隆平”,文本: “袁隆平被譽(yù)為世界雜交水稻之父”)。值得一提的是,該論文不僅利用指針網(wǎng)絡(luò)預(yù)測實(shí)體開始位置、結(jié)束位置,還基于始末位置對構(gòu)成的所有候選實(shí)體span預(yù)測實(shí)體概率。
總的來說,基于傳統(tǒng)機(jī)器學(xué)習(xí)的方法解決問題的思路是從一些觀測(訓(xùn)練)樣本出發(fā),嘗試發(fā)現(xiàn)不能通過原理分析獲得的規(guī)律,實(shí)現(xiàn)對未來數(shù)據(jù)行為或趨勢的準(zhǔn)確預(yù)測(5)http://www.cesi.cn/images/editor/20180124/20180124135528742.pdf。深度學(xué)習(xí)方法解決問題的思路是建立深層結(jié)構(gòu)模型,將特征表示和學(xué)習(xí)合二為一。雖然近年來傳統(tǒng)機(jī)器學(xué)習(xí)算法已不如早期那么火熱,但這并不代表其弱于深度學(xué)習(xí)算法,只是各有優(yōu)缺點(diǎn)以及適用的領(lǐng)域不同。例如,深度學(xué)習(xí)是數(shù)據(jù)驅(qū)動的,在小數(shù)據(jù)集上,深度學(xué)習(xí)很容易過擬合,而SVM模型只需要很少的數(shù)據(jù)就可以取得不錯的分類結(jié)果;在特征提取上,深度學(xué)習(xí)算法本質(zhì)上可視為一個特征學(xué)習(xí)器,其對于高級、復(fù)雜特征的提取能力比傳統(tǒng)機(jī)器學(xué)習(xí)算法強(qiáng),但即便是大數(shù)據(jù),在無須另構(gòu)特征的任務(wù)上傳統(tǒng)機(jī)器學(xué)習(xí)算法已足夠應(yīng)付;在解決問題時,傳統(tǒng)機(jī)器學(xué)習(xí)通常會將問題分解為多個子任務(wù)并逐個解決,而深度學(xué)習(xí)模型是以端到端的方式解決問題。所以在學(xué)術(shù)研究和日常生活場景中,我們應(yīng)根據(jù)具體任務(wù)選擇適合的算法模型,而不是一概而論。
表2對近年來中文命名實(shí)體識別任務(wù)上基于深度學(xué)習(xí)的模型進(jìn)行了對比,概述了主要網(wǎng)絡(luò)結(jié)構(gòu),并直觀地列出了模型是否搭配中文分詞任務(wù)進(jìn)行多任務(wù)學(xué)習(xí)或者引入詞典信息,最后一列展示了各個模型在4個最常見中文數(shù)據(jù)集上的F1-score。不難發(fā)現(xiàn),若在任務(wù)中引入分詞任務(wù),雖然能達(dá)到不錯的實(shí)驗(yàn)效果,但會由于分詞工具不精確、引入噪聲等問題造成任務(wù)性能難有大的提升;若直接引入詞典信息,雖然效果提升大,但其對于工業(yè)界NER系統(tǒng)十分不友好,因?yàn)闃?gòu)建詞典的過程耗時耗力,而且往往伴隨著體積大、有錯誤數(shù)據(jù)等缺點(diǎn)。此外還可以看出,BiLSTM+CRF是當(dāng)前CNER任務(wù)中最常用的深度學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu),而Transformer Encoder的性能往往在伴隨預(yù)訓(xùn)練模型的情況下可與BiLSTM+CRF相媲美,甚至超過其最佳性能。
表2 在4個最常見中文數(shù)據(jù)集上,基于深度學(xué)習(xí)的CNER模型的結(jié)果對比
在現(xiàn)有諸多中文命名實(shí)體識別模型中,文獻(xiàn)[62]巧妙融合詞典信息,對比發(fā)現(xiàn)搭配BiLSTM+CRF網(wǎng)絡(luò)時可在Resume中文數(shù)據(jù)集上達(dá)到95.74%的最佳性能, 搭配BERT時提升了0.37%;文獻(xiàn)[60]利用詞典“YJ”[11]和相對位置信息,搭配Transformer Encoder+CRF網(wǎng)絡(luò)結(jié)構(gòu),在OntoNotes 4.0的中文數(shù)據(jù)集上達(dá)到76.45%的最佳性能,如果搭配BERT預(yù)訓(xùn)練,性能還可提升5.37%;文獻(xiàn)[14]利用GGNN+BiLSTM+CRF模型在Bakeoff-4中文數(shù)據(jù)集上實(shí)現(xiàn)了94.40%的SOTA結(jié)果;文獻(xiàn)[46]利用Conv-GRU+BiGRU+CRF網(wǎng)絡(luò)結(jié)構(gòu)結(jié)合不同粒度語義信息,在更新后的Weibo中文數(shù)據(jù)集上性能最好,達(dá)到了68.93%。
另外值得關(guān)注的是,利用MRC框架解決中文命名實(shí)體識別的方法[70]在常見中文數(shù)據(jù)集上實(shí)現(xiàn)了很好的性能。該方法另辟蹊徑,沒有按照以往序列標(biāo)注任務(wù)的模型思路來解決問題,而是將閱讀理解問題的解決辦法應(yīng)用到中文命名實(shí)體識別任務(wù)上,思路新穎獨(dú)特;此外,該方法不僅在中文命名實(shí)體識別任務(wù)上達(dá)到了有競爭力的實(shí)驗(yàn)性能,而且在英文嵌套命名實(shí)體識別任務(wù)上達(dá)到了SOTA結(jié)果,解決了嵌套命名實(shí)體識別任務(wù)和扁平命名實(shí)體識別任務(wù)在傳統(tǒng)模型上無法一起訓(xùn)練的問題。
總的來說,引入外部詞典信息、優(yōu)化引入外部知識的方式、人工定義規(guī)則等都可以快速有效提升CNER任務(wù)的性能,但其伴隨的缺點(diǎn)問題也不容忽視,例如,耗時耗力、更新慢、領(lǐng)域遷移性差;而在模型層面,捕獲更豐富的語義信息、加入多種類的底層特征、引入預(yù)訓(xùn)練好的語言模型、結(jié)合多個深度學(xué)習(xí)網(wǎng)絡(luò)并取長補(bǔ)短等方法同樣可以有效改進(jìn)CNER任務(wù)。以上兩種方式逐漸成為改進(jìn)中文命名實(shí)體識別任務(wù)模型的主要思路。
相對于傳統(tǒng)的扁平命名實(shí)體識別(Flat Named Entity Recognition)任務(wù),實(shí)際場景中還會出現(xiàn)有重疊結(jié)構(gòu)的實(shí)體。目前大多數(shù)命名實(shí)體識別模型往往會忽略對嵌套命名實(shí)體(Nested Named Entity)的識別,無法在深層次文本理解中有效捕獲更細(xì)粒度的語義信息。如圖9所示,在文本“昨日中國外交部嚴(yán)厲聲明”中,由于一般模型的序列標(biāo)注特性和單標(biāo)簽分類特性,往往只能識別一個大實(shí)體“中國外交部”或者兩個小實(shí)體“中國”“外交部”,難以將這三個實(shí)體同時全部識別出來。
圖9 中文嵌套命名實(shí)體識別示例
英文嵌套命名實(shí)體識別(English Nested Named Entity Recognition,ENNER)任務(wù)的文本特征比中文更容易提取,所以近年來很多學(xué)者對該任務(wù)進(jìn)行了研究,研究方法也由原先的傳統(tǒng)方法逐漸向深度學(xué)習(xí)方法轉(zhuǎn)變。針對一般命名實(shí)體識別模型存在的單標(biāo)簽序列標(biāo)注問題,目前基于深度學(xué)習(xí)的ENNER模型主要有以下幾種改進(jìn)思路: 修改標(biāo)注規(guī)則的序列標(biāo)注、層疊序列標(biāo)注和非序列標(biāo)注。在保留序列標(biāo)注思路的基礎(chǔ)上修改標(biāo)注規(guī)則時,一般會在進(jìn)行分類時將單分類變成多分類,例如輸出滿足指定閾值的所有標(biāo)簽[72]、將所有可能出現(xiàn)的標(biāo)簽兩兩組合[73]等;利用層疊序列標(biāo)注思路時,會對多個扁平命名實(shí)體識別模型進(jìn)行堆疊[74-75],每層分別用于識別不同粒度大小的實(shí)體;當(dāng)利用非序列標(biāo)注思路識別嵌套命名實(shí)體時,可以通過尋找錨點(diǎn)判定其對應(yīng)類別及所在實(shí)體[76]、將NNER任務(wù)轉(zhuǎn)化為閱讀理解任務(wù)[70]、構(gòu)建多層指針網(wǎng)絡(luò)預(yù)測實(shí)體邊界等方式來解決,這類思路相對巧妙,跳出了原有的思考方式,擺脫了傳統(tǒng)序列標(biāo)注任務(wù)可能存在的錯誤積累、效果不突出等問題,對任務(wù)性能顯著提升。值得一提的是,Li等在2019年[70]提出的基于機(jī)器閱讀理解的方法不僅在中文扁平命名實(shí)體文本上取得了不錯的效果,還在英文嵌套命名實(shí)體文本上達(dá)到了SOTA,可見該模型兼容性很好,同時適用于扁平實(shí)體和嵌套實(shí)體的識別任務(wù)。
由于中文的復(fù)雜性,現(xiàn)有的中文嵌套命名實(shí)體識別(Chinese Nested Named Entity Recognition,CNNER)模型大部分是基于規(guī)則和傳統(tǒng)機(jī)器學(xué)習(xí)的。通過構(gòu)建規(guī)則解決CNNER任務(wù)的做法存在耗時耗力、靈活性差等問題,例如,Zhou等人在2004年[77]提出的方案和Zhou在2006年[78]提出的方案都是先識別扁平命名實(shí)體,再通過基于規(guī)則的方法獲取嵌套命名實(shí)體。劉非凡等人在2007年[79]將多層嵌套邊界檢測問題轉(zhuǎn)化為傳統(tǒng)序列標(biāo)注問題,利用CRF和SVM融合上下文語義特征,搭配新提出的層次結(jié)構(gòu)信息編碼方法,提升了模型的準(zhǔn)確率。Fu等人則在2011年[80]通過抽取中文語素特征,輔助提升了基于CRF框架的CNNER模型性能。隨后Fu等人又在2012年[81]提出了一種混合標(biāo)注規(guī)則,搭配雙層CRF模型識別中文嵌套命名實(shí)體,取得了不錯的實(shí)驗(yàn)結(jié)果。目前常見的中文嵌套命名實(shí)體語料有: 《人民日報(bào)》語料庫[82]、ACE 2005中文語料庫[83-84]、IEER-99新聞?wù)Z料[85]、MET2測試語料[86]等,但由于這些語料庫存在嵌套實(shí)體少、標(biāo)注信息不完整等問題,于是李雁群等人在2017年[87]用半自動化方法在最常見的《人民日報(bào)》和ACE 2005中文語料上構(gòu)建了完善的嵌套命名實(shí)體識別語料庫。此外,李雁群等人還在2017年[88]針對中文維基百科自動構(gòu)建了一個高質(zhì)量的中文嵌套命名實(shí)體語料庫,極大地推動了CNNER任務(wù)的發(fā)展。
目前廣受歡迎的LSTM結(jié)構(gòu)是時間序列模型,無法進(jìn)行并行優(yōu)化,時間開銷和內(nèi)存開銷隨著句子長度的增加和模型層數(shù)的增加會變得很大。此外,現(xiàn)有的預(yù)訓(xùn)練模型如BERT,需要消耗大量的RAM和計(jì)算資源,如果pipeline中的下游任務(wù)沒有分配足夠多的計(jì)算資源,就無法進(jìn)行微調(diào)。未來可以考慮對實(shí)驗(yàn)?zāi)P瓦M(jìn)行優(yōu)化改進(jìn),平衡模型的復(fù)雜度和簡化程度。
現(xiàn)有的中文命名實(shí)體識別方法能夠較好地識別出結(jié)構(gòu)相對簡單的扁平命名實(shí)體,但是對于結(jié)構(gòu)復(fù)雜的嵌套命名實(shí)體卻很難完整、準(zhǔn)確地識別出來。中文的復(fù)雜性導(dǎo)致文本內(nèi)往往存在較多的嵌套命名實(shí)體,尤其近年來隨著語言文化的不斷交融與更新,現(xiàn)代漢語文本逐漸趨于中英文交替使用,尤其是專業(yè)領(lǐng)域中的參考資料、 技術(shù)文檔等逐漸趨于語言多樣化,更加大了中文嵌套命名實(shí)體識別的難度。
不僅如此,現(xiàn)階段缺乏大型標(biāo)準(zhǔn)統(tǒng)一的中文嵌套命名實(shí)體語料庫, 導(dǎo)致CNNER任務(wù)難有進(jìn)展。我們期待未來可以充分利用基于遷移學(xué)習(xí)、對抗學(xué)習(xí)、 遠(yuǎn)監(jiān)督學(xué)習(xí)等方法解決資源匱乏的嵌套中文命名實(shí)體識別難題,降低人工標(biāo)注工作量。
命名實(shí)體識別任務(wù)往往與其他任務(wù)結(jié)合進(jìn)行多任務(wù)聯(lián)合學(xué)習(xí)。如在NLP領(lǐng)域中,可以將中文命名實(shí)體識別任務(wù)的結(jié)果輸入到命名實(shí)體鏈接(Named Entity Linking)任務(wù)中,將文本中提到的實(shí)體與知識庫中的實(shí)體鏈接起來,消除實(shí)體間存在的歧義問題。中文命名實(shí)體識別任務(wù)還可與關(guān)系抽取(Relation Extraction)任務(wù)聯(lián)合學(xué)習(xí),在識別文本中關(guān)鍵實(shí)體的同時,抽取實(shí)體間的語義關(guān)系。如圖10所示,將非結(jié)構(gòu)化的文本數(shù)據(jù)進(jìn)行結(jié)構(gòu)化,極大地促進(jìn)了知識圖譜的構(gòu)建。許浩亮等人在2018年[89]構(gòu)建了一個中文嵌套實(shí)體關(guān)系語料庫,并采用半自動方式標(biāo)注了嵌套命名實(shí)體和嵌套實(shí)體關(guān)系。值得關(guān)注的是,復(fù)雜場景下的中文嵌套實(shí)體關(guān)系抽取任務(wù)也將是一個重要研究方向。
圖10 中文命名實(shí)體識別與關(guān)系抽取聯(lián)合學(xué)習(xí)示例
聯(lián)合模型的提出,可以將兩個甚至多個子模型統(tǒng)一建模,有效利用任務(wù)之間的潛在信息和依賴關(guān)系,有效緩解傳統(tǒng)流水線方法(Pipeline)存在的誤差積累、交互缺失等問題,使每個子任務(wù)從聯(lián)合學(xué)習(xí)中獲益。CNER也可以與CV方向結(jié)合,解決新場景下的問題,比如在利用文本生成圖像的場景中,先利用CNER任務(wù)提取重要的實(shí)體,根據(jù)實(shí)體檢索對應(yīng)的圖像,緊接著合成圖片獲得所需的目標(biāo)圖像。未來還可以進(jìn)一步探究CNER任務(wù)與更多任務(wù)的搭配使用。
深度學(xué)習(xí)目前已成為中文命名實(shí)體識別任務(wù)的主流方法,受到學(xué)者的廣泛關(guān)注。本文先對CNER任務(wù)的定義、難點(diǎn)及應(yīng)用做了簡要介紹,然后介紹了常見的中文命名實(shí)體識別數(shù)據(jù)集和評估標(biāo)準(zhǔn),接著對近年來深度學(xué)習(xí)在CNER任務(wù)上的應(yīng)用進(jìn)行梳理和分類。我們的調(diào)研表明,深度學(xué)習(xí)方法中的BiLSTM+CRF網(wǎng)絡(luò)結(jié)構(gòu)是目前CNER任務(wù)中的主流模型結(jié)構(gòu),因其善于利用上下文信息的特點(diǎn),性能突出。此外,當(dāng)前中文命名實(shí)體識別模型的改進(jìn)方向主要是獲取更豐富的語義信息和引入外部知識,雖然詞典的引入確實(shí)可以快速大幅提升模型性能,但受限于其獲取難、體積大、更新難等缺點(diǎn),后期可以考慮通過優(yōu)化詞匯信息引入方式、豐富任務(wù)模型底層特征等操作,來構(gòu)建一個更加健壯的CNER系統(tǒng)。此外,本文也對中文嵌套命名實(shí)體識別任務(wù)的研究現(xiàn)狀和常見語料庫進(jìn)行概述。最后,本文對CNER任務(wù)的未來發(fā)展進(jìn)行展望。