耿志超,顏 航,邱錫鵬,印張悅
(復(fù)旦大學(xué) 計(jì)算機(jī)學(xué)院,上海 200433)
命名實(shí)體識(shí)別(Named Entity Recognition, NER)是自然語(yǔ)言處理(Natural Language Processing, NLP)中的一項(xiàng)基礎(chǔ)任務(wù),對(duì)下游任務(wù)具有重要意義[1]。隨著近年來(lái)深度學(xué)習(xí)與預(yù)訓(xùn)練模型的發(fā)展,NER任務(wù)的性能得到了極大的提高[2-3]。然而,由于中文文本具有一詞多義、無(wú)顯式詞邊界的特點(diǎn),中文NER仍然面臨許多挑戰(zhàn)。
近年來(lái),基于詞典的方法在中文NER領(lǐng)域占主導(dǎo)地位[4-7]。引入外部詞典可以幫助模型在推理時(shí)解決未登錄詞(Out Of Vocabulary)問(wèn)題,對(duì)外部詞典的合理使用是中文NER取得高準(zhǔn)確率的必要條件。這些方法首先將輸入的句子與詞典項(xiàng)匹配,然后通過(guò)修改模型結(jié)構(gòu)將詞典的邊界信息和語(yǔ)義信息納入模型。然而,基于詞典的方法仍有缺點(diǎn)。首先,現(xiàn)有的方法使用基于統(tǒng)計(jì)的分詞工具自動(dòng)生成詞典,加工過(guò)程的錯(cuò)誤傳播導(dǎo)致詞典的質(zhì)量較低。詞典中包含大量非實(shí)體詞與錯(cuò)誤邊界詞,如“的”“20場(chǎng)”“布拉斯加(5”;甚至包含由于錯(cuò)誤分詞導(dǎo)致的無(wú)語(yǔ)言學(xué)意義字符串,如“﹁是”“率90%”。這些都為下游模型的推理過(guò)程帶來(lái)大量噪聲。其次,現(xiàn)有的方法無(wú)法兼顧詞典的語(yǔ)義知識(shí)與動(dòng)態(tài)更新。過(guò)去工作的一個(gè)分支[5-6]將詞典匹配項(xiàng)的詞嵌入融入模型,但更新詞典需要重新訓(xùn)練模型。另一個(gè)分支僅利用詞典項(xiàng)的邊界信息[7],但卻拋棄了詞嵌入中的語(yǔ)義信息。
與需要加工處理、具有顯式邊界的詞典相比,更多的知識(shí)是以未處理的普通文本形式存儲(chǔ)的,更容易被獲取。例如,可以通過(guò)搜索引擎獲得各個(gè)領(lǐng)域的文本形式信息,公司維護(hù)的商業(yè)數(shù)據(jù)庫(kù)也包含大量文本對(duì)象。一種自然的思路是采用檢索技術(shù)[8-9],從龐大的文本資源中提取可用的知識(shí)。檢索到的知識(shí)可以幫助消除輸入文本中的歧義,從而提高性能。此外,端到端地使用文本知識(shí)可以減少中間過(guò)程的錯(cuò)誤傳播,如分詞錯(cuò)誤導(dǎo)致的噪聲。然而,NER領(lǐng)域現(xiàn)有的檢索增強(qiáng)方法[10]遍歷輸入樣本的子句作為關(guān)鍵詞,通過(guò)在線搜索引擎中進(jìn)行檢索,但多次的網(wǎng)絡(luò)通信降低了任務(wù)效率。此外,現(xiàn)有的預(yù)訓(xùn)練模型足夠強(qiáng)大,可以對(duì)輸入樣本中的絕大部分做出正確推理。對(duì)于模型可以正確處理的簡(jiǎn)單片段,為它們檢索知識(shí)是沒(méi)有價(jià)值的。
因此,減少檢索次數(shù)、檢索更有價(jià)值的知識(shí),對(duì)于提高中文NER檢索增強(qiáng)模型的效率和效果至關(guān)重要。為此,本文調(diào)查了模型推理錯(cuò)誤的分布,統(tǒng)計(jì)數(shù)據(jù)表明,模型的推理錯(cuò)誤大部分分布于模型的不確定片段中,模型的不確定片段構(gòu)成了性能瓶頸。因此,本文提出基于不確定片段的檢索增強(qiáng)命名實(shí)體識(shí)別框架,提取模型的實(shí)體級(jí)不確定片段并進(jìn)行檢索。具體地,本框架首先使用基礎(chǔ)NER模型進(jìn)行推理,利用蒙特卡洛丟棄法[11](Monte-Carlo Dropout)或K-最優(yōu)標(biāo)簽序列定位輸入樣本的不確定片段。然后,通過(guò)將不確定片段作為關(guān)鍵詞進(jìn)行檢索,本框架可以高效獲取所需知識(shí)。最后,輸入的樣本和知識(shí)文本被送入知識(shí)融合模型以做出最終推理。本文在4個(gè)基準(zhǔn)公開(kāi)中文NER數(shù)據(jù)集中使用不同知識(shí)庫(kù)進(jìn)行實(shí)驗(yàn)以評(píng)估本框架的有效性。
綜上所述,本文的主要貢獻(xiàn)如下:
(1) 本文發(fā)現(xiàn),不確定片段是目前NER模型的性能瓶頸,且K-最優(yōu)標(biāo)簽序列之間的差異是定位它們的良好指標(biāo);
(2) 本文提出只對(duì)不確定片段進(jìn)行檢索,這不僅減少了檢索次數(shù),而且令檢索目標(biāo)更加精確;
(3) 實(shí)驗(yàn)結(jié)果表明,本框架在所有數(shù)據(jù)集上性能都明顯優(yōu)于基線NER模型,平均提高1.21%的F值,本框架的表現(xiàn)也優(yōu)于現(xiàn)有的詞典NER方法,是當(dāng)前最佳結(jié)果(于MSRA數(shù)據(jù)集達(dá)到96.85%F值,于Ontonotes數(shù)據(jù)集達(dá)到83.78%F值)。
隨著深度學(xué)習(xí)技術(shù)的發(fā)展,神經(jīng)網(wǎng)絡(luò)已經(jīng)成為NER任務(wù)的主導(dǎo)性解決方案[12-13]。近年來(lái),基于詞典的方法在中文NER領(lǐng)域得到廣泛應(yīng)用。Yang和Zhang[4]提出基于詞典的長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(Long Short Term Memory Network, LSTM),將詞典邊界信息編碼于網(wǎng)絡(luò)中。Li[5]等人提出了基于詞格的Transformer網(wǎng)絡(luò)FLAT,將詞典項(xiàng)的邊界信息通過(guò)首尾詞嵌入編碼,在不丟失信息的前提下轉(zhuǎn)為一維扁平信息,進(jìn)而利用Transformer模型將其與原序列信息融合。Liu[6]等人利用BERT適配器(BERT Adapter)[14]從BERT[3]模型底層引入詞典信息,從而令詞典信息與原輸入序列充分交互。這兩類方法在詞典更新時(shí)需要重新訓(xùn)練模型。Wang[7]等人提出了適配動(dòng)態(tài)更新詞典的模型DyLex,該模型丟棄詞典項(xiàng)的詞嵌入,僅保留邊界信息,并使用降噪層篩選所有匹配的詞典項(xiàng)。該方法丟棄了詞典項(xiàng)嵌入中的語(yǔ)義信息。
真實(shí)世界的信息與知識(shí)在持續(xù)更新,然而神經(jīng)網(wǎng)絡(luò)中的模型參數(shù)是固定的,并且它們的容量有限。利用檢索方法增強(qiáng)神經(jīng)網(wǎng)絡(luò)是解決上述難題的一種途徑。該方法在外部知識(shí)庫(kù)中進(jìn)行檢索,利用外部知識(shí)增強(qiáng)模型性能。該方法已經(jīng)在若干NLP任務(wù)中得到應(yīng)用,如語(yǔ)言模型[15-16]、機(jī)器翻譯[17]、自動(dòng)問(wèn)答[18-19]。在NER領(lǐng)域,Wang[10]等人提出利用搜索引擎增強(qiáng)NER模型。該方法使用遍歷策略,將輸入文本根據(jù)標(biāo)點(diǎn)符號(hào)切分為子句,并將每個(gè)子句作為關(guān)鍵詞進(jìn)行檢索,從而獲取與輸入文本相關(guān)的上下文。此外,他們采用知識(shí)蒸餾[20]技術(shù)將與訓(xùn)練集相關(guān)的外部上下文知識(shí)融入模型。該方法檢索次數(shù)多,網(wǎng)絡(luò)吞吐代價(jià)高,且檢索精度較低,無(wú)法篩選最重要的知識(shí)。
模型對(duì)推理的置信程度并非等價(jià)于歸一化指數(shù)函數(shù)(Softmax)輸出數(shù)值的大小[11]。貝葉斯模型給出了計(jì)算模型不確定度的數(shù)學(xué)框架,但是該框架計(jì)算復(fù)雜度極高。為了在較低計(jì)算復(fù)雜度下獲取模型不確定度,Gal和Ghahramani[11]提出了蒙特卡洛丟棄法,一種高斯過(guò)程的貝葉斯近似推理。該方法在模型推理過(guò)程中保持隨機(jī)丟棄單元(Dropout)激活,通過(guò)多輪推理結(jié)果的差異來(lái)估計(jì)模型不確定度。不確定度估計(jì)在主動(dòng)學(xué)習(xí)(Active Learning)領(lǐng)域應(yīng)用廣泛[22-23]。模型不確定的樣本被視作含有更多信息,在擴(kuò)充訓(xùn)練集時(shí)會(huì)被優(yōu)先標(biāo)注。在序列標(biāo)注領(lǐng)域,Gui[24]等人采用蒙特卡洛丟棄法獲取草擬標(biāo)簽與字符級(jí)別不確定標(biāo)簽,然后使用雙流注意力機(jī)制來(lái)建模草擬標(biāo)簽間的長(zhǎng)程依賴并修改不確定字符標(biāo)簽。該方法沒(méi)有引入外部信息,模型很難修改推理錯(cuò)誤的不確定字符,性能提升有限。
本節(jié)將介紹本框架對(duì)序列標(biāo)注范式NER模型的不確定片段的采樣方法,以及對(duì)中文NER樣本不確定片段重要程度的調(diào)研。
2.1.1 蒙特卡洛丟棄法
蒙特卡洛丟棄法是估計(jì)神經(jīng)網(wǎng)絡(luò)不確定度的一種通用方法。在序列標(biāo)注任務(wù)中,使用蒙特卡洛丟棄法可以獲取每個(gè)字符位置的不確定度。然而對(duì)于NER任務(wù),相較于不確定字符,實(shí)體級(jí)的不確定片段更有利于后續(xù)的精確檢索。具體地,給定輸入樣本,首先使模型正常推理獲取初步結(jié)果,然后將隨機(jī)丟棄單元激活,利用蒙特卡洛丟棄法獲取K個(gè)候選標(biāo)簽序列。此時(shí)可忽略字符級(jí)的不確定度信息,轉(zhuǎn)而將初步結(jié)果序列與候選標(biāo)簽序列中的標(biāo)簽解碼,獲取模型在每個(gè)序列中推理得到的實(shí)體。本框架將不同序列實(shí)體集合之間的差集視作不確定實(shí)體,通過(guò)合并所有交叉、相鄰的不確定實(shí)體就可以獲取不確定片段。表1展示了一則獲取不確定片段的例子,表格頂部為輸入樣本,中部包含了初步結(jié)果序列與候選標(biāo)簽序列,底部通過(guò)嵌套括號(hào)符號(hào)展示了不確定實(shí)體與不確定文本片段。不確定片段由不確定實(shí)體構(gòu)成,長(zhǎng)度、信息量均為實(shí)體級(jí)別。
表1 一則獲取輸入樣本不確定片段的示例
2.1.2K-最優(yōu)標(biāo)簽序列
蒙特卡洛丟棄法需要模型進(jìn)行多次推理,會(huì)消耗較多計(jì)算資源。因此,本文提出了對(duì)序列標(biāo)注范式NER進(jìn)行不確定度采樣的另一種可選方法。給定輸入序列的標(biāo)簽概率分布,使用常見(jiàn)的維特比解碼算法可以解碼出概率分?jǐn)?shù)最高的標(biāo)簽序列。通過(guò)微調(diào)維特比解碼算法的迭代流程[25],可以獲取概率分?jǐn)?shù)為前K高的K個(gè)標(biāo)簽序列。NER領(lǐng)域?qū)-最優(yōu)標(biāo)簽序列研究較少,過(guò)去有工作對(duì)K個(gè)標(biāo)簽序列重新進(jìn)行排序以獲取精度最高的序列[26]。本文發(fā)現(xiàn)K-最優(yōu)標(biāo)簽序列亦可指示模型不確定度。將分?jǐn)?shù)最高的序列用作初步結(jié)果,將其他序列用作候選序列,即可按上一節(jié)所述獲取不確定文本片段。此外,本文觀察到,當(dāng)模型對(duì)推理結(jié)果置信程度很高時(shí),K-最優(yōu)標(biāo)簽序列之間的差異極小,例如,將一個(gè)單個(gè)的“O”標(biāo)簽修改為“S”類型標(biāo)簽。因?yàn)楫?dāng)沒(méi)有其他潛在不確定實(shí)體時(shí),修改單個(gè)標(biāo)簽的改動(dòng)最少,對(duì)標(biāo)簽序列的總分?jǐn)?shù)影響最小。因此,為了最小化檢索次數(shù),考慮到絕大多數(shù)中文實(shí)體的長(zhǎng)度超過(guò)一個(gè)字符,本框架過(guò)濾掉與初步結(jié)果序列相差單個(gè)標(biāo)簽的候選標(biāo)簽序列。
為了證實(shí)不確定片段與模型推理錯(cuò)誤分布之間的相關(guān)性并探究不確定片段的數(shù)量性質(zhì),本文在4個(gè)公開(kāi)的基準(zhǔn)中文NER數(shù)據(jù)集中使用BERT模型進(jìn)行調(diào)研實(shí)驗(yàn)(1)詳細(xì)實(shí)驗(yàn)設(shè)置見(jiàn)第4節(jié)。在使用訓(xùn)練集微調(diào)BERT模型后,本文使用蒙特卡洛丟棄法為測(cè)試集中的每個(gè)樣本生成初步結(jié)果序列與8個(gè)候選標(biāo)簽序列,結(jié)果如表2所示。其中,F值代表BERT模型在每個(gè)數(shù)據(jù)集中正常預(yù)測(cè)的F值得分;F值理論上限代表修改正確所有不確定片段后模型的F值得分;不確定標(biāo)簽準(zhǔn)確率與確定標(biāo)簽準(zhǔn)確率分別代表模型在不確定片段與置信片段的標(biāo)簽級(jí)推理準(zhǔn)確率;不確定片段平均數(shù)代表每個(gè)測(cè)試樣本平均擁有的不確定片段數(shù)量;不確定片段平均長(zhǎng)度代表每個(gè)數(shù)據(jù)集中所有不確定片段的平均字符數(shù)。
表2 不確定片段采樣調(diào)研結(jié)果
從表2可見(jiàn),不確定片段的數(shù)量與模型在數(shù)據(jù)集中的性能呈負(fù)相關(guān)。整體而言,不確定片段平均數(shù)較少,且平均長(zhǎng)度很短,證明模型對(duì)大部分樣本置信度較高,僅對(duì)少部分短片段不確定程度高。相較于遍歷子句進(jìn)行檢索,只對(duì)不確定片段進(jìn)行檢索可大幅減少檢索數(shù)量,提高檢索精度。此外,不確定片段雖然占比少,卻分布了大量推理錯(cuò)誤。F值理論上限與實(shí)際F值的差異、不確定標(biāo)簽準(zhǔn)確率與確定標(biāo)簽準(zhǔn)確率間的差異,說(shuō)明了不確定片段是難度最高的部分。不確定片段在占比少的情況下錯(cuò)誤率高,構(gòu)成了模型的性能瓶頸。因此,通過(guò)對(duì)不確定片段進(jìn)行檢索,可以高效獲取模型最需要的外部知識(shí)。
通過(guò)將不確定片段作為關(guān)鍵詞進(jìn)行檢索,可以有效獲取外部文本知識(shí)以輔助模型推理。實(shí)際應(yīng)用中存在多種檢索方式,最通用的檢索資源是搜索引擎,搜索引擎在幾乎所有領(lǐng)域均可有效獲取文本知識(shí)。對(duì)于延遲要求高或成本要求高的使用場(chǎng)景,可以使用離線檢索方式。在收集領(lǐng)域文本知識(shí)庫(kù)如百科、知識(shí)圖譜、數(shù)據(jù)庫(kù)文本項(xiàng)后,可在文本知識(shí)庫(kù)中使用離散檢索算法或稠密向量檢索算法進(jìn)行索引。對(duì)于知識(shí)分布集中的場(chǎng)景,可以利用搜索引擎獲取足量相關(guān)文本構(gòu)建本地知識(shí)庫(kù)。在實(shí)際推理時(shí)可在本地知識(shí)庫(kù)中進(jìn)行離線檢索。
本節(jié)將展示本框架的整體架構(gòu)與訓(xùn)練流程。如圖1所示,本框架使用兩階段流水線對(duì)不確定片段進(jìn)行推理。在第一階段,本框架使用基礎(chǔ)NER模型推理得到初步結(jié)果與不確定片段。在使用不確定片段檢索得到外部知識(shí)后,本框架在第二階段使用知識(shí)融合模型結(jié)合外部知識(shí)與初步結(jié)果進(jìn)行推理。兩階段的模型參數(shù)互相獨(dú)立。
圖1 本框架整體架構(gòu)
在第一階段,本框架使用基礎(chǔ)NER模型獲取初步結(jié)果并采樣不確定片段。基礎(chǔ)NER模型可以是任何序列標(biāo)注范式的NER模型,如添加線性分類層的BERT。正式地,給定輸入樣本X=(c1,c2,…,cn),使用基礎(chǔ)NER模型對(duì)其正常推理得到初步結(jié)果Lp。然后,通過(guò)蒙特卡洛丟棄法或K-最優(yōu)標(biāo)簽序列,可以利用基礎(chǔ)NER模型得到若干候選序列Lc,進(jìn)一步如2.1節(jié)所述得到不確定片段U=(ci,ci+1,…,ci+o)。如果所有候選序列均與初步結(jié)果一致,即模型對(duì)輸入樣本置信,則初步結(jié)果Lp可作為最終結(jié)果。反之,可以利用U作為關(guān)鍵詞進(jìn)行檢索,得到外部知識(shí)文本K=(k1,k2,…,km)。如果在一個(gè)輸入樣本中存在多個(gè)不確定片段,本框架分別為其檢索知識(shí)并在第二階段分別為不確定片段進(jìn)行推理。
由于本框架中基礎(chǔ)NER模型與知識(shí)融合模型的參數(shù)互相獨(dú)立,兩階段的模型訓(xùn)練也可以獨(dú)立進(jìn)行?;A(chǔ)NER模型的訓(xùn)練流程與常規(guī)方法相同,本節(jié)將專注于知識(shí)融合模型的訓(xùn)練。
3.3.1 訓(xùn)練數(shù)據(jù)獲取
為了減小模型訓(xùn)練與推理間的差距,在訓(xùn)練知識(shí)融合模型前需要對(duì)訓(xùn)練集中每個(gè)樣本的不確定片段進(jìn)行采樣。使用在全部訓(xùn)練數(shù)據(jù)中微調(diào)的基礎(chǔ)NER模型存在標(biāo)簽泄露問(wèn)題,無(wú)法反映真實(shí)困難樣本。因此,本框架基于K-折交叉驗(yàn)證的思路,將訓(xùn)練集的數(shù)據(jù)均分為K份,通過(guò)獨(dú)立的K步為整個(gè)訓(xùn)練集采樣不確定片段。具體地,每一步中選取1份數(shù)據(jù)作為采樣目標(biāo),其余K-1份數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)。可使用K-1份訓(xùn)練數(shù)據(jù)訓(xùn)練基礎(chǔ)NER模型,對(duì)采樣目標(biāo)生成候選標(biāo)簽序列并獲取不確定片段。此外,可以利用模型訓(xùn)練中的不同檢查點(diǎn)(Checkpoint)生成多樣化的不確定文本片段。給定輸入樣本,依次加載模型的全部檢查點(diǎn)并獲取對(duì)應(yīng)不確定片段,若該不確定片段與已有片段均無(wú)顯著重疊,則將其加入知識(shí)融合模型的訓(xùn)練流程。
3.3.2 損失函數(shù)計(jì)算
對(duì)知識(shí)融合模型最直觀的優(yōu)化方式是使用交叉熵?fù)p失函數(shù),并且忽略外部知識(shí)文本片段的損失值。更進(jìn)一步地,知識(shí)融合模型應(yīng)該學(xué)習(xí)如何推理不確定片段,而非其他置信的簡(jiǎn)單片段,尤其在給定初步結(jié)果的情況下。因此,本框架為交叉熵?fù)p失函數(shù)引入字符級(jí)別加權(quán)平均,減小置信片段每個(gè)字符的損失權(quán)重。計(jì)算損失函數(shù)L如式(3)、式(4)所示。
其中,λi是第i位置的權(quán)重系數(shù),lossi是第i位置的交叉熵?fù)p失值,α是取值屬于[0,1]的超參數(shù)。當(dāng)α取值為1時(shí)等價(jià)于普通的交叉熵?fù)p失函數(shù)。通過(guò)減小置信片段的損失值權(quán)重,模型可以專注于對(duì)高難度不確定片段的優(yōu)化。
本文在公開(kāi)基準(zhǔn)數(shù)據(jù)集中進(jìn)行綜合分析實(shí)驗(yàn)以驗(yàn)證本框架的有效性。本文使用{B,I,E,S,O}標(biāo)簽集合,并使用標(biāo)準(zhǔn)F1值作為評(píng)估標(biāo)準(zhǔn)。所有實(shí)驗(yàn)均使用GeForce RTX 3090型號(hào)顯卡進(jìn)行運(yùn)算。
本文在4個(gè)公開(kāi)的基準(zhǔn)中文NER數(shù)據(jù)集中進(jìn)行實(shí)驗(yàn),包括MSRA數(shù)據(jù)集[27],Ontonotes 4.0數(shù)據(jù)集[28],Resume數(shù)據(jù)集[4]和Weibo數(shù)據(jù)集[29]。MSRA數(shù)據(jù)集與Ontonotes數(shù)據(jù)集均取自新聞?lì)I(lǐng)域語(yǔ)料,通過(guò)標(biāo)注得到;Weibo為網(wǎng)絡(luò)博客語(yǔ)料標(biāo)注得到;Resume為簡(jiǎn)歷語(yǔ)料標(biāo)注得到。本文采取與先前工作相同的訓(xùn)練集、驗(yàn)證集、測(cè)試集劃分[5]。數(shù)據(jù)集統(tǒng)計(jì)信息如表3所示。
表3 數(shù)據(jù)集統(tǒng)計(jì)信息
4.2.1 模型設(shè)置
在本框架的第一階段,本文使用添加線性分類層的BERT-base(2)https://huggingface.co/hfl/chinese-bert-wwm作為基礎(chǔ)NER模型。為獲取合法標(biāo)簽序列,本文使用維特比解碼并限制非法標(biāo)簽轉(zhuǎn)移。在第一階段訓(xùn)練完畢后,本框架固定基礎(chǔ)NER模型,進(jìn)行第二階段的訓(xùn)練。在本框架的第二階段,本文使用BERT-base初始化知識(shí)融合模型,并隨機(jī)初始化該模型中的標(biāo)簽詞嵌入。
4.2.2 參數(shù)設(shè)置
所有實(shí)驗(yàn)中,本模型均使用AdamW優(yōu)化器[30],使用比例為0.1的線性預(yù)熱(Warm-up)學(xué)習(xí)率,所有輸入文本被截?cái)酁樽铋L(zhǎng)128字符,批大小(Batchsize)設(shè)置為32。第一階段,基礎(chǔ)NER模型在所有訓(xùn)練數(shù)據(jù)中迭代20輪次(Epoch),學(xué)習(xí)率設(shè)置為2e-5。第二階段,模型的迭代輪次為10,其余超參數(shù)采用隨機(jī)搜索策略選取最優(yōu)組合。學(xué)習(xí)率的搜索范圍是{2e-5,3e-5},權(quán)重因子α的搜索范圍是{0.1,1}。其余超參數(shù)均與BERT-base模型相同。本文在每個(gè)輪次的迭代后于驗(yàn)證集中評(píng)估模型性能。本文通過(guò)模型在驗(yàn)證集中的指標(biāo)選取最優(yōu)檢查點(diǎn),并匯報(bào)該檢查點(diǎn)在測(cè)試集中的性能指標(biāo)。
4.2.3 不確定片段采樣
本文使用蒙特卡洛丟棄法與K-最優(yōu)標(biāo)簽序列進(jìn)行不確定片段采樣。在默認(rèn)實(shí)驗(yàn)設(shè)定中,針對(duì)蒙特卡洛丟棄法,本文生成8組候選序列;針對(duì)K-最優(yōu)標(biāo)簽序列,本文選取分?jǐn)?shù)前3候選序列,即兩組候選序列。本文預(yù)先訓(xùn)練基礎(chǔ)NER模型,并對(duì)所有實(shí)驗(yàn)數(shù)據(jù)集進(jìn)行不確定片段采樣,后續(xù)第二階段針對(duì)知識(shí)融合模型的實(shí)驗(yàn)組均使用相同不確定片段。
4.2.4 檢索設(shè)置
考慮到搜索引擎的通用性,本文在所有數(shù)據(jù)集的主實(shí)驗(yàn)及消融實(shí)驗(yàn)中均使用百度搜索引擎(3)www.baidu.com作為外部知識(shí)庫(kù)。本文將屬于百科類別的檢索結(jié)果項(xiàng)設(shè)為最高優(yōu)先級(jí),其余類別檢索結(jié)果項(xiàng)的優(yōu)先級(jí)順序不做改變。每項(xiàng)檢索結(jié)果項(xiàng)的標(biāo)題全部保留,內(nèi)容截?cái)嘀?0字符。所有檢索結(jié)果項(xiàng)按優(yōu)先級(jí)順序首尾相連接。在本框架的第二階段,外部知識(shí)文本截?cái)嘀磷铋L(zhǎng)400字符。
本文選取近年中文NER領(lǐng)域性能最佳的方法進(jìn)行對(duì)比,實(shí)驗(yàn)結(jié)果與對(duì)比結(jié)果如表4所示。表中所示數(shù)值均為使用實(shí)體的準(zhǔn)確率與召回率進(jìn)行計(jì)算的標(biāo)準(zhǔn)F值百分點(diǎn)。在表格頂部本文展示無(wú)須使用詞典的NER算法,包括BiLSTM+CRF[31]、TENER[32]與ERNIE[33]。在表格的第二部分展示了近年使用詞典的性能最佳NER算法,包含LatticeLSTM[4]、PLTE[34]、結(jié)合BERT模型的FLAT[5]算法、結(jié)合BERT模型的Soft-Lexicon[35]算法、LEBERT[6]、結(jié)合BERT模型的DyLex[7]算法。表格底部展示了本框架在第一階段基于BERT的基礎(chǔ)NER模型性能與第二階段算法性能,其中二階段+蒙特卡洛代表本框架使用蒙特卡洛丟棄法作為不確定片段采樣方式;二階段+K-最優(yōu)代表使用K-最優(yōu)標(biāo)簽序列作為不確定片段采樣方式。本文使用的BERT模型與對(duì)比算法使用的BERT模型參數(shù)量大小相同。由于提出檢索基線算法的工作[10]未在中文NER數(shù)據(jù)集中進(jìn)行實(shí)驗(yàn),本文復(fù)現(xiàn)該算法并于消融實(shí)驗(yàn)與之進(jìn)行對(duì)比。
表4 框架整體性能 (單位: %)
結(jié)果顯示,相較于基于BERT的基礎(chǔ)NER模型,結(jié)合蒙特卡洛丟棄法與K-最優(yōu)標(biāo)簽序列的第二階段將F值分別提升1.05與1.21個(gè)百分點(diǎn)。基于詞典的算法普遍優(yōu)于不使用詞典的基線算法,然而,本框架仍大幅優(yōu)于基于詞典的算法,證明沒(méi)有詞匯邊界信息的通用文本信息對(duì)模型推理具有很大幫助。在這些數(shù)據(jù)集當(dāng)中,本框架在MSRA與 Ontonotes 中帶來(lái)的性能提升最為突出,本文分析認(rèn)為新聞?lì)I(lǐng)域數(shù)據(jù)集中的實(shí)體更容易在搜索引擎中檢索到相關(guān)信息,與常識(shí)相符。與表2中F值理論上限相比,Weibo數(shù)據(jù)集中的性能提升相對(duì)較小,分析發(fā)現(xiàn)Weibo數(shù)據(jù)集中實(shí)存在大量無(wú)規(guī)則網(wǎng)絡(luò)昵稱,難以在搜索引擎中檢索到相關(guān)信息。從實(shí)驗(yàn)結(jié)果可以分析得到,本框架對(duì)模型性能的提升直接與被檢索到知識(shí)本身的質(zhì)量,以及與不確定片段的相關(guān)程度。
本文進(jìn)行消融實(shí)驗(yàn)以驗(yàn)證框架中各個(gè)組件的有效性與貢獻(xiàn)度。消融實(shí)驗(yàn)的設(shè)定如下:
(1)消融檢索: 在第一階段對(duì)不確定片段采樣后不進(jìn)行檢索,直接將第一階段的初步結(jié)果與原輸入序列送入知識(shí)融合模型,在沒(méi)有外部知識(shí)的情況下做推理。
(2)消融不確定片段: 不再使用兩階段模型進(jìn)行不確定片段采樣。參照Wang等人的算法[10],利用輸入文本的子句作為檢索的關(guān)鍵詞,將檢索項(xiàng)拼接在句子后利用單個(gè)模型做推理。
(3)消融標(biāo)簽詞嵌入: 不再使用標(biāo)簽詞嵌入,即不將基礎(chǔ)NER模型的初步結(jié)果送入知識(shí)融合模型。
(4)消融加權(quán)交叉熵: 二階段優(yōu)化知識(shí)融合模型計(jì)算損失值時(shí)不再使用加權(quán)交叉熵,等價(jià)于將權(quán)重恒設(shè)置為1。
消融實(shí)驗(yàn)結(jié)果如表5所示。本框架的兩階段的架構(gòu)可以被視為一種特殊的模型集成方式,可以在沒(méi)有外部知識(shí)的情況下小幅提高性能。消融不確定片段采樣后, 通過(guò)子句查詢檢索得到的外部上下文的貢獻(xiàn)有限。通過(guò)結(jié)合不確定片段采樣和檢索方法,本框架可以在最大程度上提升性能。此外,標(biāo)簽詞嵌入與加權(quán)交叉熵?fù)p失對(duì)知識(shí)融合模型的訓(xùn)練也具有貢獻(xiàn)。
表5 消融實(shí)驗(yàn)結(jié)果 (單位: %)
為了驗(yàn)證本框架的泛化能力,本文使用簡(jiǎn)單的檢索算法,結(jié)合多種外部知識(shí)庫(kù)與檢索框架pyserini(4)https://github.com/castorini/pyserini進(jìn)行實(shí)驗(yàn)。
(1)SE離線庫(kù): 將訓(xùn)練數(shù)據(jù)中的不確定成分在搜索引擎中進(jìn)行檢索,并將所有檢索項(xiàng)保存至本地?cái)?shù)據(jù)庫(kù)。在測(cè)試時(shí),使用BM25算法在本地?cái)?shù)據(jù)庫(kù)中進(jìn)行離線檢索。知識(shí)文本總量為46.6MB,檢索延遲約為1~5ms。
(2)詞典: 使用不確定片段與詞典進(jìn)行匹配,將所有匹配到的詞典項(xiàng)作為外部文本知識(shí)。本文所用詞典與4.3節(jié)中所引用對(duì)比實(shí)驗(yàn)的詞典相同。詞典文本總量為8.36MB,匹配延遲小于1ms。
(3)知識(shí)圖譜: 本文使用思知(5)www.ownthink.com/knowledge.html知識(shí)圖譜,其中包含1.4億條關(guān)系三元組。本文將所有包含同一對(duì)象的三元組拼接,成為該對(duì)象的描述文檔,并使用BM25算法檢索相匹配的文檔。知識(shí)圖譜三元組數(shù)量較大,文本總量達(dá)到6.29GB,檢索延遲為10ms級(jí)別。
(4)中文維基: 本文下載了開(kāi)源的中文維基百科(6)dumps.wikimedia.org/zhwiki/,在簡(jiǎn)單的預(yù)處理后提取其中包含的所有文章。在應(yīng)用本框架時(shí),本文使用BM25算法從文章中檢索匹配項(xiàng)。中文維基的文本總量為2.45GB,檢索延遲為10ms級(jí)別。相較于基于算法生成的知識(shí)圖譜,中文維基文本量較少,但質(zhì)量更高。
在這些外部知識(shí)庫(kù)中,SE離線庫(kù)的知識(shí)廣度最受限,詞典包含的信息量最少。知識(shí)庫(kù)泛化能力實(shí)驗(yàn)結(jié)果如表6所示,本框架可使用于多種類型的文本知識(shí)庫(kù)??梢园l(fā)現(xiàn),本框架的性能與知識(shí)的質(zhì)量、信息量直接相關(guān)。即使將詞典項(xiàng)直接與輸入拼接,性能仍優(yōu)于過(guò)去基于詞典的NER算法,證明了針對(duì)不確定片段進(jìn)行知識(shí)增強(qiáng)的重要性。即使使用簡(jiǎn)單的BM25算法,當(dāng)使用如中文維基等高質(zhì)量知識(shí)庫(kù)時(shí),模型性能提升仍然顯著。
表6 知識(shí)庫(kù)泛化能力實(shí)驗(yàn)結(jié)果 (單位: %)
蒙特卡洛丟棄法與K-最優(yōu)標(biāo)簽序列在F值得分方面性能相當(dāng)。為了在更多維度上進(jìn)行比較,本文提出兩個(gè)新指標(biāo)來(lái)衡量。
(1)采樣接收率: 使用蒙特卡洛丟棄法時(shí),大部分候選序列均會(huì)雷同;而K-最優(yōu)標(biāo)簽序列產(chǎn)生的候選序列大部分因與初步結(jié)果相差過(guò)小而被過(guò)濾掉。采樣接收率即為經(jīng)過(guò)去重、過(guò)濾后得到保留的候選序列比例。采樣接收率反映了采樣方法的召回能力。
(2)有效樣本率: 去重后,F值得分高于初步結(jié)果序列的候選標(biāo)簽序列所占比例。有效樣本率反映了采樣結(jié)果的噪聲大小。
對(duì)比結(jié)果如表7所示。結(jié)果表明,K-最優(yōu)標(biāo)簽序列采樣法召回能力更強(qiáng),也產(chǎn)生更多噪聲。從計(jì)算復(fù)雜度的角度考慮,采樣K遍的蒙特卡洛采樣法在第一階段將模型的計(jì)算復(fù)雜度提高K倍,K-最優(yōu)標(biāo)簽序列采樣法不影響第一階段的計(jì)算復(fù)雜度;然而K-最優(yōu)標(biāo)簽序列采樣法采樣得到更多的不確定片段,意味著更多的檢索次數(shù)與二階段模型推理。最佳方案的選擇應(yīng)結(jié)合數(shù)據(jù)集不確定片段的數(shù)量分布與具體檢索方式進(jìn)行判斷。以本文實(shí)驗(yàn)設(shè)置為例,在不考慮檢索延遲的情況下,蒙特卡洛采樣法與K-最優(yōu)標(biāo)簽序列采樣法在4個(gè)數(shù)據(jù)集中分別將模型的計(jì)算復(fù)雜度平均提高了824%與108%,當(dāng)使用高延遲的線上搜索引擎時(shí),蒙特卡洛法綜合性能更優(yōu);當(dāng)使用離線知識(shí)庫(kù)時(shí)則K-最優(yōu)標(biāo)簽序列法性能更優(yōu)。在實(shí)際應(yīng)用中,可以根據(jù)使用場(chǎng)景調(diào)整超參數(shù)K折中性能與計(jì)算復(fù)雜度。
表7 不確定片段采樣方法對(duì)比實(shí)驗(yàn)結(jié)果
本文于MSRA測(cè)試集對(duì)不確定片段采樣方法的超參進(jìn)行分析調(diào)查,包含蒙特卡洛丟棄法中前向傳播產(chǎn)生的候選序列數(shù)、隨機(jī)丟棄單元的丟棄概率,以及K-最優(yōu)標(biāo)簽序列中選取的候選序列數(shù)。結(jié)果如表8所示。過(guò)低的采樣能力無(wú)法有效提取不確定片段,而過(guò)強(qiáng)的采樣能力會(huì)導(dǎo)致大量噪聲,兩者均對(duì)性能產(chǎn)生負(fù)面影響。采樣能力對(duì)性能的影響呈先升后降趨勢(shì),存在局部最優(yōu)參數(shù)。
表8 不確定片段采樣方法超參分析結(jié)果
為了更直觀地展現(xiàn)檢索過(guò)程為模型預(yù)測(cè)過(guò)程帶來(lái)的增益,本文給出對(duì)某一真實(shí)輸入樣例,本框架使用不同知識(shí)庫(kù)時(shí)的輸入知識(shí)案例分析。結(jié)果如表9所示。可以看出,對(duì)于文本片段“總后嫩江基地”,“總后”并非常用詞語(yǔ),基線模型無(wú)法區(qū)分該片段整體是否作為實(shí)體。使用該片段作為關(guān)鍵詞, 可以在多個(gè)知識(shí)庫(kù)中檢索到“總后勤部嫩江基地”及相關(guān)信息,這些可以幫助模型更好地理解文本,從而做出正確判斷。
表9 案例分析
本文提出了基于不確定片段的檢索增強(qiáng)命名實(shí)體識(shí)別框架。該框架利用蒙特卡洛丟棄法或K-最優(yōu)標(biāo)簽序列提取輸入樣本中的不確定片段,并據(jù)此于外部文本知識(shí)庫(kù)中進(jìn)行檢索。最終,本框架利用外部知識(shí)輔助推理。結(jié)果表明,本框架顯著提升模型性能。現(xiàn)有的NLP技術(shù)無(wú)法在神經(jīng)模型中動(dòng)態(tài)地維護(hù)所有需要的知識(shí),于外部知識(shí)庫(kù)利用檢索方法可以解決這個(gè)問(wèn)題,而本文基于不確定片段的檢索范式使檢索方法更加有效、高效。未來(lái)工作中,我們將把基于不確定片段的檢索范式推廣到更多的NLP任務(wù)和應(yīng)用中。