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

  • 本文收录于《深入浅出讲解自然语言处理》专栏,此专栏聚焦于自然语言处理领域的各大经典算法,将持续更新,欢迎大家订阅!
  • 个人主页:有梦想的程序星空
  • 个人介绍:小编是人工智能领域硕士,全栈工程师,深耕Flask后端开发、数据挖掘、NLP、Android开发、自动化等领域,有较丰富的软件系统、人工智能算法服务的研究和开发经验。
  • 如果文章对你有帮助,欢迎关注点赞收藏订阅。

1.BiLSTM-CRF简介:

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

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

论文地址:https://arxiv.org/pdf/1603.01360.pdf

论文题目为: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所示:

【BiLSTM-CRF】深入浅出讲解BiLSTM-CRF算法_第1张图片

图1:BiLSTM-CRF的结构图

【BiLSTM-CRF】深入浅出讲解BiLSTM-CRF算法_第2张图片

图2:BiLSTM-CRF的网络图

4.CRF层的作用:

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

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

5.BiLSTM层和CRF层的区别

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

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

关注微信公众号【有梦想的程序星空】,了解软件系统和人工智能算法领域的前沿知识,让我们一起学习、一起进步吧!

你可能感兴趣的:(深入浅出讲解自然语言处理,自然语言处理,深度学习)