学习笔记——BiLSTM模型中CRF层的运行原理

老师让我跑crf框架但是我完全不知道是怎么下手,查资料过程中找到了BiLSTM模型中CRF层的运行原理。记录一下,以备以后使用,嘻嘻。由于我是小白,所以很多公式我也不是太懂。我就说点通俗易懂得叭。

一,符号介绍

我们规定在数据集中有两类实体,人名和组织机构名称。所以,其实在我们的数据集中总共有5类标签:

B-Person (人名的开始部分)

I- Person (人名的中间部分)

B-Organization (组织机构的开始部分)

I-Organization (组织机构的中间部分)

O (非实体信息)

        B-Person, I- Person,B-Organization,I-Organization, O

       假设句子x由五个字符w1,w2,w3,w4,w5组成,其中【w1,w2】为人名类实体,【w3】为地名类实体,其他字符标签为“O”。

二,BiLSTM-CRF模型

以下将给出模型的结构:

        第(1),句子x中的每一个单元都代表着由字嵌入或词嵌入构成的向量。其中,字嵌入是随机初始化的,词嵌入是通过数据训练得到的。所有的嵌入在训练过程中都会调整到最优。

        第(2),这些字或词嵌入为BiLSTM-CRF模型的输入,输出的是句子x中每个单元的标签

图1. Bi-LSTM结构图

       第(3) 尽管一般不需要详细了解BiLSTM层的原理,但是为了更容易知道CRF层的运行原理,我们需要知道BiLSTM的输出层。

 

图2.Bi-LSTM标签预测原理图

        如上图所示,BiLSTM层的输出为每一个标签的预测分值,例如,对于单元w0,BiLSTM层输出的是1.5 (B-Person), 0.9 (I-Person), 0.1 (B-Organization), 0.08 (I-Organization) and 0.05 (O). 这些分值将作为CRF的输入。

概率值和预测值是相互对应得

 ,如果没有CRF层会怎样

        (1)你也许已经发现了,即使没有CRF层,我们也可以训练一个BiLSTM命名实体识别模型,如图3.所示:

图3.去除CRF的BiLSTM命名实体识别模型

        (2)由于BiLSTM的输出为单元的每一个标签分值,我们可以挑选分值最高的一个作为该单元的标签。例如,对于单元w0,“B-Person”有最高分值—— 1.5,因此我们可以挑选“B-Person”作为w0的预测标签。同理,我们可以得到w1——“I-Person”,w2—— “O” ,w3——“B-Organization”,w4——“O”。

        (3)虽然我们可以得到句子x中每个单元的正确标签,但是我们不能保证标签每次都是预测正确的。例如,图4.中的例子,标签序列是“I-Organization I-Person” and “B-Organization I-Person”,很显然这是错误的。

图4. 去除CRF层的BiLSTM模型

四,CRF层能从训练数据中获得约束性的规则

        CRF层可以为最后预测的标签添加一些约束来保证预测的标签是合法的。在训练数据训练过程中,这些约束可以通过CRF层自动学习到。

这些约束可以是:

I:句子中第一个词总是以标签“B-“ 或 “O”开始,而不是“I-”

II:标签“B-label1 I-label2 I-label3 I-…”,label1, label2, label3应该属于同一类实体。例如,“B-Person I-Person” 是合法的序列, 但是“B-Person I-Organization” 是非法标签序列.

III:标签序列“O I-label” is 非法的.实体标签的首个标签应该是 “B-“ ,而非 “I-“, 换句话说,有效的标签序列应该是“O B-label”。

有了这些约束,标签序列预测中非法序列出现的概率将会大大降低


 


-----------------------------------------------------------分分----------------------------------------------------------------
查资料得时候看到一句话,记录一下

CRF++是一个比较轻量级,速度也较快的线性链条件随机场工具,由C++语言实现,同时具有python接口

------------------------------------------------------分割线-----------------------------------------------------------------

BiLSTM模型中CRF层的运行原理

链接:https://www.jianshu.com/p/97cb3b6db573

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值