Gavin老师Transformer直播课感悟 – NLP信息提取中的CRF Modeling详解

一、概述

CRF的能力在于信息的依赖性和状态转移处理,它可以表达任意的状态转移和依赖关系。而信息表达能力不足则可以依靠Transformer来处理。在论文中的这幅图展示了各种模型之间是如何进行转换的,在使用CRFs时,Linear-chain CRFs会使用的更多一些:

Gavin老师Transformer直播课感悟 - NLP信息提取中的CRF Modeling详解

二、NLP信息提取中的CRF Modeling详解

  1. Applications of CRFs

CRFs已经广泛应用在各种不同的领域,包括文本处理,计算机视觉,生物信息等。linear-chain CRFs的应用包括NER,shallow parsing,查出文本中的语义角色,音调重音的预测,机器翻译中的单词分配,文本文档中表格信息的提取,中文分词等等。

  1. Linear-chain CRFs详解

为了促进Linear-chain CRFs的理解,考虑由一个HMM的联合概率p(y, x)产生的条件概率p(y|x),关键点在于条件概率事实上是一个具有对feature函数进行特定选择的CRF。HMM的联合概率可以表示如下:

Gavin老师Transformer直播课感悟 - NLP信息提取中的CRF Modeling详解

这里,θ = {θij , µoi}是这个概率分布的有实际值的参数,Z是一个正则化常量,概率之和等于1,θij = log p(y ‘ = i|y = j) ,µoi = log p(x = o|y = i).

每一个feature函数具有这样的形式:fk(yt , yt−1, xt),xt代表输入,yt表示当前的状态,依赖它前面的一个状态yt−1。为了复制,需要为每一个转移(i, j)定义一个feature:

Gavin老师Transformer直播课感悟 - NLP信息提取中的CRF Modeling详解

为每一个状态观察pair (i, o)定义一个feature:

Gavin老师Transformer直播课感悟 - NLP信息提取中的CRF Modeling详解

通常把一个feature函数标记为fk,范围包括所有的fij和所有的fio。这样就可以把HMM表示为:

Gavin老师Transformer直播课感悟 - NLP信息提取中的CRF Modeling详解

根据上面的公式推导出条件概率公式:

Gavin老师Transformer直播课感悟 - NLP信息提取中的CRF Modeling详解

上面条件概率分布表示的是一种特殊的Linear-chain CRF,它只包括当前单词的identity的feature,但是很多其它的linear-chain CRFs使用了关于输入的更丰富的features,当前单词的前缀和后缀,围绕它的单词的identity等。

假设Y,X是随机vectors,而具有实际值的一套feature函数表示为:

Gavin老师Transformer直播课感悟 - NLP信息提取中的CRF Modeling详解

那么Linear-chain CRF的概率分布可以表示如下:

Gavin老师Transformer直播课感悟 - NLP信息提取中的CRF Modeling详解

这里的正则化函数Z(x)表示如下:

Gavin老师Transformer直播课感悟 - NLP信息提取中的CRF Modeling详解

其它类型的Linear-chain CRF也是有用的,譬如在HMM中,从一个状态i到状态j的转移获得同样的分数,log p(yt = j|yt−1 = i),这与输入无关。在一个CRF中,可以允许转移(i, j)依赖于当前观察的vector,简单添加一个feature:1{yt=j}1{yt−1=1}1{xt=o},具有这种转移feature的CRF通常被用在文本应用中。

为了在Linear-chain CRF的定义中指出每个feature函数能够依赖任意时间点的观察,把fk的观察参数标记为vector xt,可以理解为包含了全局观察x的所有组件,例如CRF使用下一个单词xt+1作为一个feature,然后feature vector xt被假设包括 单词xt+1的indentity。

从Linear-chain CRF到General CRF的转换相当直接,我们简单地使用linear-chain factor graph转换到一个更加general的factor graph。

假设G是Y的一个factor graph,那么对于任何固定的x来说p(y|x)是一个CRF,根据G进行因数分解。在linear-chain的场景中,同样的weights经常被用作每个时间点的factors Ψt(yt , yt−1, xt),可以把G的factors划分为一个集合C = {C1, C2, . . . Cp },每个Cp是一个clique template,每个template包含一套factors,从而可以把CRF表示为:

Gavin老师Transformer直播课感悟 - NLP信息提取中的CRF Modeling详解

其中每个factor参数化之后表示为:

Gavin老师Transformer直播课感悟 - NLP信息提取中的CRF Modeling详解

关于clique template的使用,譬如在对图像进行建模时,可以基于不同的scale使用不同的clique template,这取决于找到兴趣点的算法的结果。

  1. General CRFs详解

General CRFs也被应用于NLP的几个任务,一个promising application会同时执行多个标注任务。例如,一个用于POS tagging和名词类词组分块的2级动态CRF的表现好于一次处理一个任务的情况。另外一个应用是多标签分类(譬如在对话过程中用户输入可以包含多个意图的情况),即一个instance可以有多个分类标签,而不是为每个类别训练一个单独的标签。有这样一种CRF,它可以通过学习类别之间的依赖关系来改善分类表现。

skip-chain CRF是一个在信息提取中表示长距离(long-distance)依赖性的一个general CRF,关于长距离依赖,举个例子,假设一个人说了很长的一段话,中间的一大段内容都无关紧要,而预测需要的关键信息是在这段话的开头部分体现出来的,那么如果要在这段话的结尾根据关键信息来进行预测,这时就需要使用长距离依赖了。

图形化的CRF结构可以被应用在名词指代问题处理中,即判断文档中有哪些指代,譬如文档中出现的Mr. President 和he都是指向同一个实体。论文也提到了使用全连接CRF来学习各种指代之间的距离度量来推理如何对应到图形分区。类似的模型也被应用在对手写字符进行分段。

在计算机视觉方面,也有人使用grid-shaped CRFs来标注和分割图片。在CRF的一些应用方面,即使图形化模型很难进行描述,依然存在有效的动态编程。

在定义一个General CRF需要考虑的最重要的点在于指定重复结构和参数系,很多推荐的形式是指定clique templates。例如动态CRF允许在每个时间点有多个分类,而不是单分类,这种方式类似于动态Bayesian网络。

欢迎订阅Rasa系列课程:

======================================================================

Rasa 3.x 源码高手之路:系统架构、内核算法、源码实现详解:
https://appz0c1mshy7438.h5.xiaoeknow.com/v1/auth?redirect_url=https%3A%2F%2Fappz0c1mshy7438.h5.xiaoeknow.com%2Fv1%2Fgoods%2Fgoods_detail%2Fp_62353091e4b0beaee43652c9%3Fentry%3D2%26entry_type%3D2001%26share_type%3D5%26share_user_id%3Du_621b7b85b8dc5_3yDAYnFXeM%26type%3D3

Rasa 3.x 源码高手之路:基于Transformer的对话机器人RasaPolice:
https://appz0c1mshy7438.h5.xiaoeknow.com/v1/auth?redirect_url=https%3A%2F%2Fappz0c1mshy7438.h5.xiaoeknow.com%2Fv1%2Fgoods%2Fgoods_detail%2Fp_62353421e4b04d7e2fd83665%3Fentry%3D2%26entry_type%3D2001%26share_type%3D5%26share_user_id%3Du_621b7b85b8dc5_3yDAYnFXeM%26type%3D3

星空NLP对话机器人论文班:NLP领域10篇最高质量的对话机器人经典论文解密:
https://appz0c1mshy7438.h5.xiaoeknow.com/v1/goods/goods_detail/p_623874b7e4b04e8d90256da1?type=3&share_type=5&share_user_id=u_621b7b85b8dc5_3yDAYnFXeM&entry=2&entry_type=2001

Rasa 3.X 智能对话机器人案例开发硬核实战高手之路 (7大项目Expert版本):
https://appz0c1mshy7438.h5.xiaoeknow.com/v1/goods/goods_detail/p_62276dd8e4b0beaee431c848?type=3&share_type=5&share_user_id=u_621b7b85b8dc5_3yDAYnFXeM&entry=2&entry_type=2001

Advanced Python硬核实力高手实战之路:架构、算法、源码、案例(81讲):
https://appz0c1mshy7438.h5.xiaoeknow.com/v1/goods/goods_detail/p_6227e564e4b0beaee431ce2a?type=3&share_type=5&share_user_id=u_621b7b85b8dc5_3yDAYnFXeM&entry=2&entry_type=2001

NLP on Transformers 高手之路137课Pro版:
https://appz0c1mshy7438.h5.xiaoeknow.com/v1/goods/goods_detail/p_621c0289e4b04d7e2fd0365a?type=3&share_type=5&share_user_id=u_621b7b85b8dc5_3yDAYnFXeM&entry=2&entry_type=2001

Original: https://blog.csdn.net/m0_49380401/article/details/123587324
Author: m0_49380401
Title: Gavin老师Transformer直播课感悟 – NLP信息提取中的CRF Modeling详解

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/548159/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球