Span 抽取和元學習能碰撞出怎樣的新火花,小樣本實體識別來告訴你!

作者:王嘉寧、汪誠愚、譚傳奇、邱明輝、黃松芳、黃俊、高明

近日,阿里雲機器學習平台PAI與華東師範大學高明教授團隊、達摩院機器智能技術NLP團隊合作在自然語言處理頂級會議EMNLP2022上發表基於Span和元學習的小樣本實體識別算法SpanProto。這是一種面向命名實體識別的小樣本學習算法,採用兩階段的訓練方法,檢測文本中最有可能是命名實體的Span,並且準確判斷其實體類型,在僅需要標註極少訓練數據的情況下,提升預訓練語言模型在命名實體識別任務上的精度。

論文:

Jianing Wang, Chengyu Wang, Chuanqi Tan, Minghui Qiu, Songfang Huang, Jun Huang, Ming Gao. SpanProto: A Two-stage Span-based Prototypical Network For Few-shot Named Entity Recognition. EMNLP 2022

背景

大規模預訓練語言模型的廣泛應用,促進了NLP各個下游任務準確度大幅提升,然而,傳統的自然語言理解任務通常需要大量的標註數據來微調預訓練語言模型。例如,對於命名實體識別任務,模型的訓練需要一定數量的語料來學習Token與Label之間的依賴關係。但是在實際應用中,標註數據資源比較稀缺,傳統的序列標註方法很難達到較好的效果,因為其需要解決實體識別中的標籤依賴(Label Depnedency)關係,同時也無法應對實體嵌套(Nested Entity)問題。因此,我們研究一種基於Span和元學習的小樣本實體識別技術。特別地,我們關注於解決N-way K-shot的實體識別場景。下圖所展示了一個2-way 1-shot實體識別任務:

image.png

在上述2-way 1-shot任務中,包含了若干個Support Set和Query Set,每個Support Set只包含2個類別的實體(即上圖的PER和LOC,除了非實體的「O」類別),且每個類別的標註實體數量只有1個。

算法概述

為了解決上述小樣本命名實體識別問題,SpanProto採用兩階段方法,即將實體識別任務分解為兩個階段,分別是Span Extraction和Mention Classification。模型框架圖如下所示:

image.png

Span Extraction

首先,SpanProto使用與類別無關的Span抽取器,抽取出可能的命名區間。在這個工作中,我們參考了Baffine Decoder和Global Pointer的技術,設計了Global Boundary Matrix,顯式讓模型學習到實體區間的邊界信息。在這個Matrix中,每一個坐標元素(i, j)恰好可以表示一個區間[i:j],如果這個區間是一個實體,那麼元素將對應於1,如果這個區間不是一個實體,那麼元素將對應於0:

image.png

Span Extraction模型採用下述基於Span的Cross-Entropy損失函數進行訓練:

image.png

通過上述模型,SpanProto可以利用Global Boundary Matrix抽取出所有可能的實體。

Mention Classification

在Mention Classification模塊中,SpanProto採用標準的Prototypical Learning技術給每個Span分配標籤,即最小化每個Span表徵與對應類別的原型的歐式距離。與此同時,我們考慮到命名實體識別的False Positive問題,即存在一些抽取的Span在當前Episode內沒有合適的類別可以分配的情況。例如,在上圖中,Span Extraction階段模型會抽取出August 15. 1954為一個Span,它可能是一個「Time」類別的實體,但是在當前episode任務中其實只有PER和LOC,沒有合適的標籤給到這個Span。針對False Positive,我們採用Margin Learning方法,最大化這些Span表徵與所有實體類別的原型向量的歐式距離:

image.png

整體算法流程

SpanProto整體算法流程圖如圖所示:

image.png

算法精度評測

為了驗證SpanProto算法的有效性,我們在Few-NERD這一標準評測數據集上進行了測試,效果證明SpanProto對精度提升明顯:

image.png

我們也對算法的模塊進行了詳細有效性分析,我們可以發現Span Extraction和Mention Classification均對模型有一定貢獻。

666.png

image.png

為了更好地服務開源社區,SpanProto算法的源代碼即將貢獻在自然語言處理算法框架EasyNLP中,歡迎NLP從業人員和研究者使用。

EasyNLP開源框架://github.com/alibaba/EasyNLP

參考文獻

  • Chengyu Wang, Minghui Qiu, Taolin Zhang, Tingting Liu, Lei Li, Jianing Wang, Ming Wang, Jun Huang, Wei Lin. EasyNLP: A Comprehensive and Easy-to-use Toolkit for Natural Language Processing. EMNLP 2022 (accepted)
  • Juntao Yu, Bernd Bohnet, Massimo Poesio. Named Entity Recognition as Dependency Parsing. ACL 2020: 6470-6476
  • Ning Ding, Guangwei Xu, Yulin Chen, Xiaobin Wang, Xu Han, Pengjun Xie, Haitao Zheng, Zhiyuan Liu. Few-NERD: A Few-shot Named Entity Recognition Dataset. ACL/IJCNLP 2021: 3198-3213
  • GlobalPointer:用統一的方式處理嵌套和非嵌套NER. //spaces.ac.cn/archives/8373

論文信息

論文名字:SpanProto: A Two-stage Span-based Prototypical Network For Few-shot Named Entity Recognition
論文作者:王嘉寧、汪誠愚、譚傳奇、邱明輝、黃松芳、黃俊、高明
論文pdf鏈接://arxiv.org/abs/2210.09049