BiLSTM-CRF中CRF层解析-3

2.3 CRF损失函数

CRF损失函数包含了真实路径得分和所有可能路径的总得分,如果预测对的情况下,真实路径在所有可能路径中得分应该是最高的。

举个栗子,假设我们数据的标签如下表所示:

Label Index
B-Person 0
I-Person 1
B-Organization 2
I-Organization 3
O 4
START 5
END 6

我们有一个含有5个单词的句子,可能的路径为:

  • 1)START B-Person B-Person B-Person B-Person B-Person END
  • 2)START B-Person I-Person B-Person B-Person B-Person END
  • 10)START B-Person I-Person O B-Organization O END
  • N) O O O O O O O

假设共有 N N N种可能路径,每一种可能的路径都有一个得分 P i P_i Pi,所有路径的总得分为 P t o t a l = P 1 + P 2 + . . . + P N = e S 1 + e S 2 + . . . + e S N P_{total} = P_1+P_2+...+P_N = e^{S_1}+ e^{S_2} +...+e^{S_N} Ptotal=P1+P2+...+PN=eS1+eS2+...+eSN,其中 e e e就是我们常用的指数常量 e e e。(在2.4节,我们将介绍如何计算 S i S_i Si S i S_i Si也可以看作是路径的得分。)

假设,在所有可能路径中,第10条路径是真实路径,也就意味着,第10条路径对应的预测标签序列是对的,因此, P 10 P_{10} P10得分应该是最高的。

下式即为损失函数,在训练过程中,BiLSTM-CRF模型将会不断的更新,从而使真实路径得分占比越来越大:
L o s s F u n c t i o n = P R e a l P a t h P 1 + P 2 + . . . + P N LossFunction = \frac{P_{RealPath}}{P_1+P_2+...+P_N} LossFunction=P1+P2+...+PNPRealPath
现在要解决的问题就是:
1)如何定义一个路径的得分;
2)如何计算所有可能路径的总得分;
3)当我们计算总得分时,我们需要列出所有可能路径吗(提前回答:当然不需要列出所有可能路径)

接下来,我们将介绍如何解决上述问题。

2.4 真实路径得分

在2.3节中,我们假设共有 N N N种可能路径,每一种可能的路径都有一个得分 P i P_i Pi,所有路径的总得分为 P t o t a l = P 1 + P 2 + . . . + P N = e S 1 + e S 2 + . . . + e S N P_{total} = P_1+P_2+...+P_N = e^{S_1}+ e^{S_2} +...+e^{S_N} Ptotal=P1+P2+...+PN=eS1+eS2+...+eSN,其中 e e e就是我们常用的指数常量 e e e e S i e^{S_i} eSi为第 i i i条路径的得分。

显然,在所有可能路径中,肯定有一条真实路径(命名实体识别中,就是说这句话所有可能标签序列中,肯定有一个标签序列是对的),再举个栗子,1.2节中那句话的真实路径就是“START B-Person I-Person O B-Organization O END”,而其他的如“START B-Person B-Organization O I-Person I-Person B-Person”就是错误的。

在训练过程中,CRF损失函数只需要两个得分:真实路径得分和所有可能路径总得分,真实路径得分的比例应随着训练不断增加。

真实路径得分 e S i e^{S_i} eSi的计算是非常直接的,接下来,我们介绍如何计算 S i S_i Si

如前所述,假设真实路径为:“START B-Person I-Person O B-Organization O END”,则操作如下:

  • 假设该句子有5个单词组成: w 1 , w 2 , w 3 , w 4 , w 5 w_1,w_2,w_3,w_4,w_5 w1,w2,w3,w4,w5
  • 再额外加两个单词 w 0 , w 6 w_0,w_6 w0,w6分别表示该句子的开头和结果;
  • S i S_i Si由两部分计算得到: S i = E m i s s i o n S c o r e + T r a n s i t i o n S c o r e S_i=EmissionScore+TransitionScore Si=EmissionScore+TransitionScore(2.1节介绍了发射得分,2.2节介绍了转移得分)

发射得分
E m i s s i o n S c o r e = x 0 , S T A R T + x 1 , B − P e r s o n + x 2 , I − P e r s o n + x 3 , O + x 4 , B − O r g a n i z a t i o n + x 5 , O + x 6 , E N D EmissionScore=x_{0,START}+x_{1,B-Person}+x_{2,I-Person}+x_{3,O}+x_{4,B-Organization}+x_{5,O}+x_{6,END} EmissionScore=x0,START+x1,BPerson+x2,IPerson+x3,O+x4,BOrganization+x5,O+x6,END

  • x i n d e x , l a b e l x_{index,label} xindex,label是第 i n d e x index index个词被标记为 l a b e l label label的得分;
  • x 1 , B − P e r s o n , x 2 , I − P e r s o n , x 3 , O , x 4 , B − O r g a n i z a t i o n , x 5 , O x_{1,B-Person} ,x_{2,I-Person},x_{3,O},x_{4,B-Organization},x_{5,O} x1,BPerson,x2,IPerson,x3,O,x4,BOrganization,x5,O都是从BiLSTM的输出得到的;
  • 对于 x 0 , S T A R T 和 x 6 , E N D x_{0,START}和x_{6,END} x0,STARTx6,END,我们可以将他们设为0。

转移得分
T r a n s i t i o n S c o r e = t S T A R T − > B − P e r s o n + t B − P e r s o n − > I − P e r s o n + t I − P e r s o n − > O + t 0 − > B − O r g a n i z a t i o n + t B − O r g a n i z a t i o n − > O + t O − > E N D TransitionScore=t_{START−>B−Person}+t_{B−Person−>I−Person}+t_{I−Person−>O}+t_{0−>B−Organization}+t_{B−Organization−>O}+t_{O−>END} TransitionScore=tSTART>BPerson+tBPerson>IPerson+tIPerson>O+t0>BOrganization+tBOrganization>O+tO>END

  • t l a b e l 1 − > l a b e l 2 t_{label1->label2} tlabel1>label2是从 l a b e l 1 label1 label1 l a b e l 2 label2 label2的转移得分;
  • 这些是CRF层的得分,即这些得分其实是CRF层的参数。

总而言之,现在我们可以计算 S i S_i Si和路径得分 e S i e^{S_i} eSi,下一步就是如何计算所有可能路径的总得分

下一篇博文

下一篇博文,我将会通过一个示例,教您如何一步一步地计算所有可能路径的总得分。
这部分内容比较重要,虽然有点难度,但是不要担心,下一节的示例将会尽可能详细地介绍计算细节。

你可能感兴趣的:(Deep,Learning,语音)