大纲
该系列文章将包括:
- 简介 -BiLSTM顶部的CRF层用于命名实体识别任务的一般思想
- 详细示例 -一个说明CRF层如何逐步工作的玩具示例
- 中文NER实现 -CRF层的中文NER实现
谁可能是本系列文章的读者?
本系列文章适用于学生或自然语言处理或任何其他与AI相关领域的初学者,我希望您可以从我的文章中找到您想知道的内容。此外,请随意提供任何意见或建议以改进该系列。
先验知识
你需要先知道什么是命名实体识别。如果您不了解神经网络,CRF或任何其他相关知识,请不要担心。我将尽可能直观地解释所有内容。
1.简介
对于命名实体识别任务,基于神经网络的方法非常流行和普遍。例如,文献[1]提出了一种BiLSTM-CRF命名实体识别模型,该模型使用词和字符嵌入。我将以文献[1]中的模型为例来说明CRF层如何工作。
如果您不知道BiLSTM和CRF的详细信息,只要知道它们是命名实体识别模型中的两个不同层就可以啦。
1.1开始之前
假设我们有一个数据集,其中有两个实体类型,Person和Organization。然而,实际上在我们的数据集中有5个实体标签:
- B-Person
- I- Person
- B-Organization
- I-Organization
- O
此外, xw0w1w2w3w4xw0w1w3
1.2 BiLSTM-CRF模型
我将对此模型进行简要介绍。
如下图所示:
- 首先,每个 词在句子X中
- 其次,BiLSTM-CRF模型的输入是那些词向量,输出是句子x中单词的预测标签
尽管不必知道BiLSTM层的详细信息,但是为了更轻松地了解CRF层,我们必须知道BiLSTM层的输出的含义。
上图表示BiLSTM层的输出是每个标签的分数。例如,对于w0
然后,将BiLSTM块的所有分数预测都喂到CRF层。在CRF层中,具有最高预测得分的标记序列将被选作最佳答案。
1.3如果我们没有CRF层怎么办
您可能已经发现,即使没有CRF层,我们也可以训练BiLSTM命名实体识别模型,如下图所示。
因为每个单词的BiLSTM输出都是标签分数。我们可以选择每个单词得分最高的标签。
例如,对于w0w1w2w3w4
即使,我们得到一个句子X的正确标签。
1.4 CRF层可以向训练数据中添加约束
CRF层可以向最终的预测标签添加一些约束,以确保它们有效。CRF层可以在训练过程中自动从训练数据集中学习这些约束。
比如说:
- 句子中第一个单词的标签应以“ B-”或“ 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-”开头,换句话说,有效模式应为“ OB标签”。也就是说,O后面不能跟I。
- 其他有可能的
有了这些有用的约束,无效的预测标签序列的数量将大大减少。
下一个
在下一节中,我将分析CRF损失函数,来解释CRF层为什么可以从训练数据集中学习上述约束。
期待很快见到你!
参考文献
[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