原文网址:Joint Extraction of Entities and Relations Based on a Novel Tagging Scheme
原文并没有提供代码。
摘要
研究的问题:实体和关系的联合抽取。
本文提出的解决方法:
- (策略)首先提出了一个新颖的标注策略,将联合抽取任务转换为标注问题。
- (模型实现)然后基于提出的标注策略,研究了不同的端到端模型来实现对实体和关系的直接抽取。
实验结果:
- (策略好)在一个公共数据集上进行实验的结果表明,提出的标注策略比大多数当时的方法更好。
- (模型好)在公共数据集上进行的实验结果表明,本文提出的一个端到端模型的表现达到当时的SOTA。
引言
实体和关系的联合抽取:
- (是什么)从非结构化文本中同时完成对实体和它们之间的语义关系的识别。
- (重要性)实体和关系的联合抽取是知识抽取(knowledge extraction)和自动构建知识库(automatic construction of knowledge base)中的一个重要问题。
从非结构化文本中抽取实体和关系的方法:
传统方法-流水线式方法:
- (是什么)先抽取实体,然后再识别它们之间的关系。
- (优点)这种分离的框架使得任务易于处理,并且每个组件更灵活。
- (缺点)它忽略了两个子任务之间的相关性,每个子任务是一个独立的模型。
实体识别的结果可能会影响关系分类的性能,并且可能导致错误传播。
联合学习方法:
- (是什么)采用单个模型来一起识别实体和关系。
- (优点)相比于流水线式方法,它能够有效整合实体和关系的信息。
在实体和关系抽取任务中,实验结果更好。 (缺点)
- 当时大多数现有的联合学习方法为基于特征的结构化系统,这种联合学习方法要求复杂的特征工程,并且严重依赖其他的NLP工具,这也可能导致错误传播。
- 为了减少特征工程中的人工工作量,最近提出了基于神经网络的端到端方法。虽然联合模型能够在单个模型中表示实体和关系,但仍然是分别抽取实体和关系的步骤,这样存在信息冗余的问题。
本文认为当时的端到端的联合学习方法的局限处为:分别抽取实体和关系这样的策略,导致生成了太多无效信息。通俗的说,先抽取实体,抽取的实体本身存在冗余实体,导致抽取实体间关系也存在冗余信息。
本文提出的方法:
- (idea)任务的目标是抽取出由两个实体和它们之间的关系构成的三元组,本文不分别抽取实体和关系,而是直接对三元组进行建模。
- (方法)基于这样的idea,提出了用端到端模型来实现的标注策略方法。具体地,设计一组包含实体和关系信息的标签,从而将实体和关系的抽取任务转换为标注问题。
- (模型)最近(当时)基于LSTM的端到端模型在各种标注任务上表现得很好,并且LSTM具有能够学习长期依赖的能力,这有利于序列建模任务。因此本文基于提出的标注策略,探究不同的基于LSTM的端到端模型来实现实体和关系的抽取。
此外,本文提出了一种更适合本文设计的特殊标签的基于LSTM的端到端模型。
方法
标注策略
每个词都被赋予了一个包含实体和关系信息的标签。
标签的设计:
- "O"表示"Other",表示该词不属于要抽取的结果。
除了"O"外,其他标签由3部分组成:
- 第一部分为该词在实体中的位置。用"BIES"(Begin, Inside, End, Single)代表一个词在一个实体中的不同位置。
- 第二部分为该词存在的关系类型。从预定义的关系中获取关系类型信息。
- 第三部分为该词在关系中的角色。"1"表示该词属于三元组中第一个实体即subject,"2"表示该词属于三元组中第二个实体即object。
因此,总的标签数量为1 + 4 |R| 2
从标签的设计中也能看出,本文的方法无法解决重叠关系问题,因为这里每个词的标签都只绑定一个关系类型,也就是说,每个词假设了只属于一个三元组,也即每个实体与另一个实体只存在一种关系。
解码方法:
- 将具有相同关系类型的实体结合在一起,从而得到最后的结果。
- 如果一个句子包含多个具有相同关系类型的三元组,遵循就近原则来将两个实体结合为一个实体对。
端到端模型
Bi-LSTM编码层:
在序列标注问题中,Bi-LSTM编码层包含前向lstm层、反向lstm层和拼接层。具体地:
- 首先词嵌入层将以独热向量表示的每个词转换为embedding向量。
- Bi-LSTM编码层以由词嵌入组成的序列作为输入,每个词嵌入经过前向lstm层和反向lstm层后,分别得到具有前向上下文信息的表示和反向上下文信息的表示,通过将每个词嵌入的两个上下文信息的表示进行拼接,得到每个词具有前后向上下文信息的表示。具体公式如下:
Bi-LSTM解码层:
本文提出的模型采用LSTM架构来作为解码层,生成最终的标注序列。具体地:
- 每个词的标注序列表示由前一步预测的标签表示、前一步细胞状态、前一步的隐藏层向量和当前步的Bi-LSTM的输出表示作为LSTM记忆块的输入生成,再通过将LSTM生成的结果喂入一个线性层,最后加上一个softmax层,生成最终的标签概率表示。具体公式如下:
- 每个词的标注序列表示由前一步预测的标签表示、前一步细胞状态、前一步的隐藏层向量和当前步的Bi-LSTM的输出表示作为LSTM记忆块的输入生成,再通过将LSTM生成的结果喂入一个线性层,最后加上一个softmax层,生成最终的标签概率表示。具体公式如下:
偏差目标函数:
本文通过最大化数据的极大似然来训练模型,目标函数的定义如下,其中\alpha是偏执权重,\alpha越大,模型中的关系标签影响越大。
实验
实验设置
实验数据集:公共数据集NYT
。
评估:
- (评价指标)采用标准的精确度(Prec),召回率(Rec)和F1分数来评估结果。
- (评判标准)由于本文的模型并没有使用实体类型标签来训练模型,因此在进行评估时也没有考虑实体类型。
一个三元组的两个实体对应的头偏移量和它们之间的关系类型都正确时,则认为该三元组预测正确。 - (用于评估的结果获取方法)每个实验执行10次,以平均结果作为最终结果。
超参数:
- 编码部分的词嵌入用word2vec初始化。
- 词嵌入维度为300。
- 在嵌入层用dropout正则化网络,dropout率为0.5。
- 编码部分的lstm单元数量为300,解码部分的lstm单元数量为600。
- 偏置参数\alpha为10。
基线:
流水线式方法:
- NER部分都采用CoType方法,RC部分分别采用方法:DS-logistic,LINE,FCM。
联合学习方法:
- DS-Joint
- MultiR
- CoType
基于本文提出的标注策略的不同端到端模型方法:
- LSTM-CRF
- LSTM-LSTM
- LSTM-LSTM-Bias(本文提出的模型)
实验结果
- 总体结果,与所有基线比较,本文提出的模型的表现优于所有其他方法。
- 联合学习方法比流水线式方法结果更好,而联合学习方法中本文提出的模型结果更好,说明本文提出的策略好。
- 联合学习中的端到端方法比其他方法的精确度更高,而本文提出的模型的结果数据更平衡,说明本文提出的偏置权重目标函数好。
其他分析
错误分析:
- 实验设置:为了找出影响端到端模型结果的因素,本文分析了预测三元组中的每个元素的性能。如下表所示,其中E1和E2分别表示预测的每个实体的性能。这里之所以只展示了三元组的实体部分而没有展示(E1,R,E2),是因为前面的实验结果表就是(E1,R,E2)的结果。
结果:
- 只看实体部分,实体对相比于单个实体具有更高的精确度,但更低的召回率。
- 实体对性能与三元组性能比较,性能提高了3%。
分析:
- 结果1说明预测的一些实体并没有构成实体对。也就是说,模型只是获得了E1而没有找到对应的E2,或者是模型只是获得了E2而没有找到对应的E1。这就导致预测的单个实体比实体对多。从而导致这样的结果。
- 表明有3%的测试数据预测的关系类型是错误的。
偏差损失分析:
相比于其他同样采用本文提出的标注策略的端到端模型,本文提出的模型通过设计了偏差损失,使得本模型偏向于关系标签,从而增强了实体之间的关联。
实验设置:
- 为了进一步分析偏差目标函数的影响,本文将每个端到端方法预测的单个实体的比例进行可视化。单个实体是指无法找到对应的另一个实体的实体。
- 本文还将偏差参数从1更改到20。
结果
- 不论是E1还是E2,本模型在单个实体上获得了相对较低的比例。
- 如果偏差参数太大,会影响精确度;偏差参数太小,会影响召回率。当偏差参数为10时,可以平衡精确度和召回率并能得到最好的F1分数。
案例分析:
- 实验设置:观察本文提出的端到端方法的预测结果,然后选择几个具有代表性的示例来说明方法的优缺点。
结果:
- 示例1的两个相互关联的实体之间的距离相距很远,它们之间的关联性更难识别出。本文方法能够识别出。说明本文的偏置损失策略能够有效增强实体之间的关联性。
- 示例2,两个端到端方法都提取出错。但这个问题可以通过增加这类样本得以解决。
- 示例3,两个端到端方法都提取出错,但本模型相比于另一个方法能够提取出正确的实体对和关系,只是两个实体的角色出错,表明本方法在区分两个实体之间的关系方面仍有待改进。
示例3在一定程度上说明了,实体中的subject和object不应该是直接抽取出来的,因为本质上每个实体都可以既作为subject和object,只是在不同关系下,才限定了哪个实体作为subject,哪个实体作为object。因此,区分实体到底是subject和object,应该在关系下才能更好的区别出来。