当前位置:   article > 正文

lstm模型_【序列模型】Bi-LSTM-CRF与序列标注

序列标注任务:bi-lstm+ crf bio

这周阅读了论文"Bidirectional LSTM-CRF Models for Sequence Tagging". 该论文基于双向的LSTM与CRF(条件随机场)的结合,提出了一种序列标注模型Bi-LSTM-CRF。该模型在多项的序列标注任务中取得了SOA的成绩。即使如今Bert满天下的时代,在序列标注类任务中,该模型仍然存在使用的空间,并且由于双向LSTM的处理,使得对于序列标注时特征工程,词向量的依赖大大降低,模型的鲁棒性较高。以下将分三部分来介绍:1)本论文所涉及的知识点介绍;2)作者是如何提出Bi-LSTM-CRF模型的,以及该模型在各项序列标注任务上的测试成绩;3)对此论文的结论进行小结并谈谈自己的看法。

一、基础知识

  1. 循环神经网络RNN(Recurrent neural network)

RNN记录了序列的历史信息,使得模型预测时可以依赖距离较远的“早期”信息。

7a51c624e2bce1ddd4262bee1fbdb21f.png
简单的RNN模型

参考上图,一个简单的RNN模型由输入层

、隐含层
和输出层
组成。 在命名实体识别任务中(NER),
代表输入序列的特征,而
则表示模型输出的预测值。这里采用标准的BIO的NER标注。

BIO标注标准:其他(O), 人名(PER), 地名(LOC), 组织(ORG), 混杂(MISC)。例如句子“EU rejects German call to boycott British lamb”经过NER能得到以下的标注序列:"B-ORG O B-MISC O O O B-MISC O O" 。 其中 B-代表一个实体的起始部分,I-代表一个实体的中间部分。

在RNN网络中将前一个隐含状态处理的结果链接到了当前的状态,因此它可以记录序列的历史信息。一个RNN隐含单元的输出可以通过以下公式计算:

其中

表示权重矩阵,
分别是sigmoid激活函数和softmax激活函数:

2. LSTM(Long Short-Term Memory)

LSTM也能记录序列的历史信息,但和RNN不同的时候,LSTM的隐含层使用了“专用存储单元”,这使得LSTM能够找到更多长范围的序列依赖信息,并且没有RNN的梯度爆炸或者梯度消失的问题。参考下图的LSTM的记忆单元的结构:

1cd91eb03e967740da3a30dce0c72b47.png

LSTM的记忆单元通过以下步骤来运作:

其中

是逻辑函数,
分别是输入门,遗忘门,输出门和记忆单元的向量。它们都和隐藏向量
具有相同的尺寸。
是各个链接单元之间的权重矩阵,例如
表示隐含输入权重矩阵,
表示输入输出门的权重矩阵。从记忆单元到门向量的权重矩阵(例如
)是对角矩阵,数以每个门向量中的元素m仅接收记忆单元向量的元素m作为其输入。下图是一个使用LSTM作为序列标注的例子:

2aa3176d67b6af3b65687ca679ec6448.png

3. Bi-LSTM(Bidirectional LSTM Networks)

双向LSTM会同时按正向和反向来处理序列输入,然后将其输出“拼接”在一起作为模型的输出。

bccea7bdae4a4fa9f7416c2e1d91dbde.png

4. CRF(Conditional Random Field)

条件随机场是一种无向图概率模型的框架。其输入和输出直接相连。常用于序列标注任务。其结构图如下:

2b9ddcf81213144f269d5f75ae7d7888.png

CRF是一种旁别模型,其记录了观察值与隐含状态的条件概率,其损失函数定义如下:

5. LSTM-CRF

通过将LSTM和CRF进行“拼接”可以构成LSTM-CRF网络,如下图:

99b37948a5c4ac28c20ddf05c1d2ce41.png

该网络由于LSTM的结构能够捕获序列数据的“历史信息”,又能够通过CRF层来得到句子级的标注信息。CRF层还有一个状态转移矩阵作为其参数。通过CRF层,能够类似双向LSTM一样使用句子前后级的特征来进行当前时刻的预测。假设CRF网络的输出矩阵为

,后续为了方便期间省略
,则该矩阵的元素
表示参数
的输出score。参数
包含了句子级
的第
个标签和第
个单词。

作者引入了一个转移score

用来表示 从状态
到状态
的转移。这里的转移和序列的位置无关。从而可以得出一个新的参数
。最后一个句子
和其路径标签
所构成的score可以表示为:

可以使用动态规划算法(通常用Viterbi解码)来计算转移矩阵

和最佳的标注序列。

二、作者是如何提出模型的?

参考基础知识部分,作者首先介绍了序列标注模型RNN及其改进的LSTM模型。接着,介绍了能双向LSTM和CRF模型,最后提出了双向LSTM和CRF的组合模型。

  1. BI-LSTM-CRF网络

将一个双向LSTM层的输出拼接到到一个CRF网络的输入就构成了BI-LSTM-CRF模型。他能够使用序列的"历史"和"未来"信息。这些额外的信息能够给序列标注任务带来可观的性能提升。

1a5808fe536e91cd98dc4256cdcdd561.png

2. 训练过程

本论文中所有的模型都使用了向前和向后的随机梯度下降算法进行训练。比如最复杂的BI-LSTM-CRF模型,采用了以下算法进行训练:

6b018fc1c1e01c77b0b1c714b1bbb084.png

对于每个epoch,将训练数据分割成多个batch,一次处理一个batch。其中每个batch包含了多条句子,batch的大小由参数batch size决定。作者选择了batch size 100作为超参数,它表示句子的长度最长不超过100个字符。对于每个batch,首先运行双向LSTM-CRF的forward 过程,他包含了BI-LSTM的向前和向后两个方向的处理,会得到每个位置的输出score

。接着运行CRF层的的前向和后向过程来计算每个转移状态边的梯度。最后,使用反向传播算法计算从输出到输入个模块的损失值。然后更新模型中各个模块的参数,包括转移矩阵
和LSTM的参数
.

3. 实验部分

测试模型包括:LSTM,BI-LSTM,CRF,LSTM-CRF和BI-LSTM-CRF。

测试任务有:Penn TreeBank 词性标注, CoNLL 2000 Chunking(主块分析), CoNLL 2003 命名实体识别。下表汇总了训练集,验证集和测试集所包含的句子,单词,标签的数量。

e3792ff04fd92fc0e466ceabfb588455.png

1)特征工程

对于3个实验数据集都采用了相同的特征工程。其中特征又可以分为拼写特征上下文特征,最后对于3个任务(POS, Chunking和NER)分别抽取401K,76K和341K的特征。

2)拼写特征

包含以下特征:

是否以大写字母开头

是否全都是大写字母

是否全都是小写字母

是否不包含开头的大写字母

是否包含标点符号

单词的前缀和后缀(窗口大小2~5)

是否以's结尾

字母特征(例如对于单词I.B.M 仅抽取IBM)

非字母特征(例如A.T.&T. 仅抽取..&)

单词模式特征

单词样式汇总特征

3)上下文特征

对于单词特征,使用unigram,bigram语言模型作为上下文特征。

对于CoNLL2000数据集和对于CoNLL2003数据集使用unigram,bigram和tri-gram特征。

4)词嵌入(词向量)

使用一个包含130K单词,50维的词向量。

5)特征拼接的小技巧

可以将拼写和上下文特征也作为词的特征。也就是将词,拼写和上下文特征作为网络的输入。然而作者发现,可以直接将拼写和上下文特征链接到LSTM的输出层,这样能够取得接近的结果,而且这也加速了训练的过程。参考图下图:

5e98dfd3cc538fccb471129960222081.png

6)结果

作者使用随机数和Senna词向量两种方法来初始化词向量进行试验。第一类试验使用随机初始化的词向量,第二类使用Senna这个词向量直接初始化。对于每个试验类别,都是用固定的特征集合。并设置训练学习率0.1, 隐含层的大小300(但作者发现模型对于隐含层的大小并不敏感)。对于这3个任务要训练10个epoch使得模型能够收敛。最后的测试结果如下:

fa0063401738bee3425fd4684ccc367b.png

可以看到BI-LSTM-CRF在大多数测试中都取得了SOA的成绩,仅仅在随机初始化词向量的POS(词性标注)任务中输给LSTM-CRF(相差仅仅0.02)。

7)对比Conv-CRF网络(卷积神经网络+CRF)

测试试验有3条基准模型:LSTM,BI-LSTM和CRF。 LSTM在3项测试中成绩最差。BI-LSTM和CRF的在POS任务中比较接近,但在NER任务中还是要比CRF更差。

CRF在各项测试中都比Conv-CRF性能要好。

8)鲁棒性

下表展示了使用Senna 词向量作为参数的POS, Chunking和NER任务测试。括号中的 数值表示该模型在仅使用拼写和上下文特征作为其输入特征时下降的分数。可以看到在NER任务的CoNLL2003中,CRF和LSTM下降的非常明显。而BI-LSTM和BI-LSTM-CRF分数波动较小。因此作者得出了该模型具有一定的鲁棒性,能够减少对特征工程的依赖性。

2579702151c50b3359d477a0f727be5b.png

9)和其他现有系统进行对比

词性标注任务:

ab92fbdeb45cb78a60980dd602d096ee.png

Chunking任务

22b6941edf8dbe7b56f1acf24d22ede5.png

NER任务

ebe070ee2f9361d6e3d0e00317afc0b2.png

可以看到BI-LSTM-CRF在POS中取得了SOA,Chunking和NER任务非常接近SOA的成绩。

三、结论

作者基于双向LSTM 和 CRF的结合提出了Bi-LSTM-CRF模型,该模型能够捕获句子的双向的信息,并且降低对词向量的依赖,使得模型具有较高的鲁棒性。Bi-LSTM-CRF在多项序列标注任务(POS,NER,Chunking)中都取得了SOA或者接近的成绩。

  1. 对该模型的认识

RNN和LSTM都是单向的序列模型,它假设句子当前的状态仅依赖其之前的特征。这可能会不符合实际句子语义的结构。即有些句子不仅依赖其前面的词,还依赖其后面的词(比如倒装句等)。

而在本论文作者介绍了双向LSTM和CRF。双向LSTM对句子从前往后,和从后往前进行扫描,将两个方向的扫描结果“拼接”在一起。这就记录了句子两个方向的特征信息。

CRF的情况也类似。因为CRF是一种无向图概率模型,能过记录句子中“相邻”词之间的上下文关系,并根据执行设计的score函数构建概率模型。因此CRF也能“捕获”这种句子间的上下文关系。但是CRF的这种上下文关系完全依赖于自行设计的score函数和特征工程。所以实际性能偏差会很大。

LSTM-CRF的结合就是依赖LSTM的深度神经网络处理句子的"特征工程"然后LSTM的处理结果映射到一个CRF的状态的向量空间内,而CRF通过其参数的“转移矩阵”和Viterbi算法解码,求出最合适的标注序列。整个过程结合

BI-LSTM-CRF在15年提出以后在Bert出现之前基本是在序列标注任务中长期处于顶尖的位置。而目前来说在工业界也有非常广泛的应用。其模型相比Bert更间简单高效,性能也相不错。如果考虑模型的执行效率和性能,BI-LSTM-CRF还是有很大的使用空间。

2. 缺点

可以看到BI-LSTM-CRF 通过其双向LSTM的结构捕获了句子中两个方向的上下文信息,但是有些句子会依赖句子间的上下文关系。而BERT能够很好的处理这种关系,因此在更加复杂的基于语义的序列标注模型任务中,Bert相比BI-LSTM-CRF具有更好的适用性。

Reference

[1] Zhiheng Huang, Wei Xu, Kai Yu, ACL 2016, Bidirectional LSTM-CRF Models for Sequence Tagging.

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/961618
推荐阅读
相关标签
  

闽ICP备14008679号