发布时间:2023-03-31 文章分类:电脑基础 投稿人:樱花 字号: 默认 | | 超大 打印

目录

        • 1 BiLSTM-CRF模型用途
        • 2 BiLSTM-CRF模型介绍
          • 2.1 数据标签及模型架构
            • 2.1.1 数据标签
            • 2.1.2 模型架构
          • 2.2 BiLSTM模型
            • 2.2.1 BiLSTM模型介绍及联系
            • 2.2.2 代码实现细节
          • 2.3 CRF模型
            • 2.3.1 CRF模型定义及联系
            • 2.3.2 CRF作用
            • 2.3.3 CRF层的损失函数
          • 2.4 BiLSTM-CRF模型代码实现
            • 2.4.1 BiLSTM+CRF模型的实现
            • 2.4.2 模型训练的流程

1 BiLSTM-CRF模型用途

2 BiLSTM-CRF模型介绍

2.1 数据标签及模型架构
2.1.1 数据标签
B-Person (人名的开始部分)
I- Person (人名的中间部分)
B-Organization (组织机构的开始部分)
I-Organization (组织机构的中间部分)
O (非实体信息)
2.1.2 模型架构

x 是包含了5个单词的一句话(W0,W1,W2,W3,W4)。还有,在句子x中[W0,W1]是人名,[W3]是组织机构名称,其他都是“O”。

【详解】BiLSTM+CRF模型

【详解】BiLSTM+CRF模型

2.2 BiLSTM模型
2.2.1 BiLSTM模型介绍及联系

【详解】BiLSTM+CRF模型

2.2.2 代码实现细节
2.3 CRF模型
2.3.1 CRF模型定义及联系
2.3.2 CRF作用

CRF层可以加入一些约束来保证最终预测结果是有效的(CRF层可以学习到句子的约束条件)。这些约束可以在训练数据时被CRF层自动学习得到。

可能的约束条件有:

有了这些有用的约束,错误的预测序列将会大大减少。

2.3.3 CRF层的损失函数

1 Emission Score(发射分数/状态分数)

发射概率, 是指已知当前标签的情况下, 对应所出现字符的概率. 通俗理解就是当前标签比较可能出现的文字有哪些, 及其对应出现的概率.

【详解】BiLSTM+CRF模型

Xi,yj代表状态分数,i是单词的位置索引,yj是类别的索引。根据上表,

【详解】BiLSTM+CRF模型

2 Transition Score (转移分数)

我们用t(yi,yj)来表示转移分数。例如,t(B−Person,I−Person)=0.9表示从类别B−Person→I−Person的分数是0.9。因此,我们有一个所有类别间的转移分数矩阵。

为了使转移分数矩阵更具鲁棒性,我们加上START 和 END两类标签。START代表一个句子的开始(不是句子的第一个单词),END代表一个句子的结束。

下表是加上START和END标签的转移分数矩阵。

【详解】BiLSTM+CRF模型

如上表格所示,转移矩阵已经学习到一些有用的约束条件:

【详解】BiLSTM+CRF模型

要怎样得到这个转移矩阵呢?

实际上,转移矩阵是BiLSTM-CRF模型的一个参数。在训练模型之前,你可以随机初始化转移矩阵的分数。这些分数将随着训练的迭代过程被更新,换句话说,CRF层可以自己学到这些约束条件。

3 CRF损失函数

CRF损失函数由两部分组成,真实路径的分数 和 所有路径的总分数。真实路径的分数应该是所有路径中分数最高的。

例如,我们的数据集中有如下几种类别:

【详解】BiLSTM+CRF模型

一个包含5个单词的句子,可能的类别序列如下:

每种可能的路径的分数为Pi,共有N条路径,则路径的总分是

【详解】BiLSTM+CRF模型

,e是常数e。

如果第十条路径是真实路径,也就是说第十条是正确预测结果,那么第十条路径的分数应该是所有可能路径里得分最高的。

根据如下损失函数,在训练过程中,BiLSTM-CRF模型的参数值将随着训练过程的迭代不断更新,使得真实路径所占的比值越来越大。

【详解】BiLSTM+CRF模型

2.4 BiLSTM-CRF模型代码实现
2.4.1 BiLSTM+CRF模型的实现
2.4.2 模型训练的流程