A Unified MRC Framework for Named Entity Recognition文献阅读

A Unified MRC Framework for Named Entity Recognition

关于A Unified MRC Framework for Named Entity Recognition的文献理解,为了方便快速理解,我选择性记录。



摘要

命名实体识别(NER)是自然语言处理(NLP)中的一项任务,根据命名实体是否嵌套分为:nested NER 和 flat NER。一般的模型采用的大多是 sequence labeling models(序列标记模型),它只能实现分配单一label给单一token,而nested NER可能出现一个token具有多个label的情况。
nested NER

本篇论文采用machine reading comprehension (MRC) 的方式,改善传统sequence labeling models。对于命名实体识别转换成一个QA问题,即根据问题找答案,如此一来,nested NER就转换成寻找多个问题的answer。


一、数据集

首先,将带有标记的NER数据集改造成三元集合:(Question, Answer, Context)。

对于每一个标签 y ∈ Y y \in Y yY 将其关联成 m m m个问题: q y = { q 1 , q 2 , . . . , q m } q_y=\{q_1, q_2, ..., q_m\} qy={q1,q2,...,qm}
实体关联为: x s t a r t , e n d = { x s t a r t , x s t a r t + 1 , ⋅ ⋅ ⋅ , x e n d − 1 , x e n d } x_{start,end}=\{x_{start}, x_{start+1},· · · , x_{end-1}, x_{end}\} xstart,end={xstart,xstart+1,,xend1,xend}即为文章 X X X的一个子串,其中满足 s t a r t ≤ e n d start\leq end startend
这样我们就可以得到一个三元组 ( q y , x s t a r t , e n d , X ) (q_y,x_{start,end},X) (qy,xstart,end,X)即三元集合(Question, Answer, Context)

二、模型细节

1.框架

主要是利用BERT实现,训练数据改造为: { [ C L S ] , q 1 , q 2 , . . . , q m , [ S E P ] , x 1 , x 2 , . . . , x n } , [ C L S ] \{[CLS], q_1, q_2, ..., q_m,[SEP], x_1, x_2, ..., x_n\},[CLS] {[CLS],q1,q2,...,qm,[SEP],x1,x2,...,xn}[CLS] [ S E P ] [SEP] [SEP]为特殊标记。
BERT在接收这个训练数据后会输出一个矩阵 E ∈ R n × d E\in \mathbb{R}^{n\times d} ERn×d 其中 d d d表示BERT最后一层的向量维数

2.跨度选择

(1)开始位置预测

利用BERT训练出来的结果 E E E预测预测每个token作为开始的机率:
P s t a r t = s o f t m a x e a c h   r o w ( E ⋅ T s t a r t ) ∈ R n × 2 P_{start}=softmax_{each\ row}(E \cdot T_{start})\in \mathbb{R}^{n\times 2} Pstart=softmaxeach row(ETstart)Rn×2
其中 T s t a r t ∈ R d × 2 T_{start}\in \mathbb R^{d\times 2} TstartRd×2需要训练, P s t a r t P_{start} Pstart给出了相应位置的token作为开始下标的机率

(2)结束位置预测

与开始位置预测过程一致,只是用的是 T e n d T_{end} Tend矩阵,概率矩阵也是用 P e n d P_{end} Pend进行储存

(3)开始-结束 匹配

在预测过程中,可能会有多个同一类别的实体,这意味着有多个开始和结束下标。由于命名实体可能重叠嵌套,将开始下标和最近的结束下标匹配并不适用,所以需要一个新的方法进行匹配。
通过对 P s t a r t , P e n d P_{start},P_{end} Pstart,Pendargmax,可以得到起始位置和结束位置的索引:
I ^ s t a r t = { i ∣ a r g m a x ( P s t a r t ( i ) ) = 1 , i = 1 , . . . , n } I ^ e n d = { j ∣ a r g m a x ( P e n d ( i ) ) = 1 , j = 1 , . . . , n } \hat I_{start}=\{i|argmax(P_{start}^{(i)})=1,i=1,...,n\} \\ \hat I_{end}=\{j|argmax(P_{end}^{(i)})=1,j=1,...,n\} I^start={iargmax(Pstart(i))=1,i=1,...,n}I^end={jargmax(Pend(i))=1,j=1,...,n}
训练一个二分类模型对开始和结束位置匹配:
P i s t a r t , j e n d = s i g m o i d ( m ⋅ c o n c a t ( E i s t a r t , E j e n d ) ) P_{i_{start},j_{end}}=sigmoid(m\cdot concat(E_{i_{start}},E_{j_{end}})) Pistart,jend=sigmoid(mconcat(Eistart,Ejend))
其中 m ∈ R 1 × 2 d m\in \mathbb{R}^{1\times 2d} mR1×2d需要训练

(4)训练和测试

开始和结束位置的损失参数为:
L s t a r t = C E ( P s t a r t , Y s t a r t ) L e n d = C E ( P e n d , Y e n d ) \mathcal{L}_{start}=CE(P_{start},Y_{start})\\ \mathcal{L}_{end}=CE(P_{end},Y_{end}) Lstart=CE(Pstart,Ystart)Lend=CE(Pend,Yend)
开始和结束位置匹配的损失函数为:
L s p a n = C E ( P s t a r t , e n d , Y s t a r t , e n d ) \mathcal{L}_{span}=CE(P_{start,end},Y_{start,end}) Lspan=CE(Pstart,end,Ystart,end)
总体损失函数为:
L = α L s t a r t + β L e n d + γ L s p a n \mathcal{L}=\alpha \mathcal{L}_{start}+\beta \mathcal{L}_{end}+\gamma\mathcal{L}_{span} L=αLstart+βLend+γLspan
注意: α , β , γ ∈ [ 0 , 1 ] \alpha,\beta,\gamma\in[0,1] α,β,γ[0,1]是控制各损失函数对总体贡献超参数。


三、结果展示

嵌套NER的数据集的结果:
在这里插入图片描述
平面NER数据集上的结果展示:
在这里插入图片描述
在这里插入图片描述
查询问题和句子之间的注意力矩阵,可以看到问题和正确答案的相关性很高。

在这里插入图片描述
可以看到BERT-MRC比BERT-Tagger需要更少的数据。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值