条件随机场——时间序列(句子单词序列也算),其特征函数必须要考虑前一刻的数据

将者,智、信、仁、勇、严也。 将者,智、信、仁、勇、严也。     2022-09-05     694

关键词:

摘自:https://www.zhihu.com/question/35866596/answer/139485548

用一个活生生的例子来说明条件随机场的,十分的通俗易懂!原文在这里

[Introduction to Conditional Random Fields]

 

假设你有许多小明同学一天内不同时段的照片,从小明提裤子起床到脱裤子睡觉各个时间段都有(小明是照片控!)。现在的任务是对这些照片进行分类。比如有的照片是吃饭,那就给它打上吃饭的标签;有的照片是跑步时拍的,那就打上跑步的标签;有的照片是开会时拍的,那就打上开会的标签。问题来了,你准备怎么干?

一个简单直观的办法就是,不管这些照片之间的时间顺序,想办法训练出一个多元分类器。就是用一些打好标签的照片作为训练数据,训练出一个模型,直接根据照片的特征来分类。例如,如果照片是早上6:00拍的,且画面是黑暗的,那就给它打上睡觉的标签;如果照片上有车,那就给它打上开车的标签。

这样可行吗?

乍一看可以!但实际上,由于我们忽略了这些照片之间的时间顺序这一重要信息,我们的分类器会有缺陷的。举个例子,假如有一张小明闭着嘴的照片,怎么分类?显然难以直接判断,需要参考闭嘴之前的照片,如果之前的照片显示小明在吃饭,那这个闭嘴的照片很可能是小明在咀嚼食物准备下咽,可以给它打上吃饭的标签;如果之前的照片显示小明在唱歌,那这个闭嘴的照片很可能是小明唱歌瞬间的抓拍,可以给它打上唱歌的标签。

所以,为了让我们的分类器能够有更好的表现,在为一张照片分类时,我们必须将与它相邻的照片的标签信息考虑进来。这——就是条件随机场(CRF)大显身手的地方!

#从例子说起——词性标注问题
-----

啥是词性标注问题?

非常简单的,就是给一个句子中的每个单词注明词性。比如这句话:“Bob drank coffee at Starbucks”,注明每个单词的词性后是这样的:“Bob (名词) drank(动词) coffee(名词) at(介词) Starbucks(名词)”。

下面,就用条件随机场来解决这个问题。

以上面的话为例,有5个单词,我们将:**(名词,动词,名词,介词,名词)**作为一个标注序列,称为l,可选的标注序列有很多种,比如l还可以是这样:**(名词,动词,动词,介词,名词)**,我们要在这么多的可选标注序列中,挑选出一个**最靠谱**的作为我们对这句话的标注。

怎么判断一个标注序列靠谱不靠谱呢?

就我们上面展示的两个标注序列来说,第二个显然不如第一个靠谱,因为它把第二、第三个单词都标注成了动词,动词后面接动词,这在一个句子中通常是说不通的。

假如我们给每一个标注序列打分,打分越高代表这个标注序列越靠谱,我们至少可以说,凡是标注中出现了**动词后面还是动词**的标注序列,要给它**减分!!**

上面所说的**动词后面还是动词**就是一个特征函数,我们可以定义一个特征函数集合,用这个特征函数集合来为一个标注序列打分,并据此选出最靠谱的标注序列。也就是说,每一个特征函数都可以用来为一个标注序列评分,把集合中所有特征函数对同一个标注序列的评分综合起来,就是这个标注序列最终的评分值。

#定义CRF中的特征函数

现在,我们正式地定义一下什么是CRF中的特征函数,所谓特征函数,就是这样的函数,它接受四个参数:

- 句子s(就是我们要标注词性的句子)
- i,用来表示句子s中第i个单词
- l_i,表示要评分的标注序列给第i个单词标注的词性
- l_i-1,表示要评分的标注序列给第i-1个单词标注的词性

它的输出值是0或者1,0表示要评分的标注序列不符合这个特征,1表示要评分的标注序列符合这个特征。

**Note:**这里,我们的特征函数仅仅依靠当前单词的标签和它前面的单词的标签对标注序列进行评判,这样建立的CRF也叫作线性链CRF,这是CRF中的一种简单情况。为简单起见,本文中我们仅考虑线性链CRF。

#从特征函数到概率
定义好一组特征函数后,我们要给每个特征函数f_j赋予一个权重λ_j。现在,只要有一个句子s,有一个标注序列l,我们就可以利用前面定义的特征函数集来对l评分。

技术分享

上式中有两个相加,外面的相加用来相加每一个特征函数f_j,里面的相加用来相加句子中每个位置的单词的的特征值。

对这个分数进行**指数化和标准化**,我们就可以得到标注序列l的概率值**p(l|s)**,如下所示:


技术分享

#几个特征函数的例子
前面我们已经举过特征函数的例子,下面我们再看几个具体的例子,帮助增强大家的感性认识。

技术分享

当l_i是“副词”并且第i个单词以“ly”结尾时,我们就让f1 = 1,其他情况f1为0。不难想到,f1特征函数的权重λ1应当是正的。而且λ1越大,表示我们越倾向于采用那些把以“ly”结尾的单词标注为“副词”的标注序列


技术分享

如果i=1,l_i=动词,并且句子s是以“?”结尾时,f2=1,其他情况f2=0。同样,λ2应当是正的,并且λ2越大,表示我们越倾向于采用那些把问句的第一个单词标注为“动词”的标注序列。


。。。
好了,一个条件随机场就这样建立起来了,让我们总结一下:
为了建一个条件随机场,我们首先要定义一个特征函数集,每个特征函数都以整个句子s,当前位置i,位置i和i-1的标签为输入。然后为每一个特征函数赋予一个权重,然后针对每一个标注序列l,对所有的特征函数加权求和,必要的话,可以把求和的值转化为一个概率值。





















条件随机场摘要

条件随机场(ConditionalRandomFields,以下简称CRF)是给定一组输入序列条件下另一组输出序列的条件概率分布模型,在自然语言处理中得到了广泛应用。HMM引入了马尔科夫假设,即当前时刻的状态只与其前一时刻的状态有关,HMM是一种... 查看详情

条件随机场

概述条件随机场(conditionalrandomfield,CRF)是给定一组输入随机变量条件下另一组输出随机变量的条件概率分布模型,其特点是假设输出随机变量构成马尔可夫随机场。条件随机场可以用于不同的预测问题,本章主要讲述线性链(linearc... 查看详情

如何用简单易懂的例子解释条件随机场模型?它和hmm有啥区别

参考技术A概率模型与条件随机场1、概率模型 机器学习中的很多模型可以根据概率分布形式分为生成模型和判别模型,其中生成模型以输入输出的联合分布P(X,Y)为基础建模,如朴素贝叶斯、隐马尔可夫模型;判别模型以条件... 查看详情

条件随机场入门条件随机场的概率计算问题

条件随机场的概率计算问题是给定条件随机场P(Y|X),输入序列x和输出序列y,计算条件概率$P(y_i|x)$,$P(y_{i-1},y_i|x)$以及相应的数学期望的问题。为了方便起见,像HMM那样,引进前向-后向向量,递归地计算以上概率及期望值。这样... 查看详情

ml-13-5条件随机场(crf-conditionalrandomfield)

目录知识串讲HMMVSMEMM从随机场到马尔科夫随机场条件随机场(CRF)MRF因子分解定理线性链条件随机场(Linear-CRF)一句话简介:条件随机场(ConditionalRandomFields,以下简称CRF)是给定一组输入序列条件下另一组输出序列的条件概率分布模型... 查看详情

条件随机场crf介绍

...示 逐帧softmax并没有直接考虑输出的上下文关联 条件 查看详情

隐马尔可夫(hmm)/感知机/条件随机场(crf)----词性标注(代码片段)

笔记转载于GitHub项目:https://github.com/NLP-LOVE/Introduction-NLP7.词性标注7.1词性标注概述什么是词性在语言学上,词性(Par-Of-Speech,Pos)指的是单词的语法分类,也称为词类。同一个类别的词语具有相似的语法性质,所有词性的集合称为... 查看详情

ml-13-6条件随机场的三个问题(crf-conditionalrandomfield)

目录条件随机场CRF——前向后向算法评估标记序列概率条件随机场CRF——模型参数学习条件随机场CRF——维特比算法解码一、条件随机场CRF——前向后向算法评估标记序列概率  linear-CRF第一个问题是评... 查看详情

条件随机场(crf)-基础

  条件随机场(conditionalrandomfields,简称CRF,或CRFs)下文简称CRF,是一种典型的判别模型,相比隐马尔可夫模型可以没有很强的假设存在,在分词、词性标注、命名实体识别等领域有较好的应用。CRF是在马尔可夫随机场的基础... 查看详情

条件随机场入门条件随机场的训练

本节讨论给定训练数据集估计条件随机场模型参数的问题,即条件随机场的学习问题。条件随机场模型实际上是定义在时序数据上的对数线形模型,其学习方法包括极大似然估计和正则化的极大似然估计。具体的优化实现算法有... 查看详情

浅谈分词算法基于字的分词方法(crf)

目录前言目录条件随机场(conditionalrandomfieldCRF)核心点线性链条件随机场简化形式CRF分词CRFVSHMM代码实现训练代码实验结果参考文献前言通过前面几篇系列文章,我们从分词中最基本的问题开始,并分别利用了1-gram和HMM的方法实... 查看详情

条件随机场介绍——anintroductiontoconditionalrandomfields

4.推断高效的推断算法对条件随机场的训练和序列预测都非常重要。主要有两个推断问题:第一,模型训练之后,为新的输入(mathbf{x})确定最可能的标记(mathbf{y}^*=argmax_{mathbf{y}}p(mathbf{y}|mathbf{x}));第二,如第5部分所述,参数估计... 查看详情

条件随机场介绍——anintroductiontoconditionalrandomfields

...些应用所共有的特征,是在已知观测特征向量(mathbf{x})的条件下,预测随机向量输出(mathbf{y}={y_0,y_1,cdots,y_T})。以自 查看详情

条件随机场之crf++源码详解-开篇

介绍  最近在用条件随机场做切分标注相关的工作,系统学习了下条件随机场模型。能够理解推导过程,但还是比较抽象。因此想研究下模型实现的具体过程,比如:1)状态特征和转移特征具体是什么以及如何构造2)前向后... 查看详情

条件随机场之crf++源码详解-预测(代码片段)

...相对来说比较简单,所以这篇文章理解起来也会比上一篇条件随机场训练的内容要容易。预测  上一篇条件随机场训练的源码详解中,有一个地方并没有介绍。就是训练结束后,会把待优化权重alpha等变量保存到文件中,也就... 查看详情

tensorflow学习(十四):条件随机场crf(代码片段)

参考:Module:tf.contrib.crf还有一些其他的函数可以到官方文档里面查看和使用.Ⅰtf.contrib.crf.crf_log_likelihoodcrf_log_likelihood(inputs,tag_indices,sequence_lengths,transition_params=None)在一个条件随机场里面计算标签序列的log-likelihood参数:in 查看详情

条件随机场(crf)-1-简介(转载)

转载自:http://www.68idc.cn/help/jiabenmake/qita/20160530618222.html   首先我们先弄懂什么是“条件随机场”,然后再探索其详细内容。        于是,先介绍几个名词。马尔可夫链    & 查看详情

概率图模型(马尔科夫与条件随机场)

再一次遇到了Markov模型与条件随机场的问题,学而时习之,又有了新的体会。所以我决定从头开始再重新整理一次马尔科夫模型与条件随机场。  马尔科夫模型是一种无向概率图模型,其与马尔科夫链并不是很一样。马尔科夫... 查看详情