在命名实体识别的上下文中,支持向量机和条件随机场模型有什么区别?

机器算法验证 支持向量机 自然语言
2022-04-19 06:41:44

有人可以直观地解释支持向量机 (SVM) 和条件随机场 (CRF) 模型如何执行命名实体识别 (NER),以及它们在概念上的区别吗?根据我们想要实现的目标,还有一种方法优于其他方法吗?

1个回答

假设对于我们的数据,我们有观察(每个观察是一组特征)和标签(每个观察一个标签)。在 NER 的情况下,我们有一组关于单词(观察)的特征,并且标签通常是 BIO 方案,其中我们可能有 B-Loc 表示位置的开始,I-Loc 内部位置,B-Pers 表示开始人词,I-Pers 用于内部人词,O 用于命名实体之外。句子:“这个人是乔治·W·布什。” 有标签“(O)人(O)是(O)乔治(B-Pers)W.(I-Pers)布什(I-Pers)。”

SVM 在给定特征集的情况下预测标签,这些特征都与前面观察的标签无关。但是,用于训练 SVM的特征可能前后观察的特征相关。例如,我们不能具有前置-B-Loc 前置-I-Loc 等的特征,但我们可以有前置-名词前置-动词后置-名词后置-动词等,其中每个特征都被赋予一个二进制 0/1 值(在培训中)。在实践中,SVM 可能希望您将特征从 1 命名为 |num_features|,然后仅列出值为 1 的特征名称。然后,在测试中,我们可以通过查看观察结果来生成标签,例如零件词的词性、前后词等,SVM 使用这些观察结果来预测标签。一个人会创建许多特征,而观察结果将是稀疏的。

简而言之,CRF 使用给定一组特征加上所有其他标签的标签概率(训练很慢)。这是一种简化,因为 CRF 模型迭代地向前和向后传播标签的概率(参见forward-backward algorithm) 直到收敛到局部最大值。CRF 在输入的观察结果上使用图(顶点和边):如果您从左到右描绘标记,则每个标记都与其下方的垂直列相关联,其中沿着该列是所有可能标签的顶点(B -Loc、I-Loc、B-Pers、I-Pers、O 等)——所以在我们简单的 BIO 方案中,每个令牌有 7 个顶点。列中没有边:每个顶点都连接到相邻列中的每个顶点(向前和向后)。在模型运行完之后,边权重用于预测给定观察序列的每个标记的标签。

这些选择之间的偏好:这取决于。像斯坦福 NLP Parser这样的现成 NER可以为您提供预训练的 CRF。如果你有一个需要训练的专业领域,CRF 可能是多余的,而 SVM 就足够了。