Sensors 2022
介绍
NER中的序列标注模型使用条件随机场(CRF)来获取标签之间的依赖性,存在误差传播的问题,即错误的分类标签会导致错误的标签依赖。
因此作者提出了S-NER,一个基于span的NER模型,并提出随机负样本的方法来代替传统span-based模型枚举span进行计算,提高模型的效率。
方法
模型的整体结构如下所示:
Encoder
encoder选择BERT, word embedding使用每个word的sub-tokens进行max-pooling。最终表示为,其中
表示token
的bert embedding,
表示最前面的CLS token:
splitter模块将文本分割为text spans,在给定阈值
时,将span表示为:
一共包含个span。将这些span的embedding序列表示为:
最后span semantic presentation表示为span表征、上下文表征和span length embedding的concat:
其中span表征通过对(i,j)之间的embedding进行max-pooling得到:
上下文表征使用BERT中CLS的embedding作为T中所有span的上下文表征。
span length embedding即是在模型训练过程中为每个跨度长度(即 1、2、......、e)训练固定大小的embedding,长度为j+1的span对应的embedding表示为.
Decoder
对span的语义表征使用多层FFNs来映射到类别空间,最后使用softmax函数进行分类:
训练的损失函数使用交叉熵损失:
yk表示glod标签,N表示span的数量。
Negative Sampling Strategy
由于枚举所有span,开销会比较大,因此作者对训练集中的每个文本随机抽取最大数量为d 的负span(可以理解为无效span)后,将其与gold entity结合起来进行训练。也就是将所有正样本的span和部分负样本(自己随机生成的)对模型进行训练。但在推理阶段,枚举所有可能的span进行预测。
但由于设置的d在某些情况下会比枚举span产生更多的span,因此作者取两者中较小的那个值作为负样本span。
实验
对比实验
作者在WNUT2016 、CoNLL2004和SciERC三个数据集(感觉这三个数据集也不是很常用)上与其他模型进行对比实验,结果如下图所示:
作者将句子中至少有一个gold实体被预测为两个错误实体(详见4.8中的例子)的数据单独拿出来进行实验,以验证作者提出的模型不会存在层叠标签误分类的问题。实验结果如下:
消融实验
作者在三个数据集的验证集上通过设置不同数量(d)的负样本来进行实验,以研究负抽样策略的效果。结果如下所示:
可以看出在负样例足够多的情况下,模型能够达到较好的效果,同时也会对模型的效率造成一定的影响,因此本文为了平衡效率和性能选择设置负样例数量为100。
为了进一步评估负样本的有效性,作者在三个数据集的验证集下,将使用该策略和直接使用所有枚举span进行了对比实验,结果如下:
可以看出枚举span的方法在大多数情况下表现出更好的效果,另外作者认为在三个数据集上都使用一个阈值,也会给模型的表现带来损害。
作者还对三个数据集的采样span进行了统计,结果如下所示:
可以看出随机负样本策略相比于枚举span,能够减少多个span的计算量。
对随机负样本策略与使用枚举span的训练速度进行了实验(不得不说 这个点的实验好多!):
对decoder的不同深度也进行了实验,结果如下:
对span representation的多个方法进行了实验,结果如下所示:
case study
作者提出了一个具体的例子来展示其模型并不受序列标注中误分类所产生的影响:
总结
这篇论文感觉创新点只在随机抽取负样本来训练模型,作者提到该模型不像序列标注模型那样,会受到前面序列中错误分类所带来的词性错误依赖性, 但是这是所有基于span的模型都有的优势。另外,作者真的做了很多实验(虽然并不觉得效果很好,但是很充分)!