前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >中文小样本NER模型方法总结和实战

中文小样本NER模型方法总结和实战

作者头像
zenRRan
发布2022-08-26 16:02:12
1.6K0
发布2022-08-26 16:02:12
举报

作者:Erinlp(知乎同名) 方向:信息抽取

一、简介

在UIE出来以前,小样本NER主要针对的是英文数据集,目前主流的小样本NER方法大多是基于prompt,在英文上效果好的方法,在中文上不一定适用,其主要原因可能是:

  1. 中文长实体相对英文较多,英文是按word进行切割,很多实体就是一个词;边界相对来说更清晰;
  2. 生成方法对于长实体来说更加困难。但是随着UIE的出现,中文小样本NER 的效果得到了突破。

二、主流小样本NER方法

2.1、EntLM

EntLM该方法核心思想:抛弃模板,把NER作为语言模型任务,实体的位置预测为label word,非实体位置预测为原来的词,该方法速度较快。模型结果图如图2-1所示:

图2-1 EntLM模型

论文重点在于如何构造label word:在中文数据上本实验做法与论文稍有区别,但整体沿用论文思想:下面介绍了基于中文数据的标签词构造过程;

  1. 采用领域数据构造实体词典;
  2. 基于实体词典和已有的实体识别模型对中文数据(100 000)进行远程监督,构造伪标签数据;
  3. 采用预训练的语言模型对计算LM的输出,取实体部分概率较高的top3个词;
  4. 根据伪标签数据和LM的输出结果,计算词频;由于可能出现在很多类中都出现的高频标签词,因此需要去除冲突,该做法沿用论文思想;
  5. 使用均值向量作为类别的原型,选择top6高频词的进行求平均得到均值向量;

2.2、TemplateNER

TemplateNER的核心思想就是采用生成模型的方法来解决NER问题,训练阶段通过构造模板,让模型学习哪些span是实体,哪些span不是实体,模板集合为:$T=[T+,T+ ...T+,T-]$,T+为xx is aentity,T-为 xx is not aentity,训练时采用目标实体作为正样本,负样本采用随机非实体进行构造,负样本的个数是正样本的1.5倍。推理阶段,原始论文中是 n-gram 的数量限制在 1 到 8 之间,作为实体候选,但是中文的实体往往过长,所以实验的时候是将,n-gram的长度限制在15以内,推理阶段就是对每个模板进行打分,选择得分最大的作为最终实体。

这篇论文在应用中的需要注意的主要有二个方面:

  1. 模板有差异,对结果影响很大,模板语言越复杂,准确率越低;
  2. 随着实体类型的增加,会导致候选实体量特别多,训练,推理时间更,尤其在句子较长的时候,可能存在效率问题,在中文数据中,某些实体可能涉及到15个字符(公司名),导致每个句子的候选span增加,线上使用困难,一条样本推理时间大概42s

图2-2 TemplateNER抽取模型

2.3、LightNER

LightNER的核心思想采用生成模型进行实体识别,预训练模型采用 BART通过 prompt 指导注意力层来重新调整注意力并适应预先训练的权重, 输入一个句子,输出是:实体的序列,每个实体包括:实体 span 在输入句子中的 start index,end index ,以及实体类型 ,该方法的思想具有一定的通用性,可以用于其他信息抽取任务。

图2-3 LightNER抽取模型

2.4、UIE

UIE(通用信息抽取框架)真正的实现其实是存在两个版本,最初是中科院联合百度发的ACL2022的一篇论文,Unified Structure Generation for Universal Information Extraction,这个版本采用的是T5模型来进行抽取,采用的是生成模型,后来百度推出的UIE信息抽取框架,采用的是span抽取方式,直接抽取实体的开始位置和结束位置,其方法和原始论文并不相同,但是大方向相同。

  1. 输入形同:UIE采用的是前缀prompt的形式,采用的是Schema+Text的形式作为输入,文本是NER任务,所以Schema为实体类别,比如:人名、地名等。
  2. 采用的训练形式相同,都是采用预训练加微调的形式

不同点:

  1. 百度UIE是把NER作为抽取任务,分别预测实体开始和结束的位置,要针对schema进行多次解码,比如人名进行一次抽取,地名要进行一次抽取,以次类推,也就是一条文本要进行n次,n为schema的个数,原始UIE是生成任务,一次可以生成多个schema对应的结果
  2. 百度UIE是在ernie基础上进行预训练的,原始的UIE是基于T5模型。

图2-4 UIE抽取模型

三、实验结果

该部分主要采用主流小样本NER模型在中文数据上的实验效果。

通用数据1测试效果:

Method

5-shot

10-shot

20-shot

50-shot

BERT-CRF

-

0.56

0.66

0.74

LightNER

0.21

0.42

0.57

0.73

TemplateNER

0.24

0.44

0.51

0.61

EntLM

0.46

0.54

0.56

-

从实验结果来看,其小样本NER模型在中文上的效果都不是特别理想,没有达到Bert-CRF的效果,一开始怀疑结果过拟了,重新换了测试集,发现BERT-CRF效果依旧变化不大,就是比其他的小样本学习方法好。

3.1、UIE实验结果

UIE部分做的实验相对较多,首先是消融实验,明确UIE通用信息抽取的能力是因为预训练模型的原因,还是因为模型本身的建模方式让其效果好,其中,BERTUIE,采用BERT作为预训练语言模型,pytorch实现,抽取方式采用UIE的方式,抽取实体的开始和结束位置。

领域数据1测试结果(实体类型7类):

预训练模型

框架

F1

Epoch

Ernie3.0

Paddle

0.71

200

Uie-base

paddle

0.72

100

BERT

pytorch

0.705

30

从本部分实验可以确定的是,预训练模型其实就是一个锦上添花的作用, UIE的本身建模方式更重要也更有效。

领域数据1测试结果(实体类型7类):

5-shot

10-shot

20-shot

50-shot

BERT-CRF

0.697

0.75

0.82

0.85

百度UIE

0.76

0.81

0.84

0.87

BERTUIE

0.73

0.79

0.82

0.87

T5(放宽后评价)

0.71

0.75

0.79

0.81

领域数据3测试效果(实体类型6类),20-shot实验结果:

BERT-CRF

LightNER

EntLM

百度UIE

BERTUIE

F1

0.69

0.57

0.58

0.72

0.69

UIE在小样本下的效果相较于BERT-CRF之类的抽取模型要好,但是UIE的速度较于BERT-CRF慢很多,大家可以根据需求决定用哪个模型。如果想进一步提高效果,可以针对领域数据做预训练,本人也做了预训练,效果确实有提高。


📝论文解读投稿,让你的文章被更多不同背景、不同方向的人看到,不被石沉大海,或许还能增加不少引用的呦~ 投稿加下面微信备注“投稿”即可。

最近文章

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

一种全新易用的基于Word-Word关系的NER统一模型

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

ACL'22 | 快手+中科院提出一种数据增强方法:Text Smoothing


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

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

记得备注呦

代码语言:javascript
复制
整理不易,还望给个在看!
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-08-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 深度学习自然语言处理 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、简介
  • 二、主流小样本NER方法
    • 2.1、EntLM
      • 2.2、TemplateNER
        • 2.3、LightNER
          • 2.4、UIE
          • 三、实验结果
            • 3.1、UIE实验结果
            相关产品与服务
            NLP 服务
            NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档