前言



  • 论文地址
  • 望各位读者审慎阅读。


这是一篇你绝对能看懂的硬文!
这是一篇你绝对能看懂的硬文!
这是一篇你绝对能看懂的硬文!


是不是感觉​​NER​​​领域效果提升太过困难?最近一篇来自Amazon的文章提出使用强弱标签结合的方式来解决NER的问题。立足更具现实的数据情况(强标签数据少,弱标签数据多),本文不是第一个提出使用强弱标签数据结合的方式来解决NER问题,但实验显示在​​E-commerce NER​​​ 和 ​​Biomedical NER​​ 上,该方法具有一定的效果。

0. 定义的变量


论文阅读《Named Entity Recognition with Small Strongly Labeled and Large Weakly Labeled Data》_自然语言处理

1. 文章讲什么?

现实世界的场景是:少量的强标签数据(正确地人工标注数据)和大量的弱标签数据。但是之前的模型要么是大量的人工标签数据(不现实&难以为继);大量的弱标签数据(模型效果不好)。于是文章采取一种折中的办法,使用少量的强标签数据结合大量的弱标签训练模型。

2. 文章做了什么?

  • 采用少量的强标签和大量的弱标签数据联合分阶段训练模型

3. 文章怎么做的?

在看文章的细节架构之前,看一下模型训练的整个过程。论文阅读《Named Entity Recognition with Small Strongly Labeled and Large Weakly Labeled Data》_ide_02

3.1 使用少量的强标签数据&大量的弱标签数据


  • 在stage 1中会使用无标签数据进行预训练
  • 在stage 2中会使用大量的弱标签数据。stage 2中会使用弱标签数据进行一个补全操作,得到较为完善的弱标签;
  • 在stage 2/3 中会使用少量的强标签数据。stage 2 中使用强标签数据进行预训练;stage 3中使用强标签数据进行微调。

3.2 分阶段看干了什么

3.2.1 ​​stage 1​

利用无标签数据预训练,预训练的方式是MLM。模型从朴素BERT变成了 ​​In-Domain BERT​

3.2.2 ​​stage 2​


  • 利用领域内知识将无标签数据转换成弱标签数据。
  • 接着使用 ​​In-Domain BERT​​结合强标签数据监督训练,得到模型​​Initial BERT-CRF​
  • 使用上面得到的​​Initial BERT-CRF​​ 做一个 ​​Weak Label Comletion​​ 操作,这个操作主要是结合 ​​Initial BERT-CRF​​得到的预测值和之前得到的弱标签值。公式如下:
    论文阅读《Named Entity Recognition with Small Strongly Labeled and Large Weakly Labeled Data》_自然语言处理_03
  • 根据completion之后的弱标签数据,可以在​​Initial BERT-CRF​​的基础上进行训练得到​​Pre-trained BERT-CRF​​ 针对这里的训练,作者设计了一个​​Noise-Aware Loss Function​​。其主要思想是:
    根据置信度判断生成的标签效果,进而设计出一个损失函数。这里的置信度生成是根据​​histogram binning​​ (Zadronzny and Elkan, 2001) 来做到的。​​Noise-Aware Loss Function​​ 的表达式如下:
    论文阅读《Named Entity Recognition with Small Strongly Labeled and Large Weakly Labeled Data》_ide_04

论文阅读《Named Entity Recognition with Small Strongly Labeled and Large Weakly Labeled Data》_ide_05


论文阅读《Named Entity Recognition with Small Strongly Labeled and Large Weakly Labeled Data》_人工智能_06

这个公式相当于是一个求期望的过程:论文阅读《Named Entity Recognition with Small Strongly Labeled and Large Weakly Labeled Data》_ide_07

3.2.3 ​​stage 3​

  • 使用强标签数据在​​Pre-trained BERT-CRF​​上监督训练,得到最后的​​BERT-CRF​

4. ​​cofidence Estimation​​

文章的一个亮点就是使用 ​​confidence estimation​​设计一个损失函数,也就是下面这个公式中的最后一行:

论文阅读《Named Entity Recognition with Small Strongly Labeled and Large Weakly Labeled Data》_ide_08

论文阅读《Named Entity Recognition with Small Strongly Labeled and Large Weakly Labeled Data》_人工智能_09

接着论文里使用​​historgram bin​​的方式来估计 P ^ ( Y ~ c = Y ~ ∣ X ~ ) \hat P (\widetilde Y^c = \widetilde Y|\widetilde X) P^(Y c=Y ∣X ) 的值。这个估计的步骤如下:


step 1: 单独从样本集中分割出一个 ​​validation set​​。根据这些样本和我们训练好的模型,通过 CRF以及​​Viterbi decoding​​,生成一个概率直方图;
论文阅读《Named Entity Recognition with Small Strongly Labeled and Large Weakly Labeled Data》_ide_10




step 2:将 Y ~ p \widetilde Y^p Y p通过上述生成的概率直方图得到最后的估计的置信度,即​​confidence estimation​​操作。


5. 个人感受

基于强弱标签数据结合的方式,利用多阶段训练出一个更优的模型。每个不同的阶段利用不同类型的标签数据(斗胆猜测一下:这个模型可能是作者实习时做的一个工程项目,然后抽象化之后投出来的一篇文章,因为怎么看都觉得这篇文章的工程属性更强。)

最后再总结一下本文值得借鉴的几个地方:


  • 学习利用​​historgram bin​​进行置信度评测的方法。这种方法在模型校正上很有用处。
  • 立足实际问题,提出一个工程上有效的模型,再把该模型抽象化,就是一篇完美的paper啦,这样还怕中不了ACL吗?