源文地址:https://createmomo.github.io/2017/09/23/CRF_Layer_on_the_Top_of_BiLSTM_2/
回顾
在上一节,我们知道从训练数据集CRF层可以学习一些约束,以确保最终预测标签的有效性。
约束可能是:
句子中第一个单词的标签应以 “B-“ or “O”, not “I-“ 开始
B-label1 I-label2 I-label3 I-…”,在这个模式中,label1、label2、label3…应该是相同的命名实体标签。例如,“B-Person I-Person”是有效的,但是“B-Person I-Organization”是无效的。
“O I-label”无效。一个命名实体的第一个标签应该以“B-”而不是“I-”开头,换句话说,有效的模式应该是“O B-label”
通过阅读本文,你将会知道为什么CRF层能够学习这些约束。
2 . CRF 层
在CRF层的损失函数中,我们有两种类型分数。这两个分数是CRF层的关键 概念。
2.1 发射分数(Emission )
第一个是发射分数。那些发射分数来自BiLSTM层。例如下图所示,w0 标为B-Persond的分数是1.5。
为了方便,我们将给每个标签一个索引数字,如下图所示:
Label | Index |
---|---|
B-Person | 0 |
I-Person | 1 |
B-Organization | 2 |
I-Organization | 3 |
O |
我们使用xi yi 表示发射概率。i是单词的序列,yi 表示标签序列。例如,根据图2.1,xi=1,yj=2 = xw1 ,B−Organization=0.1意味着 w1 作为B-Organization的分数是 0.1。
2.2 转移分数(Transition )
我们使用 tyiyj 去表示转移分数。比如 t B−Person,I−Person = 0.9意味着标签转换 B−Person —> I−Person的分数是0.9。因此,转移分数矩阵,他存储了所有标签之间的所有分数。
为了使转换评分矩阵更健壮,我们将添加另外两个标签,START和END。START的意思是一个句子的开始,并不是第一个单词。END表示句子的结束。
下面是一个转换矩阵得分的例子,包括额外添加的START和END标签。
START | B-Person | I-Person | B-Organization | I-Organization | O | END | |
---|---|---|---|---|---|---|---|
START | 0 | 0.8 | 0.007 | 0.7 | 0.0008 | 0.9 | 0.08 |
B-Person | 0 | 0.6 | 0.9 | 0.2 | 0.0006 | 0.6 | 0.009 |
I-Person | -1 | 0.5 | 0.53 | 0.55 | 0.0003 | 0.85 | 0.008 |
B-Organization | 0.9 | 0.5 | 0.0003 | 0.25 | 0.8 | 0.77 | 0.006 |
I-Organization | -0.9 | 0.45 | 0.007 | 0.7 | 0.65 | 0.76 | 0.2 |
O | 0 | 0.65 | 0.0007 | 0.7 | 0.0008 | 0.9 | 0.08 |
END | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
上表所示,我们可以发现转移矩阵已经学习到了一些有用的约束。
在句子中第一个单词标签应该是以 “B-“ or “O”, not “I-“开始(看到 “START” to “I-Person or I-Organization”这些标签分数很低 )
在此模式,“B-label1 I-label2 I-label3 I-…”,label1, label2, label3 …应该是相同名称的实体标签。例如,“B-Person I-Person”是有效的,但是“B-Person I-Organization”是无效的。(比如B-Organization—>I-Person的分数只有0.0003,远低于其他)
“O I-label”无效。一个命名实体的第一个标签应该以“B-”而不是“I-”开头,换句话说,有效的模式应该是“O B-label”(再次,比如 tO,I−Persont 是非常小的)
你可能想问一个关于矩阵的问题。在哪里或者如何得到转换矩阵?
实际上,矩阵是BiLSTM-CRF模型的一个参数。在训练模型之前,你可以在矩阵中随机初始化所有的转换分数。在训练过程中所有的随机分数将自动更新。换句话说,CRF层可以通过自己学习这些约束。我们不需要手动的构建矩阵。随着训练迭代次数的增加,分数会逐渐趋于合理。
下一篇
2.3 CRF损失函数
引入由真实路径分数和所有可能路径的总得分组成的CRF损失函数。
2.4 真实路径分数
如何计算一个句子的真实标签的分数。
2.5 所有可能路径的分数
如何通过简单的示例,计算一个句子所有可能的路径的总得分。
参考文献
[1] Lample, G., Ballesteros, M., Subramanian, S., Kawakami, K. and Dyer, C., 2016. Neural architectures for named entity recognition. arXiv preprint arXiv:1603.01360. https://arxiv.org/abs/1603.01360