Bidirectional LSTM-CRF Models for Sequence Tagging. Zhiheng Huang. 2015

在2015年,本文第一个提出使用BiLSTM-CRF来做序列标注任务,BiLSTM-CRF模型的优势有三点:

  • efficiently use both past and future input features thanks to a bidirectional LSTM component.
  • use sentence level tag information thanks to a CRF layer.
  • robust and has less dependence on word embedding as compared to previous observations

尽管如此,BiLSTM-CRF的成绩只达到了接近SOTA的水准

实验数据集

本文在三个数据集上做了测评,Penn TreeBank(PTB)词性标注数据集、CoNLL 2000组块分析(chunking)数据集、CoNLL 2003命名实体标注数据集。

其中,词性标注就是给每个词标上句法角色,比如名词、动词、形容词等等;组块分析是给每个词打上短语类型,比如B-NP表示名词短语的开头;命名实体识别则是给词打上人名、地名、组织名等类型。

数据集的规模如下所示:

特征

有三种,第一种是拼写特征,比如开头字母、大小写、词的构成;第二种是上下文特征,使用unigram特征和bi-grams特征;第三种是词嵌入。

这里面的上下文特征到底是什么样的,论文没有细讲,一笔带过了。。。

在特征连接上,使用了一个技巧:

就是把拼写和上下文特征和输出连接起来,不仅可以加速训练,还可以带来相似的标注准确率(有点残差连接的感觉)。

实验结果

实验的一些经验之谈:

  • 模型性能和隐藏单元大小无关;
  • 模型在10论内就可以收敛;
  • 对于词性分析,报告词准确率;对于组块分析和命名实体识别,报告F1值;

下面是各个LSTM衍生模型的实验结果对比:

可以看到,在所有基于LSTM的模型中,BiLSTM-CRF表现最好。

接下来还有一些ablation study,只使用词嵌入特征,而不使用拼写特征和上下文特征的对比:

可以看出CRF非常依赖于人工特征;而基于LSTM的模型,BiLSTM和BiLSTM-CRF对此影响较小,具有一定的鲁棒性(词性标注和组块分析是比较小,但是NER上都四个百分点了,这还小吗?)。

再来看看和其他一些模型的对比:

可以看到BiLSTM-CRF不能说是最好,只能说接近SOTA。


BiLSTM:序列标注任务的标杆的更多相关文章

  1. TensorFlow教程——Bi-LSTM+CRF进行序列标注(代码浅析)

    https://blog.csdn.net/guolindonggld/article/details/79044574 Bi-LSTM 使用TensorFlow构建Bi-LSTM时经常是下面的代码: ...

  2. TensorFlow (RNN)深度学习 双向LSTM(BiLSTM)+CRF 实现 sequence labeling 序列标注问题 源码下载

    http://blog.csdn.net/scotfield_msn/article/details/60339415 在TensorFlow (RNN)深度学习下 双向LSTM(BiLSTM)+CR ...

  3. ALBERT+BiLSTM+CRF实现序列标注

    一.模型框架图 二.分层介绍 1)ALBERT层 albert是以单个汉字作为输入的(本次配置最大为128个,短句做padding),两边分别加上开始标识CLS和结束标识SEP,输出的是每个输入wor ...

  4. Bi-LSTM+CRF在文本序列标注中的应用

    传统 CRF 中的输入 X 向量一般是 word 的 one-hot 形式,前面提到这种形式的输入损失了很多词语的语义信息.有了词嵌入方法之后,词向量形式的词表征一般效果比 one-hot 表示的特征 ...

  5. 转:TensorFlow入门(六) 双端 LSTM 实现序列标注(分词)

    http://blog.csdn.net/Jerr__y/article/details/70471066 欢迎转载,但请务必注明原文出处及作者信息. @author: huangyongye @cr ...

  6. BI-LSTM-CRF在序列标注中的应用

    1. 前言 在NLP中有几个经典的序列标注问题,词性标注(POS),chunking和命名实体识别(NER).序列标注器的输出可用于另外的应用程序.例如,可以利用在用户搜索查询上训练的命名实体识别器来 ...

  7. 序列标注(HMM/CRF)

    目录 简介 隐马尔可夫模型(HMM) 条件随机场(CRF) 马尔可夫随机场 条件随机场 条件随机场的特征函数 CRF与HMM的对比 维特比算法(Viterbi) 简介 序列标注(Sequence Ta ...

  8. 序列标注(BiLSTM-CRF/Lattice LSTM)

    前言 在三大特征提取器中,我们已经接触了LSTM/CNN/Transormer三种特征提取器,这一节我们将介绍如何使用BiLSTM实现序列标注中的命名实体识别任务,以及Lattice-LSTM的模型原 ...

  9. NLP之CRF应用篇(序列标注任务)

    1.CRF++的详细解析 完成的是学习和解码的过程:训练即为学习的过程,预测即为解码的过程. 模板的解析: 具体参考hanlp提供的: http://www.hankcs.com/nlp/the-cr ...

随机推荐

  1. 详解TCP一:三次握手、四次挥手

    TCP协议同样是运输层的协议,掌握TCP重点要关注这几个问题:顺序问题.丢包问题.连接维护.流量控制.拥塞控制.先解析下TCP报文段结构,相比于UDP要复杂很多. 首先还是两个端口号,对应着具体的应用 ...

  2. vue使用elementUI form表单label样式修改

    更多关于修改ElementUI样式的方法,可以参考这篇文章 1.删除style标签中的 scoped 属性 <style lang="lang" scoped> ... ...

  3. INS(Instagram)如何绑定谷歌二次验证码/谷歌身份验证/双重认证?

    1.打开Ins,找到双重验证界面   打开Ins,点击右上角“三”-“设置”-“安全”-“双重验证”-“选择安全验证方式”-“身份验证应用”-“立即开启”-“手动设置”-“复制密钥”-“输入验证码” ...

  4. python迭代器和装饰器

    一.迭代器 1.迭代器协议:对象必须提供一个__next__()方法,执行该方法要么返回迭代中的下一个对象,要么引起一个StopIteration异常以终止迭代,迭代只能向后进行不能往前回退 2.可迭 ...

  5. Nginx与Apache简单对比

    Nginx 1.轻量级,采用C进行编写,同样的 web 服务,会占用更少的内存及资源 2.抗并发,处理请求是异步非阻塞的,负载能力比apache高很多,而 apache 则是阻塞型的.在高并发下 ng ...

  6. WEB简单的登录注册功能(分层)

    登录: 前端页面: <body> <form action="/webtext/LogingServlet" method="post"> ...

  7. 第一部分_Mac技巧

    原文是"池建强"的微信文章,公众号为"MacTalk" 第一天 直接在终端里输入 $ say "英文单词",Mac就会拼读该单词 第二天 使 ...

  8. Pandas 复习2

    import pandas as pd import numpy as np food_info = pd.read_csv('food_info.csv') 1.处理缺失值(可使用平均数,众数填充) ...

  9. PHP date_timestamp_get() 函数

    实例 返回今天的日期和时间的 Unix 时间戳: <?php$date=date_create();echo date_timestamp_get($date);?> 运行实例 » 定义和 ...

  10. intel:spectre&Meltdown侧信道攻击(五)—— DRAM address mapping

    前面介绍了row hammer,理论上很完美,实际操作的时候会面临很尴尬的问题:内存存储数据最小的单位是cell(就是个电容,充电是1,放电是0),无数个横着的cell组成row,无数个竖着的cell ...