文 | JayLou婁傑
本文首先介紹傳統的數據增強在NER任務中的表現,然後介紹一種單獨適配於NER的數據增強方法,這種方法生成的數據更具豐富性、數據質量更高。前言
在NLP中有哪些數據增強技術?這一定是當今NLP面試中的必考題了吧。在《標註樣本少怎麼辦?》(連結:https://zhuanlan.zhihu.com/p/146777068)一文中也詳細總結過這個問題,先來看一張總結圖:傳統的數據增強方法遷移到NER,效果如何?
在COLING20的paper中,作者借鑑sentence-level的傳統數據增強方法,將其應用於NER中,共有4種方式(如上圖所示):Label-wise token replacement (LwTR) :即同標籤token替換,對於每一token通過二項分布來選擇是否被替換;如果被替換,則從訓練集中選擇相同的token進行替換。
Synonym replacement (SR) :即同義詞替換,利用WordNet查詢同義詞,然後根據二項分布隨機替換。如果替換的同義詞大於1個token,那就依次延展BIO標籤。
Mention replacement (MR) :即實體提及替換,與同義詞方法類似,利用訓練集中的相同實體類型進行替換,如果替換的mention大於1個token,那就依次延展BIO標籤,如上圖:「headache」替換為「neuropathic pain syndrome」,依次延展BIO標籤。
Shuffle within segments (SiS) :按照mention來切分句子,然後再對每個切分後的片段進行shuffle。如上圖,共分為5個片段: [She did not complain of], [headache], [or], [any other neurological symptoms], [.]. 。也是通過二項分布判斷是否被shuffle(mention片段不會被shuffle),如果shuffle,則打亂片段中的token順序。
Small(S):包含50個訓練樣本;
Medium (M):包含150個訓練樣本;
Large (L):包含500個訓練樣本;
Full (F):包含全量訓練集;
各種數據增強方法都超過不使用任何增強時的baseline效果。
對於RNN網絡,實體提及替換優於其他方法;對於Transformer網絡,同義詞替換最優。
總體上看,所有增強方法一起使用(ALL)會由於單獨的增強方法。
低資源條件下,數據增強效果增益更加明顯;
充分數據條件下,數據增強可能會帶來噪聲,甚至導致指標下降;
DAGA:單獨適配於NER的數據增強方法
EMNLP這篇NER數據增強論文DAGA來自阿里達摩院,其主要是通過語言模型生成來進行增強,其整體思路也非常簡單清晰。DAGA的核心思路也十分清晰,就是標籤線性化:即將原始的「序列標註標籤」與「句子token」進行混合,也就是變成「Tag-Word」的形式,如上圖所示:將「B-PER」放置在「Jose」之前,將「E-PER」放置在「Valentin」之前;對於標籤「O」則不與句子混合。標籤線性化後就可以生成一個句子了,基於這個句子就可以進行「語言模型生成」訓練啦~是不是超級簡單?!DAGA 網絡(如上圖)僅僅通過一層LSTM進行自回歸的語言模型訓練,網絡很輕,沒有基於BERT做。DAGA的一大優點就是不需要額外資源,比如同義詞替換就需要一個WordNet。但是論文也考慮到了使用外部資源時的情況,比如:1)有大量無標註語料時;2)有外部知識庫時;對於不同的3種資源條件下,具體的訓練語料構建如上圖所示:對於標註語料,用[labeled]在句首作為條件標記;
對於無標註語料,用[unlabeled]在句首作為條件標記;
對於知識庫,對無標註語料進行詞典匹配後(正向最大匹配),用[KB]在句首作為條件標記;
只要輸入[BOS]+[labeled]/[unlabeled]/[KB],即可通過上述語言模型、自回歸生成新的增強數據啦~下面我們分別對上述3種資源條件下的生成方法進行驗證:gold:通過標註語料進行NER訓練
gen:即DAGA,1)通過標註語料進行語言模型訓練、生成新的數據:2) 過採樣標註語料; 3)新數據+過採樣標註語料,最後一同訓練NER;
rd:1)通過隨機刪除進行數據增強; 2)過採樣標註語料;3)新數據+過採樣標註語料,最後一同訓練NER;
rd*:同rd,只是不過採樣標註語料。
具體結果由上圖展示(設置了6種不同語言數據、不同的原始標註數據量進行對比),可以看出:DAGA方式(gen)明顯超過其他數據增強方法,特別是在低資源條件下(1k和2k數據量)。gold:通過標註語料進行NER訓練;
wt:即弱監督方法,採用標註語料訓練好一個NER模型,然後通過NER模型對無標註語料偽標生成新數據,然後再重新訓練一個NER模型;
gen-ud:通過標註和無標註語料共同進行語言模型訓練、生成新數據,然後再訓練NER模型;
由上圖的紅框進行對比,可以看出:DAGA方法在所有設置下、均超過了弱監督數據方法。其實弱監督方法生成的數據質量較低、噪聲較大,而DAGA可以有效改善這一情況。可以預見的是:當有大量無標註語料時,DAGA進行的NER數據增強,將有效提升NER指標。gold:通過標註語料進行NER訓練;
kb:從全量訓練集中積累實體詞典(實體要在訓練集上中至少出現2次),然後用實體詞典匹配標註無標註語料、生成新數據,最後再訓練NER模型;
gen-kb:與kb類似,將kb生成的新數據訓練語言模型,語言模型生成數據後、再訓練NER模型;
如上圖紅框所示,總體上DAGA超過了kb方式,低資源條件(1k)下,kb方式還是強於DAGA。DAGA為何如此有效?
DAGA更具多樣性:DAGA可以有效利用無標註語料:DAGA通過無標註語料來生成有用的數據,新數據中會出現那些未在標註語料中出現的新實體。總結
雖然傳統的數據增強方法也可用於NER中,不過,JayJay認為:傳統的數據增強方法應用到NER任務時,需要外部資源,且數據增強的豐富性不足、噪音可能較大。
基於語言生成的DAGA方法是NER數據增強的一種新興方式,再不利用外部資源時會有較好的豐富性、數據質量較好。
歡迎大家關注JayJay的「高能AI」公眾號,後面會有更多乾貨、還有大招!還可以撩JayJay微信~