背景

假设有Bob一天从早到晚的一系列照片,Bob想考考我们,要我们猜这一系列的每张照片对应的活动,比如: 工作的照片,吃饭的照片,唱歌的照片等等。一个比较直观的办法就是,我们找到Bob之前的日常生活的一系列照片,然后找Bob问清楚这些照片代表的活动标记,这样我们就可以用监督学习的方法来训练一个分类模型,比如逻辑回归,接着用模型去预测这一天的每张照片最可能的活动标记。

这种办法虽然是可行的,但是却忽略了一个重要的问题,就是这些照片之间的顺序其实是有很大的时间顺序关系的,而用上面的方法则会忽略这种关系。比如我们现在看到了一张Bob闭着嘴的照片,那么这张照片我们怎么标记Bob的活动呢?比较难去打标记。但是如果我们有Bob在这一张照片前一点点时间的照片的话,那么这张照片就好标记了。如果在时间序列上前一张的照片里Bob在吃饭,那么这张闭嘴的照片很有可能是在吃饭咀嚼。而如果在时间序列上前一张的照片里Bob在唱歌,那么这张闭嘴的照片很有可能是在唱歌。

为了让我们的分类器表现的更好,可以在标记数据的时候,可以考虑相邻数据的标记信息。这一点,是普通的分类器难以做到的。而这一块,也是CRF比较擅长的地方。

随机场

**随机场是由若干个位置组成的整体,当给每一个位置中按照某种分布随机赋予一个值之后,其全体就叫做随机场。**还是举词性标注的例子:假如有一个十个词形成的句子需要做词性标注。这十个词每个词的词性可以在已知的词性集合(名词,动词...)中去选择。当我们为每个词选择完词性后,这就形成了一个随机场。

马尔可夫随机场

**马尔科夫随机场是随机场的特例,它假设随机场中某一个位置的赋值仅仅与和它相邻的位置的赋值有关,和与其不相邻的位置的赋值无关。**继续举十个词的句子词性标注的例子: 如果我们假设所有词的词性只和它相邻的词的词性有关时,这个随机场就特化成一个马尔科夫随机场。比如第三个词的词性除了与自己本身的位置有关外,只与第二个词和第四个词的词性有关。

条件随机场

CRF是马尔科夫随机场的特例,它假设马尔科夫随机场中只有X和Y两种变量,X一般是给定的,而Y一般是在给定X的条件下的输出。这样马尔科夫随机场就特化成了条件随机场。在我们十个词的句子词性标注的例子中,X是词,Y是词性。因此,如果我们假设它是一个马尔科夫随机场,那么它也就是一个CRF。

对于CRF,给出准确的数学语言描述:设X与Y是随机变量,P(Y|X)是给定X时Y的条件概率分布,若随机变量Y构成的是一个马尔科夫随机场,则称条件概率分布P(Y|X)是条件随机场。

线性链条件随机场

假设X和Y有相同的结构,X和Y有相同的结构的CRF就构成了线性链条件随机场。

在十个词的句子的词性标记中,词有十个,词性也是十个,因此,如果假设它是一个马尔科夫随机场,那么它也就是一个linear-CRF。

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

特征函数
  • 节点特征函数:这类特征函数只和当前节点有关

    Sl(yi,x,i),l=1,2,3...,LS_l(y_i,x,i),l=1,2,3...,L

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

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

    tk(yi1,yi,x,i),k=1,2,3...Kt_k(y_{i-1},y_i,x,i),k=1,2,3...K

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

在这个随机场当中,有很多节点特征函数,每个节点还有自己的局部特征函数,每个节点的局部特征函数只和相邻节点有关。满足马尔可夫性。

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

权重系数

为每个特征函数赋予一个权值。

img
img