琚生根,李天寧,孫界平
(四川大學(xué) 計(jì)算機(jī)學(xué)院,四川 成都 610065)
命名實(shí)體識(shí)別是自然語(yǔ)言處理中的信息抽取任務(wù)之一,其目的是對(duì)文本中特定類(lèi)別的實(shí)體進(jìn)行定位和分類(lèi).大多數(shù)命名實(shí)體識(shí)別任務(wù)只識(shí)別人名、組織、地點(diǎn)等實(shí)體類(lèi)別,識(shí)別的實(shí)體類(lèi)別少,并且類(lèi)別劃分的比較寬泛.然而,細(xì)粒度命名實(shí)體識(shí)別更符合現(xiàn)實(shí)世界的知識(shí)體系,在一些常見(jiàn)類(lèi)別的基礎(chǔ)上做了近一步的類(lèi)別劃分,需要識(shí)別的實(shí)體種類(lèi)遠(yuǎn)多于一般的命名實(shí)體識(shí)別.這樣,從文本中抽取的實(shí)體就擁有了一個(gè)更詳細(xì)的定義,為下游的知識(shí)圖譜的構(gòu)建和問(wèn)答任務(wù)提供更有力的支撐.
在細(xì)粒度命名實(shí)體識(shí)別中,更細(xì)粒度的劃分會(huì)造成各實(shí)體類(lèi)別在語(yǔ)義上有更緊密的距離.模型對(duì)語(yǔ)義相近類(lèi)別的實(shí)體進(jìn)行分類(lèi)時(shí)容易發(fā)生混淆,這意味著細(xì)粒度實(shí)體類(lèi)別的區(qū)分更具有挑戰(zhàn)性.目前,中文公開(kāi)的高質(zhì)量細(xì)粒度命名實(shí)體識(shí)別的數(shù)據(jù)集很少,CLUENER2020[1]數(shù)據(jù)集包含10 種不同的實(shí)體類(lèi)別,并對(duì)一些常見(jiàn)類(lèi)別進(jìn)行了細(xì)粒度的劃分,如從“地點(diǎn)”中分離出來(lái)了“景點(diǎn)”,從“組織”中分離出了“政府”和“公司”,這就造成“地點(diǎn)”和“景點(diǎn)”之間,“組織”“政府”和“公司”之間的混淆程度較高.同時(shí),存在同一實(shí)體在不同語(yǔ)境下屬于不同類(lèi)別的情況,如“游戲”可以是一些“書(shū)籍”和“電影”的改編.如表1 所示,實(shí)體“《黑暗之塔》”在第1 個(gè)句子中屬于“游戲”類(lèi)別,在第2 和第3 個(gè)句子中屬于“書(shū)籍”.在這種情況下,對(duì)實(shí)體類(lèi)別的區(qū)分需要結(jié)合上下文語(yǔ)境,同時(shí)也給“游戲”“書(shū)籍”和“電影”實(shí)體類(lèi)別之間的區(qū)分造成混淆.Xu 等人[1]使用bilstm-crf[2]和預(yù)訓(xùn)練語(yǔ)言模型[3]在該數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),相同的模型在其他數(shù)據(jù)集上的F1 值可以達(dá)到95,然而在該數(shù)據(jù)集上,最好的效果只能達(dá)到80 左右.這是因?yàn)榧?xì)粒度數(shù)據(jù)集的句子中經(jīng)常存在多個(gè)類(lèi)別的實(shí)體,模型在預(yù)測(cè)時(shí)會(huì)出現(xiàn)一些實(shí)體類(lèi)別的丟失;同時(shí),模型對(duì)一些類(lèi)別的區(qū)分能力也存在一定的限制.因此,細(xì)粒度命名實(shí)體識(shí)別任務(wù)更具有挑戰(zhàn)性.
Table 1 Examples of entities belonging to different categories in different contexts表1 實(shí)體在不同的語(yǔ)境屬于不同類(lèi)別的例子
Xu 等人使用bilstm-crf、預(yù)訓(xùn)練語(yǔ)言模型作為CLUENER 2020 數(shù)據(jù)集的基線(xiàn)[1],其中,預(yù)訓(xùn)練語(yǔ)言模型在該數(shù)據(jù)集上取得了最好的效果.Xu 等人使用預(yù)訓(xùn)練語(yǔ)言模型對(duì)句子中的字符進(jìn)行上下文編碼,在一定程度上解決了同一實(shí)體在不同句子中屬于不同類(lèi)別的問(wèn)題,但模型還是存在實(shí)體類(lèi)別丟失和分區(qū)類(lèi)別能力不足的情況.本文受到Wang 等人[4]的啟發(fā),考慮到細(xì)粒度命名實(shí)體識(shí)別數(shù)據(jù)集中實(shí)體類(lèi)別多、類(lèi)別區(qū)分難的問(wèn)題,通過(guò)在句子的字符表示中融入類(lèi)別的標(biāo)簽信息,使句子字符的上下文表示更加接近類(lèi)別的標(biāo)簽嵌入,來(lái)提高識(shí)別效果.
為了利用標(biāo)簽信息,本文通過(guò)關(guān)聯(lián)記憶網(wǎng)絡(luò)[5]的方式,使用訓(xùn)練集中帶標(biāo)簽的句子,通過(guò)捕獲訓(xùn)練集中相關(guān)句子的標(biāo)簽信息,并使用注意力機(jī)制將類(lèi)別的標(biāo)簽信息融入句子的字符表示中.同時(shí),結(jié)合預(yù)訓(xùn)練語(yǔ)言模型和多頭自注意力,提升模型的識(shí)別效果.最后,通過(guò)消融實(shí)驗(yàn)分別證明了關(guān)聯(lián)記憶網(wǎng)絡(luò)、多頭自注意力和預(yù)訓(xùn)練語(yǔ)言模型這3 個(gè)部分在CLUENER 2020 細(xì)粒度命名實(shí)體識(shí)別任務(wù)上的有效性.
本文的貢獻(xiàn)主要包括:
(1) 提出了一種結(jié)合預(yù)訓(xùn)練語(yǔ)言模型和關(guān)聯(lián)記憶網(wǎng)絡(luò)的方法,利用標(biāo)簽類(lèi)別信息輔助細(xì)粒度實(shí)體類(lèi)別的區(qū)分,并通過(guò)實(shí)驗(yàn)證明了模型方法的有效性,同時(shí)證明實(shí)體的標(biāo)簽類(lèi)別信息對(duì)細(xì)粒度命名實(shí)體識(shí)別有促進(jìn)作用.
(2) 針對(duì)命名實(shí)體識(shí)別任務(wù),本文提出了一種實(shí)體類(lèi)別距離的記憶句子選擇方式,在實(shí)體類(lèi)別距離的選擇方式上進(jìn)行實(shí)驗(yàn),驗(yàn)證了細(xì)粒度命名實(shí)體識(shí)別的挑戰(zhàn)在于實(shí)體類(lèi)別的區(qū)分,正確的實(shí)體類(lèi)別的標(biāo)簽可以大幅度提升模型的識(shí)別效果.
本文第1 節(jié)介紹關(guān)于中文細(xì)粒度命名實(shí)體識(shí)別的相關(guān)工作.第2 節(jié)詳細(xì)描述本文提出的模型.第3 節(jié)使用本文模型在CLUENER2020 數(shù)據(jù)集上和其他模型進(jìn)行對(duì)比實(shí)驗(yàn),驗(yàn)證本文模型的有效性.第4 節(jié)總結(jié)全文并提出未來(lái)的發(fā)展方向.
命名實(shí)體識(shí)別任務(wù)主要的方法有3 種:基于規(guī)則[6]、基于傳統(tǒng)機(jī)器學(xué)習(xí)[7]和基于深度學(xué)習(xí)的方法,其中,基于深度學(xué)習(xí)的方法由于可以自動(dòng)地捕獲輸入句子的特征,實(shí)現(xiàn)端到端的命名實(shí)體識(shí)別,已經(jīng)成為現(xiàn)在的研究熱點(diǎn).
近年來(lái),基于深度學(xué)習(xí)的方法在命名實(shí)體識(shí)別任務(wù)上獲得了很好的應(yīng)用.Rrubaa 等人[2]、peng 等人[8]使用了雙向長(zhǎng)短期記憶網(wǎng)絡(luò)(BiLSTM)和條件隨機(jī)場(chǎng)網(wǎng)絡(luò)進(jìn)行命名實(shí)體標(biāo)記,但BiLSTM 編碼長(zhǎng)序列的能力有限,并且計(jì)算速度慢.Strubell 等人[9]將卷積神經(jīng)網(wǎng)絡(luò)(CNN)用于命名實(shí)體識(shí)別,相比循環(huán)神經(jīng)網(wǎng)絡(luò),卷積神經(jīng)網(wǎng)絡(luò)具有更快的計(jì)算速度.但是卷積神經(jīng)網(wǎng)絡(luò)更多捕獲的是局部信息,會(huì)造成全局信息的大量丟失.
中文命名實(shí)體識(shí)別區(qū)別于英文,由于句子中的詞沒(méi)有天然的邊界,更具有挑戰(zhàn)性.Yang 等人[10]使用分詞工具對(duì)句子序列進(jìn)行分詞,然后對(duì)單詞序列進(jìn)行標(biāo)注.然而,分詞工具不可避免地會(huì)出現(xiàn)單詞的錯(cuò)誤劃分,造成實(shí)體邊界的錯(cuò)誤識(shí)別.因此,一些工作(Liu 等人[11]、Lu 等人[12])表明,字符級(jí)別的命名實(shí)體識(shí)別的效果比單詞級(jí)別的更好.基于字符的命名實(shí)體識(shí)別存一個(gè)很明顯的缺點(diǎn),就是沒(méi)有充分地利用單詞信息.所以,中文命名識(shí)別的研究熱點(diǎn)是將詞典信息充分融入字符模型中.Zhang 和Yang[13]提出了Lattice-LSTM 模型,通過(guò)長(zhǎng)短期神經(jīng)網(wǎng)絡(luò)的門(mén)控機(jī)制,自動(dòng)地匹配句子中每個(gè)字符對(duì)應(yīng)的單詞,將詞典中與句子語(yǔ)義最匹配的單詞信息融入句子表示中,從而提升了模型識(shí)別的能力.除了字典信息可以提高命名實(shí)體識(shí)別的效果,Xu 等人[14]表示,中文字符部首蘊(yùn)含的特征信息能夠幫助命名實(shí)體的識(shí)別.他們?cè)谀P椭型瑫r(shí)使用了字嵌入、詞嵌入和部首嵌入來(lái)豐富句子中的字符表示,并驗(yàn)證了部首信息的有效性.然而,這些研究都沒(méi)有關(guān)注到實(shí)體類(lèi)別的標(biāo)簽信息可能幫助命名實(shí)體的識(shí)別.Wang 等人[4]連接詞嵌入和標(biāo)簽嵌入進(jìn)行文本分類(lèi),引入標(biāo)簽注意力機(jī)制為句子中的每個(gè)單詞分配權(quán)重來(lái)生成文本表示,通過(guò)訓(xùn)練,使詞嵌入接近于它們對(duì)應(yīng)的標(biāo)簽嵌入.Luo 等人[15]使用標(biāo)簽注意力機(jī)制生成全局的句子表示,為句子中的每個(gè)位置補(bǔ)充全局信息.Li 等人[16]基于閱讀理解的框架進(jìn)行命名實(shí)體識(shí)別,通過(guò)編碼每個(gè)類(lèi)別標(biāo)簽的注釋構(gòu)建問(wèn)題,然后通過(guò)問(wèn)題在文本中匹配相應(yīng)的類(lèi)別的實(shí)體.Guan 等人[5]提出了關(guān)聯(lián)記憶網(wǎng)絡(luò)的方法,將單詞級(jí)別的標(biāo)簽信息融入單詞表示中進(jìn)行語(yǔ)義角色標(biāo)記.但是其通過(guò)雙向長(zhǎng)短期神經(jīng)網(wǎng)絡(luò)對(duì)單詞表示進(jìn)行上下文編碼,由于雙向長(zhǎng)短期神經(jīng)網(wǎng)絡(luò)的編碼能力有限,并且無(wú)法并行,所以本文拋棄了長(zhǎng)短期神經(jīng)網(wǎng)絡(luò),使用BERT 對(duì)句子中的字符進(jìn)行上下文編碼,從而獲得更好的編碼表示.
Xu 等人[1]構(gòu)建了CLUENER2020 中文細(xì)粒度命名實(shí)體數(shù)據(jù)集,該數(shù)據(jù)集包含大量的訓(xùn)練樣例,同時(shí),各實(shí)體類(lèi)別在數(shù)據(jù)集中分布平均.Xu 等人分別使用雙向長(zhǎng)短期神經(jīng)網(wǎng)絡(luò)、預(yù)訓(xùn)練語(yǔ)言模型作為該數(shù)據(jù)的基線(xiàn),并在細(xì)粒度數(shù)據(jù)集和普通數(shù)據(jù)上進(jìn)行對(duì)比實(shí)驗(yàn),結(jié)果表明,相同的方法在細(xì)粒度數(shù)據(jù)集上的效果要低于普通數(shù)據(jù)集.所有的基線(xiàn)方法都只是對(duì)句子中的字符進(jìn)行了簡(jiǎn)單的上下文編碼,然后通過(guò)條件隨機(jī)場(chǎng)層學(xué)習(xí)實(shí)體標(biāo)記之間的約束.所以本文通過(guò)關(guān)聯(lián)記憶網(wǎng)絡(luò)連接句子中字符的上下文表示和實(shí)體類(lèi)別的標(biāo)簽嵌入,使上下文表示更接近于實(shí)體類(lèi)別的標(biāo)簽嵌入,來(lái)提升細(xì)粒度命名實(shí)體識(shí)別的效果.
給定輸入句子s,將其表示為字符序列其中,ls表示句子的長(zhǎng)度,xi表示句子中的第i個(gè)字符.本文將細(xì)粒度命名實(shí)體識(shí)別看成序列標(biāo)注任務(wù),將句子s作為輸入,對(duì)s中的每一個(gè)字符進(jìn)行標(biāo)記,生成標(biāo)簽序列其中,yi表示句子中第i個(gè)字符的標(biāo)簽.
為了將實(shí)體類(lèi)別的標(biāo)簽信息融入輸入句子s的字符表示中,本文提出了一種結(jié)合預(yù)訓(xùn)練語(yǔ)言模型和關(guān)聯(lián)記憶網(wǎng)絡(luò)的方法,將訓(xùn)練集中相關(guān)句子的正確實(shí)體標(biāo)簽信息融入輸入句子的字符表示中,框架如圖1 所示.
該方法的模型自底向上包括輸入層、嵌入層、關(guān)聯(lián)記憶網(wǎng)絡(luò)、多頭自注意層、條件隨機(jī)場(chǎng)層和輸出層.其中,輸入層進(jìn)行記憶句子的選擇,計(jì)算輸入句子和訓(xùn)練集中句子的距離,將訓(xùn)練集中與輸入句子距離最近的幾個(gè)句子作為記憶句子;嵌入層對(duì)輸入句子和記憶句子中的字符進(jìn)行上下文編碼,并將記憶句子的實(shí)體標(biāo)簽轉(zhuǎn)換成標(biāo)簽序列,進(jìn)行標(biāo)簽嵌入;關(guān)聯(lián)記憶網(wǎng)絡(luò)計(jì)算輸入句子中每個(gè)字符和記憶句子中每個(gè)字符的注意力矩陣,并與記憶句子對(duì)應(yīng)的標(biāo)簽嵌入相乘,將標(biāo)簽信息融入序列表示中;多頭自注意力層結(jié)合句子任意位置之間的相互關(guān)注,對(duì)融入了標(biāo)簽信息的序列表示進(jìn)行重新編碼;條件隨機(jī)場(chǎng)層學(xué)習(xí)各實(shí)體標(biāo)簽之間的規(guī)則;輸出層使用維特比算法輸出概率最高的標(biāo)簽序列.
Fig.1 Model overall framework diagram圖1 模型整體框架圖
輸入層的主要目的是構(gòu)建記憶單元,記憶單元的最小組成部分是一個(gè)句子以及與該句子對(duì)應(yīng)的n個(gè)記憶句子,所以記憶句子的選擇是本文需要解決的主要問(wèn)題.模型的計(jì)算時(shí)間和空間,隨著記憶句子的增大而增大,但在引入記憶句子的同時(shí),模型的效果也有所提升.
模型的輸入包括輸入句子s、句子s在訓(xùn)練集中對(duì)應(yīng)的n個(gè)記憶句子和這n個(gè)句子對(duì)應(yīng)的標(biāo)簽序列.本文使用了兩種句子距離的計(jì)算方式:第1 種使用Guan 等人[5]提供的計(jì)算兩個(gè)句子詞性序列編輯距離的方法,計(jì)算句子s和訓(xùn)練集中所有句子的距離,選擇前n個(gè)與句子s距離最近的句子和這n個(gè)句子對(duì)應(yīng)的標(biāo)簽序列存入記憶單元中;第2 種針對(duì)命名實(shí)體識(shí)別任務(wù),本文提出一種計(jì)算實(shí)體類(lèi)別距離的方法,計(jì)算兩個(gè)句子包含的實(shí)體類(lèi)別的差異.由于記憶句子需要包含輸入句子中的相應(yīng)的實(shí)體類(lèi)別,本文首先通過(guò)文本多標(biāo)簽預(yù)測(cè)模型預(yù)測(cè)句子中可能包含的實(shí)體類(lèi)別,然后將訓(xùn)練集中與輸入句子包含的實(shí)體類(lèi)別最相近的句子存儲(chǔ)在記憶單元中.具體地,假如輸入句子包含的實(shí)體類(lèi)別集合為Ys={y1,y2,…,yk},yk∈C,訓(xùn)練集中句子中包含的實(shí)體類(lèi)別集合為Yt={y1,y2,…,yn},yn∈C,其中,C是所有實(shí)體類(lèi)別的集合,k和s分別表示輸入句子和記憶句子包含實(shí)體類(lèi)別的數(shù)量,該方法先計(jì)算集合Ys和集合Yt的差集,以?xún)烧卟罴膶?shí)體類(lèi)別數(shù)量|Ys?Yt|降序,再以集合Yt包含的類(lèi)別數(shù)量|Yt|降序,對(duì)訓(xùn)練集中的句子進(jìn)行排序.讓記憶句子包含輸入句子實(shí)體類(lèi)別的同時(shí),記憶句子包含的實(shí)體類(lèi)別最少.本文通過(guò)實(shí)驗(yàn)驗(yàn)證:當(dāng)多標(biāo)簽文本分類(lèi)模型預(yù)測(cè)句子中包含的實(shí)體類(lèi)別越準(zhǔn)確,模型的命名實(shí)體識(shí)別的效果越好.
嵌入層是為了將句子的字符映射到同一個(gè)語(yǔ)義空間中,根據(jù)上下文的語(yǔ)義將句子中的字符編碼成向量.本文選擇RoBERTa 語(yǔ)言模型[17]對(duì)句子中的字符進(jìn)行編碼,因?yàn)樵撃P褪巧疃鹊纳窠?jīng)網(wǎng)絡(luò)模型,并且在大規(guī)模的語(yǔ)料上進(jìn)行訓(xùn)練,可以更好地歸納自然語(yǔ)言文本中的語(yǔ)義和語(yǔ)法上的特性.但是由于模型參數(shù)量大,需要的計(jì)算空間也隨之增大.
嵌入層包括兩個(gè)部分:使用預(yù)訓(xùn)練語(yǔ)言模型對(duì)句子中的字符進(jìn)行上下文嵌入;對(duì)記憶句子的標(biāo)簽序列進(jìn)行標(biāo)簽嵌入.
本文使用預(yù)訓(xùn)練語(yǔ)言模型RoBERTa 分別對(duì)輸入句子s和s對(duì)應(yīng)的n個(gè)記憶句子進(jìn)行上下文嵌入,捕獲每個(gè)字符在給定句子中的上下文信息.假設(shè)輸入句子,其中,ls表示句子的長(zhǎng)度,xi表示句子中的第i個(gè)字符.使用預(yù)訓(xùn)練語(yǔ)言模型對(duì)句子s中字符進(jìn)行上下文編碼,得到嵌入表示s′,嵌入式(1)如下:
其中,x′i是字符xi上下文編碼向量,維度為Rd,其中,d是預(yù)訓(xùn)練語(yǔ)言模型隱藏層的維度.記憶句子的上下文嵌入過(guò)程與輸入句子相同.假設(shè)n個(gè)記憶句子為其中,lj表示第j個(gè)記憶句子的長(zhǎng)度,xj,k表示第j個(gè)記憶句子中的第k個(gè)字符.通過(guò)預(yù)訓(xùn)練語(yǔ)言模型對(duì)n個(gè)記憶句子進(jìn)行上下文編碼,得到嵌入表示aj′,j∈{1,2,…,n}嵌入式(2)如下:
其中,x′j,k是字符xj,k的上下文編碼向量,維度為Rd.
對(duì)于記憶句子的標(biāo)簽嵌入,本文首先使用預(yù)訓(xùn)練的詞向量對(duì)訓(xùn)練集中的各類(lèi)實(shí)體進(jìn)行詞嵌入,如果出現(xiàn)未登陸的實(shí)體則進(jìn)行字符嵌入,詞嵌入和字符嵌入的維度為300 維.然后,將各類(lèi)實(shí)體嵌入表示的平均數(shù)作為標(biāo)簽嵌入矩陣的初始化權(quán)重.另外,由于本文采用BIOS 的形式對(duì)實(shí)體進(jìn)行標(biāo)記,為了表明實(shí)體標(biāo)簽的位置信息,如圖2 所示,本文將4 位onehot向量拼接在各實(shí)體標(biāo)簽嵌入的尾部.最后,標(biāo)簽嵌入的維度Rl為304 維.標(biāo)簽嵌入矩陣在訓(xùn)練過(guò)程中更新,使句子字符上下文的表示更加接近實(shí)體類(lèi)別的標(biāo)簽嵌入.本文使用預(yù)訓(xùn)練的詞向量和字符向量對(duì)標(biāo)簽嵌入矩陣進(jìn)行初始化,而不是選擇隨機(jī)初始化,是為了讓初始化的標(biāo)簽矩陣就包含一些實(shí)體類(lèi)別的相關(guān)特征.
Fig.2 From of label embedding圖2 標(biāo)簽嵌入形式
一般的命名實(shí)體識(shí)別模型將經(jīng)過(guò)上下文編碼的輸入序列表示通過(guò)softmax激活或者輸入到條件隨機(jī)場(chǎng)層進(jìn)行標(biāo)簽序列的預(yù)測(cè).本文通過(guò)引入關(guān)聯(lián)記憶網(wǎng)絡(luò),在對(duì)輸入序列表示進(jìn)行標(biāo)簽預(yù)測(cè)之前,讓輸入句子的字符去記憶句子中匹配和其類(lèi)別最相關(guān)的字符的標(biāo)簽信息,然后將匹配的標(biāo)簽信息融入輸入句子的字符表示中進(jìn)行預(yù)測(cè).
關(guān)聯(lián)記憶網(wǎng)絡(luò)包含兩部分:輸入句子和記憶句子之間的注意力計(jì)算、標(biāo)簽序列的融入和合并.計(jì)算輸入句子和記憶句子之間的注意力,是為了捕獲輸入句子的中的每一個(gè)字符對(duì)記憶句子中每一個(gè)字符在實(shí)體類(lèi)別方面的相似度,如果兩個(gè)字符擁有相同的實(shí)體標(biāo)簽,那么這兩個(gè)字符之間就擁有較高的關(guān)聯(lián)度.
在嵌入層得到句子s的向量表示s′以及記憶句子的向量表示a′j,j∈{1,2,…,n}后,通過(guò)式(3)計(jì)算句子s′中每個(gè)字符和記憶句子a′中每個(gè)字符的相似度,得到n個(gè)ls×lj的注意力矩陣
其中,n是記憶句子的數(shù)量,ls是輸入句子的長(zhǎng)度,lj是第j個(gè)記憶句子的長(zhǎng)度.
其中,f(?)代表softmax函數(shù),ai,j是矩陣第i行的簡(jiǎn)化形式.
標(biāo)簽序列的融入和合并如式(6)所示,是將歸一化后的注意力矩陣Mj與記憶句子對(duì)應(yīng)的標(biāo)簽嵌入序列Lj相乘后,得到融入了標(biāo)簽信息的序列L′j,它根據(jù)輸入句子s中的每個(gè)字符對(duì)記憶句子中每個(gè)字符標(biāo)簽的關(guān)注程度來(lái)計(jì)算輸入句子中每個(gè)字符對(duì)應(yīng)的標(biāo)簽類(lèi)別信息:
最后,將n個(gè)融入了標(biāo)簽信息的序列L′j進(jìn)行平均,并與句子s的上下文向量s′拼接,得到最后的輸入句子表示e,如式(7)所示.
其中,e的表示維度為Rd+l,mean(?)是平均函數(shù).圖3 是嵌入層和關(guān)聯(lián)記憶網(wǎng)絡(luò)層的向量間的形狀轉(zhuǎn)換圖.
Fig.3 Shape transition diagram of vector in each layer圖3 各層向量形狀轉(zhuǎn)換圖
多頭自注意力層的主要作用是結(jié)合序列各個(gè)位置的相關(guān)度,對(duì)融合了標(biāo)簽信息的字符表示進(jìn)行重新編碼,使用自注意力機(jī)制對(duì)句子序列進(jìn)行編碼,避免了LSTM 不能并行的缺點(diǎn),同時(shí)可以更好地捕獲全局信息.
多頭自注意力層將最后的句子表示e作為輸入,通過(guò)多頭自注意力機(jī)制從多個(gè)角度計(jì)算輸入序列任意位置之間的相關(guān)度,突出序列每個(gè)位置實(shí)體類(lèi)別的最重要信息.圖4 為多頭自注意力的計(jì)算機(jī)制.
Fig.4 Multi-head self-attention layer圖4 多頭自注意力層
如式(8)所示,多頭自注意力機(jī)制通過(guò)不同的線(xiàn)性映射將輸入向量映射成query,key和value的形式,并映射到不同的子空間中,每個(gè)子空間反映不同的隱藏特征:
其中,scorei(e)表示第i個(gè)自注意力頭的輸出,表示映射到第i個(gè)子空間對(duì)應(yīng)的參數(shù).各參數(shù)的維度大小為其中,d表示多頭自注意力層輸入向量的維度,dQ,dV,dK分別表示query,key和value的映射維度.
然后,如式(9)所示,計(jì)算輸入序列中某個(gè)位置的query和所有位置的key的相似度,得到注意力矩陣:
這個(gè)注意力矩陣表示了句子中兩兩位置之間的關(guān)注度.將注意力矩陣和該位置value相乘,捕獲句子中任意位置之間的關(guān)系.
最后,如式(10)所示,將各個(gè)子空間的計(jì)算結(jié)果進(jìn)行拼接,經(jīng)過(guò)線(xiàn)性映射,得到最終的輸出:
這樣,最后得到的輸入序列就包含了每個(gè)自注意力頭學(xué)習(xí)到的語(yǔ)義和語(yǔ)法特征.
條件隨機(jī)場(chǎng)的作用是約束標(biāo)簽序列的預(yù)測(cè),通過(guò)式(11),計(jì)算預(yù)測(cè)標(biāo)簽序列y=l1,l2,…,ls的概率P(y|s)為
其中,WCRF和bCRF是條件隨機(jī)場(chǎng)層的權(quán)重和偏置,反映的是各標(biāo)簽之間的轉(zhuǎn)換分?jǐn)?shù),通過(guò)訓(xùn)練對(duì)參數(shù)進(jìn)行更新.
本文的模型使用隨機(jī)梯度下降進(jìn)行端到端訓(xùn)練,通過(guò)最小化句子級(jí)別的負(fù)對(duì)數(shù)似然來(lái)訓(xùn)練模型的參數(shù).
在訓(xùn)練過(guò)程中,由于微調(diào)預(yù)訓(xùn)練語(yǔ)言模型的學(xué)習(xí)率滿(mǎn)足不了條件隨機(jī)場(chǎng)層參數(shù)的訓(xùn)練,本文在模型訓(xùn)練的過(guò)程中,增大了除預(yù)訓(xùn)練語(yǔ)言模型層之外其他層的學(xué)習(xí)率來(lái)優(yōu)化模型參數(shù).在預(yù)測(cè)階段,輸出層使用維特比算法找到分?jǐn)?shù)最高的標(biāo)簽預(yù)測(cè)序列進(jìn)行輸出.
本文采用CLUENER2020 數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),該數(shù)據(jù)集的實(shí)體類(lèi)別分為10 種:address、book、company、game、government、movie、name、organization、position、scene.該數(shù)據(jù)集只提供訓(xùn)練集和驗(yàn)證集的標(biāo)注,不提供測(cè)試集的標(biāo)注.數(shù)據(jù)集的詳細(xì)信息見(jiàn)表2.本文采用CLUENER 2020 提供的線(xiàn)上測(cè)評(píng)網(wǎng)站(評(píng)測(cè)網(wǎng)站https://www.cluebenchmarks.com/ner.html),以F1 值對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行評(píng)價(jià).
Table 2 Description of CLUNER 2020 dataset表2 CLUNER 2020 數(shù)據(jù)集描述
本實(shí)驗(yàn)使用Colab pro p100 16g 內(nèi)存.由于內(nèi)存限制,在嵌入層使用中文預(yù)訓(xùn)練語(yǔ)言模型RoBERTa 的base版本,該模型是包含12 層的Transformer.
本文模型中使用的參數(shù)取值見(jiàn)表3.通過(guò)實(shí)驗(yàn)驗(yàn)證:增大其他層的學(xué)習(xí)率,包括自注意力層和條件隨機(jī)場(chǎng)層的學(xué)習(xí)率后,模型的效果有所提升,學(xué)習(xí)出來(lái)的條件隨機(jī)場(chǎng)層的參數(shù)也符合真實(shí)情況.
Table 3 Parameter value表3 參數(shù)取值
本文模型在CLUNER2020 數(shù)據(jù)集上的訓(xùn)練過(guò)程如圖5 所示,圖5 是模型在驗(yàn)證集上的F1 值曲線(xiàn)圖.
Fig.5 F1 value curve graph on the validation set圖5 驗(yàn)證集上的F1 值曲線(xiàn)圖
從圖中可以看出,模型訓(xùn)練的前期F1 值提升較快,然后不斷地波動(dòng)尋找局部最優(yōu)值,最后趨于平穩(wěn).
(1) 實(shí)體類(lèi)別距離選擇方式分析
為了證明本文提出的實(shí)體類(lèi)別距離的有效性,本文使用訓(xùn)練集和驗(yàn)證集中的句子包含的gold 的實(shí)體類(lèi)別構(gòu)建記憶單元,并在驗(yàn)證集上進(jìn)行實(shí)驗(yàn).如表4 所示,引入正確的類(lèi)別標(biāo)簽信息,可以大幅度促進(jìn)命名實(shí)體的識(shí)別.表4 中第1 行和第3 行對(duì)比了編輯距離方法和實(shí)體類(lèi)別距離在驗(yàn)證集上的效果,表中的pred 表示句子包含的實(shí)體類(lèi)別是通過(guò)基于BERT 的文本多標(biāo)簽預(yù)測(cè)模型得到.從結(jié)果可以看出,本文提出的實(shí)體類(lèi)別距離在驗(yàn)證集上的效果要高于編輯距離.通過(guò)第2 行和第3 行的對(duì)比,句子包含的實(shí)體類(lèi)別預(yù)測(cè)越準(zhǔn)確,模型的效果越高.從實(shí)驗(yàn)結(jié)果可以看出,細(xì)粒度命名實(shí)體識(shí)別任務(wù)還有很大的提升空間,該任務(wù)的挑戰(zhàn)在于對(duì)實(shí)體類(lèi)別的預(yù)測(cè).
Table 4 Ablations experiment of distance calculation method on development set表4 驗(yàn)證集上距離計(jì)算方法的消融實(shí)驗(yàn)
(2) 各實(shí)體類(lèi)別評(píng)價(jià)指標(biāo)分析
RoBERTa-Base 模型和本文模型在驗(yàn)證集上,各實(shí)體類(lèi)別精確率、召回率和F1 的對(duì)比如表5 所示.從表中可以得出:在所有類(lèi)別總體的準(zhǔn)確率和召回率上,本文模型都有所提升.在各類(lèi)別的召回率上,本文模型都較高,說(shuō)明本文模型能多識(shí)別更多的命名實(shí)體.從表5 可以看出,模型對(duì)“地址”和“景點(diǎn)”的類(lèi)別實(shí)體的類(lèi)別的實(shí)體效果差,模型的效果取決于對(duì)這兩種類(lèi)別實(shí)體的識(shí)別和區(qū)分.
Table 5 Comparison of models on validation set表5 驗(yàn)證集上的模型對(duì)比
(3) 消融實(shí)驗(yàn)和基線(xiàn)模型對(duì)比
為了分析模型不同模塊對(duì)實(shí)體識(shí)別效果的影響程度,本文在RoBERTa-Base 模型+關(guān)聯(lián)注意力網(wǎng)絡(luò)的基礎(chǔ)上分別做了2 組消融實(shí)驗(yàn),分別去除了關(guān)聯(lián)記憶網(wǎng)絡(luò)、去除了預(yù)訓(xùn)練語(yǔ)言模型并使用BiLSTM+字符嵌入進(jìn)行上下文編碼.實(shí)驗(yàn)結(jié)果見(jiàn)表6,分別驗(yàn)證了預(yù)訓(xùn)練語(yǔ)言模型、關(guān)聯(lián)記憶網(wǎng)絡(luò)對(duì)實(shí)驗(yàn)結(jié)果的影響.
表6 將本文模型結(jié)果與對(duì)應(yīng)的基線(xiàn)模型進(jìn)行對(duì)比,表6 中,LSTM+CRF 和BERT-Base 語(yǔ)言模型是Xu 等人提出的兩個(gè)基線(xiàn)模型,本文使用RoBERTa-wwm-base-ext 語(yǔ)言模型作為基線(xiàn).RoBERTa 是BERT 語(yǔ)言模型的升級(jí)版本,wwm 表示該語(yǔ)言模型在訓(xùn)練過(guò)程中使用了完整的單詞遮蔽,ext 表示使用了更大規(guī)模的擴(kuò)展語(yǔ)料,base表示模型使用12 層的Transformer.
表6 第2 行和第3 行的對(duì)比中可以看出,在基于LSTM+CRF 的模型結(jié)構(gòu)上加入關(guān)聯(lián)記憶網(wǎng)絡(luò),模型的識(shí)別效果有所提升.從第5 行和第6 行可以看出,在使用預(yù)訓(xùn)練語(yǔ)言模型的基礎(chǔ)上,加上關(guān)聯(lián)記憶網(wǎng)絡(luò)之后,借助正確的實(shí)體類(lèi)別信息,模型的效果也有明顯的提升.
Table 6 Comparison of F1 values of each model表6 各模型F1 值對(duì)比
(4) 關(guān)聯(lián)注意力矩陣分析
本文通過(guò)分析各關(guān)聯(lián)句子間的注意力矩陣來(lái)驗(yàn)證關(guān)聯(lián)記憶網(wǎng)絡(luò)的有效性.圖6 是基于實(shí)體類(lèi)別距離的一對(duì)關(guān)聯(lián)句子之間注意力矩陣的熱力圖,圖中方格的亮度代表字符之間的相關(guān)性.從圖中可以看出,對(duì)于“書(shū)籍”實(shí)體,輸入句子中的“證券時(shí)報(bào)”與記憶句子中的“《推背圖》”存在強(qiáng)關(guān)聯(lián);對(duì)于“名字”實(shí)體,實(shí)體“唐曜華”和實(shí)體“李淳風(fēng)”存在強(qiáng)關(guān)聯(lián);對(duì)于“職位”實(shí)體,實(shí)體“記者”和“作者”存在強(qiáng)關(guān)聯(lián).這說(shuō)明相同實(shí)體種類(lèi)的上下文向量更加接近,通過(guò)捕獲記憶句子中強(qiáng)關(guān)聯(lián)實(shí)體的真實(shí)標(biāo)簽信息,就可以提升輸入句子中實(shí)體的類(lèi)別預(yù)測(cè).
Fig.6 Heat map of associated attention based on entity category distance圖6 基于實(shí)體類(lèi)別距離的關(guān)聯(lián)注意力熱力圖
圖7 是基于編輯距離的一對(duì)關(guān)聯(lián)句子之間的注意力矩陣的熱力圖,從圖中發(fā)現(xiàn),當(dāng)記憶句子中不包含輸入句子中的一些實(shí)體類(lèi)別時(shí),記憶句子的一些實(shí)體會(huì)關(guān)聯(lián)到句子的其他位置.
Fig.7 Heat map of associated attention based on edit distance圖7 基于編輯距離的關(guān)聯(lián)注意力熱力圖
如圖7 所示,因?yàn)橛洃浘渥又胁话皶?shū)籍”的實(shí)體類(lèi)別,導(dǎo)致“書(shū)籍”實(shí)體“證券時(shí)報(bào)”關(guān)聯(lián)到了“職位”實(shí)體“處長(zhǎng)”,但是最終模型還是對(duì)“證券時(shí)報(bào)”做出了正確的預(yù)測(cè).從實(shí)驗(yàn)中發(fā)現(xiàn),基于編輯距離的記憶句子選擇方式出現(xiàn)上述情況的可能性要大于基于實(shí)體類(lèi)別距離的記憶句子選擇方式,但模型通過(guò)訓(xùn)練能很好地對(duì)錯(cuò)誤融入的標(biāo)簽信息進(jìn)行處理.所以在對(duì)句子包含的實(shí)體類(lèi)別預(yù)測(cè)效果不佳的情況下,基于編輯距離的記憶句子選擇方式要好于第2 種.
由于基于編輯距離的模型具有一定的利用正確實(shí)體類(lèi)別信息和處理錯(cuò)誤實(shí)體類(lèi)別信息的能力,本文針對(duì)模型識(shí)別“地址”類(lèi)別實(shí)體能力差的特點(diǎn),嘗試將所有句子的類(lèi)別標(biāo)簽信息用“地址”類(lèi)別的標(biāo)簽嵌入進(jìn)行替換,如表7 所示,發(fā)現(xiàn)模型的整體的識(shí)別效果得到了大幅度提升.
Table 7 F1 value using enhanced address information表7 使用增強(qiáng)地址信息的模型F1 值
本文充分利用預(yù)訓(xùn)練語(yǔ)言模型捕獲句子字符的上下文信息,同時(shí)利用關(guān)聯(lián)記憶網(wǎng)絡(luò),使字符的上下文信息接近于實(shí)體類(lèi)別的標(biāo)簽信息,并將類(lèi)別的標(biāo)簽信息融入到序列的字符表示中.最后,利用多頭自注意網(wǎng)絡(luò)高效地計(jì)算了句子任意位置間的關(guān)注度,對(duì)融入了標(biāo)簽信息的字符表示進(jìn)行重新編碼,增加了實(shí)體識(shí)別的效果.實(shí)驗(yàn)結(jié)果表明,本文模型在細(xì)粒度命名實(shí)體識(shí)別任務(wù)中取得了更好的效果.在未來(lái)的工作中,希望針對(duì)細(xì)粒度命名實(shí)體識(shí)別,設(shè)計(jì)多標(biāo)簽文本分類(lèi)模型來(lái)提高預(yù)測(cè)句子中包含的實(shí)體類(lèi)別的效果,結(jié)合本文提出的實(shí)體類(lèi)別距離的計(jì)算方法,來(lái)提高模型的識(shí)別效果.