stanford nlp实现实体关系识别 实体分类 nlp_数据

研究背景

实体分类(entity typing)旨在为实体指定类型,使机器可以更好地理解自然语言,并有利于实体链接和文本分类等下游任务。传统的实体分类范式存在两个问题:1. 它无法给实体分配预定义类型集以外的类型;2. 长尾类型存在很少的训练样本,因此难以解决少/零样本问题。

为了解决这些问题,本文提出了GET,一种新的生成式实体分类范式,通过预训练语言模型(PLM)为文本实体生成多个类型。图1是基于生成范式和分类范式对文本进行实体分类的结果展示图:

stanford nlp实现实体关系识别 实体分类 nlp_数据集_02

▲ 图1:基于生成式和分类范式的实体分类结果图

可以发现,PLM 可以为实体生成预定义类型集以外的类型,这些类型包含更丰富的语义信息。同时由于在预训练阶段已经学习到大量的知识,PLM 能够进行概念推理并有效解决少/零样本问题。

然而 PLM 存在的问题是无论最终是否在细粒度数据集上进行微调,都倾向于生成高频但粗粒度的类型,因此该范式引入课程学习(CL)的思想,仅需为模型提供少量人工标注数据和大量自动生成的低质量数据组成的异构数据,采用自步学习的方法,依靠课程对类型粒度以及数据异构型的理解自我调整学习进度,使 PLM 生成高质量的细粒度类型。

通过对不同语言和下游任务的数据进行的大量实验,证明了我们的 GET 模型优于 SOTA 的实体分类模型。该工作目前已被 EMNLP 2022 接收,论文和代码链接如下:

stanford nlp实现实体关系识别 实体分类 nlp_细粒度_03

论文标题:

Generative Entity Typing with Curriculum Learning

论文链接:

https://arxiv.org/abs/2210.02914

代码链接:

https://github.com/siyuyuan/GET

stanford nlp实现实体关系识别 实体分类 nlp_数据集_04

生成式实体分类框架

2.1 问题建模

针对给定的一段文本 和其中提到的实体 ,GET需要为每个   生成类型集 , 是基于 上下文生成的类型。

2.2 模型框架

我们的模型框架由 prompt 构建、课程构建以及基于课程的模型训练构成。图2是基于课程学习的生成式实体分类框架图:

stanford nlp实现实体关系识别 实体分类 nlp_细粒度_05

▲ 图2:基于课程学习的生成式实体分类框架图

2.1.1 prompt 构建

表 1 是基于 Hearst patterns 构建的 prompts,每个输入文本 X 与通过实体 M 构造的 prompt 相连作为模型的 input_data,要求 PLM 填充 prompt 中的空白。例如:输入“In the early 1980s, P&G tried to launch here a concentrated detergent under the Ariel brand name that it markets in Europe. P&G is a ”,输出“large detergent company”,“large detergent manufacturer”和“company”作为实体“P&G”的类型。

stanford nlp实现实体关系识别 实体分类 nlp_细粒度_06

▲ 表1:基于Hearst patterns构造的prompt

2.2.2 课程构建

课程学习需要估计样本难度来确定使用样本进行模型训练的顺序,采取先简单后困难的顺序进行学习。首先,我们根据自动生成的数据类型的长度生成两个大小相同的训练样本子集:子集 A 的类型长度为 1,子集 B 的类型长度 ≥2,然后分别在 A 和 B 上训练 T5 并记录 loss。如图 4 所示,子集 B 具有更弱的收敛性和更高的交叉熵损失,这表明 PLM 更难拟合细粒度类型的训练样本。

stanford nlp实现实体关系识别 实体分类 nlp_细粒度_07

▲ 图3:CE损失对比图

因此我们从维基百科中收集了 10000 篇中文和英文摘要,从中随机选择 500 个样本作为测试集,将剩余部分根据粒度类型划分成两个子集 、,其中 类型长度为 1, 类型长度 ≥ 2。表 2 描述了实体类型数据集 BNN,FIGER 和 Ultra fine 和 GT 的数据信息,人工注释数据通常含有超细粒度数据,因此我们从四个数据集中收集人工注释数据组成 。

stanford nlp实现实体关系识别 实体分类 nlp_数据集_08

▲ 表2:实体类型数据集

整个训练数据表示为:  

stanford nlp实现实体关系识别 实体分类 nlp_数据集_09

每个样本可表示为:

stanford nlp实现实体关系识别 实体分类 nlp_数据_10

其中 是训练样本大小,根据固定的课程说明,CL 可以控制用于训练的数据顺序,即从 到 再到 。

2.2.3 基于课程的模型训练

我们采用 T5 作为 backbone 模型来填充输入文本的空白,采用 beam search 生成最可能的候选并保留置信分数大于 0.5 的类型。该实验使用 函数计算给定样本真实类型 与预测类型 之间的 cost。同时,我们将预定课程顺序以及类型粒度作为先验知识,首先 函数为属于不同子集的样本分配不同的权重,确保 CL 按照预定的课程进行。

stanford nlp实现实体关系识别 实体分类 nlp_数据集_11

然后增加细粒度样本的权重,使得模型更加关注这些数据。 代表了给定样本最终的权重:

stanford nlp实现实体关系识别 实体分类 nlp_细粒度_12

最终,每个样本 的损失函数定义为:

stanford nlp实现实体关系识别 实体分类 nlp_数据_13

考虑到根据预定义课程进行模型训练可能会忽略学习过程的反馈,我们采用自步学习让模型根据 loss 的反馈自我调整,将课程学习的目标定义为:

stanford nlp实现实体关系识别 实体分类 nlp_细粒度_14

其中 用于样本选择, 设置的 时,代表当前样本 loss 较小,是简单的样本,因此该样本会被用于模型训练,

stanford nlp实现实体关系识别 实体分类 nlp_数据_15

同时定义 函数用来防止过拟合,

stanford nlp实现实体关系识别 实体分类 nlp_细粒度_16

实验过程中,我们通过 不断更新  , 使得样本 loss 大的样本逐渐被加入训练过程中,并采用 ACS 实现 SPL,进行基于课程的模型训练。

stanford nlp实现实体关系识别 实体分类 nlp_数据集_17

实验结果

3.1 实验一

我们将 GET 模型与 BNN,FIGER 和 Ultra-Fine 数据集的 baseline 进行比较,采用 CT#(为实体分配的正确类型数),Precision、Recall、F1 作为评价指标,由于无法提前知道根据输入文本生成的所有正确类型,Recall 和 F1 均采用 R-Recall(相对 Recall)和 R-R1(相对 F1),我们定义 CTS# 是所有模型获得的新类型综述,,。

实现结果如表 3 所示,对于 BNN,GET 模型显著改进了 Precision;对于 FIGER,GET 模型能生成比 baseline 更多的实体类型;由表 4 可知,对于 Ultra-Fine,GET 模型大大提高了 Precision 并涵盖了更多的实体类型。

stanford nlp实现实体关系识别 实体分类 nlp_数据_18

▲ 表3:GET模型与baseline在BNN和FIGER数据集上的结果对比

stanford nlp实现实体关系识别 实体分类 nlp_细粒度_19

▲ 表4:GET模型与baseline在Ultra-Fine数据集上的结果对比

同时,GET 模型具有生成预定义类型集以外新类型的能力,MaNew 是在预定义类型集中生成的类型总数,MiNew 是每个实例的人工注释类型集(golden labeled set)之外生成的类型总数,R.New 是每个样本新生成类型的比率。列出的结果基于不同数据集中的测试集,如表 5 所示,我们的模型可以生成大量 golden labeled set 中没有的类型,增加实体类型的多样性。

stanford nlp实现实体关系识别 实体分类 nlp_数据集_20

▲ 表5:GET模型在不同数据集上生成新类型的数量和比率

3.2 实验二

我们还进行了消融实验,将模型与采用 FT,PLC,没有先验知识的 SPL(SPL w/o PK)的模型进行比较,其中 FT 直接在训练数据上进行微调,PCL 采用固定的课程指导模型学习,SPL w/o PK 采用无先验知识的 SPL。如表 6 所示,PCL 和 SPL 相对于 FT 能够生成更多实体类型且具有更多的细粒度类型,验证了 CL 的有效性。

stanford nlp实现实体关系识别 实体分类 nlp_细粒度_21

▲ 表6:消融实验结果

同样由表 6 可知,SPL 相对于 PCL 能够生成更多实体类型。我们还记录每个 epoch 中训练样本的比率,如图 5 所示,SPL 逐步加入新的数据来训练模型,每一个子集的训练都可以看作预训练的过程,有助于后一个子集训练的正规化和模型优化,因此 SPL 可以更好指导模型找到全局最小损失并使其更具普遍性,证明了 CL 中 SPL 相对于 PCL 的优越性。

stanford nlp实现实体关系识别 实体分类 nlp_数据_22

▲ 图4:训练样本比率图

同时,从表 6 还可以看出先验知识有助于模型生成更多实体类型,同时如图 6 所示,GET 模型会生成更多细粒度和高质量的类型,这是因为模型考虑了类型长度,给细粒度类型数据更高的权重,使得模型更加关注细粒度类型,验证了先验知识的有效性。

stanford nlp实现实体关系识别 实体分类 nlp_细粒度_23

▲ 图5:不同方法中长度=1和长度≥2的类型比率

3.3 实验三

我们在短文本分类和实体链接等任务进行了实验,证明 GET 模型生成的类型可以促进下游任务。我们在 NLPCC2017 数据集中进行了实验,首先使用 NER 模型来识别文本中的实体,并直接将 GET模型应用于 NLPCC2017 数据集,以生成实体的类型。

然后选择 Bi-LSTM 实现分类。我们还收集了具有代表性的 KG CN-DBpedia 中相应类型的实体进行比较。表 7 的结果表明外部知识提高了分类性能,并且由 GET 模型生成的类型比直接从 KG 获得的类型更有效。

stanford nlp实现实体关系识别 实体分类 nlp_数据集_24

▲ 表7:基于Bi-LSTM的无/有不同外部知识的短文本分类结果

代表性实体链接模型 DCA-SL(Yang et al,2019)采用 KG 中的实体描述和三元组作为外部知识,以提高模型在实体链接任务中的性能。为了证明我们的模型生成的类型是高质量的,我们首先采用我们的模型为基于文本的实体生成类型。然后我们用生成的类型替换 KG 中原始三元组中的类型。

表 8 的结果表明,GET 模型生成的类型可以有效地提高 DCA-SL 的性能,这表明我们生成的实体类型具有较高的质量和意义。

stanford nlp实现实体关系识别 实体分类 nlp_细粒度_25

▲ 表8:使用不同外部知识的模型结果对比

stanford nlp实现实体关系识别 实体分类 nlp_数据_26

总结

本文中,我们提出了一种新的实体类型生成范式,采用经过 SPL 课程学习训练的生成式 PLM。与传统的实体分类方法相比,我们的模型可以为给定的实体生成超出预定义类型集的新类型。我们在几个基准数据集上的大量实验证明,SPL 课程学习以及引入类型长度和子集顺序的先验知识有助于为实体生成更高质量的细粒度类型。