李宏毅机器学习——序列标记问题

引言

今天我们要来学习另一个结构化学习问题——序列标记问题(Sequence Labeling Problem)。

序列标记

在这里插入图片描述
序列标记问题是,我们要找的函数它的输入和输出都是序列。我们先假设这两个序列的长度时一样的。

在这里插入图片描述
我们的输入和输出可写成向量的形式。这个可以用RNN来解,但是我们今天介绍一个和RNN不同的方法。

我们以词性标记(POS Tagging)作为例子讲解。词性标记任务就是要标记句子中每个词汇的词性。
在这里插入图片描述
词性有很多类别,光名词(Nouns)下面就可以分为专有名词(Proper)和一般名词(Common)。我们要做的是输入一个句子,系统自动标记每个单词的词性:
在这里插入图片描述
比如John是专有名词,第一个saw是动词,最后那个saw是名词等等。

词性标记其实是自然语言处理的基石。

那这个问题也许不是很难,我们可以找到一个词典,它可以告诉我们每个单词的词性是什么。但是问题是我们还要考虑上下文,也就是我们要知道整个句子的信息。
比如上面的saw可以是动词也可以是名词,虽然它在大多数情况下都是动词。

但是我们知道冠词the后面比较有可能接名词(这需要英文语法知识啊),这样the后面的saw应该是名词而不是动词。

今天要介绍的技术如下:
在这里插入图片描述

HMM

隐马尔可夫模型(Hidden Markov Model,HMM)假设我们人类生成一个句子的时候,有以下两个步骤:
在这里插入图片描述
我们要说一句话的时候,先在心里形成一个词性序列。它是根据你大脑内建的语法所产生的。

在这里插入图片描述
接下来就是根据词性去找一个符合这些词性词汇。相当于动词(V)的位置你就找个动词填上去;名词(N)的位置你就找个名词填上去。就把POS的序列变成单词序列。最后再把这个单词序列说出来。

步骤一

第一个步骤是根据我们脑中所有的语法建立一个POS序列,HMM假设你脑中的语法是一个马尔可夫链(Markov Chain)。
在这里插入图片描述
假设你要说一句话的时候,有50%的概率是一个冠词;有40%的概率是一个专有名词;有10%的概率是一个动词。

在这里插入图片描述

然后根据概率随机生成一个,假设随机到了专有名词,然后就看下个词汇的词性是什么。有10%的概率专有名词后面接冠词;有80%的概率后面是动词;还有10%的概率是整个句子就结束了。

在这里插入图片描述
再随机生成一个词性,假设下一个词性是动词,然后再继续下去。动词后面有可能就结束了;有可能再讲一个专有名词;也有可能是一个冠词;

在这里插入图片描述
以此类推,假设动词后面接一个冠词(Det);冠词后面接一个名词;名词后面就结束了。

这就是一个马尔可夫链。这样你可以可以算出产生下面词性句子的概率:
在这里插入图片描述

步骤二

产生了词性序列,接下来就进入了步骤二。步骤二要做的事情是根据某个词典,给定一个词性,我们看该词性应该要填入哪个词汇。

在这里插入图片描述
当我们要选专有名词的时候,就从专有名词的集合中去生成一个词汇出来。

在这里插入图片描述
因为这里有5个词汇,生成词汇John的概率就是20%。

在这里插入图片描述
从动词集合汇总生成saw的概率是17%,从冠词中取出the的概率是63%,从名词中取出saw的概率是17%。

在这里插入图片描述

所以给定一个POS序列,今天说出来的句子是"John saw the saw"的概率就是它们对应的概率之积。
在这里插入图片描述

根据HMM,它做的事情就是,它可以描述说一句话,刚好这句话是"John saw the saw"的概率。
在这里插入图片描述
P ( y ) P(y) P(y)的概率就是产生 y y y这个词性序列的概率,这里是:PN放到句首的概率乘以PN后面接动词,乘以动词后面接冠词,再乘以冠词后面接名词的概率。
在这里插入图片描述

P ( x ∣ y ) P(x|y) P(xy)是给定词性序列 y y y的情况下,产生句子 x x x的概率,这里是PN产生John的概率,乘以V产生saw的概率,乘以D产生the的概率,乘以N产生saw的概率。

在这里插入图片描述

HMM就是描述我们怎么说出一句话来的。更加一般化的描述就是:
在这里插入图片描述
P ( y ) P(y) P(y)它是 y 1 y_1 y1放到句首的概率,乘上 y l y_l yl后面接 y l + 1 y_{l+1} yl+1的概率,最后乘上 y L y_L yL放到句尾的概率。这个概率通常叫转移概率(Transition probability)。

那在第二步呢,我们会计算 P ( x ∣ y ) P(x|y) P(xy)
在这里插入图片描述

是整个序列上,给定 y l y_l yl产生 x l x_l xl的概率,然后再连乘起来。这个概率通常叫输出概率(Emission probability)。

现在的问题是我们要怎么算出这些概率呢?

计算概率

在这里插入图片描述
我们要怎么算PN后面接动词的概率呢,以及怎么算给定一个动词,生成saw的概率呢,这个可以从训练数据中得到。
在这里插入图片描述
我们收集一大堆的句子。在这些句子中的每个词汇,我们都找语言专家帮我们标记了词性。完了之后这个问题就很容易解决了。
在这里插入图片描述

假如你要计算给定 P ( y l + 1 ∣ y l ) P(y_{l+1}|y_l) P(yl+1yl)的概率。

在这里插入图片描述
假设要算 y l = s y_l=s yl=s,下一个词性是 s ′ s^\prime s的概率,只要计算在训练数据中 s s s出现的次数,再算一下 s s s这个词性后面接 s ′ s^\prime s的次数。然后相除就可以了。
在这里插入图片描述
如果你要算给定某个词性 s s s,产生的词汇是 t t t的概率的话,也是先计算整个训练数据中 s s s出现的次数,以及统计一下词汇 t t t它的词性标记为 s s s的次数。然后也是相除就可以了。

在这里插入图片描述
要计算上面绿线标出的式子也很简单,只要计算 y 1 y_1 y1这个词性在句首出现的次数,和 y L y_L yL在句尾出现的次数。它们都除掉句子的数量,就可以得到它们的概率。

我们统计出这些概率后,接下来要做什么呢。

如何做词性标记

我们回到原来的问题,给一个句子 x x x,我们要寻找 y y y
在这里插入图片描述
这个 x x x是已知的,而 y y y是未知的。这就是为什么这个东西叫隐马尔科夫模型的原因。

怎么找出 y y y呢,还是要靠我们算出 P ( x , y ) P(x,y) P(x,y)

如果我们知道了 x x x,那么使得 P ( y ∣ x ) P(y|x) P(yx)最大的 y y y就是最有可能的 y y y
在这里插入图片描述
因为 x x x是给定的,固定不变的。所以分母就可以去掉:
在这里插入图片描述
我们只要穷举所有的 y y y,就可以知道哪个 y y y的概率最大。

维特比算法(Veterbi Algorithm)

所以我们现在要做的事情就是只要穷举所有的 y y y,算出它们的概率,找到最大概率的 y y y
在这里插入图片描述
是不是感觉穷举这件事情不好做。
在这里插入图片描述
假设现在有 S S S个词性,而序列的长度(一个词汇代表一个长度)是 L L L。那么 y y y的数量是不是就是 ∣ S ∣ L |S|^L SL这么多个呢
在这里插入图片描述
好在我们有维特比算法,可以把它想成一个函数,你告诉它 P ( x , y ) P(x,y) P(x,y)怎么算,它就会告诉你哪个 y y y可以让 P ( x , y ) P(x,y) P(x,y)最大。
它的复杂度只有 O ( L ∣ S ∣ 2 ) O(L|S|^2) O(LS2)

HMM总结

HMM也是结构化学习的一种方法,我们说结构化学习方法要解决三个问题。

在这里插入图片描述

HMM如何回答这三个问题呢,第一个问题是,它的Evaluation就是 F ( x , y ) F(x,y) F(x,y)
在这里插入图片描述
然后我们要解的Inference问题是哪个 y y y可以让我们的 F ( x , y ) F(x,y) F(x,y)最大:
在这里插入图片描述
第三个问题的答案是 P ( y ) P(y) P(y) P ( x ∣ y ) P(x|y) P(xy)可以从训练数据中统计获得
在这里插入图片描述

缺点

在这里插入图片描述
我们在求解的时候是让 P ( x , y ) P(x,y) P(x,y)最大的 y y y当做我们的输出。如果我们想让HMM得到一个正确结果的话,我们会希望正确结果的 P ( x , y ^ ) P(x,\hat y) P(x,y^)要大于 P ( x , y ) P(x,y) P(x,y)

在这里插入图片描述
但是HMM可能无法做到这件事情,在整个训练里面,它并没有保证让一个错误的 y y y带进去使得 P ( x , y ) P(x,y) P(x,y)的概率一定是小的。

我们以一个例子来解释下,假设我们统计出来说,N后面接V的概率是90%,N后面接D的概率是10%。
在这里插入图片描述
然后给定V看到词汇a的概率是50%,给定D看到词汇a的概率是100%。
(下面这个图增加了V看到词汇c的概率也是50%)
在这里插入图片描述
今天假设我们有一个问题,我们已经知道在 l − 1 l-1 l1这个时间点我们的词性是N,在 l l l这个时间点看到的词汇是a,那么 y l y_l yl的词性最有可能是什么呢?

我们可以用概率来计算一下。
在这里插入图片描述
如果是V的话,N产生V的概率是0.9,V产生a的概率是0.5。一起就是0.45;
如果是D的话,N产生D的概率是0.1,D产生a的概率是1。一起就是0.1;
显然V的概率更大。

但是如果我们观察一下训练数据,假设是这样的:
在这里插入图片描述
N后面接V,V产生c出现9次;P后面接V产生a出现9次;P后面接D产生a出现1次。

这样可以统计出N后可以接V或接D;并且接V的概率是0.9;接D的概率是0.1;

V产生a和c的概率都是0.5;

根据训练数据得到的概率会告诉我们说这里会得到V,有没有觉得不太对啊。

因为我们训练数据中有N后面接D,然后D产生a这份数据。
如果我们的测试数据里面说前面是N,产生的是a,中间你去填V。而训练数据中明明就有一笔一模一样的数据。

在这里插入图片描述
这样不是不对吗,这里你的训练数据告诉你应该是D了,但是对HMM来说,它会给一些在训练数据中从来没有出现过的序列很高的概率。
在这里插入图片描述
如果我们按照HMM的算法,它会觉得N后面接V,V产生a的概率很高。所以HMM有个特色是它会脑补它没有看过的东西。

这个就是HMM的一个问题。
在这里插入图片描述
但是其实这件事情也有好的一面,当你的训练数据很少的时候,也许实际上这笔数据的概率也很高,只是你没有观察到。所以HMM在训练数据少的时候,它的表现反而比其他方法还要好。

HMM为什么会产生这种脑补的现象,因为对它来说,输出概率和转移概率是分开建模的。它会假设这两个概率是独立的。

用更加复杂的模型能解决这个问题,但是容易做的很复杂。

其实CRF就可以用基于和HMM一样的模型来处理这个问题。

条件随机场

条件随机场(conditional random field,CRF)一样也要描述 P ( x , y ) P(x,y) P(x,y),它描述的方法看起来有点奇怪。
在这里插入图片描述
它说 P ( x , y ) P(x,y) P(x,y)的概率正比于权重 w w w ϕ ( x , y ) \phi(x,y) ϕ(x,y)点积,它们的点积结果作为 e e e的幂。
在这里插入图片描述

  • ϕ ( x , y ) \phi(x,y) ϕ(x,y)是一个特征向量;
  • w w w是从训练数据中学到的权重
  • e x p ( w ⋅ ϕ ( x , y ) ) exp(w \cdot \phi(x,y)) exp(wϕ(x,y))一定是正的,并且可以大于1

所以不能说 e x p ( w ⋅ ϕ ( x , y ) ) exp(w \cdot \phi(x,y)) exp(wϕ(x,y))这个东西是一个概率,只能说它是和概率成正相关的。

其实CRF不关心 P ( x , y ) P(x,y) P(x,y)是什么,它真正关心的是 P ( y ∣ x ) P(y|x) P(yx)
在这里插入图片描述
P ( y ∣ x ) P(y|x) P(yx)可以写成 P ( x , y ) P(x,y) P(x,y)除掉所有可能的 y ′ y^\prime y P ( x , y ′ ) P(x,y^\prime) P(x,y)之和。
在这里插入图片描述
我们知道 P ( x , y ) P(x,y) P(x,y)是和 e x p exp exp这一项成正比的,我们可以说是这一项除以 R R R
把上面这个 P ( x , y ) P(x,y) P(x,y)的式子代入到 P ( y ∣ x ) P(y|x) P(yx)的式子,可以消掉 R R R,就得到:
在这里插入图片描述
这里我们把下面这项用 Z ( x ) Z(x) Z(x)表示:
在这里插入图片描述
它是对所有可能的 y ′ ∈ Y y\prime \in Y yY的一个求和,所以是和 y y y是无关的。
在这里插入图片描述
可能感觉CRF和HMM是完全不一样的东西,其实它们的模型是一样的。
它们只是在训练上面是不一样的。

为什么说它们的模型是一样的呢?
在这里插入图片描述
在HMM里面, P ( x , y ) P(x,y) P(x,y)是一大堆的概率相乘。
我们把它取 l o g log log,原来的相乘就会变成了相加:
在这里插入图片描述
然后我们先来看看相加里面的红框框出来的这项:
在这里插入图片描述
这一项应该是 L L L l o g P ( x l ∣ y l ) log P(x_l|y_l) logP(xlyl)的和,我们把这一项做一下整理,写成:
在这里插入图片描述
这里的 s s s表示词性, t t t表示词汇。如果你有10个词性,有10000个词汇的话,就是对 10 × 10000 10 \times 10000 10×10000项进行求和。

N s , t ( x , y ) N_{s,t}(x,y) Ns,t(x,y)是这个词汇 t t t它被标记成 s s s这件事情,在 x , y x,y x,y里面总共出现的次数。 P ( t ∣ s ) P(t|s) P(ts)是给定词性 s s s是词汇 t t t的概率。

为什么可以做这个转换呢,我们来举一个例子。
在这里插入图片描述
现在有一个句子 x x x,每个词汇都有标记它的词性。
我们接下来做一些计算:
在这里插入图片描述
比如the(不考虑大小写)这个词汇被标记成冠词的次数,在这个句子中出现了2次;
N s , t ( x , y ) N_{s,t}(x,y) Ns,t(x,y)说的是其他的词汇被标记成其他的词性的次数是0次;
在这里插入图片描述
接下来来计算一下所有概率的相乘,取 l o g log log就成了相加。D产生the的概率,加上N产生dog的概率,加上V产生ate的概率…

我们可以看到D产生the的概率出现过两次,我们就可以把它整理一下,后面乘以2:
在这里插入图片描述
最终整理后就可以写成:
在这里插入图片描述
就是所有词性产生词汇的概率(取 l o g log log)乘以它们在句子里面出现的次数之和。

对其他项我们也可以做几乎一样的转换,比如下面框出来的:
在这里插入图片描述
把它们都写成两项相乘后,我们会发现 l o g P ( x , y ) logP(x,y) logP(x,y)可以写成一大堆两项的相乘:
在这里插入图片描述
然后我们可以把它们描述从两个向量的内积:
在这里插入图片描述
所以我们可以用 w w w来代表紫色的向量,用 ϕ ( x , y ) \phi(x,y) ϕ(x,y)来代表红色的向量,这个红色的向量是与 x , y x,y x,y有关的,可以说是由 x , y x,y x,y所形成的特征。

所以我们说 P ( x , y ) P(x,y) P(x,y)可以写成这样:
在这里插入图片描述

有个要注意的地方是,紫色向量中的元素 可 以 与 H M M 中 的 概 率 对 应 , 比 如 可以与HMM中的概率对应,比如 HMMW_{s,t}对应到HMM中的 l o g P ( x i = t ∣ y i = s ) logP(x_i=t|y_i=s) logP(xi=tyi=s)
在这里插入图片描述
因为它们对应到HMM中的概率再取 l o g log log,如果你想把它们转换成概率的话,就要取Exponential(e为底的指数函数)。
在这里插入图片描述
把这些权重取Exponential就可以转换为概率,但是有个问题是,我们在做训练的时候,这里的权重是可正可负的。如果取Exponential后得到的值大于1,就无法解释为概率了。

因此这里不用等于符号,而用正相关符号:
在这里插入图片描述

特征向量

特征向量 ϕ ( x , y ) \phi(x,y) ϕ(x,y)是怎样的呢

在这里插入图片描述
ϕ ( x , y ) \phi(x,y) ϕ(x,y)包含两个部分,第一个部分是有关词性和词汇的关系;第二个部分是词性之间的关系。

上面黑色箭头指的是第一个部分。
在这里插入图片描述
假设有 S S S个词性,有 L L L个可能的词汇,第一部分的特征向量的维度就是 S × L S \times L S×L。如果有10种可能的词性,有10000个词汇的话,那么它的维度就是100000维。

这个特征向量里面就是所有的词性与所有的词汇的配对。如果The被标记为D,出现2次的话,那么这个维度对应的值就是2。没有出现过的就标记为0。

这个向量是非常稀疏的,它的维度非常大,但是有值的不多。

在这里插入图片描述
第二个部分是关于词性之间的关系。怎么做呢,其实就是标记了词性 s s s s ′ s^\prime s ( x , y ) (x,y) (x,y)里面连续出现的次数。
在这里插入图片描述
所以 N D , D ( x , y ) N_{D,D}(x,y) ND,D(x,y)就是说 D D D后面接 D D D出现的次数,这个例子中是0。
在这里插入图片描述
D D D后面接 N N N出现过两次。
那这个向量的维度是多少呢,假设总共有 S S S个可能的词性
在这里插入图片描述
那么这个向量的维度就是 S × S + 2 S S \times S + 2 S S×S+2S

因为对于所有的词性对都要有一个维度,然后每个词性与Start产生的对也是一个维度,跟End也会产生一个维度。因此最终就得到了上面的式子。

CRM和HMM想要建模的东西是一样的,但是因为CRF把它的概率描述成一个权重与特征向量的内积,所以CRF比HMM更厉害一点的在于,我们可以自定义这个特征向量。

训练准则

在这里插入图片描述
首先我们要收集训练数据。接下来要找一个向量 w ∗ w^* w,它要去最大化目标函数 O ( w ) O(w) O(w)
在这里插入图片描述
要找一个 w w w,最大化给定 x n x^n xn产生正确的序列 y ^ n \hat y^n y^n的概率。

这一项可以转换:
在这里插入图片描述

其实就是对下面的式子取 l o g log log,然后除变成了减:
在这里插入图片描述
当我们最大化这个等式时在这里插入图片描述
第一项告诉我们的是,当我们最大化这个等式时,我们会最大化我们在训练数据中看到的 x n , y ^ n x^n,\hat y^n xn,y^n对(pair)的概率。

在这里插入图片描述
同时我们要最小化没有看到的对的概率。如果做呢,这里要最大化一个目标函数,所以可以用梯度上升法。

梯度上升法

在这里插入图片描述
在梯度下降时,我们要最小化损失函数 C C C,然后通过上面的式子来更新 θ \theta θ

在这里插入图片描述
而梯度上升做的事情也很像,我们有一个目标函数要最大化,我们在每个迭代计算下 O O O的梯度,然后把这个梯度加给要优化的参数就好了。

训练

在这里插入图片描述
这是我们要优化的函数。我们要去计算 O n ( w ) O^n(w) On(w)对权重的梯度。
在这里插入图片描述
我们的 w w w有很多,有的 w w w是对应到词汇和词性的对(pair),有的是对应词性和词性的对。

计算过程这里就不展示了,经过计算后,得出:
在这里插入图片描述
第一项是 s , t s,t s,t的pair出现的次数,第二项是对所有可能的 单词 t t t被标记成 s s s的pair在 x n x^n xn跟任意一个 y ′ y^\prime y中出现的次数 乘以 给定 x n x^n xn产生这个 y ′ y^\prime y的概率。

在这里插入图片描述
我们来看下这个式子的含义,第一项说 s s s t t t这一对在 x n , y ^ n x^n,\hat y^n xn,y^n这个正确pair里面出现的次数。如果 s , t s,t s,t在正确的 x n , y ^ n x^n,\hat y^n xn,y^n出现的次数越多,那么它对应的权重就会越大。
在这里插入图片描述
第二项告诉我们说,因为是减去任意一个 x n , y ′ x^n,y^\prime xn,y的里面 s , t s,t s,t出现的次数。如果 s , t s,t s,t在任意一个pair里面出现的次数很多的话,并且没有在训练数据中出现,那么我们就要把权重减少。

在这里插入图片描述
我们可以采用随机梯度上升的方法,每次随机选取一笔数据。

推断

在这里插入图片描述
我们现在要做的事情是,给定一个 x x x,找一个 y y y P ( y ∣ x ) P(y|x) P(yx)最大等同于是找个 y y y P ( x , y ) P(x,y) P(x,y)最大。

在CRF里面,我们知道:
在这里插入图片描述
因为 e x p exp exp是一个单调递增的函数,所以找 P ( x , y ) P(x,y) P(x,y)最大的 y y y,等同于是找让 w ⋅ ϕ ( x , y ) w \cdot \phi(x,y) wϕ(x,y)最大的 y y y,就可以做一下替换:
在这里插入图片描述
这一项其实也可以用维特比算法来计算。

CRF与HMM

在这里插入图片描述
CRF不仅会增加 P ( x , y ^ ) P(x,\hat y) P(x,y^),它还会减少任意一个 y ′ y^\prime y x x x所形成的 P ( x , y ^ ′ ) P(x,\hat y^\prime) P(x,y^)的概率,而HMM没有做这件事情。如果我们要得到正确的答案,我们会希望 P ( x , y ^ ) P(x,\hat y) P(x,y^)的概率大于 P ( x , y ) P(x,y) P(x,y),而CRF会减少其他 y y y的概率。

所以与HMM比起来,CRF更有可能得到正确的结果。

举例来说。
在这里插入图片描述
我们前文说过,根据统计的结果,HMM给我们的答案是V。

如果是CRF的话,它会调这些概率,让正确的 x , y x,y x,y对的分数比较大。

在这里插入图片描述
比如把 P ( a ∣ V ) P(a|V) P(aV)的概率由0.5调低为0.1。类似这样,最终CRF推断N后面接D。

CRF总结

CRF也是结构化方法,它也解决了三个问题。

在这里插入图片描述

结构化感知机/SVM

接下来看下我们上篇文章中学到的东西如何用到序列标记上面。

我们说过结构化感知机也是解决结构化问题的一个技术。它也解决了三个问题。
在这里插入图片描述
如果今天是序列的话,那么 ϕ ( x , y ) \phi(x,y) ϕ(x,y)应该要定义成什么样呢,很简单的方式是可以定义成CRF的方式。
在这里插入图片描述
第二个问题就是找到 y y y让上面的式子最大,一样用维特比算法来解就好了。
在这里插入图片描述

在训练的时候,我们对所有不等于 y ^ \hat y y^ y y y,我们希望让
在这里插入图片描述
那怎么做呢,我们要找一个 y ∼ n \overset{\sim} y^n yn,让下面这项
在这里插入图片描述
最大。接下来把 w w w加上正常 y ^ \hat y y^所形成的的向量减去 KaTeX parse error: Expected group after '^' at position 18: …verset{\sim} y^̲所形成的的向量。
在这里插入图片描述
会不会觉得这个式子和在做CRF的梯度上升的式子很像。

在这里插入图片描述
如果我们忽略 η \eta η这一样,把它当成1。那么
在这里插入图片描述
绿线标出的那项是一样的,紫线标出的那一项,虽然表面上看起来不一样,但是它们之间是很有关系的。

上面减去的由 y ∼ \overset{\sim} y y组成的特征是可以让 w ⋅ ϕ ( x n , y ) w \cdot \phi(x^n,y) wϕ(xn,y)最大的。其实就是概率最大的 y y y。而CRF对所有可能的 y y y都按照概率去做加权和。

在这里插入图片描述
如果在 y ′ y^\prime y里面只有一个是1,其他都是0的话,那么这两个东西就是等价的。

在结构化向量机训练的时候会考虑margin和误差的概念。
在这里插入图片描述

误差函数

在这里插入图片描述
Δ \Delta Δ是计算 y y y y ^ \hat y y^的差异性。我们上次说过,结构化SVM的损失函数其实就是这个差异性的上界。如果你最小化结构化SVM的损失函数,那你就是在最小化错误的上界。

理论上说 Δ ( y , y ^ n ) \Delta(y,\hat y^n) Δ(y,y^n)可以是任何你喜欢的函数。
但是需要满足:
在这里插入图片描述
举个例子,如果把两个序列的差异定义成错误率的话:
在这里插入图片描述
就可以解决问题2.1。

我们看一下不同的方法在文献上的比较:
在这里插入图片描述
这是词性标记实验,纵轴是平均错误,你可以看到HMM的表现是最差的。最好的是结构化SVM。

为什么不用RNN

在这里插入图片描述

RNN(下篇文章就会介绍了)和LSTM会有个缺点,在做决定的时候,并没有看完整个序列。在单方向的RNN里面,要产生第t个时间点的输出时,只考虑时间1和时间t的输入,没有考虑时间t+1的输入。如果发现时间t+1的输入想要你改答案的话,那就已经来不及了。

而HMM、CRF等方法会考虑整个序列,并且可以明确考虑输出标签之间的关系。

RNN和LSTM还有个问题,它的损失和你要的错误不见得是有关系的。就是你最小化损失函数不见得会最小化错误。

而结构化的这些方法,损失就是错误的上界。

但是RNN和LSTM有个优点是结构化方法无法比拟的地方,就是可以有深层。

就是因为这点,最后导致还是RNN和LSTM比较强。

我们可以整合这些方法。
在这里插入图片描述
把模型比作萝卜的话,在比较深的地方,在底层用RNN和LSTM,在浅层的地方用结构化方法。结构化方法可以比较方便的描述依赖关系。

这样可能会得到比较好的结果。

以语音识别为例,一般是使用CNN/RNN或LSTM/DNN ,最后会接HMM。
在这里插入图片描述

我们把HMM的初始化概率 P ( x l ∣ y l ) P(x_l|y_l) P(xlyl)用DNN/RNN/LSTM得到的结果去代替。

但是有个问题是,蓝线标出的是 P ( x l ∣ y l ) P(x_l|y_l) P(xlyl),而RNN产生的是 P ( a ∣ x l ) P(a|x_l) P(axl)这种。
我们可以用条件概率公式来推导:
在这里插入图片描述
P ( y l ) P(y_l) P(yl)可以通过统计的方式得到。 y l y_l yl出现的次数除以所有 y y y出现的次数。

现在的问题是 P ( x l ) P(x_l) P(xl)怎么得到,方法很简单,就不不管它?!

我们在用HMM的时候,是给定 x x x,看哪个 y y y可以让 P ( y ∣ x ) P(y|x) P(yx)最大,因此 x x x是给定的。不管它的值是多少,都不会影响最后得到的 y y y

总结

在这里插入图片描述
我们今天讲了好几种不同的处理序列标记的方法,它们都解决了三个问题。
在问题1里面我们要定义一个评估函数,每个方法定义的都不一样。
在问题2都用维特比算法。
在问题3HMM就是统计;CRF要去最大化这个概率;而结构化感知机要让正确的分数大过错误的分数;结构化向量机让它们大过一个margin。

最后都可以通过让它们加上深度学习变得更加强大。

参考

1.李宏毅机器学习

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

愤怒的可乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值