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. CocosCreator之分层管理的ListView

    前言 进入公众号回复listview即可获得demo的git地址. 之前写的一篇文章<Creator之ScrollView那些事>中提到了官方Demo中提供的ListViewCtl,只是实 ...

  2. C++语法小记---重载逻辑操作符

    重载逻辑操作符 不建议重载逻辑操作符 原因:无法实现逻辑操作符的短路功能(即:不需要计算完全部表达式就可以得出结果) 逻辑操作符:|| && 操作符重载本质上是函数调用,而进行函数调用 ...

  3. 【JVM之内存与垃圾回收篇】执行引擎

    执行引擎 执行引擎概述 执行引擎属于 JVM 的下层,里面包括 解释器.及时编译器.垃圾回收器 执行引擎是 Java 虚拟机核心的组成部分之一. "虚拟机"是一个相对于" ...

  4. 题解 洛谷 P4492 【[HAOI2018]苹果树】

    考虑生成一颗二叉树的过程,加入第一个节点方案数为\(1\),加入第二个节点方案数为\(2\),加入第三个节点方案数为\(3\),发现生成一颗\(n\)个节点的二叉树的方案数为\(n!\). 所以题目中 ...

  5. 理解Linux的硬链接与软链接-转载

    理解Linux的硬链接与软链接 来自:https://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-links/index.html

  6. jsp课堂笔记4 javabean

    Javabean是一个可重复使用的软件组件,实际上是一种java类 实现代码重复利用 易编写易维护易使用 jsp页面的主要任务是显示页面,不负责数据的逻辑业务处理 将数据处理过程中指派一个或多个bea ...

  7. spring notes

    ************************ nexus is a tool of warehouse managementfirst nexus search local warehous ,i ...

  8. proj0的具体实现 #CS61B-sp18

    https://github.com/Centurybbx/sp18-century/tree/master/proj0 proj0的具体实现在上面的Github中. 在proj0中我明显感受到国外大 ...

  9. Windows下使用图形化mount挂载磁盘到文件夹

    Windows上也有类似于Linux上的mount命令,至于mount是什么: mount是Linux下的一个命令,它可以将分区挂接到Linux的一个文件夹下,从而将分区和该目录联系起来,因此我们只要 ...

  10. ctime使用及datetime简单使用

    from time import ctime,sleep def Clock(func): def clock(): print("现在是:",ctime()) func() sl ...