CRF详解(NLP向)

条件随机场(Conditional Random Fields, 以下简称CRF)

1. 从 随机场 到 线性链条件随机场

1.1 什么样的问题需要CRF模型

在这里插入图片描述

1.2 从随机场到马尔科夫随机场

随机场是由若干个位置组成的整体,当给每一个位置中按照某种分布随机赋予一个值之后,其全体就叫做随机场。
还是举词性标注的例子:假如有一个十个词形成的句子需要做词性标注。这十个词每个词的词性可以在已知的词性集合(名词,动词…)中去选择。当我们为每个词选择完词性后,这就形成了一个随机场

马尔科夫随机场是随机场的特例,它假设随机场中某一个位置的赋值仅仅与和它相邻位置的赋值有关,和与其不相邻的位置的赋值无关
继续举十个词的句子词性标注的例子:如果我们假设所有词的词性只和它相邻的词的词性有关时,这个随机场就特化成一个马尔科夫随机场。比如第三个词的词性除了与自己本身的位置有关外,只与第二个词和第四个词的词性有关。

1.3 从马尔科夫随机场到条件随机场

CRF是马尔科夫随机场的特例,它假设马尔科夫随机场中只有X和Y两种变量,X一般是给定的,而Y一般是在给定X的条件下的输出。这样马尔科夫随机场就特化成了条件随机场。
在我们十个词的句子词性标注的例子中,X是词,Y是词性。因此,如果我们假设它是一个马尔科夫随机场,那么它也就是一个CRF。

对于CRF,给出准确的数学语言描述:设X与Y是随机变量,P(Y|X)是给定X时Y的条件概率分布,若随机变量Y构成的是一个马尔科夫随机场,则称条件概率分布P(Y|X)是条件随机场。

1.4 从条件随机场到线性链条件随机场

在这里插入图片描述
X和Y有相同的结构的CRF就构成了线性链条件随机场(Linear chain Conditional Random Fields,以下简称 linear-CRF)。

2. 线性链条件随机场

对于上一节讲到的linear-CRF,我们如何将其转化为可以学习的机器学习模型呢?
这是通过特征函数(2个)和其权重系数来实现的

我们以命名实体识别NER为例,先介绍下NER的概念:
在这里插入图片描述
(这里的label_alphabet中的b代表一个实体的开始,即begin;m代表一个实体的中部,即mid;e代表一个实体的结尾,即end;o代表不是实体,即None;start和pad分表代表这个标注label序列的开始和结束,类似于机器翻译的SOS和EOS。)
在这里插入图片描述
上图就是word和label数字化后变成word_index,label_index。最终就变成下面的形式:
在这里插入图片描述
因为label有7种,每一个字被预测的label就有7种可能,为了数字化这些可能,我们从word_index到label_index设置一种分数,叫做发射分数emit
在这里插入图片描述
看这个图,有word_index 的 1 -> 到label_index 的 4的小红箭头,像不像发射过来的?此时的分数就记作emit[1][4]。

这里的发射分数emit(整体就是一个发射矩阵)实际上就是特征函数一:节点特征函数这类特征函数只和当前节点有关,可表示为:
在这里插入图片描述
另外,我们想想,如果单单就这个发射分数来评价,太过于单一了,因为这个是一个序列,比如前面的label为o,那此时的label被预测的肯定不能是m或s,所以这个时候就需要一个分数代表前一个label到此时label的分数,我们叫这个为转移分数,即T:
在这里插入图片描述
如图,横向的label到label箭头,就是由一个label到另一个label转移的意思,此时的分数为T[4][4]。

这里的转移分数T(整体就是一个转移矩阵)实际上就是特征函数二:局部特征函数这类特征函数只和当前节点和上一个节点有关,可表示为:
在这里插入图片描述
在这里插入图片描述
注意其为了全局考虑,会将前一个的分数也累加到当前分数上,如上图!
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
规范化因子保证其概率分布整体总和为1。

面试回答小结:(直接背这个,上面不用看)
CRF是由随机场满足各种约束条件(随机场满足马尔科夫假设得到马尔科夫随机场,即当前节点只与其相邻节点相关,而在马尔科夫随机场的基础上,假设其随机变量只有X和Y,则得到CRF)而得到的,实际常用的其实叫做线性链CRF(CRF中的X和Y结构不一定是一致的,而线性链CRF中X与Y结构一致)。

那么线性链CRF主要有两个重要组成部分,一个是发射矩阵部分,参数化表示的话就是,各个节点特征函数与其权重的乘积和;另一个是转移矩阵部分,参数化表示的话就是,各个局部特征函数与其权重的乘积和。每个特征函数的结果都是0/1,这两个部分的组合可以得到非常多种不同结果的发射矩阵和转移矩阵,而其中只有一种组合是正确的(我们的目标组合),那么便可以通过SoftMax概率化这个最优结果并取 l o g log log,所以线性链CRF的优化目标就是最大化这个最优组合的概率值。具体线性链CRF参数化表示如下,目标便是最大化 l o g ( P ( y ∣ x ) ) log(P(y|x)) log(P(yx)),损失函数的分母是全部路径和,分子是目标最优路径,从而进行训练。

训练完成后,进行预测时需要进行解码,解码使用维特比算法,求解全局最优解,即动态规划,具体见这里

3. 线性链条件随机场的简化形式 (知道)

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

4. linear-CRF的三个基本问题(了解差不多)

在这里插入图片描述

5. 计算最优路径(维特比算法)

见链接,这里不多解释,本质上和分词算法的维特比算法是一样的。

6. 以前的笔记(了解)

在这里插入图片描述

  • 28
    点赞
  • 81
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
BiLSTM-CRF模型是一种用于序列标注任务的深度学习模型,它结合了双向长短时记忆网络(BiLSTM)和条件随机场(CRF)两个模型的优点,能够有效地解决序列标注问题。 BiLSTM模型是一种循环神经网络,它能够对序列中的每个元素进行处理,并利用上下文信息来预测当前元素的标签。而CRF模型则是一种统计学习方法,它将标注问题看作是一个序列标注的联合概率分布问题,通过最大化联合概率分布来得到最优的标注序列。 BiLSTM-CRF模型将BiLSTM和CRF结合起来,首先使用BiLSTM网络对序列中的每个元素进行特征提取,然后将这些特征作为CRF模型的输入,通过CRF模型来计算标注序列的联合概率分布,并得到最优的标注序列。 具体来说,BiLSTM-CRF模型的输入是一个序列,每个元素都包含了一组特征向量。这些特征向量可以包括单词、词性、上下文信息等。BiLSTM网络通过对序列中每个元素的特征向量进行处理,得到一个隐层向量表示。由于BiLSTM是双向的,因此对于每个元素,它的隐层向量表示将包括它本身以及它前后的上下文信息。 接下来,CRF模型将这些隐层向量作为输入,计算标注序列的联合概率分布。具体来说,CRF模型会考虑当前元素的标签以及前一个元素的标签,通过定义一个转移矩阵来计算它们之间的转移概率。同时,CRF模型还会考虑每个元素的标签的概率分布,通过定义一个发射矩阵来计算每个元素的标签的概率分布。最终,CRF模型会选择一个最优的标注序列,使得它的联合概率分布最大化。 BiLSTM-CRF模型在序列标注任务中取得了很好的效果,特别是在自然语言处理领域中的实体识别、命名实体识别、词性标注等任务中,都得到了较好的表现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Xu_Wave

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值