分类:NER以及RE的负采样方法

来自Big Physics
Luohuiying讨论 | 贡献2021年12月14日 (二) 14:46的版本

负采样

自然语言处理领域中,判断两个单词是不是一对上下文词(context)与目标词(target),如果是一对,则是正样本,如果不是一对,则是负样本。

采样得到一个上下文词和一个目标词,生成一个正样本(positive example),生成一个负样本(negative example),则是用与正样本相同的上下文词,再在字典中随机选择一个单词,这就是负采样(negative sampling)。

比如给定一句话“这是去上学的班车”,则对这句话进行正采样,得到上下文“上”和目标词“学”,则这两个字就是正样本。 负样本的采样需要选定同样的“上”,然后在训练的字典中任意取另一个字,“梦”、“目”,这一对就构成负样本。 训练需要正样本和负样本同时存在。

NER的负采样

  • 1. Empirical Analysis of Unlabeled Entity Problem in Named Entity Recognition

未标注会造成两类问题:1)降低正样本量。2)将未标注视为负样本。1 可以通过 adaptive pretrain 缓解,而 2 后果却更严重,会对于模型造成误导,怎么消除这种误导呢,那就是负采样。 本文 NER 框架使用了片段排列分类的框架,即每个片段都会有一个实体类型进行分类,也更适合负采样。

负采样过程如下图所示:

Negative Sampling.jpg

我们将已标注实体集合记为y,则可以得到除y之外的其它实体集合Sk(包括负实例和未标注实体)

Sk={(i, j) | 1 ≤ i ≤ j ≤ n;∃ l ∈ L; (i, j, l) ∈ y}

Sk中的所有span都会被标记成O,正如图中所表示那样,得到

Sk={(1, 1, O) (1, 3, O),……,(6, 7, O) (7, 7, O)}

再从k中进行均匀分布采样,得到y'={(3, 5, O),(7, 7, O)},作为负采样样本加入模型进行训练

为了保证使用本方法进行负采样的结果能够有效降低未标注样本对于模型的影响,同时还需要进行loss函数的修改,损失函数如下:

LOSS.jpg

论文也通过公式证明:通过负采样,可以将未标注实体当作负样本训练、维持在一个很低水平。

Prove.jpg

上述公式表明:通过负采样,不将未标注实体作为负样本的概率大于 1-2/(n-5),可以大幅缓解未标注实体导致NER指标下降。


  • 2. Rethinking Negative Sampling for Unlabeled Entity Problem in Named Entity Recognition


实验证明,第一篇论文中提到的负采样方法可以在一定程度上降低未标注实体对于模型性能的负面影响,但是仍存在一些问题:

  • 最终只有一小部分负实例被抽取用作模型训练
  • 当未标记实体问题严重(未标记实体占比过大)时,这种方法并不能起到很好的效果————误采样率过高

为了解决这些问题,本论文的研究人员基于上篇论文的负采样方法,提出了基于加权抽样的负采样方法。

简单来说,就是在上述方法(span-level的数据标注,生成Sk的集合)的基础上,将均分分布抽样改成了加权抽样,这样可以使y'集合中的未标注实体进一步降低。

具体加权抽样方法如下:

首先需要知道两个权重参数:uij 和 vij

U ij.jpg V ij.jpg

不确定性得分uij 较高表示模型对其预测的分数很低,表明候选(i,j,O)很可能是一个负实例; 非实体分数vij 较高意味着候选(i,j,O)是未标记实体的可能性较低。

在此基础上,研究人员设计了一个加权抽样分布来代替负抽样中使用的均匀抽样分布: Weighted.jpg

其中µ≥1放大非实体分数vij 的影响,T≥1控制抽样分布的平滑性。设置高的µ以确保对未标记实体具有良好的鲁棒性。T安排为√(C−c),其中C为训练epoch的个数,0≤c<C为当前epoch的个数。由于NER模型在训练初期是不准确的,所以更均匀的抽样分布(即更高的T)更安全。

理想情况下,这种加权的抽样分布为负实例设置高概率,为未标记实体设置低概率。前文中提到的问题就可以很好地解决。此外,两个权重参数:uij 和 vij是通过NER模型自适应学习的,不需要借助外部资源。

本分类目前不含有任何页面或媒体文件。