第4章 实体识别:CRF及LSTM+CRF
第四章 实体识别:CRF及LSTM+CRF
命名实体识别的发展历史
命名实体识别的任务
一般而言,主要是识别出待处理文本中七类(人名、机构名、地名、时间、日期、货币和百分比)命
名实体
两个任务:实体边界识别和实体类别标注(Entity Typing)
实体识别基本概念
- 实体识别的任务是识别出文本中三大类命名实体(实体类、时间类和数字类), 具体如下所示:
- 实体识别
- 序列标
目前方法
基于机器学习的方法
生成式方法
原理:首先建立学习样本的生成模型,再利用模型对预测结果进行间接推理
典型算法: HMM等
判别式方法
原理:由字构词的命名实体识别理念,将NER问题转化为判别式分类问题(序列标注问题)
典型算法:Maxent,CRF
基于深度学习的方法
基于预训练的方法
BERT模型重新设计了语言模型预训练阶段的目标任务,提出了遮挡语言模型Masked LM和下一个句子预测(NSP)。
Masked LM是在输入的词序列中,随机选15%的词进行[MASK],然后在这15%的词中,有80%的词被真正打上[MASK]标签,有10%的词被随机替换成任意词汇,10%的词不做任何处理。模型的任务是去正确预测带有MASK标签的词。相比于传统的语言模型,MaskedLM可以从前后两个方向预测这些带有MMASK标签的词。
NSP实质上是一个二分类任务,以50%的概率输入一个句子和下一个句子的拼接,标签属于正例:另外50%的概率输入一个句子和非下一个随机句子的拼接,对应标签为负例。
条件随机场(CRF)
定义:已知一组输入随机变量条件下,另一组输出随机变量的条件概率分布模型
特点:假设输出随机变量构成马尔可夫随机场
应用:可以应用于不同类型的标注问题,例如:
- 单个目标的标注、序列结构的标注、图结构的标注
CRF和HMM
- HMM:生成式模型,难以考虑复杂的特征
- CRF:判别式模型,可以考虑复杂的特征
基于CRF的命名实体识别
采用CRF模型对每个汉字标注对应实体类型的BIO标记
例如:句子“白居易是中国杰出的诗人”
- 观察序列: 白 1 居 2 易 3 是 4 中 5 国 6 杰 7 出 8 的 9 诗 10 人 11 白_1 居_2 易_3 是_4 中_5 国_6 杰_7 出_8 的_9 诗_{10} 人_{11} 白1居2易3是4中5国6杰7出8的9诗10人11
- 标注序列: B − P E R 1 I − P E R 2 I − P E R 3 O 4 O 5 O 6 O 7 O 8 O 9 O 10 O 11 B−PER_1 I−PER_2 I−PER_3 O_4 O_5 O_6 O_7 O_8 O_9 O_{10} O_{11} B−PER1I−PER2I−PER3O4O5O6O7O8O9O10O11
特征函数:可以构建不同种类的特征
- 上下文特征,词性,词本身等
CRF示例
LSTM+CRF命名实体识别(Lample, NAACL16)
每个句子按照词序逐个输入双向LSTM中,结合正反向隐层输出得到每个词属于每个实体类别标签的概
率,输入CRF中,优化目标函数,从而得到每个词所属的实体类别
BiLSTM层输入与输出
BiLSTM层的输入:每个词的向量表示
BiLSTM层的输出:当前时刻的输入属于每个实体类别标签的概率
如果模型不包含CRF层
CRF层为模型效果提升带来了什么?
CRF层可以加入一些约束来保证最终预测结果是有效的。这些约束可以在训练数据时被CRF层自动学习得到。
可能的约束条件有:
(1)句子的开头应该是“B-”或“O”,而不是“I-”;
(2)“B-label1 I-label2 I-label3…”,在该模式中类别1,2,3应该是同一种实体类别。比如,“B-Person I-Person” 是正确的,而“B-Person I-Organization”则是错误的;
(3)“O I-label”是错误的,命名实体的开头应该是“B-”而不是“I-”。
Emission得分
举例:
w
0
w_0
w0被标记为B-Person的分数为1.5,
w
1
w_1
w1被标记为B-Person的分数为0.2 。
Transition得分
CRF路径得分
可能的路径是
对于5个词组成的句子,其可能的类别序列为:
- START B-PERSON B-PERSON B-PERSON B-PERSON B-PERSON END
- START B-PERSON I-PERSON B-PERSON B-PERSON B-PERSON END …
- SRART B-PERSON I-PERSON O B-Oraganization O END … N) O O O O O O O
CRF损失函数
对于5个词组成的句子,假定类别标签有5个(B-Person, I- Person, B-Organization,
I-Organization, O),其可能的类别序列有55 = 3125种,即NN = 3125。
CRF损失函数计算示例
x
=
[
w
0
,
w
1
,
w
2
]
x = [w_0,w_1,w_2]
x=[w0,w1,w2]
L
A
B
E
L
=
[
l
1
,
l
2
]
LABEL = [l_1,l_2]
LABEL=[l1,l2]
Emission 得分
Transition 得分
全部路径得分计算方法
变量
previous:上一步的得分
obs:当前步骤的词的信息
假设句子只有1个词
w
0
w_0
w0
假设句子有2个词
{
w
0
,
w
1
}
\{w_0,w_1\}
{w0,w1}
- 扩展previous
- 扩展obs
- 对previous,obs 以及transition 得分求和
- 修改previous的值
总路径得分
假设句子有3个词 w 0 , w 1 , w 2 w_0, w_1, w_2 w0,w1,w2
1.扩展previous
2.扩展obs
3.对previous,obs 以及transition 得分求和
4.修改previous的值
全部路径得分
CRF-推断
BiLSTM层获得了发射(状态)得分矩阵,从CRF层得到了转移得分矩阵
假设句子只有1个词
w
0
w_0
w0
假设
o
b
s
=
[
x
01
=
0.2
,
x
02
=
0.8
]
obs=[x_{01}=0.2, x_{02}=0.8]
obs=[x01=0.2,x02=0.8]
previous=none
显然
w
0
w_0
w0的最好标签是
l
2
l_2
l2
假设句子有2个词
w
0
,
w
1
w_0, w_1
w0,w1
0.5表示第二个词的标签应该是表示
l
1
l_1
l1,
(
1
,
1
)
[
1
]
(1,1)[1]
(1,1)[1]前一个标签应该是表示
l
2
l_2
l2,
(
1
,
1
)
[
0
]
=
1
(1,1)[0]=1
(1,1)[0]=1前一个标签
应该是
l
2
l_2
l2。
假设句子有3个词
w
0
,
w
1
,
w
2
w_0, w_1, w_2
w0,w1,w2
0.9表示第三个词的标签应该是
l
2
l_2
l2,
(
1
,
0
)
[
1
]
=
0
(1,0)[1]=0
(1,0)[1]=0表示前一个标签应该是
l
1
l_1
l1,
(
1
,
1
)
[
0
]
=
1
(1,1)[0]=1
(1,1)[0]=1表示前一个标签应该是
l
2
l_2
l2。
命名实体识别研究热点
- 利用词(词典)信息
- 嵌套命名实体识别
- 匮乏资源下的命名实体识别
- 细粒度命名实体识别
参考
东南大学课件
深蓝笔记
random也是一种规律: 冷启动用的什么算法啊,没说清楚唉
客242: 你好,就是那个数据库是怎么准备的呀,能够告知一下吗?快崩溃啦
g944142624: 你好,能分享一下在蛋白配体相互作用能分析中用到的ie.mdp文件吗
gjwm1120: 能否提供一下完整代码,有许多运行时错误无法解决
2301_80141398: 我也遇到了,请问您解决了吗?