NER解决方案——NN-CRF

基本框架

NN-CRF是目前命名实体识别的基线模型,如BiLSTM-CRF、BERT-CRF等,基本框架图如下:
在这里插入图片描述
因此重点在于引入CRF模型及CRF模型的计算过程。

为什么要引入CRF模型呢?

论文里面给出了解释: Neural Architectures for Named Entity Recognition
对于BIO标注,I-PER 不可能接在B-LOC之后,同样I-PER和I-LOC也不可能出现在相邻序列当中。因此需要一种方法去约束这种条件,CRF通过构造转移矩阵,学习各个标签之间的转移概率,通过这种方式可以大大减少无效标签序列的产生。

CRF计算过程

目标:给每一个可能的标注序列算一个分数,通过训练,使得那个唯一的真实的标签序列得分最高

假设文本长度m,标签为n,则优化目标:
p r o b = e P r e a l p a t h e p 1 + e p 2 + . . . + e p m n prob = \frac {e^{P_{realpath}}}{e^{p_1}+e^{p_2}+...+e^{p_{m^n}}} prob=ep1+ep2+...+epmnePrealpath
即: − l o g ( p r o b ) = l o g ( e p 1 + e p 2 + e p 3 + . . . + e p m n ) − P r e a l p a t h -log(prob) = log(e^{p_1}+e^{p_2}+e^{p_3}+...+e^{p_{m^n}})- P_{realpath} log(prob)=log(ep1+ep2+ep3+...+epmn)Prealpath

如何计算某一种路径的分数?

对于第m个字符的输出,对于标签为1的路径节点p1,m:
在这里插入图片描述
则路径为 p 1 , m p_{1,m} p1,m 的概率值为:
在这里插入图片描述
e m 1 e_{m1} em1 w m w_m wm对标签 l 1 l_1 l1的发射概率,由NN网络提供;
t i 1 t_{i1} ti1 l i l_i li l 1 l_1 l1的转移概率,由CRF提供;
由以上公式,可以递归求出所有路径的分数,
其中的主要参数:
发射概率矩阵 E m ∗ n E_{m*n} Emn
转移概率矩阵 T n ∗ n T_{n*n} Tnn

假设文本长度m,标签个数为n,则发射矩阵和转移矩阵:
在这里插入图片描述

已知发射矩阵和转移矩阵,模型如何输出最佳路径?

维特比算法(动态规划):每一个节点均为当前节点的最优路径

step1: 计算每一种路径的概率值;
在这里插入图片描述

step2: 获取最后一步的最大概率值,然后反向查找当前概率下的路径。

在这里插入图片描述

扩展:IDCNN-CRF

在这里插入图片描述
编码层引入空洞卷积
优点:1、去掉池化层;2.可以看到更多的信息;3.轻量级,适合生产部署。

IDCNN-CRF业界使用方案:美团搜索中NER技术的探索与实践

github

https://github.com/KATEhuang920909/tensorflow2.0_NER/tree/main/tf2_ner

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值