缺少训练样本怎么做实体识别?小样本下的NER解决方法汇总

每天给你送来NLP技术干货!


来自:圆圆的算法笔记

作者:Fareise

本文带你走进命名实体识别(NER)任务,首先介绍了解决NER任务的经典模型结构,然后通过3篇顶会论文介绍当缺少训练样本的时候,如何解决NER任务。

1

什么是NER任务

NER即命名实体识别任务,主要目的是识别出一个句子中的实体词,以及其对应的实体类型。比如下面的例子中,就是不同场景下的NER任务。在不同场景中,需要识别的实体类型也是不同的。

d1b545eaac36c8611d3d7be9ffcb0ab4.png

NER任务的基本解决方法当成一个序列分类任务,一般采用BIO、BIOES等标注预测方法,这里主要介绍BIO标注方法。BIO标注方法,就是给句子中的每一个单词都标注一个标签,这个标签由两部分组成:一部分是该单词所属实体的位置,其中B表示该单词是实体的第一个单词,I表示该单词是实体的中间单词,O表示不是实体;另一部分是该单词对应的实体类型,例如在上面的News类型NER任务中,就需要预测单词属于location还是person。因此,最终每个单词都被标注为BIO+实体类型的形式,这是一个文本序列分类任务。

2

NER任务的一般解法

解决NER问题最经典的深度学习模型结构是百度于2015年的论文Bidirectional LSTM-CRF models for sequence tagging(2015)提出的LSTM-CRF架构。单独的LSTM其实就可以完成序列标注任务,利用LSTM对输入句子进行编码,最后得到每个单词的各个分类结果的打分。但是,只用LSTM的问题是,没有办法学到输出标签之间的依赖关系。例如B-person后面经常跟着的是I-Person这种输出标签的规律,在LSTM中感知较弱。因此,一般会在LSTM后面加一个CRF层。CRF指的是我们有一个隐变量序列和一个观测序列,每个观测值只和该时刻的隐变量以及上一时刻的观测值有关。CRF的目标就是学习隐变量到观测值的发射概率,以及当前观测值和下一个观测值之间的转移概率。LSTM-CRF中,CRF建模了NER标签之间的转移关系,弥补了LSTM在这方面的不足。CRF的核心作用就是建模label之间的依赖关系。LSTM-CRF的整体结构如下图所示。

b9ecc9bd4a7a5ca7f3425fffcc1e1a04.png

在LSTM-CRF模型结构的基础上可以使用其他方式进行改进,例如将文本的编码器LSTM替换为Bert,或者将CRF替换成Softmax。例如Portuguese Named Entity Recognition using BERT-CRF(2020)采用了Bert-CRF的模型结构解决NER任务。对于CRF部分,Hierarchically-Refined Label Attention Network for Sequence Labeling(2019)提出采用label embedding结合多层attention机制学习各个位置label之间的关系。相比CRF模型,这种方法可以建模更复杂的label之间关系。

4260d65dceda64bd6f4aad91abc0f046.png

3

小样本学习下的NER任务

当我们有一个领域的大量NER任务有标注样本,但是在目标领域内只有少量有标注样本时,一个提升NER效果的方法利用迁移学习技术,在源领域有大量样本的数据上预训练,再在目标域上Finetune。然而,在NER问题中,不同场景中需要预测的实体类型是不同的,这导致无法直接进行迁移。为了解决这种小样本学习下的NER任务,学术界也提出了一些相应方法。

Example-Based Named Entity Recognition(2020)提出一种基于样例的NER解决方法,主要思路是利用一些有标注样本样例,识别出新数据中相关的entity。例如在下面的例子中,右侧为需要识别的句子,左侧为一些有标注样本,利用左侧的标注信息识别右侧的实体(注意左侧和右侧的实体名称都是不同的)。

5ef0c91a0bd87ae30315a19eb4b9d3c7.png

本文提出了一种两阶段的方法,首先利用样例找到句子中最有可能是实体的span的开始位置和结束位置,然后给这个span分配对应的实体。具体做法为,对于每一个query(即待预测实体的句子),会构造相应的support(有实体标注的句子),其中support中会对实体前后增加<e>和<\e>这种特殊字符。通过Bert对query和support分别编码,然后计算support中<e>和<\e>和query中每个token的匹配位置,找到query中可能为entity span的起止位置。对于一个query会有多个support句子来参考,会使用句子之间的attention加权各个support匹配的query中的起止位置,这部分的模型结构和公式如下(即每个support和query的attention权重加权每个support和query的起止位置相似度匹配分):

84e27c96720350c75bbde7fe10d02474.png

0d34be6594ede2cd5b4869466297a776.png

模型的第二部分是在第一步识别出的entity span的基础上,进一步识别这个entity span具体对应哪个entity。这一步的具体做法和第一步类似,利用support样例计算query中每个token是各个entity类型的起始和终止位置的概率。

Template-Based Named Entity Recognition Using BART(ACL 2021)采用Prompt的思路解决小样本学习下的NER任务。原来解决NER任务的一般做法为将其视为序列标注任务,而这篇文章将其视为一个cloze prompt任务。首先,需要人工定义一个正样本模板和一个负样本模板。对于一个句子,如果某个词组是实体,那么其对应的模板就是<xi:j> is a <yk>;如果某个词组不是实体,那么其对应的模板为<xi:j> is not an entity。例如对于一个输入文本ACL will be held in Bangkok来说,需要构造出多组模板文本,对应每个词组是否为某个entity,如Bangkok is a location entity。在训练阶段会根据label构造出所有是entity的模板对应的样本和非entity的模板对应的样本。在训练过程中,会把原始的文本输入到预训练好的BART Encoder中,得到原文的编码表示。同时在Decoder中,预测根据模板生成的多组文本。例如ACL will be held in Bangkok,在Decoder阶段就需要以生成利用模板产出的文本如Bangkok is a location entity为目标。这样,Decoder相当于学到了一种能力,根据原文输入,对一个模板构造的文本打分。如果Bangkok is a location entity这句话打分很大,说明这句话就是对的,那么就可以抽取出Bangkok是一个地名对应的entity。模型的结构和template例子如下图:

5f91a5b53a6a922af0c9626965d7eb9c.png

这种方法借助了Prompt的思路,很巧妙的解决了少样本情况下的NER问题,同时也能够解决zero-shot情况下的NER问题,高效利用了预训练模型。

4

总结

本文首先简要介绍了NER任务的基本定义和经典LSTM-CRF解决方法,接下来重点介绍了小样本学习下的NER任务。小样本学习场景中,由于数据量较少,各个场景的NER任务label不同,因此直接进行训练效果往往不佳。上面介绍的基于样例匹配的方法和基于prompt的方法,都能很好的解决小样本场景下的NER问题。

招聘文章

国企招聘 |  NLP、语音和CV等算法岗位招聘实习生和应届全职生

招聘 | 好未来NLP算法工程师,包括实习生、应届生和社招,组内论文多,技术深厚

春招 | 风控独角兽 数美科技 NLP、ASR算法工程师 - 25k-35k/月

2022内推 | 字节跳动校招 + 社招,包括NLP、CV和ASR和研究员等

最近技术文章

EMNLP 2022 和 COLING 2022,投哪个会议比较好?

一种全新易用的基于Word-Word关系的NER统一模型,刷新了14种数据集并达到新SoTA

阿里+北大 | 在梯度上做简单mask竟有如此的神奇效果


下载一:中文版!学习TensorFlow、PyTorch、机器学习、深度学习和数据结构五件套!  后台回复【五件套】
下载二:南大模式识别PPT  后台回复【南大模式识别】

投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。

方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。

4708d4381c09b3e6d67022ab5cd199d6.png

记得备注呦

整理不易,还望给个在看!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值