ACL 2020 | 基于机器阅读理解框架的命名实体识别方法
論文標題:
A Unified MRC Framework for Named Entity Recognition
論文作者:
Xiaoya Li, Jingrong Feng, Jiwei Li
論文鏈接:
https://arxiv.org/pdf/1910.11476.pdf
本文提出使用基于機器閱讀理解(Machine Reading Comprehension, MRC) 的框架代替序列標注模型(sequence labeling)?統一處理嵌套與非嵌套命名實體識別問題。
該方法解決了序列標注模型無法處理嵌套命名實體識別的缺陷,在8個中英數據集(OntoNotes4.0/5.0、ACE2004/2005、GENIA、KBP17、MSRA、CoNLL)上取得接近或超過當前最佳效果的表現,尤其是在嵌套任務上大幅超越之前最優結果。
概述
近年來關于命名實體識別(NER)的研究非常多,其中大多數都是針對的“非嵌套型”的NER(Flat NER),然而在實際場景中,“嵌套型”的NER(Nested NER)占了相當的比例。
如下圖所示的兩個例子所示。如此一來,以往針對Flat NER的模型就不對Nested NER起效,這是因為它們大多數是序列標注模型,這就沒有辦法直接遷移到Nested NER上。
另一方面,過去對Nested NER的解決方法大都是構建一個pipelined的模型結構,即先抽取所有的實體,然后再判斷每個實體的實體類型。
這種方法盡管比較簡單,但是由于其pipeline性質,實體抽取的錯誤直接會導致整體正確率的降低。而且,將Flat NER與Nested NER分開考慮本身也不夠簡潔。
我們想要一種將二者聯系起來,并且不失效果的方法。
受到近來機器閱讀理解問答(MRC-QA)的啟發,我們提出使用機器閱讀理解框架去合并處理Flat NER與Nested NER。
比如,現在想要抽取PER類型的實體,那么我就可以問“Which person is mentioned in the text”。使用這種方法,無論是Flat NER還是Nested NER,都能很直觀地抽取出來。
總的來說,本文貢獻如下:
提出一種基于MRC的方法抽取命名實體,該方法適用于Flat和Nested兩種類型的NER。相比序列標注方法,該方法簡單直觀,可遷移性強。
我們將會通過實驗說明,基于MRC的方法能夠讓問題編碼一些先驗語義知識,從而能夠在小數據集下、遷移學習下表現更好。
在8個中英數據集上取得當前最佳效果(OntoNotes4.0/5.0、ACE2004/2005、GENIA、KBP17、MSRA、CoNLL等)。
方法:用MRC框架進行NER
數據構建
先來回顧一下NER任務。給定一個文本序列X,它的長度為n,我們要抽取出其中的每個實體,其中實體都有各自的實體類型。
假設該數據集的所有實體標簽集合為Y,那么對其中的每個實體標簽y,比如地點LOC,都有一個關于它的問題q(y)。
這個問題可以是一個詞,也可以是一句話等等。現在,我們給模型輸入X和q(y),就可以期望模型輸出所有具有標簽y的所有實體。
那么,訓練數據如何構建呢?首先來構造問題q(y)。我們使用“標注說明”作為每個標簽的問題。所謂“標注說明”,是在構造某個數據集的時候提供給標注者的簡短的標注說明。
比如標注者要去標注標簽為LOC的所有實體,那么對應LOC的標注說明就是“Find locations in the text, including non-geographical locations, mountain ranges and bodies of water”,下圖是更多的例子。
在有了問題q(y)之后(現在假設問題的長度為m),我們就有了一個訓練實例三元組(Question, Answer, Context),也就是(q(y), Answer, X),這里Answer就是對應的所有實體。
我們用x(start:end)表示其中的實體。其中start是實體的開始位置,end是實體的結束位置。比如在句子X=“北京歡迎你”這句話中,“北京”這個實體就可以表示為x(1:2),因為“北”是句子的第1個位置,“京”是句子的第2個位置。
模型細節
我們使用BERT作為主體模型,輸入到BERT的就是{[CLS],q(1),……, q(m),[SEP],x(1),…… ,x(n)},其中[CLS]和[SPE]是特殊符號,然后得到原文的表示矩陣E,它的形狀為n*d,這里n是原文X的長度,d是BERT最后一層的向量維度。
下面是關鍵。傳統的MRC模型抽取答案的方法是預測它的開始位置和它的結束位置,這相當于2個n分類,分別去在n個字符中預測開始位置和結束位置。
但是,在NER中,原文里可以有很多實體,甚至還可能嵌套,所以這種方法就不適用,基于此,我們采用2個2分類:對每個字符,它有兩個預測結果,即是不是“可能”成為開始位置,是不是“可能”成為結束位置。
具體來說,我們有兩個參數T(s)和T(e),分別去和BERT出來的表示做點積并得到概率分布:P(s) =softmax(E·T(s)), P(e) =softmax (E·T(e))。
現在,對P(s),P(e)的每一行,構成了一個是或不是(第一個位置為“不是的概率”,第二個位置為“是的概率”)開始或結束位置的概率分布。
比如,P(e)的第一行是[0.6,0.4],那么我就可以認為第一個token不是開始位置;P(e)的第三行是[0.1,0.9],那么第三個token就可能是實體的結束位置。
現在我們對P(s),P(e)每行做argmax,就得到了兩個長度為n的0-1序列I(s)和I(e),如果第k個位置是1,那么說明第k個token就可能是開始或結束位置。
現在對I(s)中每個為1的位置i,和I(e)中每個為1的位置j且滿足i<=j的連續字符序列x(i:j),計算x(i:j)為實體的概率p(i:j)=sigmoid(m·?[E(i); E(j)])即可。得到的這個概率就是x(i:j)是實體類型為y的實體的概率。
訓練與推理
在訓練的時候,我們有三個損失,分別是開始位置損失、結束位置損失和實體損失,分別定義如下:
意思是,分別把預測的和真實的結果做交叉熵。然后加起來就是最后的損失。
在推理的時候,先得到I(s)和I(e),然后根據p(i,j)的得分去預測即可。如果p(i:j)>0.5,我們就認為x(i:j)是實體,否則就不是。
NER實驗
Nested NER
我們首先在Nested NER上做實驗,數據集(英文)用ACE2004,ACE2005,GENIA,KBP2017。
基線模型有Hyper-Graph,Seg-Graph,ARN,KBP17,Seq2seq-BERT,Path-BERT,Merge-BERT和DYGIE,具體實驗設置詳見原文。實驗結果如下:
在所有數據集上,MRC的方法都取得顯著更優。
Flat NER
下面我們在Flat NER上做實驗,數據集分為中文和英文。英文有CoNLL2003,OntoNotes5.0;中文有MSRA,OntoNotes4.0,基線模型有BiLSTM-CRF, ELMo, CVT, BERT-Tagger(以上為英文), Lattice-LSTM, BERT-Tagger, Glyce-BERT(以上為中文)。實驗結果如下:
可以看到,在兩個OntoNotes數據集上,MRC的方法都有更多的提升,這是因為OntoNotes有更多的實體類型,一些類型數據非常稀疏。
這表明MRC方法有助于緩解數據稀疏問題,因為MRC中的問題能夠編碼一部分先驗信息。
比對實驗
下面我們從四個方面進行比對實驗:提升來源(MRC還是BERT);問題構建策略;Zero-Shot表現;訓練集大小。
提升來源:MRC還是BERT
第一個問題是,實驗的提升到底是來自BERT還是來自MRC呢?如果來自MRC,那么把這種MRC方法加到其他非BERT模型上應該也會有顯著提升。
所以,對非BERT模型,我們比較了普通的LSTM Tagger(non-MRC)和BiDAF/QAnet(MRC);對BERT模型,我們比較了BERT Tagger和BERT-MRC,實驗結果如下:
很顯然,無論對non-BERT還是BERT模型,MRC都比non-MRC好,盡管有了BERT也會有大幅提升。
問題構建策略
下面我們來討論問題構建的不同策略。我們使用的是“標注說明”,但也有其他方法:
標簽下標:直接用標簽在標簽集中的下標作為問題,比如“one”,“two”;
關鍵詞:使用一個關鍵詞作為問題,比如ORG的問題是“organization”;
規則模板:用一個模板生成問題,比如ORG的問題是“which organization is mentioned in the text”;
維基百科:用維基百科的定義作為問題,比如ORG的問題是“an organization is an entity comprising multiple people, such as an institution or an association”;
近義詞:用標簽的近義詞作為問題,近義詞從牛津詞典中抽取,比如ORG的問題是“association”;
關鍵詞+近義詞:把這兩個連接起來作為問題;
標注說明:本文的方法。
下表是這幾種方法的結果:
使用“標注說明”得到的模型效果最好,這是因為:
標簽下標沒有任何有用的信息,因此效果很差;
維基百科攜帶了較多無用信息,造成了干擾;
標注說明描述準確,最為合適。
Zero-shot?表現
上面我們說到,MRC的問題由于編碼了一些先驗信息,所以可能在標簽遷移上效果較好,下表是結果。可以看到,在兩個數據集遷移上,tagger都遠差于MRC。
訓練集大小
最后來看看不同數據集大小對MRC和Tagger效果的影響,下圖可見,即使訓練數據只有50%,MRC方法都能達到Tagger的最優結果。這也說明了MRC具有一定的先驗知識編碼能力。
小結
在本文中,我們把命名實體識別置于一種機器閱讀理解的問答框架下,用特定的問題去抽取特定標簽的實體,不僅可能抽取一般的實體,還可以抽取嵌套的實體,方法簡單有效,在中英8個數據集上取得了顯著的效果提升。基于MRC的命名實體識別由于其簡潔有效,很有實際應用的潛力。
????
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
關于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
總結
以上是生活随笔為你收集整理的ACL 2020 | 基于机器阅读理解框架的命名实体识别方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么给女儿起名字?
- 下一篇: 北上广深人口集体负增长原因是什么?