Gavin老师Transformer直播课感悟 - 信息提取CRF(Conditional Random Fields)解密系列之算法详解及实验分析

84 篇文章 16 订阅

 一、概述

CRF(Conditional Random Fields)作为信息提取框架在处理时能够确保全局最优是一个非常重要的特性。

下面是DIET的架构图,可以看到在Transformer之上使用了CRF。Transformer输出的dense vector会传给CRF内部的一个前馈神经网络,另外,在CRF内部存在一个transition matrix(转移状态矩阵)。在这个架构里CRF的作用是完成信息的提取。

CRF具有信息纠正的功能,结合Transformer和CRF的运用来说,就是用vector来表示每个token的内容,如x1,x2,…xn,这样就会产生信息的偏差,针对输入的sequence中的每个token都会有相应的label的概率,从一个label到下一个label也会有转移的概率,CRF提供的转移矩阵能够很好地捕获在label层面前后的依赖关系。

 二、信息提取CRF(Conditional Random Fields)解密系列之算法详解及实验分析

  1. CRF的数据模型定义解析

使用乘法来表达不同的元素构成一个序列(相当于划分了很多步骤),通过使用指数运算来把乘法变为加法,P()是基于输入的内容x来谈y所指向的标签,w是参数,公式分母部分表示了所有的label sequence的内容,包括每个label sequence本身及它内部的所有features的转移部分从yi-1到yi,以及x表示所有的observation,因为CRF把所有的observation都作为上下文,在不同的状态之间转移会涉及到权重的信息。 

CRF提供了这样一些优势的组合:用于sequence的segmentation和labeling的分类训练模型,可以把过去和未来的信息整合在一起,基于动态编程的有效的训练和解码,保证找到全局优化的参数评估。如果状态依赖是本地的,能够有效使用动态编程来调整所有本地分类器的参数并结合每个label的loss来最小化一个smooth loss function。

 2.  简化的CRF分析模型

假设X表示基于数据输入序列的随机变量,而Y表示基于对应label sequence的随机变量,X的范围可以是基于自然语言的语句来确定的,而Y的范围是由这些语句的POS tagging的处理结果来确定的,随机变量X和Y构成了联合的对应关系(一个token对应一个Y的具体内容),但是在一个判别式的框架中,基于结对的observation和label sequences来构建一个条件概率模型p(Y|X),而不去对边缘概率p(X)进行建模。

在下面的图中,把所有的输入X作为上下文,所有的labels依赖于输入的observation sequence X=X1,…,对于label Y2既可以和Y1联结,又可以和Y3联结,它们之间存在transition(在训练的角度来说,从Y1转移到Y2,Y2转移到Y3,…,转移矩阵本身都是一样的,只不过是不同的Y会导致使用里面不同的内容),这样的transition的概率不仅取决于当前的observation,而且可能的话也会依赖过去和未来的observation:

把G = (V, E) 表示为上面的图,Y通过顶点G进行索引,那么(X, Y)构成了一个conditional random field,当对X进行条件判断时,随机变量Y遵守关于这个图的Markov特性,CRF的所有的labels依赖所有的输入X。

CRF是一个基于observation X进行全局性条件判断的随机场。为了简化数学公式推演,这里假设G是固定的。

在下面的公式中,x表示一个data sequence,y表示一个label sequence,y|S是在y满足下列条件时的一个集合:

G=(V,E)表示一个图,S表示G的一个子图,而y与S的顶点(vertices)有关联

假设feature fk和gk是固定的,举例来说,如果给定单词Xi是大写,而Yi是“名词”,那么boolean类型的顶点feature gk可能是true。λk和µk可以认为是权重(是从训练数据中获得的),e是从转移矩阵的角度来考虑的,v是从本身节点的角度来考虑的,它们都会把x作为上下文。

 3.  the conditional probability of a label sequence y的表达方式

下面是label sequence y的条件概率计算公式,分母表示所有的情况,而分子表示具体label的情况,这里y0 = start ,yn+1 = stop:

 4.  Parameter Estimation for CRFs

使用log不会改变函数单调性,而且可以把除法变为减法。这里有两种算法来找到参数 vector θ来最大化训练数据的log-likelihood。

对于算法S,通过以下公式来定义slack feature,这里的S是一个常量,需要满足以下条件:

对于训练集中所有的y和observation vector x,s(x (i) , y) ≥ 0,从而使T(x, y) = S,feature s是全局的,即它不会对应任何特定的“边”或者“顶点”。S可以非常大,这是因为它跟训练时最长的observation sequence的长度相关。

 5.  forward and backward vectors与标准HMMs

在算法S中,对于每个index i= 0, . . . , n + 1 ,定义forward vectors αi(x):

Recurrence:

类似地,定义backward vectors βi(x):

Recurrence:

 6.  CRF Experiments分析

在实验中,CRF在绝大多数情况下都比HEMMs和HMMs强很多。下面是CRF相关论文中提到的实验结果,可以看到CRF的error比例比HEMM小很多:

CRF在非准确建模假设方面比HEMMs和HMMs更健壮,而且解决了label 的bias问题。

欢迎订阅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
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值