实体识别BERT-MRC论文阅读笔记
每天給你送來NLP技術干貨!
來自:AI算法小喵
作者:小喵
寫在前面
NER(命名實體識別)通常可以分為nested NER(嵌套命名實體識別)及flat NER(非嵌套命名實體識別)。在flat NER上常用的序列標注模型通常不適用于nested NER,為了將兩個任務用一套統一框架處理,BERT-MRC從MRC(機器閱讀理解)角度建模實體識別任務。
簡單地說,BERT-MRC將實體類別相關的先驗信息(比如實體類別描述)構建為一個問句,并將問句與文本內容一起輸入模型,然后從文本內容中抽取問句的答案,也就是實體在文本中的位置(answer span)。本文將對BERT-MRC做一個簡要的介紹。
論文名稱:《 A Unified MRC Framework for Named Entity Recognition》
論文鏈接:https://arxiv.org/abs/1910.11476
代碼地址:https://github.com/ShannonAI/ mrc-for-flat-nested-ner
1. 背景
1.1 nested NER vs flat NER
NER旨在識別出輸入文本內容中的實體文本及其所對應的實體類型,根據實體之間是否可能嵌套,NER進一步可分為nested NER、flat NER。
上圖是論文中給出的例子,既有嵌套實體又有非嵌套實體。這里,我們再給一些不同領域的中文文本的例子來讓大家對嵌套有一個直觀的印象。
下圖左側是允許嵌套的實體標注結果,右側是不允許嵌套的實體標注結果(以就長不就短為標注原則)。
顯然,嵌套實體指的就是識別的實體中可能會存在嵌套的情況。比如明顯鼻扇是一種臨床表現,而其中的鼻又是一個身體部位;葉圣陶散文集是一部作品,而其中的葉圣陶則是一名作者;北京是一個地點,而北京大學是一個組織機構。
1.2 序列標注模型與flat NER
flat NER通常被當作序列標注任務處理,常見的經典模型有:BERT+CRF、BERT+Softmax、BERT+BiLSTM+CRF等。以BERT+CRF為例,序列標注模型會給文本中的每個token(字)打上一個標簽,以表示這個token所屬的實體類別。
上圖所示例子采用的標簽體系是BIOES:
B,即Begin,表示開始;
I,即Intermediate,表示中間;
E,即End,表示結尾;
S,即Single,表示單個字符;
O,即Other,表示其他,用于標記無關字符。
因此最終BERT+CRF實體識別模型預測出小明就讀于北京大學一句中存在兩個實體:人物實體小明、組織機構實體北京大學。可以看出,本質上這類抽取的方式其實是從token級別多分類角度建模實體識別任務的。
1.3 序列標注模型與nested NER
顯然1.2節中的BERT+CRF是不適用于nested NER(即存在嵌套實體的實體識別任務)。因為序列標注模型通常只給一個token打一個標簽,但是在nested NER中某些token可能同時擁有兩個不同的類型實體標簽。
比如在北京大學?中?北?應該分別具有B-LOC和B-ORG兩個標簽;同理北京大學中的?京?也應該分別擁有E-LOC與I-ORG兩個標簽。
其實,個人認為BERT+CRF也不是完全就不適用于nested NER場景了。如上圖,有一個比較直觀的做法可以使BERT+CRF支持實體嵌套的情況,那就是利用多層CRF,其中每一層CRF的輸入均為經過BERT之后的向量,每一層CRF負責一類實體的預測。但是,其實這無形中增加了模型的參數量。
接下來,我們拋開序列標注類實體抽取解決方案,來看一個新的實體識別框架BERT-MRC,它可以同時應用于nested NER和flat NER。
2. 核心思想
2.1 問答式建模
前面,我們提過BERT-MRC是從MRC(問答式機器閱讀理解)角度來建模實體抽取任務的。而MRC通常被拆解為兩個多分類任務,這兩個多分類任務分別負責答案的起點和止點位置預測(answer span Extraction)。
換句話說,BERT-MRC在抽取每類實體時,首先都會基于實體類別建立自然語言問句,然后在給定的上下文文本中抽取這個問句的答案片段,也就是相應實體類別下的各個實體文本片段的起點和止點位置。最后,我們采用一定的頭尾匹配策略(如就近匹配)就可以獲得實體預測結果。既然對每類實體的抽取是獨立進行的,自然可以解決不同類別實體嵌套問題。
2.2 頭尾匹配層
MRC+就近匹配只能解決不同類實體的嵌套問題,而針對同類實體的嵌套問題,BERT-MRC引入了一個二分類層計算頭尾配對概率來解決。
2.3 先驗知識的引入
還有一點,BERT-MRC還指出問句引入了實體類別的信息,顯式地告訴模型所要抽取的是什么類的實體。
此外,問句中所包含的更全面更細粒度的描述信息則可能提供了區分性信息,幫助實體抽取模型去區分相近的實體類別。比如GPE(按照國家、城市、州縣劃分的地理區域)與LOC(山脈、河流自然景觀的地點)。其實這樣的話,北京的標簽應該是GPE。
個人認為這一點可以這么理解:在以往的序列標注模型中,實體類別其實就是一個無語義的one-hot標簽;模型之所以能夠抽取出這個類別下的那些實體,是因為抓住了它們的相似點,但實際上模型并不知道它們是因為什么相似的。現在我們可以通過問句顯式地直接地告訴模型。
問句1:找出文本中的地理區域類地點,包括國家、城市、州縣等; 問句2:找出文本中的自然景觀類地點,包括山脈、河流等; 問句3:找出文本中的組織機構,包括公司、機構等;3. 模型細節
給定實體類別標簽下的問句和上下文,BERT-MRC需要從中抽取實體類別為的所有文本片段。
3.1 編碼層(Model backbone)
BERT-MRC使用BERT作為編碼層,所以整體模型的輸入是問句與上下文的拼接結果:
其中
402 Payment Required
。經過編碼層后,BERT-MRC只取上下文部分的表征進行后續的運算,也就是說。
3.2 起止點預測 (start end prediction)
前面已經提過,BERT-MRC抽取實體本質上就是識別相應實體類別下的各個實體文本片段的起點和止點位置。
因為在一個實體類別下文本中可能有多個實體片段,所以需要定位多個起止點。因此BERT-MRC選擇設置兩個二分類器,分別對每一個token進行起點和止點的判斷,以獲得每個token作為起點、止點的概率:
402 Payment Required
、
其中概率大于設定閾值的即為候選首尾點(每個節點的均為2維向量,2個維度分別代表不是起點與是起點的概率。同理):
3.3 起止點匹配(start end matching)
獲得候選起點和止點后需要進行起止點配對以獲取實體片段(span)。如果只有不同類別的實體嵌套,那么選用就近匹配策略就可以很自然地解決,可是實際上同類別實體也可能嵌套(原文用overlap重疊)。
換句話說,MRC+最近匹配策略是無法解決的同類別實體嵌套問題的,所以我們需要換一個頭尾匹配策略。
BERT+MRC選擇在以候選起止點的表征拼接結果作為特征,用一個全連接層+sigmoid進行判定來確定起點、止點是否為一個span的頭尾點:
402 Payment Required
3.4 損失函數
注:CE代表交叉熵損失函數
、、
如上式,BERT-MRC模型的損失函數由三部分組成,其中、、是各個損失的權重。
假設真實結果中每個token是否為起點或止點由、分別表征,那么、就分別代表起點和止點的預測損失:
402 Payment Required
假設、表征真實結果中每個token是否和另一個token分別作為一個span的起點和止點。
4. 實驗結果
4.1 評價指標
span-level micro-averaged precision、recall、f1,即在實體層面計算。假設第類實體預測正確的總個數為,預測錯誤的總個數為,實際為該類實體卻未被預測到的總個數為,那么有:
為:
402 Payment Required
4.2 實驗結果
在這里,我們比較關心的是在中文數據上的效果。在BERT-MRC所做實驗中,僅兩個數據為中文數據:MSRA、OntoNotes 4.0,并且它們都屬于flat ner。從實驗結果來看,BERT-MRC超越了其他baseline。
總結
好了,關于BERT-MRC的內容就到這里了。如果本文對你有所幫助,記得點贊+在看,也可以分享給你需要的朋友~~。
最近文章
EMNLP 2022 和 COLING 2022,投哪個會議比較好?
一種全新易用的基于Word-Word關系的NER統一模型
阿里+北大 | 在梯度上做簡單mask竟有如此的神奇效果
ACL'22 | 快手+中科院提出一種數據增強方法:Text Smoothing
總結
以上是生活随笔為你收集整理的实体识别BERT-MRC论文阅读笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 狗子课堂 二 虚拟机配置
- 下一篇: MySQL索引key_len