現(xiàn)在很多基于填表方式的NER方法,在構(gòu)造表中元素的時(shí)候,一般用的都是由相應(yīng)span的head字和tail字的表征得到的,而本文在此基礎(chǔ)上加入了從span中所有字的表征中抽取出來(lái)的特征,下面介紹一下具體怎么搞。
1. 論文出發(fā)點(diǎn)
中文沒(méi)有天然的單詞邊界,所以中文的的NER比英文的還要難一些。這兩年NER有一個(gè)很好的點(diǎn)子就是引入外部詞典,顯式的告訴模型哪些字的組合在中文中是一個(gè)詞,從而給模型注入一些先驗(yàn)的字與字之間的關(guān)系,取得了很好的效果,比如Lattice LSTM、FLAT、LEBERT等。但這類方法都需要提供一個(gè)外部詞典,外部詞典的質(zhì)量就尤為重要了。本文的想法就是「不依賴外部字典,讓模型自己去學(xué)習(xí)實(shí)體內(nèi)字與字之間的關(guān)聯(lián),以及實(shí)體之所以會(huì)是某一個(gè)類型的實(shí)體的規(guī)律」。為了實(shí)現(xiàn)這個(gè)想法, 本文提出了兩個(gè)idea:
「探索實(shí)體內(nèi)部的組成規(guī)律——“命名規(guī)律性”,用來(lái)增強(qiáng)實(shí)體的邊界監(jiān)測(cè)和類型預(yù)測(cè)。」
本文的作者們發(fā)現(xiàn)很多常規(guī)實(shí)體類型(LOC、ORG等)都有“「命名規(guī)律性」”,就是說(shuō)「某個(gè)實(shí)體類型的mentions都有某種內(nèi)部的構(gòu)成模式,如果模型學(xué)習(xí)到了這種內(nèi)部的構(gòu)成結(jié)構(gòu),那么對(duì)于識(shí)別實(shí)體的邊界以及預(yù)測(cè)實(shí)體的類型會(huì)有一定的幫助」。舉個(gè)例子,比如以“公司”或者“銀行”等詞結(jié)尾的實(shí)體,一般就是ORG,再比如,圖1中“尼日爾河流經(jīng)尼日爾與尼日利亞”中就有一個(gè)規(guī)律,“XX+河”大部分情況下就是和地理位置相關(guān)的實(shí)體類型(LOC),雖然“流”字的右邊是“經(jīng)”也可以組成“流經(jīng)”這個(gè)詞,導(dǎo)致“流”字這里有邊界模糊問(wèn)題,但是如果模型可以學(xué)到“XX+河”這個(gè)命名規(guī)律,那么大概率還是會(huì)把"尼日爾河"作為一個(gè)實(shí)體識(shí)別出來(lái)的。
「利用上下文來(lái)緩解僅依賴命名規(guī)律性無(wú)法完全確定實(shí)體邊界的問(wèn)題」
有的時(shí)候僅依賴命名規(guī)律性,可能會(huì)造成一些冤假錯(cuò)案,這時(shí)候「可以通過(guò)上下文來(lái)緩解命名規(guī)律性對(duì)邊界的決定性影響」,比如圖1中“中國(guó)隊(duì)員們?cè)诒敬伪荣愔腥〉昧藘?yōu)異成績(jī)”中,XX+隊(duì)是一個(gè)pattern的話,但實(shí)際上實(shí)體并不是“中國(guó)隊(duì)”,這時(shí)候只利用命名規(guī)律性來(lái)判別實(shí)體邊界和類型就會(huì)出問(wèn)題,需要看上下文了。
可以看出,本文的方法是要在上兩者之間取一個(gè)平衡。
2. RICON模型
本文提出的這個(gè)模型叫做「R」egularity-「I」nspired re「CO」gnition 「N」etwork (「RICON」),采用是「填表」的方式進(jìn)行標(biāo)注,也就是搞一個(gè)word-word表,表中每一個(gè)元素表示相應(yīng)的span是什么類型的實(shí)體。
RICON模型結(jié)構(gòu)
如上圖所示,模型主要有兩個(gè)模塊:
「Regularity-aware Module(規(guī)律感知模塊)」:這個(gè)模塊負(fù)責(zé)分析span內(nèi)部的規(guī)律,進(jìn)而獲取結(jié)合了規(guī)律的span表征,然后用于實(shí)體類型的預(yù)測(cè);
「Regularity-agnostic Module (規(guī)律判斷模塊)」:這個(gè)模塊主要獲取span上下文的表征,然后用于判斷這個(gè)實(shí)體到底是不是一個(gè)實(shí)體。
除此之外,模型使用了「BERT+BILSTM」做文本的表征和編碼,還使用了「正交空間限制」(Orthogonality Space Restriction),來(lái)讓上面兩個(gè)模塊編碼不同的特征。下面具體介紹一下。
2.1 Embedding 和 Task-specific Encoder
給定一個(gè)有個(gè)字的句子:
先過(guò)BERT,取得每一個(gè)字的上下文表征;
然后分別過(guò)兩個(gè)獨(dú)立的BiLSTM,將每個(gè)字的前后向的hidden_state拼接起來(lái),分別獲取句子的char序列的aware-specific representation 和agnostic-specific representation。會(huì)被送入規(guī)律感知模塊,會(huì)被送入規(guī)律判斷模塊。,其中d是LSTM的unit的數(shù)量。
2.2 規(guī)律感知模塊 Regularity-aware Module
這個(gè)模塊主要是負(fù)責(zé)分析span內(nèi)部的規(guī)律,進(jìn)而獲取結(jié)合了規(guī)律的span表征,然后用于實(shí)體類型的預(yù)測(cè)。想要獲取「結(jié)合了規(guī)律的span的表征」,本文采用的方式是分而治之:如下圖所示「找到span的內(nèi)部規(guī)律特征——Regularity Feature,以及span的特征——Span Feature,然后把二者結(jié)合起來(lái)去做實(shí)體類型的分類」。
規(guī)律感知模塊
Span Feature的獲取
我們先來(lái)看幾種填表類型NER方法中span特征的生成以及實(shí)體類型分類的方式:
Head-Tail拼接做span表征,然后用線性分類器分類,如上圖(a),但這種就有點(diǎn)簡(jiǎn)單;
Biaffine 分類器的方式(《Named Entity Recognition as Dependency Parsing》),如上圖(b),將head和tail的表征分別過(guò)不同的MLP,然后用雙仿射解碼器去做實(shí)體類別的分類,達(dá)到了SOTA;
第三種是本文中提出的,Regularity-aware表征過(guò)線性分類器,我們稍后會(huì)介紹;
這里我再加一種,就是我上一篇介紹的W2NER中用的方式:CLN+空洞卷積;
本文在獲取Span Feature的時(shí)候「主要用的是Biaffine方式的變種」,表內(nèi)的每個(gè)位置所表示的span(第個(gè)字是span的head,第個(gè)字是span的tail)的特征為:
其中,分別是head和tail字的表征。是一個(gè) 的張量, 是一個(gè) 的矩陣,那么 就是一個(gè)維度是的向量。
這里大家可以看到本文用的Biaffine方式?jīng)]有用它前面的那倆MLP,原因是MLP會(huì)把頭尾投影到不同的空間里面,效果不好,論文也通過(guò)實(shí)驗(yàn)證實(shí)了用MLP效果相較于不用,有所下降(下表中Apply MLPs to head and tail)。
Regularity Feature的獲取
上面提的幾種span特征生成方式都用的是span的頭和尾,而想要分析span內(nèi)部的規(guī)律,僅用頭和尾那是肯定不夠的,所以在本篇論文里面,「用了span內(nèi)的所有字,用一個(gè)線性attention來(lái)計(jì)算每個(gè)字的權(quán)重,然后對(duì)字的表征進(jìn)行加權(quán)求和得到span內(nèi)部的規(guī)律性特征」。此外,對(duì)于長(zhǎng)度是1的span,也就是單字span,就用它自己的表征作為這個(gè)span的規(guī)律性特征。
當(dāng)然,關(guān)于這個(gè)規(guī)律怎么抽取,論文中也做了一些其他的嘗試,簡(jiǎn)單的有max pooling/ mean pooling,復(fù)雜的有multi-head self-attention,但效果都不是很好(詳見(jiàn)上面的“不同實(shí)驗(yàn)方案的對(duì)比表”),并且文中表示這是未來(lái)的一個(gè)可探索的方向。
這里我說(shuō)一下我關(guān)于這種規(guī)律性特征抽取方式的一些想法(可能不對(duì)哈):
?
公式中的 是一個(gè)可訓(xùn)練的參數(shù)向量,看公式會(huì)與所有字的表征向量相乘,分別得到一個(gè)標(biāo)量數(shù)字,那我可不可以認(rèn)為這個(gè)就是「代表著某種神秘的實(shí)體規(guī)律」,與字的表征做內(nèi)積,結(jié)果越大,那這個(gè)字與實(shí)體規(guī)律越契合,然后用這個(gè)得到的內(nèi)積標(biāo)量在span的局部?jī)?nèi)用softmax做權(quán)重的計(jì)算,將命中規(guī)律的字在span中突顯出來(lái)。
怎么說(shuō)呢,給我的感覺(jué)就是通過(guò)這種方式并沒(méi)有很透徹的分析span內(nèi)部的規(guī)律,只是將句子中命中了實(shí)體規(guī)律(也不管命中的是不是同一種實(shí)體規(guī)律)的字在它所在的span中給凸顯出來(lái)(比如最開(kāi)頭舉例的XX+河的模式中的“河”字,以及中國(guó)隊(duì)員中的XX+隊(duì)的“隊(duì)”字),也就是說(shuō)它只考慮了規(guī)律,其他基本沒(méi)考慮。哦當(dāng)然,我這個(gè)想法是沒(méi)考慮前面的BERT+BILSTM,因?yàn)锽ERT+BILSTM并不是這篇論文的核心創(chuàng)新點(diǎn)。我認(rèn)為這也是上面作者們會(huì)認(rèn)為過(guò)分強(qiáng)調(diào)“命名規(guī)律性”會(huì)導(dǎo)致會(huì)對(duì)邊界造成不好影響的一個(gè)原因吧。所以這個(gè)抽取出來(lái)的特征不能單獨(dú)作為span的表征,需要用分而治之的思路,結(jié)合Biaffine-based span Feature來(lái)判斷邊界,還又單獨(dú)加了一個(gè)“規(guī)律判斷模塊”來(lái)根據(jù)上下文判斷這個(gè)規(guī)律到底是不是一個(gè)真正的規(guī)律。
這里再開(kāi)一個(gè)小小的腦洞,如果想要探索span的內(nèi)部規(guī)律,更直觀的想法是讓span內(nèi)部的字之間發(fā)生交互,我們首先生成一個(gè)word-word table,其中每個(gè)位置是他們兩兩交互的表征,比如用CLN,然后用大小為[1, 1], [2, 2], …, [L, L]的卷積核去提取span的表征,卷積核只在對(duì)角線上滑動(dòng)(比如需要獲取span(3, 5)的表征,那么就用一個(gè)大小為3*3的卷積核提取特征,這個(gè)卷積核剛好覆蓋住table中的(3, 3), (3, 4), (3, 5), (4, 3), (4, 4), (4, 5), (5, 3), (5, 4), (5, 5)這幾個(gè)全部都是這個(gè)span內(nèi)的字兩兩交互的位置),卷積核抽取的特征(再加點(diǎn)非線性變換)作為它右上角的元素表示的span的表征,感覺(jué)是不是也可以直接作為結(jié)合了span內(nèi)部規(guī)律的span表征了呢?但是文本是變長(zhǎng)的,那不能規(guī)定所有尺寸的卷積核吧?這個(gè)處理起來(lái)也不太好處理,這個(gè)方案有沒(méi)有大佬覺(jué)得有搞頭的~
?
整合Span Feature和Regularity Feature
「利用門控機(jī)制整合Span Feature和Regularity Feature」,獲取整合了規(guī)律性特征的span表征,具體就是這倆Feature拼接,然后線性映射,然后過(guò)sigmoid獲取span特征的權(quán)重,Regularity特征的權(quán)重自然就是了,然后加權(quán)求和得到span表征:
關(guān)于這部分,作者們也嘗試了將Span Feature和Regularity Feature拼接或者相加作為span表征的方式,但效果均不如用門控機(jī)制好。
分類器和Loss Function
分類器:對(duì)span表征用一個(gè)線性分類器預(yù)測(cè)每個(gè)span的類型
Loss Function用的是CE
case study
關(guān)于這個(gè)模塊的效果,我們來(lái)看一個(gè)例子,如下圖所示,“波羅的?!?,如果用vanilla方法(BERT+BILSTM+本模塊中的Span Feature部分)預(yù)測(cè)成了GPE,而Vanilla+Reg-aware方法(BERT+BiLSTM+本模塊)就可以預(yù)測(cè)正確為L(zhǎng)OC,且門控機(jī)制給Regularity Feature的打分是0.83。
Regularity-aware Module起效的case
2.3 規(guī)律判斷模塊 Regularity-agnostic Module
作者們認(rèn)為regularity-aware module讓模型很嚴(yán)格的按規(guī)律去預(yù)測(cè)實(shí)體類型,可能會(huì)導(dǎo)致precision的增長(zhǎng),但是正如上文中介紹的例子,太嚴(yán)格遵守規(guī)律,可能會(huì)導(dǎo)致對(duì)邊界判定出問(wèn)題,所以他們加了這個(gè)模塊。在這個(gè)模塊中不考慮span內(nèi)的具體形式,而是更注重上下文,所以他們選擇了位于邊界處的頭和尾字下手,他們的「目標(biāo)是:用head 和 tail feature來(lái)判斷這個(gè)span是否是一個(gè)entity」(所以是BILSTM發(fā)威了么)。
Regularity-agnostic Module
對(duì)agnostic-specific representation,分別過(guò)兩個(gè)MLP(一個(gè)head MLP,一個(gè)tail MLP),得到head表征和tail表征。
然后依然是組一個(gè)的表格,然后每個(gè)表格內(nèi)的元素表示第個(gè)字為head,第個(gè)字為tail的span是一個(gè)entity的概率,計(jì)算方式是雙仿射解碼,然后過(guò)sigmoid:
Loss Function用的是BCE
case study
關(guān)于這個(gè)模塊的效果,我們也來(lái)看一個(gè)例子,如下圖所示,僅用Regularity-aware Module會(huì)導(dǎo)致“XX+公司”這個(gè)規(guī)則被命中,從而預(yù)測(cè)錯(cuò)誤,而加上這個(gè)模塊后緩解了這一問(wèn)題。
Regularity-agnostic Module起效的case
2.4 Orthogonality Space Restriction
上面的兩個(gè)模塊,規(guī)律感知模塊感知規(guī)律,規(guī)律判斷模塊并不考慮任何規(guī)律,那么自然希望這倆模塊學(xué)習(xí)到的是不同的特征。所以為了鼓勵(lì)這倆模塊別學(xué)同樣的特征,作者們?cè)赥ask-specific Encoder,也就是最開(kāi)頭的那倆BILSTM的后面,構(gòu)造了一個(gè)正交空間,爭(zhēng)取讓這倆模塊編碼input embedding的不同方面。
具體就是用最開(kāi)頭那倆BiLSTM的輸出進(jìn)行矩陣乘法,然后用Frobenius范數(shù)的平方(F-范數(shù))作為loss。
公式中的 就是F-范數(shù)的平方,F(xiàn)-范數(shù)其實(shí)就是矩陣中每個(gè)元素的平方和的開(kāi)方,類似于向量的L2范數(shù),它用來(lái)衡量矩陣大小(到原點(diǎn)(零矩陣)的距離),看定義是不小于零的。所以上面論文里的公式應(yīng)該沒(méi)有那個(gè)負(fù)號(hào)吧,作者是不是打錯(cuò)了。我理解其實(shí)這個(gè)模塊就是希望aware所在的空間和agnostic所在的空間是兩個(gè)正交子空間,一個(gè)子空間中的任意一個(gè)向量與另一個(gè)子空間中的任意一個(gè)向量都是正交的,內(nèi)積是0,那么兩個(gè)矩陣相乘的這個(gè)自然是希望它的大?。‵-范數(shù))是沖著零去的。
2.5 訓(xùn)練和推斷
最終loss
其中是三個(gè)超參數(shù),論文的實(shí)驗(yàn)中分別設(shè)定為1、1、0.5。
推斷
推斷的時(shí)候直接使用regularity-aware module去預(yù)測(cè)每個(gè)span的實(shí)體類型,如果碰到重疊的結(jié)果,比如,則他們選擇分?jǐn)?shù)更高的那個(gè)。也就是說(shuō)Regularity-agnostic Module其實(shí)是個(gè)輔助模塊咯。
3. 實(shí)驗(yàn)與分析
3.1 數(shù)據(jù)集
文中實(shí)驗(yàn)用了如下幾個(gè)數(shù)據(jù)集:
3.2 效果
可以看到,本文提出的RICON在多個(gè)數(shù)據(jù)集上F1均達(dá)到了SOTA,效果還是不錯(cuò)的,總的來(lái)說(shuō)Recall漲幅還挺大的。
消融實(shí)驗(yàn)
消融實(shí)驗(yàn)
Vanilla:就是只有規(guī)律性感知模塊的Span Feature部分,其他的都沒(méi)有
+Reg-agnostic:Vanilla加上規(guī)律判斷模塊(判斷每個(gè)span到底是不是一個(gè)實(shí)體),f1略有增長(zhǎng)
+Reg-aware:Vanilla加上規(guī)律感知模塊中的Regularity Feature部分,發(fā)現(xiàn)Precision提升了,但recall下降了,但是整體F1有顯著增長(zhǎng),說(shuō)明加了感知模塊以后,確實(shí)增強(qiáng)了實(shí)體類型的預(yù)測(cè),但是同時(shí)導(dǎo)致一些本該是實(shí)體的span被漏掉了。
但其實(shí)我很想看看BERT+BiLSTM+Regularity Feature部分的效果
+Reg-aware & agnostic:兩個(gè)模塊都加上,效果有進(jìn)一步提升,相較于+Reg-aware,Recall提升了很多,說(shuō)明猜疑部分可以加強(qiáng)邊界的判定。
最后RICON是上一個(gè)實(shí)驗(yàn)再加上正交空間限制,效果又進(jìn)一步有提升。
分析
論文中提出的RICON,作者認(rèn)為他們探索的規(guī)律性其實(shí)是一個(gè)「latent adaptive lexicon」,比之前的一些融入了Lexicon的方法效果要好一些。
文中有+Reg-aware的方法與Vanilla方法在單個(gè)實(shí)體上做了對(duì)比,如下圖,發(fā)現(xiàn)在GPE、ORG、DATE等有明顯命名規(guī)律性的實(shí)體上,+Reg-aware方法有提高,而在PERSON等沒(méi)啥命名規(guī)律性的實(shí)體上,就有下滑。此外對(duì)于MONEY這種有規(guī)律性的,居然也下滑了,原因是因?yàn)橛?xùn)練集里都是“數(shù)字+dollar”,但測(cè)試集里都是只有數(shù)字(通過(guò)+Reg-agnostic模塊來(lái)緩解)。說(shuō)明了“命名規(guī)律性”特征的抽取確實(shí)有用,而且「這個(gè)模型其實(shí)也可以用來(lái)做“命名規(guī)律性”強(qiáng)弱的判別」。
-
編碼
+關(guān)注
關(guān)注
6文章
942瀏覽量
54836 -
模型
+關(guān)注
關(guān)注
1文章
3244瀏覽量
48848 -
Span
+關(guān)注
關(guān)注
0文章
5瀏覽量
8401
原文標(biāo)題:NAACL2022 | 華為提出NER SOTA—RICON
文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語(yǔ)言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論