【BiLSTM-CRF】深入浅出讲解BiLSTM-CRF算法

1.BiLSTM-CRF简介:

在NLP领域中,分词、词性标注、序列标注、命名实体识别等是科研和工程中经常遇到的任务,其中BiLSTM-CRF是用来解决这些任务的非常流行的算法。

本文将简单介绍下BiLSTM-CRF算法的原理。

论文地址:

论文题目为:Neural Architectures for Named Entity Recognition。

2.BiLSTM-CRF的数据描述:

假设数据集有两种实体类型:人物(PER)和地点(LOC),并采用BIO标注体系。

因此会有五种实体标签:B-PER、I-PER、B-LOC、I-LOC、O。

3.BiLSTM-CRF的结构原理:

首先,BiLSTM-CRF的输入是词向量,输出是每个单词的预测的序列标注。

第一步:单词输入,单词进入look-up layer层,使用CBOW、Skip-gram或者glove模型映射为词向量。

第二步:词向量进入BiLSTM层,通过学习上下文的信息,输出每个单词对应于每个标签的得分概率。

例如,对于w0,BiLSTM节点的输出得分是1.5 (B-Person), 0.9 (I-Person), 0.1 (B-Organization), 0.08 (I-Organization) 以及0.05 (O),这些score作为CRF layer的输入。

此处的标签的得分概率作为CRF模型中的未归一化的发射概率。

第三步:所有的BiLSTM的输出将作为CRF层的输入,通过学习标签之间的顺序依赖信息,得到最终的预测结果。

如下图1和图2所示:

图1:BiLSTM-CRF的结构图

图2:BiLSTM-CRF的网络图

4.CRF层的作用:

在BiLSTM-CRF模型中,若直接通过取BiLSTM输出的标签概率最大值作为最终预测输出,可能会出现诸如I作为开头的词、存在两个连续的B的词、B-PER和I-LOC连在一起等情况,模型效果将会降低。

CRF层可以通过学习数据集中标签之间的转移概率从而修正BiLSTM层的输出,从而保证预测标签的合理性。

5.BiLSTM层和CRF层的区别

BiLSTM层学习的是序列的上下文信息,

CRF层学习的是标签之间的依赖信息。

经验分享 程序员 微信小程序 职场和发展