条件随机场CRF

条件随机场(conditional random field,简称 CRF),是一种鉴别式机率模型,是随机场的一种,常用于标注或分析序列资料,如自然语言文字或是生物序列。 更多见 iii.run

介绍

先上张著名的图 HMM vs CRF


89289-8p01mnj7au.png

从随机场到马尔科夫随机场

首先,我们来看看什么是随机场。

“随机场”的名字取的很玄乎,其实理解起来不难。

随机场是由若干个位置组成的整体,当给每一个位置中按照某种分布随机赋予一个值之后,其全体就叫做随机场。

还是举词性标注的例子:假如我们有一个十个词形成的句子需要做词性标注。这十个词每个词的词性可以在我们已知的词性集合(名词,动词...)中去选择。当我们为每个词选择完词性后,这就形成了一个随机场。

马尔科夫随机场是随机场的特例,它假设随机场中某一个位置的赋值仅仅与和它相邻的位置的赋值有关,和与其不相邻的位置的赋值无关。

从随机场到马尔科夫随机场

对于CRF,我们给出准确的数学语言描述:

设X与Y是随机变量,P(Y|X)是给定XY的条件概率分布,若随机变量Y构成的是一个马尔科夫随机场,则称条件概率分布P(Y|X)是条件随机场

理解了马尔科夫随机场,再理解CRF就容易了。CRF是马尔科夫随机场的特例,它假设马尔科夫随机场中只有XY两种变量,X一般是给定的,而Y一般是在给定X的条件下我们的输出。

这样马尔科夫随机场就特化成了条件随机场。在我们十个词的句子词性标注的例子中,X是词,Y是词性。因此,如果我们假设它是一个马尔科夫随机场,那么它也就是一个CRF。

从马尔科夫随机场到条件随机场

注意在CRF的定义中,我们并没有要求X和Y有相同的结构。而实现中,我们一般都假设X和Y有相同的结构,即:
X =(X_1,X_2,...X_n),\;\;Y=(Y_1,Y_2,...Y_n)

XY 有相同的结构的CRF就构成了线性链条件随机场(Linear chain Conditional Random Fields,以下简称 linear-CRF)。

linear-CRF的数学定义:

X =(X_1,X_2,...X_n),\;\;Y=(Y_1,Y_2,...Y_n)均为线性链表示的随机变量序列,在给定随机变量序列X的情况下,随机变量Y的条件概率分布P(Y|X)构成条件随机场,即满足马尔科夫性:

P(Y_i|X,Y_1,Y_2,...Y_n) = P(Y_i|X,Y_{i-1},Y_{i+1})

则称P(Y|X)为线性链条件随机场。

线性链条件随机场的参数化形式

对于上一节讲到的linear-CRF,我们如何将其转化为可以学习的机器学习模型呢?这是通过特征函数和其权重系数来定义的。什么是特征函数呢?

节点特征函数

在linear-CRF中,特征函数分为两类,第一类是定义在Y节点上的节点特征函数,这类特征函数只和当前节点有关,记为:

s_l(y_i, x,i),\;\; l =1,2,...L

其中L是定义在该节点的节点特征函数的总个数,i是当前节点在序列的位置。

局部特征函数

第二类是定义在Y上下文的局部特征函数,这类特征函数只和当前节点和上一个节点有关,记为:

t_k(y_{i-1},y_i, x,i),\;\; k =1,2,...K

其中K是定义在该节点的局部特征函数的总个数,i是当前节点在序列的位置。之所以只有上下文相关的局部特征函数,没有不相邻节点之间的特征函数,是因为我们的linear-CRF满足马尔科夫性。

论是节点特征函数还是局部特征函数,它们的取值只能是0或者1。即满足特征条件或者不满足特征条件。同时,我们可以为每个特征函数赋予一个权值,用以表达我们对这个特征函数的信任度。假设t_k的权重系数是λ_k,s_l的权重系数是μ_l,则linear-CRF由我们所有的t_k,λ_k,s_l,μ_l共同决定。

解释一下

举个例子,比如有这么一个句子


68518-7ntofv56k9.png

特征样例:

30157-zm62ptxjkqo.png

所以t_ks_k是这么来的

linear-CRF的参数化形式

P(y|x) = \frac{1}{Z(x)}exp\Big(\sum\limits_{i,k} \lambda_kt_k(y_{i-1},y_i, x,i) +\sum\limits_{i,l}\mu_ls_l(y_i, x,i)\Big)

其中,Z(x) 为规范化因子:
Z(x) =\sum\limits_{y} exp\Big(\sum\limits_{i,k} \lambda_kt_k(y_{i-1},y_i, x,i) +\sum\limits_{i,l}\mu_ls_l(y_i, x,i)\Big)

回到特征函数本身,每个特征函数定义了一个linear-CRF的规则,则其系数定义了这个规则的可信度。所有的规则和其可信度一起构成了我们的linear-CRF的最终的条件概率分布。

举例

假设输入的都是三个词的句子,即 X=(X_1,X_2,X_3)
输出的词性标记为Y=(Y_1,Y_2,Y_3), 其中 Y∈{1(名词),2(动词)}
t_1 =t_1(y_{i-1} = 1, y_i =2,x,i), i =2,3,\;\;\lambda_1=1
t_2 =t_2(y_1=1,y_2=1,x,2)\;\;\lambda_2=0.6
t_3 =t_3(y_2=2,y_3=1,x,3)\;\;\lambda_3=1
t_4 =t_4(y_1=2,y_2=1,x,2)\;\;\lambda_4=1
t_5 =t_5(y_2=2,y_3=2,x,3)\;\;\lambda_5=0.2
s_1 =s_1(y_1=1,x,1)\;\;\mu_1 =1
s_2 =s_2( y_i =2,x,i), i =1,2,\;\;\mu_2=0.5
s_3 =s_3( y_i =1,x,i), i =2,3,\;\;\mu_3=0.8
s_4 =s_4(y_3=2,x,3)\;\;\mu_4 =0.5

解释一下

  • t
    t_1 =t_1(y_{i-1} = 1, y_i =2,x,i), i =2,3,\;\;\lambda_1=1
    表示第2个或第3个观测值X_i为x时,对应的标注y1和y2分别为 名词和动词。
  • s
    s_2 =s_2( y_i =2,x,i), i =1,2,\;\;\mu_2=0.5
    表示第1个或第2个观测值X_i为x时,它对应的标注很可能为 动词,可能性为 0.5。
    求标记(1,2,2)的最可能的标记序列。

位置1初始化

  • 如果位置1是名词
    \delta_1(1) = \mu_1s_1 = 1
  • 如果位置1是动词
    \delta_1(2) = \mu_2s_2 = 0.5
    表示第一个位置,名词的概率为1,动词的概率为0.5。

注意,这里没有做 规范化处理,因为没啥必要,反正最后选最大的就行了。

这也符合我们的预期,一般动词做句首比较少。

\Psi_{1}(1) =\Psi_{1}(2) = start
因为这个问题是一个bp动态规划问题,所以我们需要一个参数来记住走过的路。

位置2

  • 如果位置2是名词
    \delta_2(1) = max\{\delta_1(1) + t_2\lambda_2+\mu_3s_3, \delta_1(2) + t_4\lambda_4+\mu_3s_3 \} = max\{1+0.6+0.8,0.5+1+0.8\} =2.4\;\;\;\Psi_{2}(1) =1

  • 如果位置2是动词
    \delta_2(2) = max\{\delta_1(1) + t_1\lambda_1+\mu_2s_2, \delta_1(2) + \mu_2s_2\} = max\{1+1+0.5,0.5+0.5\} =2.5\;\;\;\Psi_{2}(2) =1

位置2 的两种情况都是从位置1位名词的情况下转移过来的,

位置3

  • 如果位置3是动词
    \delta_3(1) = max\{\delta_2(1) +\mu_3s_3, \delta_2(2) + t_3\lambda_3+\mu_3s_3\} = max\{2.4+0.8,2.5+1+0.8\} =4.3

\Psi_{3}(1) =2

  • 如果位置3是名词

\delta_3(2) = max\{\delta_2(1) +t_1\lambda_1 + \mu_4s_4, \delta_2(2) + t_5\lambda_5+\mu_4s_4\} = max\{2.4+1+0.5,2.5+0.2+0.5\} =3.9

\Psi_{3}(2) =1

结果

最终得 y_3^* =\arg\;max\{\delta_3(1), \delta_3(2)\}, 然后倒退回去。
或者(1,2,1),即标注为(名词,动词,名词)

要注意的是,每个位置的概率竟然是加起来的,不是乘起来的,怪不得Tensorflow做了那么妖娆的优化,将时间复杂度降到了O(n)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343

推荐阅读更多精彩内容