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

廣東省數(shù)字政府填表報數(shù)管理系統(tǒng)正式發(fā)布上線
一些NER的英文數(shù)據(jù)集推薦
NLP:如何在只有詞典的情況下提升NER落地效果

一種單獨(dú)適配于NER的數(shù)據(jù)增強(qiáng)方法
如何解決NER覆蓋和不連續(xù)問題

評論