文章目录
- 一、Sequence Labeling 问题概述
- 二、Hidden Markov Model(HMM)
- 三、Conditional Random Field(CRF)
- 四、Structured Perceptron/SVM
- 五、Towards Deep Learning
一、Sequence Labeling 问题概述
二、Hidden Markov Model(HMM)
上图 training data 中的黑色字为x,即文字序列。红色字为 y ^ \hat y y^,即词性序列。
c o u n t ( s ) count(s) count(s)为训练数据中所有 s s s的个数。
c o u n t ( s → s ′ ) count(s \to s') count(s→s′)为训练数据中所有 s 后面接 s ′ s后面接s' s后面接s′的个数。
c o u n t ( s → t ) count(s \to t) count(s→t)为训练数据中所有word t t t的标签为 s s s的个数。
P ( y 1 ∣ s t a r t ) P(y_1|start) P(y1∣start)为标签 y 1 y_1 y1在句首出现的个数,除以句子总个数。
P ( e n d ∣ y L ) P(end|y_L) P(end∣yL)为标签 y L y_L yL在句尾出现的个数,除以 y L y_L yL总个数。
这里 N → V → a N \to V \to a N→V→a并没有在训练数据中出现过,但是计算的概率反而比训练数据中出现过一次的 N → D → a N \to D \to a N→D→a高。所以HMM会脑补一些没有出现过的数据。
HMM产生这种脑补的情况是因为转移概率和发射概率是相互独立的。解决这个问题的方法是用一个更复杂的模型去处理这个问题。用CRF也可以处理这个问题。
三、Conditional Random Field(CRF)
因为 exp ( w ⋅ ϕ ( x , y ) ) \exp (w \cdot \phi (x,y)) exp(w⋅ϕ(x,y))可能大于1,所以无法把它当成概率,只能说 P ( x , y ) P(x,y) P(x,y)正比于它。
因为 ∑ y ′ ∈ Y exp ( w ⋅ ϕ ( x , y ′ ) ) \sum_{y' \in \mathbb{Y}} \exp(w \cdot \phi(x,y')) ∑y′∈Yexp(w⋅ϕ(x,y′))由于和变量 y ′ y' y′没有关系,只和 x x x有关系,所以简记为 Z ( x ) Z(x) Z(x)。
红色的向量中的每一维都依赖于 ( x , y ) (x,y) (x,y),所以可以认为它是这个向量所形成的特征,记为 ϕ ( x , y ) \phi(x,y) ϕ(x,y)
由于w的元素可正可负,当为正数的时候,求EXP,就会大于1。并且例如,给定s,求和所有的t,我们也无法保证等于1。所以我们说 P ( x , y ) \text P(x,y) P(x,y)正比于 exp ( w ⋅ ϕ ( x , y ) ) \exp(w \cdot \phi (x,y)) exp(w⋅ϕ(x,y)),而不说等于。
Part 2 的维度大小:|S|个tag中的每个tag后面都能再接|S|个tag,所以是|S| × \times ×|S|。然后start后面能接|S|个tag,end前面能接|S|个tag,所以是2|S|。
CRF比HMM强的点在于,可以自己定义 ϕ ( x , y ) \phi(x,y) ϕ(x,y)
横轴表示HMM犯错的百分比,纵轴表示CRF犯错的百分比。如果点在 45 ° 45 \degree 45°对角线左侧,表示HMM表现比较好;在 45 ° 45 \degree 45°对角线右侧,表示CRF表现比较好。
四、Structured Perceptron/SVM
如果CRF中,另学习率为1,那么两者参数迭代的公式是相近的。其中Strucured Perceptron参数迭代公式中,减掉的最后一项 ϕ ( x n , y ~ n ) \phi (x^n, \widetilde y^n) ϕ(xn,y n)是其概率最大的一项。而CRF减掉的最后一项,则是所有 ϕ ( x n , y ′ ) \phi(x^n,y') ϕ(xn,y′)与其概率的加权之和。
五、Towards Deep Learning
可以将 P ( x l , y l ) \text P(x_l,y_l) P(xl,yl)用神经网络,例如RNN的输出进行替换。
因为用HMM做inference的时候是给定x,看哪一个y可以让这个概率最大。所以x是给定的,不管 P ( x l ) \text P(x_l) P(xl)是多少,都不会影响最后得到的y了。故,不用管 P ( x l ) \text P(x_l) P(xl)了。
也有如下应用:
上图中的x不再是input的,而是RNN的output。