命名實體識別中未標記問題的實證分析
《Empirical Analysis of Unlabeled Entity Problem in Named Entity Recognition》閱讀筆記
paper:
Empirical Analysis of Unlabeled Entity Problem in Named Entity Recognition
source: ICLR 2021
論文概述:
創新點:
透過在訓練階段修改loss計算方式,及引入負樣本,有效的緩解了未標註實體問題(Unlabeled Entity Problem)。
主要工作:
本文主要針對命名識別資料集中存在的未標註實體問題,首先分析了未標註實體為何會影響模型效能,以及不同條件下的影響程度,再提出解決方法,實驗驗證本文的方法在不完全標註的NER資料集上能夠有效的緩解未標註實體問題,在完全標註的NER資料集上效能與SOTA的模型具有可比性。
1、PRELIMINARIES
未標註實體問題:
註釋實體集y,每個實體對應的起始索引及標籤型別三元組的集合。未標註實體問題,指資料集中部分實體沒有出現在實體註釋集中,即對資料集進行註釋時將部分實體註釋為了非實體。
之所以未標註實體會影響模型效能,有以下
兩個原因
:
(1)未標註實體,本身因為沒有標註,導致訓練資料中實體數量的減少;
(2)未標註實體,被模型視為了負例項,誤導模型的判斷。
BERT TAGGING
使用BERT作為編碼器,
,
為token
的representation,
為輸入序列。則token
對應的標籤機率分佈為
,loss的計算為交叉熵損失函式,
,n為句子長度,
表示token
的標籤機率分佈,
表示token
屬於標籤
的機率,
為token
的真實標籤。計算舉例如下:
2、EMPIRICAL STUDIES
PREPARATIONS合成數據集:
為了模擬註釋不完全的資料集,按照一定的掩碼機率隨機去掉完全註釋資料集中的部分實體。選用資料集,
和
Methods:
使用
BERT Tagging
和
LSTM Tagging
模型。為了探究未標註實體對模型效能的影響,本文對
loss
進行了修改,如下
其中
表示未被註釋為實體的實體集,即對資料集進行註釋時遺漏的真實實體組成的集合,第二個括號內的式子表示未註釋實體帶來的損失,因為資料集中這些短語沒有被標註為實體,因此在訓練過程中無論模型對它們的標籤機率預測為什麼,都會引入錯誤的損失。因此減去該部分損失,可以讓模型避免被未標註實體誤導。
之所以能夠減去式子的第二部分,是因為是在人工合成的資料集上進行的訓練,可以知道哪些真實實體被掩碼了,在計算loss時,如果發現被掩碼的實體,那麼就減去該實體對應的loss即可。
此處的loss修改只是用於在人工合成數據集上,定量分析未標註實體造成的影響,下面第三部分METHODOLOGY中,引入負樣本時的使用的loss才是本文創新點。
Metrics:
引入了兩個度量的標準,分別是
侵蝕率(erosion rate)
和
誤導率(misguidance rate)
:
其中,
表示修改loss後的掩碼機率為
的模型的F1值,
表示未修改loss的掩碼機率為
的模型的F1值,
即
。
是用於衡量未標註實體比例對模型效能的影響(訓練資料中實體數量減少的比例對模型的影響);
是衡量未標註實體對於模型效能誤導的程度。前者用於分析衡量
原因(1),
後者用於分析衡量
原因(2)
。
OVERALL ANALYSIS
推論:註釋實體的減少,會降低模型的F1值,使用預訓練的模型可以一定程度上緩解這個問題;未標註實體造成模型效能下降的兩個原因中,原因(2)的影響更大。
3、METHODOLOGY
由上述推論,預訓練的模型可以一定程度上緩解實體減少造成的效能下降問題,因此使用BERT作為編碼器。
每個短語
的表徵為
,其中
表示向量拼接,
表示元素乘。短語
,即span(i,j)的標籤機率分佈:
表示預測為實體
的機率。
此處span級表徵 #FormatImgID_46# ,文章中並沒有解釋為什麼這麼計算,至於為什麼不是用span中每個token的表徵
聯合計算span級表徵,而是隻用了span的首尾兩個token進行計算,個人理解是為了突出邊界資訊,而其中的
、
、
、
操作,無非是把融合資訊每種方法都拼接上去。
(不要問我怎麼抽取資訊,問就是所有方法全給拼上!!個人理解哈)
由上述結論知,未標註實體會誤導模型,本文針對這個問題的解決方法是引入負樣本,即隨機選取一部分未標記的跨度span作為負樣本用於引導訓練損失。負樣本集合如下:
其中
表示註釋實體集,即未標註的span組成的集合。
取上述集合的子集
,子集的大小為
,
,
表示上取整。
本文提出的loss創新點
——> sapn級的交叉熵損失:
此處的loss,不同於之前的loss,首先它不是計算句子中所有token預測的損失,而是針對
被標註為實體的span
和
未被標註為實體但其本身是實體的span
計算交叉熵損失。
之所以能夠計算上式的第二個括號內容,是人工找到資料集中標註時遺漏的span(unlabeled entity),隨機選其子集,在計算損失時,如果一個span出現在該子集中,則將這個span的損失加上。
4、DISCUSSION
透過負取樣,模型不把未標註實體作為負樣本的機率大於
,即有效緩解了模型將未標註實體視作負樣本而受到誤導造成效能下降的問題。
文章依舊沒有解釋這個不等式中第一個式子的由來,倒是解釋了後面幾個表示式什麼可以放縮,可能大佬們覺得簡單易懂。木有看懂,重點應該解釋第一個嘛,後面的放縮有啥好解釋的。
5、EXPERIMENTS
本文在三類資料集上進行了實驗,人工合成數據集(synthetic datasets)、背景真實資料集(real-world datasets)、註釋良好的資料集(well-annotated datasets)。
總的實驗結果是:
(1)在synthetic datasets上,實驗表明模型幾乎可以消除未標註實體對模型的誤導;
(2)在real-world datasets上,模型顯著優於先前的baseline,達到SOTA。
(3)在well-annotated datasets上,效能與SOTA相近。