其他分享
首页 > 其他分享> > 论文阅读-Distantly Supervised Named Entity Recognition via Confidence-Based Multi-Class Positive and Unl

论文阅读-Distantly Supervised Named Entity Recognition via Confidence-Based Multi-Class Positive and Unl

作者:互联网

题目:基于置信度的多类正无标记学习的远程监督命名实体识别 论文地址:https://openreview.net/pdf?id=0gYkM3fk9Bb 源码地址:https://github.com/kangISU/Conf-MPU-DS-NER 摘要:

   本文研究了远程监控下的命名实体识别问题。由于外部词典和/或知识库的不完整性,这种远距离注释的训练数据通常存在较高的误报率。为此,我们通过多类正和无标记(MPU)学习建立了远程监督的NER(DS-NER)问题,并提出了一种理论上和实践上新颖的基于置信度的MPU(Conf-MPU)方法。为了处理不完整的注释,Conf MPU包括两个步骤。首先,估计作为实体令牌的每个令牌的置信度得分。然后,将所提出的Conf-MPU风险估计应用于训练多类分类器。在两个由各种外部知识标记的基准数据集上进行的深入实验表明,与现有的DS-NER方法相比,所提出的Conf-MPU具有优越性。

实验:

  我们评估了所提出的Conf-MPU,并与其他基线方法进行了比较

1:实验装置

1.1培训数据和评估指标  

我们考虑了来自不同领域的两个基准NER数据集:

(1)BC5CDR来自生物医学领域。它由1500篇文章组成,包含15935种化学物质和12852种疾病;
(2) CoNLL2003是一个著名的开放域NER数据集。它由1393篇英文新闻文章组成,包含10059篇PER、10645篇LOC、9323篇ORG和5062篇杂项提及
  我们获得了以下远距离标记的数据集:

(1)BC5CDR(Big Dict)使用Shang等人(2018)发布的词典1进行标记;

(2) BC5CDR(Small Dict)使用一个较小的字典进行标记,该字典只从上一个字典中选择前20%的条目;

(3) CoNLL2003(KB)2由知识库Wikidata标记,由Liang等人(2020)发布;

(4) CoNLL2003(Dict)使用Peng等人(2019)3发布的精练词典进行标注。对于字典标签,我们使用Peng等人(2019)提出的严格字符串匹配算法。Liang等人(2020)提供了知识库标记的过程。
所有DS-NER方法都在相同的远程标记训练数据上进行训练,并在已发布的人类注释测试集上评估跨度水平精度、召回率和F1分数。

1.2基线方法

  我们将所提出的Conf-MPU与不同的基线方法进行比较。
  1)完全监督的方法。
    我们在两个基准数据集上展示了全监督方法的最新性能(SOTA),分别是BC5CDR上的Wang等人(2021年)和CoNLL2003上的Wang等人(2020年)。对于SOTA方法,我们报告了其原始论文的结果。我们还评估了在完全监督环境下使用的BiLSTM和BERT模型。该组中的性能作为上限参考。
  2)远程监督的方法。
    我们考虑以下远程监督的NER方法:

    (1)Dict/KB匹配直接使用字典或知识库远程标记测试集,本文将其作为参考;

    (2) AutoNER(Shang等人,2018)使用“平局或破裂”机制训练模型,以检测实体边界,然后预测每个候选实体的实体类型;

    (3) BERTES(Liang等人,2020年)采用提前停止,以防止BERT过度适应嘈杂的远距离标签;

    (4) BNPU(Peng et al.,2019)建立在LBiLSTM(BNPULBiLSTM)的基础上,对每个实体类型应用二元PU学习风险估计,将MAE作为损失函数,然后推断出最终类型;
    (5) MPU是建议的Conf MPU的前身,该MPU使用公式5计算经验风险。我们还基于BERT和LBiLSTM模型构建了MPU,表示为MPUBERT和MPULBiLSTM。请注意,Peng等人(2019)的完整模型;Liang等人(2020年)将自我训练作为后处理步骤,此处省略了这些步骤。我们重点评估每个模型在DS-NER任务中处理不完整标记问题的能力。

1.3方法设置

  为了在远程监督环境下评估DS-NER方法在实际使用中的有效性,我们在培训过程的任何阶段都不使用任何人类注释验证或测试集。

  训练停止标准如下:基于BiLSTM的方法有100个阶段,基于BERT的方法有5个阶段。我们报告最终模型的性能,而不是最佳检查点。因此,基线的性能与其报告的结果不同。我们使用AutoNER和BERT-ES发布的代码来重现他们的结果。对于其他方法,我们根据实现报告结果。基于BiLSTM的模型对BC5CDR使用预训练的生物嵌入,对CoNLL2003使用预训练的斯坦福大学Glove5嵌入。基于伯特的模型使用预训练的biobert-base-cased-v1。BC5CDR为16,CoNLL2003为bert-base-cased7。唯一的例外是,BERT-ES在最初的实现中使用了用于CoNLL2003的roberta-base8。

2.实验结果

2.1主要结果

我们首先检查远程标记的训练数据的质量。

表1显示了远程标记训练数据的详细评估。这些结果验证了之前工作中提到的假设,即字典生成的远程标签通常具有高精度但低召回率。
表2给出了测试集上所有方法的整体跨度水平精度、召回率和F1分数。

与基线方法相比,建议的Conf MPU显示出明显的优势,尤其是与LBiLSTM一起使用时。

在这四个数据集上,几乎所有远程监督基线的性能都优于Dict/KB匹配,但BNPU和MPU的少数情况除外,这将在后面讨论。

在基线方法中,AutoNER和BERT-ES在词典质量方面表现出很强的相关性。

在BC5CDR(Small Dict)上,词典覆盖率极低,这两种方法在召回率方面几乎没有改善。

相比之下,所有基于PU学习的方法在所有数据集上都表现出显著更高的召回率,显示出对不完整标记问题更具鲁棒性。然而,我们可以观察到,与它们在BC5CDR(小Dict)上的性能相比,BNPU和MPU在使用高覆盖率字典标记的BC5CDR(大Dict)上的精度较低。我们将扩展第5.2.2节中的讨论。

结果表明,与BNPU和MPU相比,Conf-MPU可以显著提高准确率,同时在所有数据集上保持较高的召回率,这表明Conf-MPU可以显著缓解估计偏差。我们将引导读者阅读附录,详细评估先前评估和信心评分评估。

 3.我的实验结果

该实验结果基于readme提到的的所有模型example2在kaggle执行之后得到的结果

1)Conf-mpu

#####For Conf-MPU
Example 2: train on CoNLL2003_Dict_1.0
> ```
> Step 1:!python '../input/ner-confmpu/Conf-MPU-DS-NER-master/pu_main.py' --type bnPU --dataset CoNLL2003_Dict_1.0 --flag Entity --m 15 --determine_entity True --epochs 100 
> Step 2:!python '../input/ner-confmpu/Conf-MPU-DS-NER-master/pu_main.py' --type bnPU --dataset CoNLL2003_Dict_1.0 --add_probs True --flag ALL --added_suffix entity_prob

> Step 3:!python '../input/ner-confmpu/Conf-MPU-DS-NER-master/pu_main.py' --type conf_mPU --dataset CoNLL2003_Dict_1.0 --flag ALL --suffix entity_prob --m 15 --eta 0.5 --lr 0.0005 --loss MAE --epochs 100
>
```
Note:
1. Training data with probabilities of each token being an entity token have been already put in each dataset folder. You can skip step 1 and 2.
2. Hyper-parameters in commands: `m` is a class weight to put more weight on the risk of positive data; `eta` is the threshold `\tau` in Conf-MPU risk formula. You can use the same `m` value for other
datasets distantly labeled by various dictionaries (i.e., `m = 28` for BC5CDR datasets, and `m = 15` for CoNLL2003 datasets).

2)mpu

### For MPU:
Example 2: train on CoNLL2003_Dict_1.0
> ```
>!python '../input/ner-confmpu/Conf-MPU-DS-NER-master/pu_main.py' --type mPU --dataset CoNLL2003_Dict_1.0 --flag ALL --m 15 --lr 0.0005 --loss MAE --epochs 100 > ``

3)mpn

### For MPN:
> #### Example 2: train on CoNLL2003_Dict_0.2
> ```
> !python '../input/ner-confmpu/Conf-MPU-DS-NER-master/pu_main.py' --type mPN --dataset CoNLL2003_Dict_0.2 --flag ALL --m 15 --lr 0.0005 --loss MAE --epochs 100 > ```

4)Bnpu

### For BNPU:
> #### Example 2: train on CoNLL2003_Dict_1.0
> ```
> Step 1: !python '../input/ner-confmpu/Conf-MPU-DS-NER-master/pu_main.py' --type bnPU --dataset CoNLL2003_Dict_1.0 --flag PER --m 32 --epochs 100
> Step 2: !python '../input/ner-confmpu/Conf-MPU-DS-NER-master/pu_main.py' --type bnPU --dataset CoNLL2003_Dict_1.0 --flag LOC --m 25 --epochs 100
> Step 3: !python '../input/ner-confmpu/Conf-MPU-DS-NER-master/pu_main.py' --type bnPU --dataset CoNLL2003_Dict_1.0 --flag ORG --m 28 --epochs 100
> Step 4: !python '../input/ner-confmpu/Conf-MPU-DS-NER-master/pu_main.py' --type bnPU --dataset CoNLL2003_Dict_1.0 --flag MISC --m 62 --epochs 100
> Step 5: !python '../input/ner-confmpu/Conf-MPU-DS-NER-master/pu_main.py' --type bnPU --dataset CoNLL2003_Dict_1.0 --inference True
> ```
> Note: If use the same `m` value for all entity types of CoNLL2003 datasets, BNPU performs worse than individually setting the `m` value for each
 type.

step1:

step2:

step3:

step4:

step5:(明天再看看)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 



标签:Named,via,Based,--,CoNLL2003,MPU,Dict,Conf,NER
来源: https://www.cnblogs.com/Y-flower/p/16203999.html