跟我读论文丨ACL2021 NER BERT化隐马尔可夫模型用于多源弱监督命名实体识别
摘要:本文是对ACL2021 NER BERT化隐马尔可夫模型用于多源弱监督命名实体识别这一论文工作进行初步解读。
本文分享自华为云社区《ACL2021 NER | BERT化隐马尔可夫模型用于多源弱监督命名实体识别》,作者: JuTzungKuei 。
论文:Li Yinghao, Shetty Pranav, Liu Lucas, Zhang Chao, Song Le. BERTifying the Hidden Markov Model for Multi-Source Weakly Supervised Named Entity Recognition[A]. Proceedings of the 59th Annual Meeting of the Association for Computational Linguistics and the 11th International Joint Conference on Natural Language Processing (Volume 1: Long Papers) [C]. Online: Association for Computational Linguistics, 2021, 6178–6190.
链接:https://aclanthology.org/2021.acl-long.482.pdf
代码:https://github.com/Yinghao-Li/CHMM-ALT

0、摘要
- 研究内容:使用多个弱监督数据的噪音标签学习NER
- 噪音数据:不全、不准、矛盾
- 提出一个条件隐马尔可夫模型(CHMM:conditional hidden Markov model)
- 利用BERT的上下文表示能力,增强了经典的HMM模型
- 从BERT嵌入中学习词的转移和发射概率,推断潜在的真标签
- 用交替训练方法(CHMM-ALT)进一步完善CHMM
- 用CHMM推导出的标签对BERT-NER模型进行微调
- BERT-NER的输出作为额外的弱源来训练CHMM
- 四份数据集上达到SOTA
1、介绍
- NER是许多下游信息抽取任务的基础任务:事件抽取、关系抽取、问答
- 有监督、需要大量标注数据
- 许多领域有知识源:知识库、领域词典、标注规则
- 可以用来匹配语料库,从多角度,快速生成大规模的噪声训练数据
- 远程监督NER:只使用知识库作为弱监督,未使用多源标注的互补信息
- 现有利用HMM方法,有局限性:one-hot词向量 或 不建模
- 贡献:
- CHMM:聚合多源弱标签
- 交替训练方法CHMM-ALT:轮流训练CHMM和BERT-NER,利用彼此的输出进行多回路,以优化多源弱监督NER性能
- 四份基准数据集获得SOTA
2、方法
- CHMM-ALT 训练两个模型:多源标签聚合器CHMM和BERT-NER 模型,轮流作为彼此的输出
- 阶段I:CHMM根据K个源x_{1:K}^{(1:T)}x1:K(1:T),生成一个去噪标签y^{*(1:T)}y∗(1:T),微调BERT-NER模型输出\widetilde{y}^{(1:T)}y(1:T),作为额外的标注源,添加到原始弱标签集合x_{1:K+1}^{(1:T)} = \{x_{1:K}^{(1:T)} , \widetilde{y}^{(1:T)}\}x1:K+1(1:T)={x1:K(1:T),y(1:T)}
- 阶段II:CHMM和BERT-NER在几轮循环中互相改进,每轮循环,先训练CHMM,后微调BERT-NER,更新前者的输入
- CHMM 提高Precision,BERT-NER提高Recall

- 隐马尔可夫模型
- 不细解

3、结果

号外号外:想了解更多的AI技术干货,欢迎上华为云的AI专区,目前有AI编程Python等六大实战营供大家免费学习。
跟我读论文丨ACL2021 NER BERT化隐马尔可夫模型用于多源弱监督命名实体识别的更多相关文章
- 【NLP学习其一】什么是命名实体识别NER?
命名实体识别 概念 命名实体识别(Named Entity Recognition,简称NER) , 是指识别文本中具有特定意义的词(实体),主要包括人名.地名.机构名.专有名词等等,并把我们需要识别 ...
- 2. 知识图谱-命名实体识别(NER)详解
1. 通俗易懂解释知识图谱(Knowledge Graph) 2. 知识图谱-命名实体识别(NER)详解 3. 哈工大LTP解析 1. 前言 在解了知识图谱的全貌之后,我们现在慢慢的开始深入的学习知识 ...
- 基于bert的命名实体识别,pytorch实现,支持中文/英文【源学计划】
声明:为了帮助初学者快速入门和上手,开始源学计划,即通过源代码进行学习.该计划收取少量费用,提供有质量保证的源码,以及详细的使用说明. 第一个项目是基于bert的命名实体识别(name entity ...
- 【NER】对命名实体识别(槽位填充)的一些认识
命名实体识别 1. 问题定义 广义的命名实体识别是指识别出待处理文本中三大类(实体类.时间类和数字类).七小类(人名.机构名.地名.日期.货币和百分比)命名实体.但实际应用中不只是识别上述所说的实体类 ...
- 神经网络结构在命名实体识别(NER)中的应用
神经网络结构在命名实体识别(NER)中的应用 近年来,基于神经网络的深度学习方法在自然语言处理领域已经取得了不少进展.作为NLP领域的基础任务-命名实体识别(Named Entity Recognit ...
- 用深度学习做命名实体识别(六)-BERT介绍
什么是BERT? BERT,全称是Bidirectional Encoder Representations from Transformers.可以理解为一种以Transformers为主要框架的双 ...
- 基于BERT预训练的中文命名实体识别TensorFlow实现
BERT-BiLSMT-CRF-NERTensorflow solution of NER task Using BiLSTM-CRF model with Google BERT Fine-tuni ...
- NLP入门(五)用深度学习实现命名实体识别(NER)
前言 在文章:NLP入门(四)命名实体识别(NER)中,笔者介绍了两个实现命名实体识别的工具--NLTK和Stanford NLP.在本文中,我们将会学习到如何使用深度学习工具来自己一步步地实现N ...
- NLP入门(四)命名实体识别(NER)
本文将会简单介绍自然语言处理(NLP)中的命名实体识别(NER). 命名实体识别(Named Entity Recognition,简称NER)是信息提取.问答系统.句法分析.机器翻译等应用领 ...
- 【神经网络】神经网络结构在命名实体识别(NER)中的应用
命名实体识别(Named Entity Recognition,NER)就是从一段自然语言文本中找出相关实体,并标注出其位置以及类型,如下图.它是NLP领域中一些复杂任务(例如关系抽取,信息检索等)的 ...
随机推荐
- mysqli操作
1.使用mysqli_connect()函数,语法如下: mysqli 对象名=mysqli_connect(数据库服务名,用户名,密码,数据库名) 例:$conn=mysqli_connect('l ...
- C#_TCPClient异步连接和接收消息
//c#不愧是全能型的语言,异步连线程都省了 class State { public byte[] bufferCache; public TcpClient tcpClient; } ... pr ...
- 线上JAVA应用平稳运行一段时间后出现JVM崩溃问题
一.问题是怎么发现的 系统是一个定时任务系统,需要定时执行业务代码,业务代码主要是访问MYSQL数据库和缓存进行操作,该开始启动,系统日志一切正常,但是运行一段时间到凌晨后,系统就自动崩溃了,java ...
- USB TYPE-C PIN定义
USB TYPE-C 母座 USB TYPE-C 公头
- Guess-the-Number
第一次做压缩包逆向 了解到的用jd-gui打开 得到的简单代码可以在在线平添运行
- python列表排序之sort(),sorted()和reverse()
sort() 正序 sort()可以按字母的顺序来对列表进行永久性排序(改变列表自身的排序): list_1 = ['one', 'two', 'three', 'four', 'five'] pri ...
- 终端必备大杀器----Fish
目录 下载 安装 添加 权限 依赖库安装 cmake 预处理 编译 安装 配置fish 其他 下载 Github 地址-- fish-shell openSUSE 开源下载地址 openSUSE 开源 ...
- 发现AI自我意识:进入混合增强只能的纪元
执行性思维:人工智能的现实优势 如何解构人类的思维模型是一个跨多学科的综合性问题.本文仅针对AI领域发展方向预测以及理解,提出一个简化的模型.我认为人类的思维基于思考的目的性可以分为:执行性思维和创造 ...
- 全屏API及vue3 hook封装
最近在一个大屏项目遇到一个需求:用户可以通过一个按钮,触发页面部分模块全屏.通过以下API可以实现: Element.requestFullscreen()方法用于发出异步请求使元素进入全屏模式. 且 ...
- fianl详解(适合新手)
final 1.final是Java语言中的一个关键字 2.final表示最终的,不可变的. 3.final可以修饰变量以及方法,还有类等 4.final修饰的变量? 5.final修饰的方法? 6. ...