樊康男,沈春鋒,王池社*
(1.安徽理工大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,安徽 淮南 232001;2.金陵科技學(xué)院網(wǎng)絡(luò)與通信工程學(xué)院,江蘇 南京 211169;3.南京中醫(yī)藥大學(xué)常州附屬醫(yī)院,江蘇 常州 213003)
命名實(shí)體識(shí)別(named entity recognition,NER)的主要任務(wù)是從文本中識(shí)別實(shí)體的語(yǔ)義類型(如個(gè)人、地點(diǎn)、組織等)[1],在關(guān)系抽取、實(shí)體鏈接、知識(shí)圖譜中具有重要應(yīng)用[2]。NER算法通常分為三類:基于序列標(biāo)注的方法[3-4]、基于跨度的方法[5-7]和基于序列到序列的方法[8-10]。這些方法都需要對(duì)預(yù)測(cè)標(biāo)簽進(jìn)行解碼,以獲得最終的實(shí)體。
針對(duì)預(yù)測(cè)標(biāo)簽解碼,標(biāo)簽的設(shè)計(jì)尤為重要?;谛蛄袠?biāo)注的方法通常為句子中的每個(gè)詞元分別分配BIO或者BILOU標(biāo)簽[11-13],以表示每個(gè)詞元是否在實(shí)體內(nèi)?;诳缍鹊姆椒ㄍㄟ^(guò)記錄實(shí)體的頭尾位置標(biāo)簽確定實(shí)體在句子中的位置,同時(shí)記錄跨度對(duì)應(yīng)的類別標(biāo)簽判別實(shí)體類別?;谛蛄械叫蛄械姆椒╗10]生成不同的數(shù)字,分別表示實(shí)體詞元在句子中的位置和實(shí)體對(duì)應(yīng)的類別。在這些標(biāo)簽設(shè)計(jì)方法中,一個(gè)實(shí)體對(duì)應(yīng)多個(gè)標(biāo)簽,實(shí)體中的標(biāo)簽只有全部預(yù)測(cè)正確才能獲取正確的實(shí)體,這種限制導(dǎo)致高標(biāo)簽預(yù)測(cè)精度也可能解碼出低實(shí)體預(yù)測(cè)精度。如圖1所示,假設(shè)標(biāo)簽1、標(biāo)簽2解碼獲得實(shí)體1,標(biāo)簽3、標(biāo)簽4解碼獲得實(shí)體2。上述解碼過(guò)程存在以下兩種情況:情況1,屬于實(shí)體1的標(biāo)簽全部預(yù)測(cè)正確,屬于實(shí)體2 的標(biāo)簽全部預(yù)測(cè)錯(cuò)誤,此時(shí)標(biāo)簽的預(yù)測(cè)準(zhǔn)確率為50%,整體的實(shí)體預(yù)測(cè)準(zhǔn)確率為50%;情況2,實(shí)體1和實(shí)體2的標(biāo)簽各有一半預(yù)測(cè)正確,此時(shí)標(biāo)簽的預(yù)測(cè)準(zhǔn)確率也為50%,但實(shí)體預(yù)測(cè)準(zhǔn)確率為0%。因此在標(biāo)簽預(yù)測(cè)精度相同的情況下,同一實(shí)體內(nèi)部的標(biāo)簽預(yù)測(cè)正確性一致時(shí),整體實(shí)體預(yù)測(cè)性能更好。
圖1 多標(biāo)簽組成實(shí)體示例
本文選擇W2NER[14]為基模型,采用RCL-NER算法,通過(guò)關(guān)系一致性損失(relation consistency loss,RCL)解決高標(biāo)簽預(yù)測(cè)精度解碼出低實(shí)體預(yù)測(cè)精度問(wèn)題;同時(shí),在RCL中引入權(quán)重因子[15]獲得協(xié)調(diào)關(guān)系一致性損失(focal relation consistency loss,FRCL),緩解W2NER中出現(xiàn)的類別不平衡問(wèn)題。
RCL-NER算法總體結(jié)構(gòu)如圖2所示。W2NER模型設(shè)計(jì)關(guān)系標(biāo)簽,將NER任務(wù)轉(zhuǎn)換成詞元間的關(guān)系預(yù)測(cè)任務(wù)。首先輸入句子到W2NER骨干網(wǎng)絡(luò)獲取全局關(guān)系網(wǎng)格,再?gòu)娜株P(guān)系網(wǎng)格生成實(shí)體關(guān)系網(wǎng)格。全局關(guān)系網(wǎng)格用于計(jì)算全局損失,全局損失體現(xiàn)句子中所有的預(yù)測(cè)關(guān)系與真實(shí)關(guān)系間的差異。實(shí)體關(guān)系網(wǎng)格用于計(jì)算實(shí)體損失,實(shí)體損失確保相同實(shí)體內(nèi)的關(guān)系具有相近的預(yù)測(cè)得分,每個(gè)實(shí)體關(guān)系網(wǎng)格只表示屬于相同實(shí)體的關(guān)系。將全局損失和實(shí)體損失結(jié)合,獲取RCL,最后在RCL中引入權(quán)重因子獲得FRCL,這兩種改進(jìn)的損失都可以用來(lái)代替基模型的損失函數(shù)。
圖2 總體結(jié)構(gòu)
輸入句子“I am having aching in legs and shoulders”到W2NER骨干網(wǎng)絡(luò),生成的全局關(guān)系網(wǎng)格如圖3左側(cè)所示,全局關(guān)系網(wǎng)格中的結(jié)點(diǎn)表示詞元兩兩對(duì)應(yīng)關(guān)系的向量化表示,可以看作一個(gè)三維矩陣V∈N×N×C,其中Vij表示詞元(xi,xj)間的關(guān)系向量,C表示關(guān)系類數(shù),N表示輸入句子的長(zhǎng)度。句子中存在兩個(gè)實(shí)體aching in legs和aching in shoulders,基于這兩個(gè)實(shí)體生成了圖3右側(cè)的兩個(gè)實(shí)體關(guān)系網(wǎng)格。
圖3 實(shí)體關(guān)系網(wǎng)格的生成
在全局關(guān)系網(wǎng)格中,深色結(jié)點(diǎn)代表句子中所有的NNW(next neighboring word)關(guān)系,即實(shí)體內(nèi)部相鄰詞元間存在位置上的相鄰關(guān)系,如aching in legs實(shí)體中的詞元對(duì)aching和in、in和legs;淺色結(jié)點(diǎn)代表THW*(tail head word*)關(guān)系,即實(shí)體的尾部詞元和頭部詞元之間存在的尾頭關(guān)系,如aching in legs中的詞元對(duì)legs和aching。通過(guò)THW*關(guān)系可以獲得實(shí)體的頭詞元和尾詞元在句子中的位置以及實(shí)體本身的類別信息。按照所屬實(shí)體的不同,將全局關(guān)系網(wǎng)格中的關(guān)系劃分到兩個(gè)網(wǎng)格中,獲得對(duì)應(yīng)的實(shí)體關(guān)系網(wǎng)格。
關(guān)系一致性損失由全局損失和實(shí)體損失結(jié)合得到。全局損失使用交叉熵?fù)p失,對(duì)于每個(gè)句子S=[x1,x2,…,xN],訓(xùn)練目標(biāo)為:
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
本文在兩個(gè)公共的命名實(shí)體識(shí)別數(shù)據(jù)集(連續(xù)實(shí)體數(shù)據(jù)集CoNLL-2003[16]和不連續(xù)數(shù)據(jù)集CADEC[17])上進(jìn)行實(shí)驗(yàn)。所有數(shù)據(jù)集設(shè)置和W2NER[14]一致,實(shí)體關(guān)系網(wǎng)格只用于訓(xùn)練階段,全局關(guān)系網(wǎng)格用于解碼實(shí)體,超參數(shù)如表1所示。
表1 超參數(shù)設(shè)置
實(shí)驗(yàn)隨機(jī)種子設(shè)置為123,用于避免隨機(jī)初始化帶來(lái)的誤差。以AdamW作為優(yōu)化器,實(shí)現(xiàn)框架使用Pytorch,在NVIDIA TESLA P100 GPU上進(jìn)行訓(xùn)練。使用4個(gè)指標(biāo)度量性能,分別為F1、準(zhǔn)確率(Presicion)、召回率(Recall)和關(guān)系實(shí)體轉(zhuǎn)換率(relation to entity,R2E)。R2E為自定義的指標(biāo),可表示為:
(11)
式中,F1Entity表示實(shí)體的F1值,F1Rel表示關(guān)系的F1值。
2.2.1 在公共數(shù)據(jù)集上的結(jié)果
使用式(4)作為RCL時(shí),RCL記作RCLmin,FRCL記作FRCLmin。使用式(5)作為RCL時(shí),RCL記作RCLmax,FRCL記作FRCLmax。記錄關(guān)系和實(shí)體的F1、Presicion和Recall,如表2所示。在不連續(xù)數(shù)據(jù)集CADEC上,RCL-NER使用上述4種損失函數(shù)后,相比于基模型W2NER都出現(xiàn)了性能提升,實(shí)體F1值最大提高了1.81個(gè)百分點(diǎn)。當(dāng)使用FRCLmin損失時(shí),RCL-NER達(dá)到最佳性能,指標(biāo)值優(yōu)于最新的不連續(xù)實(shí)體識(shí)別模型TOE。
表2 不同模型在兩種數(shù)據(jù)集上的識(shí)別結(jié)果 單位:%
在連續(xù)數(shù)據(jù)集CoNLL-2003上,RCL-NER使用上述4種損失函數(shù)后,相比于基模型W2NER(除FRCLmax外)都表現(xiàn)出性能提升,實(shí)體F1值最大提升了0.36個(gè)百分點(diǎn)。應(yīng)用RCLmax損失時(shí)性能最好,指標(biāo)值優(yōu)于新出的統(tǒng)一命名實(shí)體識(shí)別模型UIE。
2.2.2 消融實(shí)驗(yàn)
表3 不同模型在數(shù)據(jù)集CADEC上的消融結(jié)果
2.2.3 比較關(guān)系實(shí)體轉(zhuǎn)換率
通過(guò)記錄RCL的兩個(gè)變種在數(shù)據(jù)集CADEC和CoNLL-2003上的R2E值,驗(yàn)證RCL在緩解高標(biāo)簽預(yù)測(cè)精度可能解碼出低實(shí)體預(yù)測(cè)精度問(wèn)題上的有效性,結(jié)果如表4所示。在CADEC上R2E最大提升了1.52個(gè)百分點(diǎn),在CoNLL-2003上R2E最大提升了0.11個(gè)百分點(diǎn)。結(jié)果表明,RCL達(dá)到了設(shè)計(jì)之初的目標(biāo),即通過(guò)提高關(guān)系實(shí)體轉(zhuǎn)換率提升模型性能。
表4 不同模型在兩種數(shù)據(jù)集上的關(guān)系實(shí)體轉(zhuǎn)換率
表2和表4顯示,應(yīng)用RCL的RCL-NER算法通過(guò)提高關(guān)系到實(shí)體的轉(zhuǎn)換率提升實(shí)體預(yù)測(cè)精度,應(yīng)用RCL能夠緩解高標(biāo)簽預(yù)測(cè)精度解碼出低實(shí)體預(yù)測(cè)精度的問(wèn)題。
2.2.4 連續(xù)實(shí)體和不連續(xù)實(shí)體預(yù)測(cè)對(duì)比
為了驗(yàn)證提出的方法對(duì)兩類實(shí)體的影響,計(jì)算了實(shí)體在CADEC上預(yù)測(cè)正確的數(shù)量。如表5所示,應(yīng)用RCLmin的RCL-NER算法預(yù)測(cè)正確的不連續(xù)實(shí)體數(shù)小幅降低,預(yù)測(cè)正確的連續(xù)實(shí)體數(shù)量增加。應(yīng)用FRCLmin的RCL-NER預(yù)測(cè)正確的不連續(xù)實(shí)體和連續(xù)實(shí)體數(shù)量都增加。分析認(rèn)為,相較于應(yīng)用RCLmin的RCL-NER算法,應(yīng)用FRCLmin的RCL-NER算法可以同時(shí)保存不連續(xù)實(shí)體的跳躍特性和連續(xù)實(shí)體的連續(xù)特性。
表5 在CADEC測(cè)試集中預(yù)測(cè)正確的不連續(xù)實(shí)體和連續(xù)實(shí)體數(shù)量
2.2.5 超參β的影響
如式(4)和式(5)所示,實(shí)體關(guān)系得分可以取最大值也可以取最小值,因此存在RCLmin和RCLmax兩種RCL變體。使超參λ固定,分別設(shè)置超參β值為e-2、e-1、e-0.5和e-0.1,比較數(shù)據(jù)集CADEC上超參β對(duì)兩種變體的影響。如表6所示,RCLmax在超參β=e-2、λ=0.001時(shí)性能最好,F1達(dá)到73.30%;RCLmin在超參β=e-1、λ=0.001時(shí)性能最好,F1達(dá)到73.41%。
表6 不同超參β的識(shí)別結(jié)果 單位:%
隨著超參β的改變,應(yīng)用RCLmax基準(zhǔn)模型的實(shí)體F1值的改變更加平滑,表明RCLmax對(duì)超參不敏感。使用不同的超參β,結(jié)果相較于基模型性能都有提升,顯示RCLmax和RCLmin對(duì)超參β具有魯棒性。
相較于CoNLL-2003數(shù)據(jù)集,在CADEC數(shù)據(jù)集中應(yīng)用FRCL的RCL-NER算法性能提升更加顯著,原因可能是CADEC數(shù)據(jù)集比CoNLL-2003數(shù)據(jù)集更加稀疏。如表7所示,在CADEC數(shù)據(jù)集中,單句子平均實(shí)體數(shù)為0.83,句子平均長(zhǎng)度為16.18;CoNLL-2003中的單句子平均實(shí)體數(shù)為1.70,句子平均長(zhǎng)度為14.38。相較于CoNLL-2003數(shù)據(jù)集,CADEC數(shù)據(jù)集中的單句子實(shí)體更加稀疏,從而加劇了類別不平衡問(wèn)題。因此用于解決類別不平衡的權(quán)重因子更適用于CADEC數(shù)據(jù)集。
表7 訓(xùn)練數(shù)據(jù)集中的句子和實(shí)體情況
本文提出了RCL-NER算法,通過(guò)改進(jìn)損失函數(shù)實(shí)現(xiàn)同一實(shí)體內(nèi)的關(guān)系具有相同的得分分布,從而提高了關(guān)系到實(shí)體的轉(zhuǎn)換率,緩解了高標(biāo)簽預(yù)測(cè)精度可能解碼出低實(shí)體預(yù)測(cè)精度的問(wèn)題。同時(shí)引入權(quán)重因子,降低高得分類別的得分權(quán)重占比,緩解稀疏數(shù)據(jù)集中的類別不平衡問(wèn)題。消融實(shí)驗(yàn)結(jié)果表明,權(quán)重因子和實(shí)體損失在改進(jìn)的損失中扮演重要的角色。實(shí)驗(yàn)使用的數(shù)據(jù)集的種類相較于通用的模型數(shù)量較少。不同的超參β對(duì)于性能的影響仍有待探索。未來(lái)研究應(yīng)進(jìn)一步挖掘算法的普適性,使算法在多種類型數(shù)據(jù)集上都具有較好的性能,同時(shí)探索超參β如何對(duì)性能產(chǎn)生影響。