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

 一、概述

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都作为上下文,在不同的状态之间转移会涉及到权重的信息。 

扫描二维码关注公众号,回复: 13724784 查看本文章

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问题。

猜你喜欢

转载自blog.csdn.net/m0_49380401/article/details/123515595