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. js 或Jquery操作定位元素

    属性过滤常用javascript后去DOM对象 id是定位到的是单个element元素对象,其它的都是elements返回的是list对象 1.通过id获取 document.getElementBy ...

  2. 程序员为什么要使用Markdown

    为什么要学习markdown? 一个让你难以拒绝的理由:markdown可以让你养成了记录的习惯. 我自从使用了markdown之后,就喜欢了写文档,记录工作日志,记录周会,记录季度计划,记录学习目标 ...

  3. OneinStack - 自动编译环境安装脚本

    https://oneinstack.com/

  4. STL源码剖析:配置器

    作用:对内存的管理 接口:申请和释放 内容: 几个全局函数 一级配置器 二级配置器 准备知识 POD是什么: Plain Old Data简称POD,表示传统的C语言类型:与POD类型对应的是非POD ...

  5. C++语法小记---函数对象

    函数对象 用于替代函数指针 优势:函数对象内部可以保存状态,而不必使用全局变量或静态局部变量 关键:重载"()"操作符 #include<iostream> #incl ...

  6. Docker 概念-2

    Docker 是什么? 说了这么多, Docker 到底是个什么东西呢?我们在理解 Docker 之前,首先得先区分清楚两个概念,容器和虚拟机. 可能很多读者朋友都用过虚拟机,而对容器这个概念比较的陌 ...

  7. form表单两种提交方式的不同

      我们在使用<Form>表单的时候,最常用的提交方式就是Get和Post.我们都知道这两种方式最大的差别就是安全性,除此之外,它们还有哪些其他的区别,你知道吗?   在<Form& ...

  8. 《吊打面试官》系列-Redis基础知识

    前言Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行360°的刁难.作为一个在互联网公司面一次拿一次offer的面霸(请允许我使用一下 ...

  9. LQB2013A04倒置的标签

    这个题,一开始犯了一个很幼稚的错误 贴贴代码 #include<iostream> #include<stdio.h> #include<stdlib.h> #in ...

  10. 友好城市dp

    // // Created by Arc on 2020/4/27. //对了,这篇题解的代码是小白自己写的.有啥错误还请各位大佬多多包涵. /* * 某国有一条大河(一条大河~~~~,波浪宽~~~~ ...