博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
论文笔记|Bidirectional LSTM-CRF Models for Sequence Tagging
阅读量:4289 次
发布时间:2019-05-27

本文共 2108 字,大约阅读时间需要 7 分钟。

前言

这篇论文是关于NER的一片经典论文,由百度研究院2015年发表。

前两篇论文笔记与其说是笔记,更多地却像是在做翻译,最近才开始系统接触NER,便选择了较经典的一篇,基础向。

文章目录

摘要

该论文提出了几种基于LSTM的序列标注模型:LSTM,BiLSTM,LSTM-CRF,BiLSTM-CRF。该工作首次将BiLSTM-CRF应用于NLP基准序列标注数据集。

正文

序列标注包括词性标注(POS)、词义组块(chunk)和命名实体识别(NER),是一个经典型的自然语言处理任务。

  传统的命名实体识别就是一种序列标注任务,每个字符输入对应一个标注,如下面这个例子就包含三个实体
在这里插入图片描述
整句则可以被标注为
在这里插入图片描述
其中,
PER:即person,人物
ORG:即organization,组织
LOC:即location,地点
MISC:即miscellaneous,杂项
B,I,E,O分别指示开始,中间,结束,其他

LSTM

由上面可以看到,每个输入字符对应一个标记输出,所以用普通的RNN就可以进行该任务,如图

在这里插入图片描述
同理LSTM,更善于捕获长期依赖
在这里插入图片描述
这里复习下LSTM,LSTM单元的内部结构如下,这里的是未展开的形式
在这里插入图片描述
对应的公式
在这里插入图片描述
可以看到图上有四个输入 x t x_t xt,其中一个产生新的候选值,三个输入对应三个门, i t , o t , f t i_t,o_t,f_t it,ot,ft分别对应输入门,输出门,遗忘门。
   c t c_t ct代表长期记忆,也是新的候选值。例如,由公式可知若 f t f_t ft接近0,即表示遗忘之前的记忆, i t i_t it接近1,即表示输入门打开,则产生的新候选值仅依赖于当前位置的输入。
h t h_t ht代表短期记忆。
Pytorch的LSTM输出
output, (h, c) = self.lstm(x)
  其中output为最后一层每个时间步的输出,h为最后一个时间步的 h t h_t ht,c为最后一个时间步的 c t c_t ct

进一步使用双向的LSTM,即BiLSTM,则可以同时利用前向和后向的输入特征

在这里插入图片描述

CRF

CRF即条件随机场,是一种判别式无向图模型。给定观测序列 𝒙 = { 𝑥 1 , 𝑥 2 , … , 𝑥 𝑛 } 𝒙=\{𝑥_1,𝑥_2,…,𝑥_𝑛 \} x={

x1,x2,,xn}, 标记序列 𝒚 = { 𝑦 1 , 𝑦 2 , … , 𝑦 𝑛 } 𝒚=\{𝑦_1,𝑦_2,…,𝑦_𝑛 \} y={
y1,y2,,yn}
,则CRF的目标为构建条件概率模型 𝑃 ( 𝒚 ∣ 𝒙 ) 𝑃(𝒚|𝒙) P(yx)
如图,CRF可以应用于词性标注任务。
在这里插入图片描述

使用势函数和团来定义条件概率 𝑃 ( 𝒚 ∣ 𝒙 ) 𝑃(𝒚|𝒙) P(yx),类似于马尔可夫随机场,其中包含两种团:单个标记变量 𝑦 𝑖 {𝑦_𝑖} yi,相邻的标记变量 { 𝑦 𝑖 − 1 , 𝑦 𝑖 } \{𝑦_{𝑖−1},𝑦_𝑖\} {

yi1,yi}
在这里插入图片描述
其中 𝑡 𝑗 ( 𝑦 𝑖 + 1 , 𝑦 𝑖 , 𝒙 , 𝑖 ) 𝑡_𝑗 (𝑦_{𝑖+1},𝑦_𝑖,𝒙,𝑖) tj(yi+1,yi,x,i)是两个相邻标记位置上的转移特征函数,表示相邻标记变量的相关关系和观测序列对它们的影响,如
在这里插入图片描述
表示第i个观测值为knock时,第i和第i+1个标记很可能分别是[V]和[P]。

𝑠 𝑘 ( 𝑦 𝑖 , 𝒙 , 𝑖 ) 𝑠_𝑘 (𝑦_𝑖,𝒙,𝑖) sk(yi,x,i)是标记位置上的状态特征函数,表示观测序列对标记变量的影响,如

在这里插入图片描述
表示观测值为knock时,对应标记很可能为[V]。

回到该论文,除了CRF还有另一种利用输出标签信息的方法,即先预测每一时间的标签分布,然后寻找最优的标签序列,如最大熵分类器和最大熵马尔可夫模型(MEMM) ,实验表明CRF效果更好。另外一提前者之于CRF类似于LSTM相对于BiLSTM。

在这里插入图片描述

LSTM-CRF

结合LSTM与CRF,LSTM可利用过去的输入特征,CRF可利用句子级标签信息。

在这里插入图片描述

BiLSTM-CRF

类似于LSTM-CRF,换成双向LSTM,可同时利用过去和未来的输入特征,可提高标注准确性。

在这里插入图片描述

实验

该文用以上模型在三个NLP标注任务上做了性能测试:Penn TreeBank (PTB) POS标记,CoNLL 2000分块,CoNLL 2003命名实体标记。

数据集

在这里插入图片描述

特征

从三个数据集中提取相同类型的特征,可分为拼写特征和上下文特征。

拼写特征即,该词是否以大写字母开头,是否全大写,是否混合数字等。
上下文特征单字特征,双字特征和三字特征。

结果

对比不同模型

在这里插入图片描述
消融实验,去掉拼写特征和上下文特征
在这里插入图片描述
词性标注性能对比
在这里插入图片描述
词义组块性能对比
在这里插入图片描述
命名实体识别性能对比
在这里插入图片描述

总结

该论文系统地对比了基于LSTM网络的序列标记模型,首次将BiLSTM-CRF模型应用于NLP基准序列标注任务。

转载地址:http://vhmgi.baihongyu.com/

你可能感兴趣的文章
MYSQL sql 语句性能分析
查看>>
C++操作Redis数据库
查看>>
python yield用法
查看>>
python pipe模块用法
查看>>
安装完 MySQL 后必须调整的 10 项配置
查看>>
开发者必备的 12 个 JavaScript 库
查看>>
http错误码
查看>>
python 多线程
查看>>
sipp命令 各参数含义
查看>>
搜集的动植物分类、检索网站
查看>>
ffmpeg源码分析之媒体打开过程
查看>>
Ubuntu/centos/redhat/SUSE sipp安装(带rtp支持,3.5.1版本)
查看>>
周鸿祎:很多程序员聪明,但我一看就知道他不会成功
查看>>
编译程序遇到问题 relocation R_X86_64_32 against `.rodata' can not be used when making a shared object;
查看>>
Const指针 、 指向const的指针 、引用、指针
查看>>
GDB调试命令
查看>>
常见数据类型的字节数
查看>>
gcc/g++ 编译常见问题
查看>>
【设计模式】 工厂模式实例 C++ , 利用工厂模式写一个计算器
查看>>
opencv
查看>>