A Unified MRC Framework for Named Entity Recognition
-
Abstract
将NER的序列标注任务看作一项MRC任务,此方法可以引入query先验知识,对于不同类别的重叠实体回答不同的独立问题,可以解决重叠实体问题。
NER as MRC
Task Formalization
给定输入序列X=x1,…,xnX={x_1, …,x_n}X=x1,…,xn,n是序列长度,本文要在X中找到每一个实体,并分配一个y∈Yy\in Yy∈Y
Dataset Construction
将tagging-style标注的数据集转化为一个三元组集合(quesiton, answer,context)
对于每一个tag类型y∈Yy\in Yy∈Y,对应一个自然语言问题qy=(q1,…,qm)q_y=(q_1,…,q_m)qy=(q1,…,qm),m是query的长度。Query Generation
参考数据指南,引入实体类型的属性信息
Model
[CLS]q1,…,qm[SEP]x1,…,xn[SEP][CLS]q_1,…,q_m[SEP]x_1,…,x_n[SEP][CLS]q1,…,qm[SEP]x1,…,xn[SEP]输入到BERT中,得到山下文表达矩阵E∈Rn×dE\in R^{n \times d}E∈Rn×d
span selection
利用指针网络分别求出头和尾,然后用match矩阵求头和尾匹配的概率,这个点很强Result
启示
- 牛皮
- 这个代码,改了有两个月,就是达不到他的分数,有点难。最重要的是时间复杂度太高了,ACE05训练完要十个小时,还是四张3090一块跑的情况下。建议原地放弃