Bidirectional LSTM-CRF Models for Sequence Tagging

Bidirectional LSTM-CRF Models for Sequence Tagging 详解

1. Abstract

在这篇论文中,作者使用一系列LSTM、Bi-LSTM、LSTM+CRF、Bi-LSTM-CRF模型来做序列标注,他们的成果是最早提出使用BI-LSTM-CRF模型来进行序列标注。BI-LSTM+CRF模型由于其双向的组件可以有效的使用的过去和未来的输入特征,同时CRF层可以结合使用句子层次的信息。因此,它在POS(词性标注)、chunking(分段、组)和NER(命名实体识别)方面取得了卓越的效果。此外,它对词嵌入(word embedding)有了更少的依赖。

2. Introduction

  1. 序列标注
    包括POS、chunking、NER是一个典型的自然语言处理的任务。应用:对用户搜索内容进行命名实体识别,识别出其中的产品,之后可以做相关产品的推荐;根据标注信息使得搜索引擎可以找到相关的网页。
  2. 模型发展
    序列标注的传统统计模型:HMM(隐马尔科夫链)、MEMMS(最大熵马尔科夫模型)、CRF(条件随机场)。最新提出的基于神经网络模型来解决序列标注。Conv-CRF(卷积神经网络+CRF)模型取得了较好的效果。在语音识别会议上RNN(循环神经网络)被提出。Bi-RNN(双向循环神经网络)用作语音识别。
  3. 本文工作
    1. 系统的比较了LSTM、BI-LSTM、LSTM+CRF、BI-LSTM-CRF模型在进行序列标注时的效果。
    2. 第一个提出了使用BI-LSTM-CRF进行序列标注。该模型可以同时使用前、后特征信息,其中的CRF层可以使用句子层面的标注信息。在POS、NER、chunking取得了卓越的效果。
    3. 验证了模型的鲁棒性和对字嵌入效果有更少的依赖。模型在序列标注可以得到更好的准确率对word embedding的依赖更少。
  4. 后文组织结构:(1) 第二部分:本文使用的模型的详细介绍。(2)第三部分:训练过程。(3) 第四部分:实验结果。(4) 第五部分:对相关调研的讨论。(5)第六部分:结论

3. Models

这一部分主要详细地介绍了LSTM、BI-LSTM、CRF、LSTM-CRF和BI-LSTM-CRF的模型结构。

  1. RNN
    RNN(循环神经网络):RNN可以对历史的信息保留记忆,从而使得模型在对当前的输出可以结合长时间的特征。
    RNN模型结构
    输入层:x
    隐藏层:h
    输出层:y
    以NER训练为例:x(输入特征 ) y(输出标签)
    在命名实体识别系统中每个单词目标标签特征集合

    • Other(O): 其他
    • Person(PER): 人物
    • Location(LOC):地点
    • Organization(ORG):机构
    • Miscellaneous(MISC):混合的

    其中对每个标签有B-和I- 分别代表实体的开头和中间位置

    输入层:在 t 时刻输入的特征。特征可以是:One-Hot、稀疏特征向量、密集特征向量。输入层的维度和特征的大小相同
    输出层:在 t 时刻输出个标签的概率。输出层的维度与标签大小相同。
    RNN不是单纯前向传播的网络,其将前一个隐层藏状态与当前隐藏层状态进行连接。这种循环结构可以存储历史信息。当一个信息进入LSTM的存储单元,可以根据规则来判断是否有用,只有符合算法认证的信息才会被留下,不符的信息则通过遗忘门遗忘。

    隐藏层的计算 h ( t ) = f ( U x ( t ) + W h ( t − 1 ) ) h(t) = f(Ux(t)+Wh(t-1)) h(t)=f(Ux(t)+Wh(t1))
    输出层的计算 y ( t ) = g ( V h ( t ) ) y(t) = g(Vh(t)) y(t)=g(Vh(t))
    其中 U , W , V U,W,V UWV是训练过程被计算更新的中的连接权重
    f ( z ) 和 g ( z ) f(z)和g(z) f(z)g(z) 分别为sigmoid激活函数(常用 σ \sigma σ表示)和softmax激活函数

    sigmoid f ( z ) = 1 1 + e − z f(z) = \frac{1}{1+e^{-z}} f(z)=1+ez1
    softmax g ( z m ) = e z m ∑ k e z k g(z_m) = \frac{e^{z_m}}{\sum_{k}e^{z_k}} g(zm)=kezkezm

    在这里插入图片描述

  2. LSTM
    LSTM(长短记忆神经网络):在RNNs的基础上,将隐藏神经元的结构替换成如下的结构,它可以更好的挖掘数据中长范围的依赖:
    输入门(Input gate) i t = σ ( W x i x t + W h i h t − 1 + W c i c t − 1 + b i ) i_t = \sigma(W_{xi}x_t+W_{hi}h_{t-1}+W_{ci}c_{t-1}+b_i) it=σ(Wxixt+Whiht1+Wcict1+bi)
    遗忘门(Forget gate): f t = σ ( W x f x t + W h f h t − 1 + W c f c t − 1 + b f ) f_t = \sigma(W_{xf}x_t+W_{hf}h_{t-1}+W_{cf}c_{t-1}+b_f) ft=σ(Wxfxt+Whfht1+Wcfct1+bf)
    单元向量(Cell vector) : c t = f t c t − 1 + i t t a n h ( W x c x t + W h c h t − 1 + b c ) c_t = f_tc_{t-1}+i_ttanh(W_{x_c}x_t+W_{hc}h_{t-1}+b_c) ct=ftct1+ittanh(Wxcxt+Whcht1+bc)
    输出门(Output gate) o t = σ ( W x o x t + W h o h t − 1 + W c o c t + b o ) o_t = \sigma(W_{xo}x_t+W_{ho}h_{t-1}+W_{co}c_t+b_o) ot=σ(Wxoxt+Whoht1+Wcoct+bo)
    隐藏神经元(hidden) h t = o t t a n h ( c t ) h_t = o_ttanh(c_t) ht=ottanh(ct)
    以上神经元和隐藏神经元的 h h h的大小相同,对于权重矩阵用以上名字的缩写来表示,如: W h i W_{hi} Whi表示隐藏神经元-输入门的权重矩阵, W x o W_{xo} Wxo表示输入门-输出门的权重矩阵, σ \sigma σ表示sigmoid激活函数。
    单元向量(C)到门向量(I,F,O)的权重矩阵为对角矩阵,所以门向量的第m个元素只与单元向量的第m个元素有关

    在这里插入图片描述
    在这里插入图片描述

  3. BI-LSTM
    BI-LSTM(双向长短神经网络):在序列标注任务中,在给定的一段时间内,BI-LSTM可以通过特定的 获取历史特征(正向状态)未来特征(反向状态)

    训练BI-LSTM模型通过时域反向传播算法(Back-propagation through time)BPTT
    通过展开神经元,随着时间,与常规神经网络一样进行反向与前向的传递,特别的是需要对所有时间步长神经元进行展开
    需要对各句子开始和结束处进行特殊的处理,在本文中,对每个句子开始和结束处将隐藏状态设置为0。同时进行了批量的实现,即同时处理多个句子。
    在这里插入图片描述

  4. CRF
    CRF(条件随机场)
    有两种不同的方法来利用邻居的标签信息来预测当前的标签:
    第一种是每一个时间步阶段预测一个离散的标签,然后使用beam-like decoding来找到最好的标签序列。如:最大熵分类和最大熵马尔科夫模型。
    第二种是关注句子层级的信息而不是单独某个位置的信息,由此而来的条件随机场(CRF)。注意:其所有的输入、输出是直接相连的,而不像LSTM和BI-LSTM那样使用记忆神经元的、循环结构。
    CRF通常可以得到更高的准确率,CRF使用了标签的信息与常规的预测之间的关联 和 LSTM与BI-LSTM的关联相似。
    在这里插入图片描述

  5. LSTM-CRF
    将LSTM与CRF结合在一起组成模型LSTM+CRF,这个模型可以通过LSTM层有效的使用历史输入特征和通过CRF层使用句子层次的标签信息。
    CRF层由连接连续输出的线表示,CRF层的参数为状态转移矩阵,由这层可以充分使用历史和未来的标签信息来预测当前标签。
    网络输出为分值矩阵(matrix of score) f θ ( [ x ] 1 T ) f_\theta([x]_1^T) fθ([x]1T)(为了简化符号去掉 [ x ] 1 T [x]_1^T [x]1T,使用 f θ f_\theta fθ表示。得分矩阵中的元素 [ f θ ] i , t [f_\theta]_{i,t} [fθ]i,t表示参数为 θ \theta θ的网络预测语句 [ x ] 1 T [x]_1^T [x]1T中第t个词条中第i个标签的输出分值。
    转移得分 [ A ] i , j [A]_{i,j} [A]i,j:在一系列连续的时间步中由标签 i i i 转移到标签 j j j注意:转移矩阵与位置(时间步)无关
    将网络参数更新为:
    θ ~ = θ ⋃ { [ A ] i , j ∀ i , j } \widetilde{\theta} = \theta \bigcup \{[A]_{i,j} \forall i,j\} θ =θ{[A]i,ji,j}
    句子 [ x ] 1 T [x]_1^T [x]1T沿着标签 [ i ] 1 T [i]_1^T [i]1T的得分为转移得分与网络得分之和

    s ( [ x ] 1 T , [ i ] 1 T , θ ~ ) = ∑ t = 1 T ( [ A ] [ i ] t − 1 , [ i ] t + [ f θ ] [ i ] t , t ) s([x]_1^T,[i]_1^T,\widetilde\theta)=\sum_{t=1}^T([A]_{[i]_{t-1},[i]_t}+[f_\theta]_{[i]_t,t}) s([x]1T,[i]1T,θ )=t=1T([A][i]t1,[i]t+[fθ][i]t,t)
    在这里插入图片描述

    这样 [ A ] i , j [A]_{i,j} [A]i,j和推理最优标签可以动态规划求解
    在时间步t上,LSTM-CRF输出的分值为 s ( [ x ] 1 T , [ i ] 1 T , θ ~ ) s([x]_1^T,[i]_1^T,\widetilde\theta) s([x]1T[i]1T,θ ),(CRF的输出分值,与时间步t-1有关,LSTM的输出分值与时间步1 , 2 , ⋯ t − 1有关)
    在这里插入图片描述

  6. BI-LSTM-CRF
    将BI-LSTM与CRF结合在一起组成 BI-LSTM-CRF 模型,BI_LSTM可以使用历史和未来的输入特征,CRF可以使用语句级别的标签特征。
    在这里插入图片描述

4. Training Procedure

所有模型的训练都用了:前向、后向随机梯度下降(SGD)
以BI-LSTM-CRF为例介绍训练过程:
在每一个epoch中,将数据划分为多个batch,每次训练一个batch的数据,该论文batch的大小为100条语句。
(1)运行BI-LSTM模型传递:LSTM的forward state 与 backward state(前向后向算法)。得到所有位置的所有标签的得分矩阵 f θ ( [ x ] 1 T ) f_\theta([x]_1^T) fθ([x]1T)
(2)运行CRF层的前向后向算法传递计算网络输出和状态转移矩阵边的梯度。
(3)从输出层向输入层反向传播(BP)错误(包括反向传播LSTM的前向与后向状态)
(4)最后更新网络参数,包括:状态转移矩阵 [ A ] i , j ∀ i , j [A]_{i,j}\forall i,j [A]i,ji,j和BI-LSTM的参数 θ \theta θ
在这里插入图片描述

5. Experiments

  1. Data
    训练模型在3个NLP标注任务的数据集:词性标注(POS)、组块划分(CONLL2000)、命名实体识别(CONLL2003)。下图展示了训练数据、验证数据、测试数据的句子、单词、标签数目的大小。
    POS的任务:每个单词有一个表明语法特征的标签
    chunking:每个单词标注一个段落特征,如B-NP表示第N段
    NER:每一个单词标注为O或Per,Org,Loc,Misc标签的一个。
    在这里插入图片描述

  2. Features
    语义特征可以划分为spelling feature 与context feature

    1. Spelling features
      在这里插入图片描述
    2. Context Feature
      三个数据集都是用uni-gram、bi-gram 特征,针对CoNLL2000的POS和CoNLL2003的POS和CHUNKING还是用了tri-gram
    3. Word Embedding
      下载使用可130k词汇表的embedding,维度为50维。将其替换one-hot成50维的向量。
    4. Features connection tricks
      将spelling feature 与 context feature都看做word feature。输入层包括 word、spelling和context特征。本文将spelling、context 特征直接连接到输出层可以加快训练并且得到非常相似的标签特征。下图展示了输入将特征直接关联到输出层。在序列标注的模型中的输出标签是远少于其他语言模型的,因此可以承受特征与输出的全连接,从而避免他正碰撞。
      在这里插入图片描述
  3. Results
    训练了多个模型,使用了两中词嵌入策略,一是随机生成词向量,而是使用Senna生成词向量。学习率:0.1,隐藏层大小:300(模型对隐藏层的大小不敏感),训练时少于10个epoch就可覆盖。训练结果与Cov-CRF结果对比,POS选取的是accuracy,chunking与NER使用的是F1得分。如下图:
    在这里插入图片描述

    1. Comparsion wiith Cov-CRF networks
    2. Model robustness
      移除了spelling与 context 特征,只是用word特征进行训练,发现CRF很依赖于工程的特征来取得较好的效果
      在这里插入图片描述
      1. Comparison with existing systems
        在这里插入图片描述

6. Discussions

本文的工作与使用深度神经网络进行序列标注相比,不同的是前面使用的是卷积神经网络,本文使用的是BI-LSTM网络。
本文工作与得出非线性结构无法给高维离散特征带来改进相比,我们使用BI-LSTM-CRF表明在序列标注方面相对单一的CRF层会得到更好的效果。

7. Conclusion

本文比较了一系列LSTM模型在序列标注中的效果,首次提出了使用BI-LSTM-CRF模型来做序列标注,它在POS、chunking、NER中取得了很好的效果。模型有很好的鲁棒性,对word embedding质量的依赖不高。

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值