目录

一,条件随机场介绍

1.1啥是词性标注问题?

1.2 机器学习中的生产模型与判别模型

二,基于自然语言处理理解

1 条件随机场(Condition Random Fields),简称CRFs

2 条件随机场的形式化表示

3 深度理解条件随机场

4 公式化表示条件随机场

5 本节总结

三,基于机器学习理解 条件随机场(可以看作给定观察值的马尔科随机场)

2 链式条件随机场

3 参考文献

4 自然语言相关系列文章


一,条件随机场介绍


理解条件随机场最好的办法就是用一个现实的例子来说明它。
原文在这里[http://blog.echen.me/2012/01/03/introduction-to-conditional-random-fields/](英文的)

假设你有许多小明同学一天内不同时段的照片,从小明提裤子起床到脱裤子睡觉各个时间段都有(小明是照片控!)。现在的任务是对这些照片进行分类。比如有的照片是吃饭,那就给它打上吃饭的标签;有的照片是跑步时拍的,那就打上跑步的标签;有的照片是开会时拍的,那就打上开会的标签。问题来了,你准备怎么干?
一个简单直观的办法就是,不管这些照片之间的时间顺序,想办法训练出一个多元分类器。就是用一些打好标签的照片作为训练数据,训练出一个模型,直接根据照片的特征来分类。例如,如果照片是早上6:00拍的,且画面是黑暗的,那就给它打上睡觉的标签;如果照片上有车,那就给它打上开车的标签。
这样可行吗?
乍一看可以!但实际上,由于我们忽略了这些照片之间的时间顺序这一重要信息,我们的分类器会有缺陷的。举个例子,假如有一张小明闭着嘴的照片,怎么分类?显然难以直接判断,需要参考闭嘴之前的照片,如果之前的照片显示小明在吃饭,那这个闭嘴的照片很可能是小明在咀嚼食物准备下咽,可以给它打上吃饭的标签;如果之前的照片显示小明在唱歌,那这个闭嘴的照片很可能是小明唱歌瞬间的抓拍,可以给它打上唱歌的标签。
所以,为了让我们的分类器能够有更好的表现,在为一张照片分类时,我们必须将与它相邻的照片的标签信息考虑进来。这——就是条件随机场(CRF)大显身手的地方!

  1.1啥是词性标注问题?


非常简单的,就是给一个句子中的每个单词注明词性。比如这句话:“Bob drank coffee at Starbucks”,注明每个单词的词性后是这样的:“Bob (名词) drank(动词) coffee(名词) at(介词) Starbucks(名词)”。
下面,就用条件随机场来解决这个问题。
以上面的话为例,有5个单词,我们将:(名词,动词,名词,介词,名词)作为一个标注序列,称为l,可选的标注序列有很多种,比如l还可以是这样:(名词,动词,动词,介词,名词),我们要在这么多的可选标注序列中,挑选出一个最靠谱的作为我们对这句话的标注。
怎么判断一个标注序列靠谱不靠谱呢?
就我们上面展示的两个标注序列来说,第二个显然不如第一个靠谱,因为它把第二、第三个单词都标注成了动词,动词后面接动词,这在一个句子中通常是说不通的。
假如我们给每一个标注序列打分,打分越高代表这个标注序列越靠谱,我们至少可以说,凡是标注中出现了动词后面还是动词的标注序列,要给它负分!!
上面所说的动词后面还是动词就是一个特征函数,我们可以定义一个特征函数集合,用这个特征函数集合来为一个标注序列打分,并据此选出最靠谱的标注序列。也就是说,每一个特征函数都可以用来为一个标注序列评分,把集合中所有特征函数对同一个标注序列的评分综合起来,就是这个标注序列最终的评分值

1.2 机器学习中的生产模型与判别模型


有监督机器学习方法可以分为生成方法和判别方法:

1)生产式模型:直接对联合分布进行建模,如:混合高斯模型、隐马尔科夫模型、马尔科夫随机场等

2)判别式模型:对条件分布进行建模,如:条件随机场、支持向量机、逻辑回归等。

生成模型优缺点介绍:
优点:

1)生成给出的是联合分布,不仅能够由联合分布计算条件分布(反之则不行),还可以给出其他信息。如果一个输入样本的边缘分布很小的话,那么可以认为学习出的这个模型可能不太适合对这个样本进行分类,分类效果可能会不好

2)生成模型收敛速度比较快,即当样本数量较多时,生成模型能更快地收敛于真实模型。
3)生成模型能够应付存在隐变量的情况,比如混合高斯模型就是含有隐变量的生成方法。
缺点:
1)天下没有免费午餐,联合分布是能提供更多的信息,但也需要更多的样本和更多计算,尤其是为了更准确估计类别条件分布,需要增加样本的数目,而且类别条件概率的许多信息是我们做分类用不到,因而如果我们只需要做分类任务,就浪费了计算资源。
2)另外,实践中多数情况下判别模型效果更好。
判别模型优缺点介绍:
优点:
1)与生成模型缺点对应,首先是节省计算资源,另外,需要的样本数量也少于生成模型。
2)准确率往往较生成模型高。
3)由于直接学习,而不需要求解类别条件概率,所以允许我们对输入进行抽象(比如降维、构造等),从而能够简化学习问题。
缺点:
1)是没有生成模型的上述优点。

---------------------------------------------------------------------------------------------------------------------------------

二,基于自然语言处理理解

1 条件随机场(Condition Random Fields),简称CRFs


条件随机场概念:条件随机场就是对给定的输出标识序列Y和观察序列X,条件随机场通过定义条件概率P(X|Y),而不是联合概率分布P(X,Y)来描述模型。

概念解析:

标注一篇文章中的句子,即语句标注,使用标注方法BIO标注,B代表句子的开始,I代表句子中间,O代表句子结束。则观察序列X就是一个语料库(此处假设一篇文章,x代表文章中的每一句,X是x的集合),标识序列Y是BIO,即对应X序列的识别,从而可以根据条件概率P(标注|句子),推测出正确的句子标注,显然,这里针对的是序列状态,即CRF是用来标注或划分序列结构数据的概率化结构模型,其在自然语言处理和图像处理领域得到广泛的应用,CRF可以看作无向图模型或者马尔科夫随机场。

2 条件随机场的形式化表示


设G=(V,E)为一个无向图,V为结点的集合,E为无向边的集合,即V中的每个结点对应一个随机变量Yv,其取值范围为可能的标记集合{Y}.如果观察序列X为条件,每一个随机变量 都满足以下马尔科夫特性:,其中,w – v表示两个结点在图G中是邻近结点,那么,(X,Y)为条件随机变量。

以语句识别的案例理解条件随机场的形式化表示。

G=(V,E表示识别语句:【我爱中国】的标注是一个无向图,X我观察序列,Y为标注序列,V是每个标注状态的结点,E的无向边,边上的权值为概率值。表示每个X的Y的标注,如:X1:我,y1:O,y2:I,y3:B;取值范围,而中w—v表示我与爱是相邻的结点,这样的(X,Y)为一个条件随机场,真正的标注再采用Viterbi算法,如:

寻求最大概率即,记录下我的标注路径,同理可知:

如上便是对条件随机场与Viterbi算法的综合运用,其中Viterbi标注问题本质是隐马尔科夫模型三大问题之解码问题算法模型,具体参考(揭秘马尔科夫模型系列文章)

3 深度理解条件随机场


理论上标记序列描述一定条件的独立性,G图结构任意的,对序列进行建模可形成最简单,最普通的链式结构图,结点对应标记序列X中元素,CRF链式图如下:

如上图两种表示是一致的,其中图链式句子标注是图链式2的实例化,读者可能问为什么上面图是这种而不是广义的图,这是因为观察序列X的元素之间并不存在图结构,没有做独立性假设,这点也非常容易理解,诸如图中,我爱中国,其中b表示反射概率而t是转移概率,线上的数值表示权值即概率值。如图3,我的发射概率0.7,我到爱的转移概率0.5,通俗讲,我和爱两个字是有关联的,并非独立的。

4 公式化表示条件随机场


在给定的观察序列X时,某个待定标记序列Y的概率可以定义为

其中是转移概率,是状态函数,表示观察序列X其中i的位置的标记概率,分别是t和s的权重,需要从训练样本中估计出来。

实例解析

我爱中国,其中x2是爱字,表示在观察状态2中,我到爱的转移概率,其中j∈{B,I,O},可知的生成概率或者发射概率的特征函数.观察序列{0,1}二值特征b(x,i)来表示训练样本中某些分布特征,其中采用{0,1}二值特征即符合条件标为1,反之为0;

为了便于描述,可以将状态函数书写以下形式:


特征函数:

其中每个局部特征表示状态特征,或者专业函数,由此条件随机场的定义条件概率如下:

其中分母为归一化因子:

5 本节总结


条件随机场模型也需要解决三个基本问题:特征的选择,参数训练和解码。其中参数训练过程在训练数据集上基于对数似然函数最大化进行。

CRF优点:相对于HMM,CRF主要优点是它的条件随机性,只需要考虑当前出现的观察状态的特性,没有独立性严格要求,CRF具有MEMM一切优点。

CRF与MEMM区别:

MEMM:使用每一个状态的指数模型来计算给定前一个状态下当前状态的条件概率。

CRF:用单个指数模型计算给定观察序列与整个标记序列联合概率。

《统计自然语言处理》P128页有关于随机场模型的实现工具。

摘自【NLP】基于自然语言处理角度谈谈CRF(二) - 伏草惟存 - 博客园 (cnblogs.com)

------------------------------------------------------------------------------------------------------------------------------

三,基于机器学习理解 条件随机场(可以看作给定观察值的马尔科随机场)


CRF是一种判别式无向图模型

CRF试图对多个变量在给定观测值后的条件概率进行建模,具体来说,若令为观察序列,为与之对应的标记序列,则CRF的目标是构建条件概率模型P(Y|X)。

注意:标记变量y是结构型变量,如在自然语言处理的句子标注任务中,观测数据为句子,标记为相应的词性序列,具有线性序列结构,在语法分析中,输出标记是语法树,具有树形结构。


令G=<V,E>表示结点与标记变量y中元素一一对应的无向图,表示与结点v对应标记变量,n(v)表示结点v的领结点,若图G的每一个变量 都满足马尔科夫性,即

,则(y,x)构成一个CRF。

上面形式化在第二章已经通过实例解析介绍过。

2 链式条件随机场


如上面句子标注,因为现象应用中,对标记序列建模时,常有链式结构(具体链式结构前面有介绍

与马尔科夫随机场定义联合概率概率的方式类似,CRF使用势函数和图结构上的团来定义条件概率P(y|x)给定观察序列X,所谓团即单个标记变量{}以及相邻标记变量选择合适的势函数,即形如:

的条件概率定义,其中与Q对应的势函数,为规范因子,实际中,往往Z不需要获得精确值。

在CRF中,通过选用势函数并引入特征函数,条件概率定义如下:

如上参数在第二章有详细讲解。

特征函数

句子标注为例的转移特征函数

表示第i个观察值为“爱”时,相对的标记分别是B,I,其状态特征函数如下:

表示观察值x为单字“爱”时,它对应的标注很可能为I

3 参考文献


【1】 数学之美 吴军 著

【2】 机器学习  周志华 著

【3】 统计自然语言处理 宗成庆 著(第二版)

【4】 统计学习方法(191---208) 李航

【5】 知乎 网络资源

4 自然语言相关系列文章


【自然语言处理】:【NLP】揭秘马尔可夫模型神秘面纱系列文章

【自然语言处理】:【NLP】大数据之行,始于足下:谈谈语料库知多少

【自然语言处理】:【NLP】蓦然回首:谈谈学习模型的评估系列文章

【自然语言处理】:【NLP】快速了解什么是自然语言处理

【自然语言处理】:【NLP】自然语言处理在现实生活中运用

摘自【NLP】基于机器学习角度谈谈CRF(三) - 伏草惟存 - 博客园 (cnblogs.com)

学习笔记——条件随机场(基于自然语言和机器学习理解)相关推荐

  1. 《Go语言圣经》学习笔记 第九章 基于共享变量的并发

    <Go语言圣经>学习笔记 第九章 基于共享变量的并发 目录 竞争条件 sync.Mutex互斥锁 syn.RWMutex读写锁 内存同步 syn.Once初始化 竞争条件检测 示例:并发的 ...

  2. Magnolia学习笔记(一个基于JSR170的内容管理系统) ( by quqi99 )

                         Magnolia学习笔记(一个基于JSR170的内容管理系统) ( by quqi99 ) 作者:张华 发表于:2007-05-24  ( http://bl ...

  3. at24c16如何划分出多个读写区_AVR学习笔记九、基于AT24C16的数据存储实验

    Ema{@AVR 学习笔记九.基于 AT24C16 的数据存储实验 ------- 基于 LT_Mini_M16 9.1 用 I/O 口模拟 I2C 总线实现 AT24C16 的读写 9.1.1 .实 ...

  4. nrf52832 学习笔记(七)蓝牙协议层级理解

    nrf52832 学习笔记(七)蓝牙协议层级理解 本文主要由一下几篇文档摘录汇总而成 ,如有错误欢迎斧正 da14531 蓝牙协议文档 深入浅出低功耗蓝牙(BLE)协议栈 低功耗蓝牙ATT/GATT/ ...

  5. 学习笔记之——Python中类和对象的理解

    学习笔记之--Python中类和对象的理解 面向对象的含义和特性 类 Python中类的定义.结构.创建 Python类的定义 Python类的结构 类的创建 类的属性 类的方法 对象 对象的创建 参 ...

  6. 【论文精度】CodeBERT——基于自然语言和编程语言的预训练模型

    CodeBERT 论文地址:https://arxiv.org/abs/2002.08155 Abstract ​ 提出了一种用于编程语言(PL)和自然语言(NL)的双模态预训练模型CodeBERT, ...

  7. 安卓学习笔记42:基于HTTP网络编程

    文章目录 零.学习目标 一.安卓基于HTTP网络编程 (一)两种请求方式 (二)安卓基于HTTP网络编程的两种方式 1.使用HttpURLConnection访问网络资源 2.利用HttpClient ...

  8. 条件随机场 python_如何直观地理解条件随机场,并通过PyTorch简单地实现

    条件随机场是一种无向图模型,且相对于深度网络有非常多的优势,因此现在很多研究者结合条件随机场(CRF)与深度网络获得更鲁棒和可解释的模型.本文结合 PyTorch 从基本的概率定义到模型实现直观地介绍 ...

  9. Python3 爬虫学习笔记 C18【爬虫框架 pyspider — 深入理解】

    Python3 爬虫学习笔记第十八章 -- [爬虫框架 pyspider - 深入理解] 文章目录 [18.1]启动参数 [18.2]运行单个组件 [18.2.1]运行 Scheduler [18.2 ...

最新文章

  1. oracle rman catalogo,ORACLE 11g RMAN备份恢复--catalog
  2. java封装的特性,java的三大特性(封装、继承、多态)
  3. 计算机网络技术实验,计算机网络技术实验
  4. 论文摘要这么重要,你却不知道怎么写?
  5. VS2103没有“dirent.h”文件
  6. JavaSE基础笔记十二
  7. 手动标记用例状态_【自动化接口用例】从 1 到 1000 过程中的实践和思考
  8. Python 爬虫---(3)Urllib库使用介绍
  9. Ansible(一)工作架构和原理
  10. 7的整除特征 三位一截_茅台酒的合格证有哪些特征和鉴别要点?
  11. unity 导入gltf_基于gltf的GPU蒙皮动画(一)
  12. 2018-9-25 进入公司第一天
  13. 互联网三大巨头依靠什么武器对垒O2O?
  14. Angularjs之模块(angular.module('myApp', [])参数)
  15. 杀不死的人狼——我读《人月神话》(一)
  16. 8种方法突破iGuard网页防篡改软件保护
  17. 如何使用python做图_如何使用python做动图
  18. 框架与设计模式的区别
  19. 1267 老鼠的旅行 2012年CCC加拿大高中生信息学奥赛
  20. java基础之线程概述_繁星漫天_新浪博客

热门文章

  1. SSD性能优化之4K对齐
  2. vs C++ + MFC项目统一升级升级目标:使用C++20标准 使用最新windowsSDK 使用最新平台工具集(vs2019)
  3. win7 右键计算机无反映,鼠标右键没反应,教您电脑鼠标右键没反应怎么办
  4. 王兴:别太看轻自己,也别太看重他人
  5. word2007拆分表格小技巧
  6. JAVA实例讲解:股指期货交易系统的构建
  7. 计算机flash教案,认识Flash软件的教学设计
  8. 网线线序如何排列,586B与586A的区别
  9. 职场英语--邮件自动回复模板
  10. GET请求 POST提交区别