论文解读:ACL2021 NER | 基于模板的BART命名实体识别
摘要:本文是对ACL2021 NER 基于模板的BART命名实体识别这一论文工作进行初步解读。
本文分享自华为云社区《ACL2021 NER | 基于模板的BART命名实体识别》,作者: JuTzungKuei 。
论文:Cui Leyang, Wu Yu, Liu Jian, Yang Sen, Zhang Yue. TemplateBased Named Entity Recognition Using BART [A]. Findings of the Association for Computational Linguistics: ACL-IJCNLP 2021 [C]. Online: Association for Computational Linguistics, 2021, 1835–1845.
链接:https://aclanthology.org/2021.findings-acl.161.pdf
代码:https://github.com/Nealcly/templateNER
0、摘要
- 小样本NER:源领域数据多,目标领域数据少
- 现有方法:基于相似性的度量
- 缺点:不能利用模型参数中的知识进行迁移
- 提出基于模板的方法
- NER看作一种语言模型排序问题,seq2seq框架
- 原始句子和模板分别作为源序列和模板序列,由候选实体span填充
- 推理:根据相应的模板分数对每个候选span分类
- 数据集
- CoNLL03 富资源
- MIT Movie、MIT Restaurant、ATIS 低资源
1、介绍
- NER:NLP基础任务,识别提及span,并分类
- 神经NER模型:需要大量标注数据,新闻领域很多,但其他领域很少
- 理想情况:富资源 知识迁移到 低资源
- 实际情况:不同领域实体类别不同
- 训练和测试:softmax层和crf层需要一致的标签
- 新领域:输出层必须再调整和训练
- 最近,小样本NER采用距离度量:训练相似性度量函数
- 优:降低了领域适配
- 缺:(1)启发式最近邻搜索,查找最佳超参,未更新网络参数,不能改善跨域实例的神经表示;(2)依赖源域和目标域相似的文本模式
- 提出基于模板的方法
- 利用生成PLM的小样本学习潜力,进行序列标注
- BART由标注实体填充的预定义模板微调
- 实体模板:<candidate_span> is a <entity_type> entity
- 非实体模板:<candidate_span> is not a named entity
- 方法优点:
- 可有效利用标注实例在新领域微调
- 比基于距离的方法更鲁棒,即使源域和目标域在写作风格上有很大的差距
- 可应用任意类别的NER,不改变输出层,可持续学习
- 第一个使用生成PLM解决小样本序列标注问题
- Prompt Learning(提示学习)
2、方法
2.1、创建模板
- 将NER任务看作是seq2seq框架下的LM排序问题
- 标签集 entity_type:\mathbf{L}=\{l_1,...,l_{|L|}\}L={l1,...,l∣L∣},即{LOC, PER, ORG, …}
- 自然词:\mathbf{Y}=\{y_1,...,y_{|L|}\}Y={y1,...,y∣L∣},即{location, person, orgazation, …}
- 实体模板:\mathbf{T}^{+}_{y_k}=\text{<candidate\_span> is a location entity.}Tyk+=<candidate_span> is a location entity.
- 非实体模板:\mathbf{T}^{-}=\text{<candidate\_span> is not a named entity.}T−=<candidate_span> is not a named entity.
- 模板集合:\mathbf{T}=[\mathbf{T}^{+}_{y_1},...,\mathbf{T}^{+}_{y_{|L|}},\mathbf{T}^{-}]T=[Ty1+,...,Ty∣L∣+,T−]
2.2、推理
- 枚举所有的span,限制n-grams的数量1~8,每个句子有8n个模板
- 模板打分:\mathbf{T}_{{y_k},x_{i:j}}=\{t_1,...,t_m\}Tyk,xi:j={t1,...,tm}
- x_{i:j}xi:j实体得分最高
- 如果存在嵌套实体,选择得分较高的一个
2.3、训练
- 金标实体用于创建模板
- 实体x_{i:j}xi:j的类型为y_kyk,其模板为:\mathbf{T}^{+}_{y_k,x_{i:j}}Tyk,xi:j+
- 非实体x_{i:j}xi:j,其模板为:\mathbf{T}^{-}_{x_{i:j}}Txi:j−
- 构建训练集:
- 正例:(\mathbf{X}, \mathbf{T}^+)(X,T+)
- 负例:(\mathbf{X}, \mathbf{T}^-)(X,T−),随机采样,数量是正例的1.5倍
- 编码:\mathbf{h}^{enc}=\text{ENCODER}(x_{1:n})henc=ENCODER(x1:n)
- 解码:\mathbf{h}_c^{dec}=\text{DECODER}(h^{enc}, t_{1:c-1})hcdec=DECODER(henc,t1:c−1)
- 词t_ctc的条件概率:p(t_c|t_{1:c-1},\mathbf{X})=\text{SOFTMAX}(\mathbf{h}_c^{dec}\mathbf{W}_{lm}+\mathbf{b}_{lm})p(tc∣t1:c−1,X)=SOFTMAX(hcdecWlm+blm)
- \mathbf{W}_{lm} \in \mathbb{R}^{d_h\times |V|}Wlm∈Rdh×∣V∣
- 交叉熵loss
3、结果
- 不同模板类型的测试结果
- 选择前三个模板,分别训练三个模型
- 实验结果
- 最后一行是三模型融合,实体级投票
号外号外:想了解更多的AI技术干货,欢迎上华为云的AI专区,目前有AI编程Python等六大实战营供大家免费学习。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
性能提升1400+倍,快来看MySQL Volcano模型迭代器的谓词位置优化详解
摘要:性能提升1400+倍,快来看MySQL Volcano模型迭代器的谓词位置优化详解。 本文分享自华为云社区《华为云数据库内核专家为您揭秘MySQL Volcano模型迭代器性能提升千倍的秘密》,作者:GaussDB 数据库 。 20年以上数据库内核研发经验。原IBM DB2数据库内核专家,专长数据库内核性能优化、SQL查询优化、MPP分布式数据仓库技术等。现就职于华为加拿大研究所,全程参与了RDS for MySQL以及GaussDB(for MySQL)的研发工作,熟悉GaussDB(for MySQL) 全栈技术。负责NDP的总体架构设计和实现,并成功落地上线。拥有多项技术发明专利,并co-author了SIGMOD 2020 Taurus( GaussDB(for MySQL)) Paper,目前专注于下一代云数据库智能优化器的研究。 一、背景介绍 MySQL 8.0.18引入了一个新的SQL执行引擎,它遵循了Volcano模型。该模型的关键思想是将所有操作建模为“迭代器”。迭代器提供基本迭代组件:初始化、迭代和终止。所有迭代器都提供如以上相同的接口,因此迭代器可以任意组合...
- 下一篇
api-result 2.5.0 发布,API 接口返回结果规范化解决方案
api-result 2.5.0 已经发布,API 接口返回结果规范化解决方案。 此版本更新内容包括: 【变更】ResultTemplate,code 类型改为 Integer 【变更】ResultTemplate,msg 改为 message 【变更】IReturnCode,getErrCode() 改为 getCode() 【变更】IReturnCode,getMsg() 改为 getMessage() 【变更】IReturnCode,getErrCode() 返回类型改为 Integer 【变更】IReturnCode,成功的返回码改为 0 【变更】IReturnCode,错误的返回码改为 -1 【变更】IReturnCode,Default,枚举错误去掉前缀 ERROR 【变更】ResultTemplate 更名为 ResponseTemplate 【变更】ResultHeader 更名为 ResponseHeader 【删除】ResultTemplate,删除 errCode 【删除】ResultTemplate,删除 errMsg 【删除】IReturnCode,删除 ER...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2全家桶,快速入门学习开发网站教程