NLP — 条件随机场CRF详解
CRF定义
这里定义只讲线性链随机场,针对自然语言处理领域的处理进行设计,因此这里只提线性链随机场定义:
线性链条件随机场)设X = (X_1,X_2,X_3,…,X_n),Y=(Y_1,Y_2,Y_3,…,Y_n)均为线性链表示的随机变量序列,若在给定随机变量序列的条件下,随机变量序列Y的条件概率分布就构成条件随机场,即满足马尔可夫性
P(Y_i|X,Y_1,Y_2,…,Y_{i-1},Y_{i+1},…,Y_n) = P(Y_i|X,Y_{i-1},Y_{i+1})
则称P(Y|X)为线性链条件随机场,在标注问题中,X表示输入观测序列,Y表示对应的输出标记序列或状态序列,这里大家一定要切记什么是概率图模型,什么是无向图和团,上面的定义就是针对二元组,如下图:
上面团就是\mathbf{X},Y_1,Y_2,其他的Y不是这个团里的,那么对应的条件概率(这里以Y_2为例求解) 那么应该写成如下:
P(Y_2|X,Y_1,Y_2,Y_3,..,Y_n) = P(Y_2|X,Y_{1},Y_{3})
也就是说决定Y_2的概率取决于输入的序列\mathbf{X}以及和他相连的两个输出Y_1,Y_3,,这正是体现了概率图模型里面的思想(符合语言的规律即联系上下文语意),不和其直接相连的可以看做条件独立,这就解释了下面为什么可以直接相乘,指数相加了,所以这里大家需要好好理解这里的深层含义,不要放过任何细节问题。下面我们给出参数化定义,上面的定义是我们语言模型最原始的出发点即知道输入的语音我如何求出对应的概率,这里需要数学模型来建立他们的关系,如下(这里大家看看上一节的什么是势函数,或者看李航的书):
这里把上一节的重要公式拿过来:
最大团C上的函数\varphi _C(Y_C)的乘积形式
概率无向图模型的联合概率分布P(Y)的可以表示为如下形式:
定理 (线性链条件随机炀的参数化形式)设P(Y|X)为线性链条件随机场,则在随机变量X取值为x的条件下,随机变量Y取值为y的条件概率具有如下形式:
上面的定义其实就是根据势函数和概率无向图模型进行定义的,那么这些参数都代表什么意思呢?
大家这里可以把\lambda _k、\mu _l看做权值,t_k(\bullet )、s_l(\bullet )看做特征函数,和我们最大熵模型里将的特征函数很类似可以说是一样了,即满足为1,反之为0,下面使用李航的书进行解释:
上式是线性链条件随机场模型的基本形式,表示给定输入序列x,对输出序列,预测的条件概率,t_k是定义在边上的特征函数,称为转移特征,依赖于当前和前一个位置,s_l是定义在结点上的特征函数,称为状态特征,依赖于当前位置,t_k和s_l都依赖于位置,是局部特征函数,通常,特征函数和取值为1或0:当满足特征条件时取值为1,否则为0.条件随机场完全由特征函数t_k和s_l对应的\lambda _k、\mu _l权值,确定.
我们知道了上面的t_k和s_l分别代表什么了,而对于当前的位置状态只依赖于前一个状态,那可不可以扩展其他的依赖状态呢?例如依赖前两个的位置状态,答案是可行的,只是这里我们需要符合无向图最大团的定义,即任意两个都应该联通,如下图所示:
此时我们的t_k就可以写成这样了:t_k(y_{i-2},y_{i-1},y_i,x,i),这样大家应该可以理解条件随机场的工作方式的了,那么我们继续来看看上式的定义和上图,我们发现如果这样做的话会有哪些问题呢?首先特征函数如何定义呢?这里的定义是根据特征模板生成的,可以是一个子、一个词,或者一个短语等,这些特征不是人为划分而是通过计算机自动划分,这样做确实节省了人力,但是带来的问题是,无效特征也会急剧增加,例如“我爱中国”,这里面的特征可能包含‘我爱’,‘爱中’,‘中国’,其中‘爱中’就是无效特征,这样的词会很多,因此计算量就会很大,如何解这个问题,我们引入了权值即\lambda _k、\mu _l,通过权值我们就可以计算有效特征和无效特征的权值,这样权值会使的有效特征的权值很大,无效特征的权值几乎为0,这就是引入权值的目的,但是计算量大怎么解决呢?这一点我们在后面的学习算法中在仔细的讲,现在我们看看上式,我们发现他有两个特征函数两个权值,这样处理不是很方便,能不能把他们合二为一呢?答案是可以的,下面我们就详细的看看怎么做。
条件随机场的简化形式
条件随机场还可以由简化形式表示.注意到条件随机场式中同一特征在各个位置都有定义,可以对同一个特征在各个位置求和,将局部特征函数转化为一个全局特征函数,这样就可以将条件随机场写成权值向量和特征向量的内积形式,即条件随机场的简化形式,
为简便起见,首先将转移特征和状态特征及其权值用统一的符号表示.设有k_1个转移特征,k_2个状态特征,k=k_1+k_2,记
我们来解释一下为什么是可以合二为一,因为位置特征和状态特征的不同之处是位置只和当前位置有关和其他无关,而转移状态不仅和当前状态有关还和前一个状态有关,那么如果位置特征和加上前一个位置的特征,这里我们让前一个位置特征的权值为0就可以了,因此可以综合在一起,这里大家应该可以理解的,下面我们继续往下看:
对转移和位置状态对i进行求和:
这边就是一些关于NER的一些基本内容。希望对大家有帮助!