打開你的腦洞:NER如何進行數據增強 ?

2021-02-13 高能AI

文 | JayLou婁傑

本文首先介紹傳統的數據增強在NER任務中的表現,然後介紹一種單獨適配於NER的數據增強方法,這種方法生成的數據更具豐富性、數據質量更高。

前言

在NLP中有哪些數據增強技術?這一定是當今NLP面試中的必考題了吧。在《標註樣本少怎麼辦?》(連結:https://zhuanlan.zhihu.com/p/146777068)一文中也詳細總結過這個問題,先來看一張總結圖:
但是,目前來看:大多數「數據增強」方法通常被用於文本分類、文本匹配等任務中,這類任務有一個共性:是「句子級別」(sentence level)的分類任務,大多數關於「文本增強」的研究也都針對這個任務。在2020年5月的時候,JayJay突然在想:NER如何進行數據增強?有什麼奇思妙想可以用上?於是我陷入沉思中.NER做數據增強,和別的任務有啥不一樣呢?很明顯,NER是一個token-level的分類任務,在進行全局結構化預測時,一些增強方式產生的數據噪音可能會讓NER模型變得敏感脆弱,導致指標下降、最終奔潰。在實踐中,我們也可以把常用的數據增強方法遷移到NER中,比如,我們通常採用的「同類型實體」隨機替換等。但這類方法通常需要獲得額外資源(實體詞典、平行語料等),如果沒有知識庫信息,NER又該如何做數據增強呢?有沒有一種單獨為NER適配的數據增強方法呢?本文JayJay主要介紹在最近頂會中、對NER進行數據增強的2篇paper:COLING20:《An Analysis of Simple Data Augmentation for Named Entity Recognition》EMNLP20:《DAGA: Data Augmentation with a Generation Approach for Low-resource Tagging Tasks》
COLING20主要是將傳統的數據增強方法應用於NER中、並進行全面分析與對比。EMNLP20主要是提出了一種適配於NER的數據增強方法——語言模型生成方法:1)這種方式不依賴於外部資源,比如實體詞典、平行語料等;2)可同時應用於有監督、半監督場景。具體效果如何,我們來一探究竟吧~本文的組織結構為:

傳統的數據增強方法遷移到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微信~

相關焦點

  • 一些NER的英文數據集推薦
    打開APP 一些NER的英文數據集推薦 深度學習自然語言 發表於 2020-12-26 09:11:57 1   MUC Data Sets https://www-nlpir.nist.gov/related_projects/muc/     2   CoNLL-2002   https://www.clips.uantwerpen.be/conll2002/ner/     3   CoNLL-2003
  • 一些NER的英文數據集
    點擊上方,選擇星標或置頂,每天給你送乾貨
  • 近期做NER的反思
    最後才是數據量,覆蓋率是針對某種特別情況有沒有的問題,就是存在性,而數據量更講求這些情況出現的分布,什麼是一般情況,常見情況,什麼是特殊情況,少數情況,根據這些數據分布,模型會根據各種情況出現的分布去進行權衡(這事為什麼,大家可以想想哈哈哈),解決大多數問題,數據量不足其實很簡單,就是增加數據量了,後面會給大家簡單介紹一些trick,當然後續會撰文專門寫。
  • NLP 詳解教程:使用 Spacy 和 Python 實現命名實體識別 (NER)
    在這篇hand-on文章中,我們將使用Spacy庫訓練基於神經網絡的深度學習模型,以從文本數據中檢測實體。我們還將展示的一件事是如何標記數據,並且在許多文章中經常被忽略。我們還將使用更強力的模式匹配將深度學習進行比較。
  • 給你打開25個腦洞!
    為了讓用戶能夠喜歡你的活動文案,打開你的腦洞是關鍵。這是一個打開腦洞的模型,熟練運用這個模型,以後就不用擔心從哪些角度撰寫活動文案,只需一一對應即可。二、活動文案寫作的角度撰寫活動文案可以根據主辦方、參與方、交付方、活動優勢、活動主題周邊這5個角度進行構思。
  • 中文NER的正確打開方式: 詞彙增強方法總結 (從Lattice LSTM到FLAT)
    而引入詞彙信息(詞彙增強)的方法,通常能夠有效提升中文NER性能。本文對「詞彙增強」的系列方法進行介紹,包括Lattice LSTM/LR-CNN/CGN/LGN/WC-LSTM/Multi-digraph/Simple-Lexicon/FLAT 等8個方法進行串講,目錄如下:1、為什麼對於中文NER任務,要進行「詞彙增強」?
  • 如何有效提升中文NER性能?詞彙增強方法總結
    而引入詞彙信息(詞彙增強)的方法,通常能夠有效提升中文NER性能。本文對「詞彙增強」的系列方法進行介紹。一、為什麼要進行詞彙增強?雖然基於字符的NER系統通常好於基於詞彙(經過分詞)的方法,但基於字符的NER沒有利用詞彙信息,而詞彙邊界對於實體邊界通常起著至關重要的作用。如何在基於字符的NER系統中引入詞彙信息,是近年來NER的一個研究重點。
  • 【探店】2019年被評為德國第一的D ner美食店,火了!
    幾個月前,老胡在看電視上看到一家德國排名第一的D ner店,而且就在斯圖加特! 他舔了舔嘴唇對我說:「咱啥時候去呀?」 我鄙視地瞟了他一眼:「咋平時沒見你那麼上心,就對吃的最上心。」
  • NLP入門(四)命名實體識別(NER)
    中,對其進行命名實體識別,應該能提取信息人名:小明,時間:早上8點,地點:學校。  本文將會介紹幾個工具用來進行命名實體識別,後續有機會的話,我們將會嘗試著用HMM、CRF或深度學習來實現命名實體識別。
  • 路透社文章的文本數據分析與可視化
    當我要求你解釋文本數據時,你會怎麼做?你將採取什麼步驟來構建文本可視化?本文將幫助你獲得構建可視化和解釋文本數據所需的信息。從文本數據中獲得的見解將有助於我們發現文章之間的聯繫。它將檢測趨勢和模式。對文本數據的分析將排除噪音,發現以前未知的信息。這種分析過程也稱為探索性文本分析(ETA)。
  • Excel如何設置打開數據自動刷新?
    excel如何設置打開數據自動刷新?打開數據自動刷新,前提是要導入數據才能進行自動刷新,一起來看看吧。1.當前我們通過txt格式將數據導入到excel中。  2.然後選中其中的數據單元格,右鍵選擇數據範圍屬性選項。
  • Excel如何通過函數進行數據提取?
    Excel函數的提取分為三部分,左側數據提取、中間數據提取和右側數據的提取,一起來看看吧!一、Excel如何通過函數進行左側數據提取?excel中的函數有非常強大的作用,下面小編來教大家如何使用函數對左側的數據進行提取吧。1.我們打開excel表格,想要對左邊六位數字進行提取出來。
  • EDM郵件營銷如何進行數據劃分?
    如何劃分會員數據,是大家比較關心的問題,也是企業主面對的困惑。EDM郵件營銷如何進行數據劃分? 根據不同的客戶分類來制定和調整郵件營銷策略,根據不同用戶的需求,提升郵件營銷效果有哪些可以借鑑的有效策略,本文將一一為您介紹。
  • 如何使用Excel進行數據分析?
    數據分析是理性工作,某項因素對結果是否有影響、有多大影響都需要用數據說話。各項因素對結果的影響可以使用Excel 的相關係數工具來進行分析,通過對比各項因素的相關係數來判斷客觀的影響力度。例如,某公司在研究公司的新媒體帳號每天發布的內容對閱讀量、轉發量、當天漲粉量的相關因素影響時,對數據進行了統計,部分數據如左下圖所示。
  • 如何開出讓杜蕾斯都驚嘆的營銷腦洞?
    但仔細想想,這句話好像大佬只告訴了你框架,真的要運轉起來,還是得靠有爆點、有笑點,能引起話題和炮製出熱點的骨肉——創意支撐呀。創意是啥,我該如何擁有?真要如此簡單,我也不會晚上將杜蕾斯丟棄進垃圾桶,白天又在辦公室對杜蕾斯進行朝拜,將杜杜的文案奉為圭臬。Soga,所以今天,我們就來討論,如何才能擁有讓杜杜都拍大腿的營銷腦洞!
  • 【Julia老師】素養導向的教學,如何實現「低負高效」——腦洞名人堂 · 第九期
    「腦洞名人堂」這個舞臺,是為有教學熱情和分享熱情的老師準備的,不論你是萬眾敬仰的大咖,還是正在快速成長的優秀年輕老師,只要你有成長,有經驗,願意分享,都可以登上我們的舞臺!終身學習的路上,你們不孤獨;英語教學成長之路上,你們還有無限可能!
  • 數據映射是什麼?怎麼進行?
    打開APP 數據映射是什麼?怎麼進行? 數據映射中的一個錯誤可以在組織中引起連鎖反應,並由於重複的錯誤和不準確的分析對組織造成破壞。 因此,如果你不了解數據映射的重要性或實現方式,則是在最大程度地降低業務成功的可能。 本文將介紹什麼是數據映射以及如何進行數據映射。
  • 如何使用思維導圖把你的「腦洞」打開?
    如果你是一名設計師,最頭痛的事莫過於大腦短路,想不出創意。 或者是腦子裡似乎也有很多想法,但是卻又零零散散,不知如何挑出來處理。那怎麼辦呢? 其實,是有個很好的方法,就是思維導圖。這種方法可以把左右腦的能力都運用起來,提升創造力的同時整理自己的思緒。
  • word數據處理:如何快速對文檔中的數據進行核算
    它們都是辦公軟體,其實在Word中當然也可以用公式進行求他、平均值、最大值等等運算的啦!如何操作?下面就為大家分享幾個實用方法。「小優,把這個文檔裡邊的數據都核算一遍,十五分鐘後給我!」領導發來一份大小接近5MB的文件。時間緊任務重,小優用上洪荒之力,馬不停蹄地開始核算環節。