BiLSTM-CRF中CRF层解析-2

回顾

上篇博文中,我们知道CRF层可以从训练数据中学习到一些约束条件,从而确保最终的预测标签序列是有效的。
约束条件可能是:

  • 一句话中第一个单词的标签应该是“B-“ or “O”,而不能是"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层能够学习这些约束条件。

CRF层

在CRF层的损失函数中,有两种类型的得分,这两种类型的得分是CRF层的关键概念。

2.1 发射得分

第一个得分为发射得分,该得分可以从BiLSTM层获得。如图2.1所示,w0w_0标记为B-Person的得分是1.5。

BiLSTM-CRF中CRF层解析-2
图2.1
为了后续叙述方便,我们将给每个标签一个索引,如下表所示:
Label Index
B-Person 0
I-Person 1
B-Organization 2
I-Organization 3
O 4

我们采用xiyjx_{iy_j}来表达发射矩阵,其中ii表示第ii单词,yjy_j表示标签索引。例如,根据图2.1,xi=1,yj=2=xw1,BOrganization=0.1x_{i=1,y_j=2}=x_{w1,B-Organization}=0.1,该表达式的意思是将w1w_1标记为 B-Organization的概率为0.1。

2.2 转移得分

我们采用tyiyjt_{y_iy_j}表示转移得分,例如,tBPerson,IPerson=0.9t_{B-Person,I-Person}=0.9表示标签B-Person转移到I-Person的得分为0.9,因此,我们将获得一个转移得分矩阵,该矩阵存储着所有标签相互转移之间的得分。

为了使转移得分矩阵的鲁棒性更好,我们将额外再加两个标签:START和END,START表示一句话的开始,注意这不是指该句话的第一个单词,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-”或者"O"开头,而不能以"I-"开头(转移得分中,从START到I-Person 和 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,IPersont_{O,I-Person}是很低的。)

现在,你可能比较关心的问题是:怎么得到该转移矩阵?
其实,该矩阵是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