本小节具体学习如何进行structure learning的问题解决。
主要任务是标记句子中每一个词的词性,属于NLP的基本任务,可以用于文法分析或者是单词的感知。
Useful for subsequent syntactic parsing and word sense disambiguation, etc.
对于文字产生,首先会产生一个POS的顺序,这是基于语法的;然后对于POS顺序产生一个句子,得到最终的文章。
第一步,对于HMM,Markov Chain的图示如下,其选中的频率可以计算。
第二步,可以通过对于不同的词性的数据集合里面,得到对应的单词的概率,如下图所示:
因此对于整个HMM过程,可以计算出P(x,y)的概率,也就对应着同时出现了符合第一步语法规律和第二步词性选择的情况。如下图所示,x序列对应着词语的序列,y序列对应着语法的序列。也就是说,第一步找到P(y)的概率,这称为transition probability;第二步找到P(x|y)的概率,也就是emission probility。
对于训练样本,可以通过如下公式得到,可以看出这是一个连乘形式,而各个tag概率基本可以通过计数得到,出现的emission probility也可以通过计数得到。
而如何计算测试样本的情况,我们可以通过计算P(y|x)得到,并且可以证明只需要P(x,y)的概率较大,则可以认为y就是需要的输出情况。
一个较为直接的方法是通过穷举所有的y,得到最大的概率。但是由于可能形太多,难以凑效。可用的方法是通过Viterbi Algorithm,其复杂度可以降低。
HMM可以认为是structured learning的一种,包含了三个步骤,第一是evaluation,也就是如何定义P(x,y),第二个是Inference,如何确定y使得P(x,y)如何最大,第三个是Training,也就是如何进行模型训练,使得P(x,y)在训练数据中表现最好。
值得注意的是,对于HMM,无法保证输入一个错误的y,其概率P(x,y)小于理想的y。也就是说,HMM很依赖于概率表现,能够自动生成一些未出现的情况,因此其小样本情况的表现较好。
CRF的本质与HMM相同,其推导如下,首先可以将HMM公式进行对数化,关注最后一项,可以发现,该项可以转换为对应两项相乘:
采用该种表示方式后,可以发现实际对应的情况为两项相乘的形式,如下图所示。其中$\phi(x,y)$
为feature vector。
Feature vector包含了两种关系,一类是tag和word的关系,另外一类的tag和tag的关系。第一种如下图所示,包含了tag和word的对应关系,包含了所有的词性和所有词汇的pair。
第二类如下所示,定义 Ns,s′(x,y) N s , s ′ ( x , y ) 为词性(s,s’)在训练集(x,y)中连续出现的次数。
CRF的训练过程,首先找到 w∗ w ∗ ,可以符合训练数据的最大化。则需要观察到的数据较大,而让未找到的数据较小。可以使用Gradient Ascent。
最后的总结如下所示。
对于structured learning的SVM情况,同样包括下列三个关键问题,其中最后的training过程与CRF类似,前者减去了最大的错误y情况,而CRF采用了soft的traning方式。
对于structured SVM,需要特别考虑error function的情况。该函数用来衡量正确的y和错误y的误差,误差函数可以任意定义,但是需要考虑y_bar的求解难度。一个可以求解的error function,可以是正确和错误y序列的错误率。
最后上述方法总结如下:
2018-2-8