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