Bert+CRF 层
CRF层的输入是:每个词预测对应每个标签的分数
CRF层的输出是:每个可能的标注序列,并选择得分最高的序列作为最终结果;
如果没有CRF层的帮助,仅BiLSTM的话,模型只会选择每个词对应标签最大的概率作为输出,可能会出现I-Persion,I-location连接的错误情况,所以CRF的作用就是为模型提供一个标签约束关系:
这种约束为:
有了这些约束,无效的预测序列数量就将显著减少;
在CRF层的损失函数中,我们有两种类型的分数。这两个分数是CRF层的 关键概念 。
第一个是emission分数。这些emission分数来自BiLSTM层。例如上图所示,标记为B-Person的w0的分数为1.5。
所以,我们用表示发射概率,i表示第i个词的索引,y表示标签的索引。例如: 表示选择第0个词,第0个标签的发射概率;
我们用表示转移概率。例如,表示标签转移的分数,解释为B-person->I-persion的分数为0.9
为了使transition评分矩阵更健壮,我们将添加另外两个标签, START 和 END 。START是指一个句子的开头,而不是第一个单词。END表示句子的结尾。
下图为为一个transition得分矩阵的例子,包括额外添加的START和END标签。
我们可以发现transition矩阵已经学习了一些有用的约束。
例如START标签的转移,不可能是I标签开头;
B-perision后面转移到I-organization的概率很小;
你可能想问一个关于矩阵的问题。 在哪里或如何得到transition矩阵 ?
实际上,该矩阵是BiLSTM-CRF模型的一个参数。
1)在训练模型之前,可以随机初始化矩阵中的所有transition分数。
那我们怎么训练这个转移概率呢;
如果第10条路径是真正的路径,则在所有可能路径中应占百分比最大;
参考文献