点击上方,选择星标置顶,每天给你送干货

阅读大概需要12分钟

跟随小博主,每天进步一丢丢

来自:数论遗珠

  本文需要的前序知识储备是:隐马尔科夫模型HMM

    链接:NLP硬核入门-隐马尔科夫模型HMM

    实际上HMM和CRF的学习没有先后顺序。但是两者很相似,在学习了HMM后更容易上手CRF,所以建议先学习HMM后学习CRF

1 CRF概述

1.1随机场的定义

在这一小节,我们将会由泛化到特例,依次介绍随机场、马尔科夫随机场、条件随机场、线性链条件随机场的概念。

(1)随机场是一个图模型,是由若干个结点(随机变量)和边(依赖关系)组成的图模型,当给每一个结点按照某种分布随机赋予一个值之后,其全体就叫做随机场。

(2)马尔科夫随机场是随机场的特例,它假设随机场中任意一个结点的赋值,仅仅和它的邻结点的取值有关,和不相邻的结点的取值无关。用学术语言表示是:满足成对、局部或全局马尔科夫性。

(3)条件随机场CRF是马尔科夫随机场的特例,它假设模型中只有X(输入变量,观测值)和Y(输出变量,状态值)两种变量。输出变量Y构成马尔可夫随机场,输入变量X不具有马尔科夫性。

(4)线性链条件随机场,是状态序列是线性链的条件随机场。

注1:马尔科夫性:随机过程中某事件的发生只取决于它的上一事件,是“无记忆”过程。

我们的应用领域是NLP,所以本文只针对线性链条件随机场进行讨论。

线性链条件随机场有以下性质:

(1)对于状态序列y,y的值只与相邻的y有关系,体现马尔科夫性。

(2)任意位置的y与所有位置的x都有关系。

(3)我们研究的线性链条件随机场,假设状态序列Y和观测序列X有相同的结构,但是实际上后文公式的推导,对于状态序列Y和观测序列X结构不同的条件随机场也适用。

(4)观测序列X是作为一个整体,去影响状态序列Y的值,而不是只影响相同或邻近位置(时刻)的Y。

(5)线性链条件随机场的示意图如下:

注二:李航老师的《统计学习方法》里,使用了两种示意图来描述线性链条件随机场,一种是上文所呈现的,这张图更能够体现性质(4),另一种如下图,关注点是X和Y同结构:

1.2CRF的应用

线性链条件随机场CRF是在给定一组随机变量X(观测值)的条件下,获取另一组随机变量Y(状态值)的条件概率分布模型。在NLP领域,线性链条件随机场被广泛用于标注任务(NER、分词等)。

1.3 构建CRF的思路(重要)

我们先给出构建CRF模型的核心思路,现在暂不需要读懂这些思路的本质思想,但是我们要带着这些思路去阅读后续的内容。

(1)CRF是判别模型,是黑箱模型,不关心概率分布情况,只关心输出结果。

(2)CRF最重要的工作,是提取特征,构建特征函数

(3)CRF使用特征函数给不同的标注网络打分,根据分数选出可能性最高的标注网络。

(4)CRF模型的计算过程,使用的是以e为底的指数。这个建模思路和深度学习输出层的softmax是一致的。先计算各个可能情况的分数,再进行softmax归一化操作

2 CRF模型的概率计算

(对数学公式推导没兴趣的童鞋,只需要看2.1和2.2

2.1 标记符号和参数

先约定一下CRF的标记符号:

观测值序列:

状态值序列:

转移(共现)特征函数及其权重:

状态(发射)特征函数及其权重:

简化后的特征函数及其权重:

特征函数t的下标:k1

特征函数s的下标:k2

简化后的特征函数f的下标:k

2.2 一个栗子

在进行公式推导前,我们先通过一个直观的例子,初步了解下CRF。

例:输入观测序列为X=(x1,x2,x3),输出状态序列为Y=(y1,y2,y3),状态值集合为{1,2}。在已知观测序列后,得到的特征函数如下。求状态序列为Y=(y1,y2,y3)=(1,2,2)的非规范化条件概率。

解:参照状态序列取值和特征函数定义,可得特征函数t1,t5,s1,s2,s4取值为1,其余特征函数取值为0。乘上权重后,可得状态序列(1,2,2)的非规范化条件概率为:1+0.2+1+0.5+0.5=3.2

2.3特征函数

在这一小节,我们描述下特征函数,以及它的简化形式和矩阵形式。

(1)线性链条件随机场的原始参数化形式

分数:

归一化概率:

其中,归一项为:

t为定义在边上的特征函数,通常取值0或1,依赖于两个相邻结点的状态,λ为其权重。t有时被称为转移特征,其实称为共现特征更合适些。因为图模型更强调位置关系而不是时序关系

s为定义在节点上的特征函数,通常取值0或1,依赖于单个结点的状态,μ为其权重。s有时被称为状态特征。

要强调的是:CRF模型中涉及的条件概率,不是真实的概率,而是通过分值softmax归一化成的概率。

 

(2)线性链条件随机场的简化形式

特征函数:

权重:

对特征函数在各个位置求和,将局部特征函数转化为全局特征函数:

归一化概率:

向量化:

 

(3)线性链条件随机场的矩阵形式

构建矩阵Mi(x)。位置i和观测值序列x是矩阵的自变量。

矩阵的维度是m*m,m为状态值y的集合的元素个数,矩阵的行表示的是位置i-1的状态,矩阵的列表示的是位置i的状态,矩阵各个位置的值表示位置i-1状态和位置i状态的共现分数,并以e为底取指数。

2.4 前向后向算法

(1)前向算法模型

(a)αi(yi=s|x)表示状态序列y在位置i取值s,在位置1~i取值为任意值的可能性分数的非规范化概率。

定义:

(b)递归公式:

(c)人为定义:

(d)归一项:

 

(2)后向算法模型

(a)βi(yi=s|x)表示状态序列y在位置i取值s,在位置i+1~n取值为任意值的可能性分数的非规范化概率。

定义:

(b)递归公式:

(c)人为定义:

(d)归一化项:

注:在前向算法和后向算法中,人为地定义了α(0)和β(n+1),采用的是李航老师书里的定义方法。但是,我认为采用先验概率(类似HMM中的初始概率分布)或者全部定义成1更合适。因为这里的概率模型应该表现得更通用一点,而不要引入实际预测序列的第一项和最后一项的信息。

2.5 一些概率和期望的计算

(1)两个常用的概率公式

状态序列y,位置i的取值为特定值,其余位置为任意值的可能性分数的归一化条件概率:

状态序列y,位置i-1,i的取值为特定值,其余位置为任意值的可能性分数的归一化条件概率:

(1)两个常用的期望公式

特征函数f关于条件分布P(Y|X)的数学期望:

特征函数f关于联合分布P(X,Y)的数学期望:

3 CRF模型的训练和预测

3.1学习训练问题

CRF模型采用正则化的极大似然估计最大化概率。

采用的最优化算法可以是:迭代尺度法IIS,梯度下降法,拟牛顿法。

相应的知识可以通过最优化方法的资料进行学习,本文篇幅有限,就不作展开了。

3.2预测解码问题

和HMM完全一样,采用维特比算法进行预测解码,这里不作展开。

4 CRF的优缺点(重要)

4.1CRF相对于HMM的优点

(1)规避了马尔科夫性(有限历史性),能够获取长文本的远距离依赖的信息。

(2)规避了齐次性,模型能够获取序列的位置信息,并且序列的位置信息会影响预测出的状态序列。

(3)规避了观测独立性,观测值之间的相关性信息能够被提取。

(4)不是单向图,而是无向图,能够充分提取上下文信息作为特征。

(5)改善了标记偏置LabelBias问题,因为CRF相对于HMM能够更多地获取序列的全局概率信息。

(6)CRF的思路是利用多个特征,对状态序列进行预测。HMM的表现形式使他无法使用多个复杂特征。

4.2条件随机场CRF的缺点

(1)CRF训练代价大、复杂度高。

(2)每个特征的权重固定,特征函数只有0和1两个取值。

(3)模型过于复杂,在海量数据的情况下,业界多用神经网络。

(4)需要人为构造特征函数,特征工程对CRF模型的影响很大。

(5)转移特征函数的自变量只涉及两个相邻位置,而CRF定义中的马尔科夫性,应该涉及三个相邻位置。

4.3标记偏置LabelBias

在HMM中的体现:对于某一时刻的任一状态,当它向后一时进行状态刻转移时,会对转移到的所有状态的概率做归一化,这是一种局部的归一化。即使某个转移概率特别高,其转移概率也不超过1。即使某个转移概率特别低,如果其它几个转移概率同样低,那么归一化后的转移概率也不会接近0。

在CRF被规避的原因:CRF使用了全局的归一化。在进行归一化之前,使用分数来标记状态路径的可能性大小。待所有路径所有位置的分数都计算完成后,再进行归一化。某些某个状态转移的子路径有很高的分数,会对整条路径的概率产生很大的影响。

5 基于TensorFlow的BiLSTM-CRF

BiLSTM-CRF是当前用得比较广泛的序列标注模型。

BiLSTM-CRF模型由BiLSTM和CRF两个部分组成。

BiLSTM使用的是分类任务的配置,最终输出一个标注好的序列。也就是说,即使没有CRF,BiLSTM也能独立完成标注任务。

CRF接收BiLSTM输出的标注序列,进行计算,最后输出修正后的标注序列。

TensorFlow提供了CRF的开发包,路径为:tf.contrib.crf。需要强调的是,TensorFlow的CRF,提供的是一个严重简化后的CRF,和原始CRF差异较大。虽然减小了模型复杂度,但是在准确率上也一定会有所损失。

下面简要介绍下TensorFlow中CRF模块的几个关键函数。

(1)crf_log_likelihood

BiLSTM模块输出的序列,通过参数inputs输入CRF模块。

CRF模块通过crf_sequence_score计算状态序列可能性分数,通过crf_log_norm计算归一化项。

最后返回log_likelihood对数似然。

(2)crf_sequence_score

crf_sequence_score通过crf_unary_score计算状态特征分数,通过crf_binary_score计算共现特征分数。

(3)crf_unary_score

crf_unary_score利用掩码的方式,计算得出一个类似交叉熵的值。

(4)crf_binary_score

crf_binary_score构造了一个共现矩阵transition_params,表示不同状态共现的概率,这个矩阵是可训练的。最后通过共现矩阵返回共现特征分数。

(5)crf_log_norm

归一化项。

知乎文章地址:

https://zhuanlan.zhihu.com/p/87638630

由于微信公众号文章有修改字数的限制,故本文后续的纠错和更新将呈现在知乎的同名文章里。

参考文献

[1]  李航  统计学习方法  清华大学出版社

[2]  条件随机场CRF(一/二/三)  刘建平Pinard  https://www.cnblogs.com/pinard/p/7048333.html


方便交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。

方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。

记得备注呦

推荐阅读:

【ACL 2019】腾讯AI Lab解读三大前沿方向及20篇入选论文

【一分钟论文】IJCAI2019 | Self-attentive Biaffine Dependency  Parsing

【一分钟论文】 NAACL2019-使用感知句法词表示的句法增强神经机器翻译

【一分钟论文】Semi-supervised Sequence Learning半监督序列学习

【一分钟论文】Deep Biaffine Attention for Neural Dependency Parsing

详解Transition-based Dependency parser基于转移的依存句法解析器

经验 | 初入NLP领域的一些小建议

学术 | 如何写一篇合格的NLP论文

干货 | 那些高产的学者都是怎样工作的?

一个简单有效的联合模型

近年来NLP在法律领域的相关研究工作


让更多的人知道你“在看”

NLP硬核入门-条件随机场CRF相关推荐

  1. 【机器学习基础】一文读懂用于序列标注的条件随机场(CRF)模型

    模型前的铺垫 我们先引入一个假设,假设一个句子的产生只需要两步: 第一步:基于语法产生一个合乎文法的词性序列 第二步:对第一步产生的序列中的每个词性找到符合这个词性的一个词汇,从而产生一个词汇序列,便 ...

  2. 简明条件随机场CRF介绍 | 附带纯Keras实现

    作者丨苏剑林 单位丨广州火焰信息科技有限公司 研究方向丨NLP,神经网络 个人主页丨kexue.fm 笔者去年曾写过文章<果壳中的条件随机场(CRF In A Nutshell)>[1], ...

  3. 长文详解基于并行计算的条件随机场CRF

    六月 北京 | 高性能计算之GPU CUDA培训 6月22-24日三天密集式学习  快速带你入门阅读全文> 正文共3974个字,29张图,预计阅读时间18分钟. 之前写过CRF的详解,只是为了让 ...

  4. python期望输出隐藏_【归纳综述】马尔可夫、隐马尔可夫 HMM 、条件随机场 CRF 全解析及其python实现...

    PR Structured Ⅲ:马尔可夫.隐马尔可夫 HMM .条件随机场 CRF 全解析及其python实现 Content 归纳性长文,不断更新中...欢迎关注收藏 本章承接概率图知识 马尔可夫不 ...

  5. 全网最通俗的条件随机场CRF

    前言 本文是我尽量以通俗易懂的口吻来讲解CRF的一篇博文,标题虽然取得有点自不量力,但也是我付出了十分心血总结出来的,如果你还是没能看懂那说明我能力不够没能讲清楚,烦请不要在我的留言区展现出你的杠精本 ...

  6. 简单理解条件随机场CRF

    一.条件随机场是什么? 什么是条件随机场?我们先从它的命名开始说起,为什么是条件随机场这么奇怪的名字,为什么不叫飞机场.火葬场?通常数学上的命名是简单而直白的,大家听我一一解释. 条件 "条 ...

  7. 条件随机场(CRF) - 1 - 简介

    声明: 1,本篇为个人对<2012.李航.统计学习方法.pdf>的学习总结,不得用作商用,欢迎转载,但请注明出处(即:本帖地址). 2,由于本人在学习初始时有很多数学知识都已忘记,所以为了 ...

  8. 条件随机场(CRF) - 2 - 定义和形式

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/xueyingxue001/article/details/51498968 声明: 1,本篇为个人对 ...

  9. 条件随机场 (CRF) 分词序列谈之一(转)

    http://langiner.blog.51cto.com/1989264/379166 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.ht ...

  10. 条件随机场(CRF)相对于HMM,MEMM的优势

    条件随机场(CRF)相对于HMM,MEMM的优势 首先,CRF,HMM(隐马模型),MEMM(最大熵隐马模型)都常用来做序列标注的建模,像词性标注,True casing.但隐马模型一个最大的缺点就是 ...

最新文章

  1. Windows XP 环境下安装 Apache HTTP Server 2.2.8
  2. Android提权漏洞CVE-2014-7920CVE-2014-7921分析
  3. Notepad++中的高级查找
  4. 最新柒上网络小说漫画系统双模板源码V4.0+TP内核
  5. JSP九大内置对象和四大作用域
  6. 清明节如何计算(一千年清明节计算)
  7. 2019年1月最新win10激活密匙 win10各版本永久激活序列号 win10正式版激活码分享
  8. 如何用友远程到服务器,怎么安装用友T3远程通
  9. 记录下一个带内购的iOS app的上架App Store历程
  10. 找个问道自动架设工具
  11. Excel学习日记:L8-工作表的设定与多个工作表合并计算
  12. win7台式计算机型号怎么查,win7怎么看电脑型号 win7电脑型号怎么查
  13. 路边停车系统的具体流程是什么
  14. 复数乘法 哔哩哔哩2020校园招聘面试题详解
  15. Agent and recipient nouns
  16. 骑士精神(IDA*)
  17. 计算机能手数据的计算教学设计,《数据计算》优秀教案
  18. MFC 中Edit Box 不响应回车键 和删除键
  19. 01 Problem Solving and Systematic Innovation -- What Is Innovation?
  20. 菜鸟学习小程序之路(一)

热门文章

  1. 开发自己的博客转发插件(跨域)
  2. 学习完windows网络编程第一章后做的UDPTest程序
  3. Picturebox实现图片的缩放
  4. USB2.0协议学习笔记---USB工作过程(类的方法)
  5. Cookie 版购物车
  6. layer 刷新某个页面
  7. 慎用PHP的unset、array_unique方法
  8. 微信小程序scroll-view横向滚动
  9. Struts第八篇【资源国际化、对比JSP的资源国际化】
  10. python selenium等待特定网页元素加载完毕