文章目录
- abstract
- 1 Introduction
- 2. Proposed Approach
- 3.实验
- 3.1数据准备
- 3.2 Experiment Settings
- 3.4 分析
- 3.4.1 BIO embedding
- 3.4.2 Effect of Positive/Negative Instance Ratio
- 3.4.3 Effect of Loss Function w/o Multi-tasking
- 4 Related work
- 5 结论
Ye, W., et al. (2019). Exploiting Entity BIO Tag Embeddings and Multi-task Learning for Relation Extraction with Imbalanced Data. Proceedings ofthe 57th Annual Meeting ofthe Association for Computational Linguistics.
abstract
在实际情况下,关系提取需要首先识别具有关系的实体对,然后分配正确的关系类。但是,上下文(负实例)中非关系实体对的数量通常远远超过其他实体(正实例),这会对模型的性能产生负面影响。为了缓解这个问题,我们提出了一种多任务体系结构,该体系结构共同训练模型以执行具有交叉熵损失的关系识别和具有等级损失的关系分类。同时,我们观察到一个句子可能具有多个实体和关系提及,并且实体在句子中出现的模式可能包含有用的语义信息,这些信息可用于区分正例和反例。因此,我们进一步将来自命名实体识别任务的按字符/按词的BIO标签的嵌入合并到字符/词的嵌入中,以丰富输入表示。实验结果表明,我们提出的方法可以显着改善基线模型的性能,F1分数的绝对增加超过10%,并且优于ACE 2005中文和英文语料库中的最新模型。此外,BIO标签嵌入特别有效,也可用于改进其他模型。
- 动机:
- 不平衡数据: 没有关系的占大多数,会导致模型趋向于预测无关系
- 本文:多任务体系结构
- 共同训练模型
- 关系识别:交叉熵
- 关系分类:rank loss
- 共同训练模型
- NER的序列标注–embedding(BIO)
- 本文:多任务体系结构
- 不平衡数据: 没有关系的占大多数,会导致模型趋向于预测无关系
1 Introduction
关系提取旨在从给定的实例(实体对和上下文中的对应文本)中提取语义关系,这是信息提取中一项重要且具有挑战性的任务。它是许多下游任务(例如问题解答和知识图构建)的跳板。
传统上,研究人员主要使用基于特征的方法(Kambhatla,2004; Boschee等,2005; GuoDong等,2005; Jiang和Zhai,2007; Chan和Roth,2010; Sun等,2011; Nguyen and Grishman,2014)或基于核的方法(Zelenko等,2003; Culotta和Sorensen,2004; Bunescu和Mooney,2005; Mooney和Bunescu,2006; Zhang等,2006; Zhou等,2007; Giuliano等) (2007年; Qian等人,2008年; Nguyen等人,2009年; Sun和Han,2014年)进行关系提取,这种关系提取在很大程度上依赖于手工功能和现有的自然语言处理(NLP)工具。最近,深度学习模型包括卷积神经网络(CNN)(Liu等人,2013; Zeng等人,2014; Nguyen和Grishman,2015; Zeng等人,2015; dos Santos等人,2015; Lin等人(2016)和递归神经网络(RNN)(Miwa and Bansal,2016; Zhou等人,2016; She等人,2018)w / o注意机制的变体已广泛应用于关系提取并实现了成就斐然。
- 关系抽取
-
早期:靠手工特征和nlp工具
- 基于特征的方法
- (Kambhatla, 2004; Boschee et al., 2005; GuoDong et al., 2005; Jiang and Zhai, 2007; Chan and Roth, 2010; Sun et al., 2011; Nguyen and Grishman, 2014)
- 基于核的方法.
- (Zelenko et al., 2003; Culotta and Sorensen, 2004; Bunescu and Mooney, 2005; Mooney and Bunescu, 2006; Zhang et al., 2006; Zhou et al., 2007; Giuliano et al., 2007; Qian et al., 2008; Nguyen et al., 2009; Sun and Han, 2014)
- 基于特征的方法
-
深度学习(及其带注意力机制的变体)
- CNN
- (Liu et al., 2013; Zeng et al., 2014; Nguyen and Grishman, 2015; Zeng et al., 2015; dos Santos et al., 2015; Lin et al., 2016)
- RNN(递归)
- Miwa and Bansal,2016; Zhou等人,2016; She等人,2018)
- CNN
-
不平衡数据的研究
- 多尺寸卷积核:Nguyen and Grishman (2015)
- a pairwise ranking loss:只计算去除Other的阳性实例的得分,提出成对排名损失:dos Santos et al. (2015)
-
常用方法
- 任务划分
- 关系识别(关系有无)
- 关系分类(已经知道有关系,哪个关系
- 或者使用关系Other,将无关系视作Other关系(多)
- 但Other太多,不平衡–困难
- 本文用多任务学习–减轻不平衡问题
- 任务划分
-
预测错误
- FP:负例预测为正例
- FN:正例预测为负例
- TP:正负例没分错,但分错类别了
- ACE 2005中文语料库中:62.80%,30.20%和7.00%,所以区分正负例很重要
-
关系提取任务可以分为两个步骤:确定给定句子中的哪对实体具有关系,以及为所标识的实体对分配正确的关系类。我们将这两个步骤定义为两个相关任务:关系识别和关系分类。如果只需要对保证具有某种预期关系的给定实体进行分类,则将关系提取简化为关系分类(Nguyen和Grishman,2015)。
关系分类的一种变体是引入了新的人工关系类“ Other”。如果数据集中上下文(负实例)中非关系实体对的数量与上下文(正实例)中具有关系的实体对的数量相当,则可以将非关系对视为具有其他关系类。
只有少数研究考虑了过多负面案例的负面影响。Nguyen和Grishman(2015)提出将CNN与多个窗口大小的过滤器一起使用。多斯桑托斯等。 (2015年)专注于通过只计算除其他类之外的关系类的得分来学习阳性实例的共同特征,并提出使用成对排名损失。我们在方法中也采用了这些方法。
对于关系分类,可以将预测误差分为三种类型:1)假阴性-预测阳性实例为阴性; 2)错误肯定-预测否定实例为肯定; 3)错误的关系类别-预测肯定实例为肯定,但分配了错误的关系类别。在训练了一个基线模型以对极不平衡的ACE 2005中文语料库进行关系分类并剖析其预测误差之后,我们发现这三种误差的比例分别为30.20%,62.80%和7.00%。可以想象,要提高模型在这种语料库上的性能,最好集中精力区分正例和负例。
- 本文:CNN+MTL+Tagg:Ye, W., et al. (2019)
- 动机:
- 数据不平衡
- 区分识别正负例很重要
- 先识别再分类比直接分类更容易
- 一个句子有多个关系和实体
- 数据不平衡
- 做法
- 训练一个关系识别与关系分类的联合模型(多任务)
- 关系识别:交叉熵
- 关系分类:rank loss
- 使用BIO-embedding来丰富输入表示
- 实体出现在句子中的模式,可以提供有用的语义信息
- 训练一个关系识别与关系分类的联合模型(多任务)
- 贡献:
- 多任务体系结构
- 1.我们提出了一种多任务体系结构,该体系结构共同训练模型以执行具有交叉熵损失的关系识别和具有等级损失的关系分类任务,从而可以成功减轻具有过多负面实例的负面影响。
- BIO-embedding
- 2.我们结合了NER任务中按字符/按词的BIO标签的嵌入,以丰富输入表示,这不仅对我们的模型而且对其他模型也非常有效。我们认为BIO标签嵌入可能是字符/单词表示的通用部分,就像近年来许多研究人员将使用的实体位置嵌入(Zeng等,2014)一样。
- 多任务体系结构
- 动机:
由于否定实例可能没有太多共同点,因此与仅将肯定实例分类为正确类别相比,区分肯定实例和否定实例更具挑战性。此外,组合的肯定实例总数与否定实例总数相比,比单独的任何单个关系类别的肯定实例更具可比性。基于这些原理,我们建议联合训练模型以执行另一种二进制分类任务(关系识别)以及关系分类,以减轻数据不平衡问题。
大多数现有研究都没有考虑的另一个方面是,如果给定的句子包含多个实体,那么在给定的句子中可能会涉及多个关系。在ACE 2005的中文语料库中,平均每个句子中有4.9个实体和1.34个关系提及。这些实体出现在句子中的模式可以提供有用的语义信息,以区分肯定和否定实例。因此,我们利用命名实体识别(NER)任务中使用的按字符/按词的BIO(开始,内部,外部)标签来丰富输入表示。我们方法的细节将在第2节中介绍。
- ACE 2005中文语料库
- 30.20%FN,62.80%FP和7.00%分类错,所以区分正负例很重要
- 平均每个句子中有4.9个实体和1.34个关系提及
我们对ACE 2005中,英文语料库进行了广泛的实验。结果表明,新颖的多任务体系结构和BIO标签嵌入的结合都可以提高性能,并且配备了这两种模型的模型均达到了最高的F1得分,明显优于最新模型。结果分析表明,我们提出的方法可以成功解决具有大量否定实例的问题。
2. Proposed Approach
我们设计了一种新颖的多任务体系结构,该体系结构将两个相关任务结合在一起:1)关系识别,这是确定给定实体对是否具有关系的二进制分类问题; 2)关系分类,这是确定关系类别的多重分类问题。图1显示了整体架构。
- 本文:Ye, W., et al. (2019)
- 动机:
- 数据不平衡
- 区分识别正负例很重要
- 先识别再分类比直接分类更容易
- 一个句子有多个关系和实体
- 数据不平衡
- 做法
- 训练一个关系识别与关系分类的联合模型(多任务体系结构)
- 关系识别:交叉熵
- 关系分类:rank loss
- 使用BIO-embedding来丰富输入表示
- 实体出现在句子中的模式,可以提供有用的语义信息
- 训练一个关系识别与关系分类的联合模型(多任务体系结构)
- 贡献:
- 多任务体系结构
- 1.我们提出了一种多任务体系结构,该体系结构共同训练模型以执行具有交叉熵损失的关系识别和具有等级损失的关系分类任务,从而可以成功减轻具有过多负面实例的负面影响。
- BIO-embedding
- 2.我们结合了NER任务中按字符/按词的BIO标签的嵌入,以丰富输入表示,这不仅对我们的模型而且对其他模型也非常有效。我们认为BIO标签嵌入可能是字符/单词表示的通用部分,就像近年来许多研究人员将使用的实体位置嵌入(Zeng等,2014)一样。
- 多任务体系结构
- 架构
- 中文:以字处理
- 英文:按单词处理
- 输入:
- 一个句子
- 句子中的实体(多个)
- 目标实体(e1,e2)–想要预测这两个实体之间的关系
- 嵌入:拼接(dw+2dp+dt)
- word-emebdding:随机初始化,dw
- position embedding:与目标实体的相对距离,dp
- BIO embedding:实体的标注序列–嵌入(BIO),dt
- 卷积层
- 多卷积核
- 对每一个卷积核F=[f1,f2,...,fk]F=[f_1,f_2,...,f_k]F=[f1,f2,...,fk](窗口大小k)
- 输入序列长n(句子长)
- 运算:ti=g(Σj=0k−1fj+1Twj+i+b)t_i=g(\Sigma_{j=0}^{k-1}f_{j+1}^Tw_{j+i}+b)ti=g(Σj=0k−1fj+1Twj+i+b)
- 输出的序列T={t1,t2,...,tn−k+1}T=\{t_1,t_2,...,t_{n-k+1}\}T={t1,t2,...,tn−k+1}
- 本文使用了padding保证句子长不变,输出仍为n(表示为c)
- 最大池化:对每个通道池化减少维数
- 输出表示为r,维度为过滤器的总数(卷积核的个数* 每个卷积核的数量)
- 多任务层
- 关系识别:交叉熵
- 正例1,负例-1,
- 预测q(分类器输出)和实际p(one-hot表示)
- 交叉熵:H(p,q)=−Σc∈Cp(c)log(q(c))H(p,q)=-\Sigma_{c\in C}p(c)log(q(c))H(p,q)=−Σc∈Cp(c)log(q(c))
- 损失函数:loss1=−Σ(p(1)log(q(1)+p(0)log(q(0)))loss_1=-\Sigma(p(1)log(q(1)+p(0)log(q(0)))loss1=−Σ(p(1)log(q(1)+p(0)log(q(0)))
- 关系分类:rank loss
- the pairwise ranking loss (dos Santos et al., 2015)
- 得分:sc=rT[Wclasses]cs_c=r^T[W^{classes}]_csc=rT[Wclasses]c
- W^{classes}:要学习的矩阵,对应于class c的列向量,维度=r的维度、
- 上一层的输出句子的表示r,其类别为c的得分
- 损失函数:
- L+=log(1+exp(γ(m+−sy+)))L−=log(1+exp(γ(m−+sy−)))其在正确的类别标签y+,不正确的类别标签y−,m+,m−为边距marginsy+增加L+降低,当sy+>m+时,L+趋近于0sy−减少L−降低,当sy−<−m+时,L−趋近于0鼓励sy+>m+且sy−<−m+L^+=log(1+exp(\gamma(m^+-s_{y^+})))\\ L^-=log(1+exp(\gamma(m^-+s_{y^-})))\\ 其在正确的类别标签y^+,不正确的类别标签y^-,m^+,m^-为边距margin\\ s_{y^+}增加L^+降低,当s_{y^+}>m^+时,L^+趋近于0 s_{y^-}减少L^-降低,当s_{y^-}<-m^+时,L^-趋近于0\\ 鼓励s_{y^+}>m^+且s_{y^-}<-m^+L+=log(1+exp(γ(m+−sy+)))L−=log(1+exp(γ(m−+sy−)))其在正确的类别标签y+,不正确的类别标签y−,m+,m−为边距marginsy+增加L+降低,当sy+>m+时,L+趋近于0sy−减少L−降低,当sy−<−m+时,L−趋近于0鼓励sy+>m+且sy−<−m+
- 对负例,仅计算L−L^-L−
- 正确的类:得分高的
- loss2=Σ(L++L−)loss_2=\Sigma(L^++L^-)loss2=Σ(L++L−)
- 得分:sc=rT[Wclasses]cs_c=r^T[W^{classes}]_csc=rT[Wclasses]c
- the pairwise ranking loss (dos Santos et al., 2015)
- 总的损失函数L=αloss1+βloss2L=\alpha loss_1+\beta loss_2L=αloss1+βloss2
- 预测
- P={argmaxc(sc)max(sc)≥θOthermax(sc)<θP=\begin{cases}argmax_c(s_c)&& max(s_c)\geq \theta\\ Other&&max(s_c)<\theta \end{cases}P={argmaxc(sc)Othermax(sc)≥θmax(sc)<θ
- 关系识别:交叉熵
- 动机:
3.实验
3.1数据准备
我们使用ACE 2005的中文和英文语料库来评估我们提出的方法。数据集中仅注释了正实例。要提取否定实例,我们需要枚举句子中的每个实体对
我们考虑两种方法:一种考虑关系的方向,而另一种则不考虑。对于第一种方法,无论方向如何,对于句子x中的任何一对实体e1,e2,我们仅提取一个实例。不论方向如何,已注释的实例均为肯定实例,其余均为否定实例。经过训练的模型仅需要确定一个实体对是否具有关系。对于第二种方法,我们为句子中任何一对实体提取两个实例,两个实体的顺序不同。由于两个实例中的一个最多都被注释为肯定实例,因此我们将另一个实例和两个实例均未注释为否定实例。经过训练的模型还需要识别关系中的头实体和尾实体,这要困难得多。
- 数据集
- ACE 2005中文语料库
- 30.20%FN,62.80%FP和7.00%分类错,所以区分正负例很重要
- 平均每个句子中有4.9个实体和1.34个关系提及
- 仅标注正实例
- 处理
- 枚举句子中所有实体对
- 考虑方向:1:20
- 不考虑方向:1:9.4
- 肯定实例:标注的
- 否定实例:未标注的
- 枚举句子中所有实体对
- ACE 2005中文语料库
提取否定实例后,我们进一步筛选出那些实体类型组合从未出现在关系提及中的实例。然后,将剩余的否定实例添加到肯定实例中,以完成数据准备。
我们采用第一种方法从ACE 2005的英语语料库中提取否定实例,过滤后最终共有71,895个实例,其中64,989个为否定实例。正/负实例比率约为1:9.4。
我们采用第二种方法从ACE 2005的中文语料库中提取否定实例,过滤后最终共有215,117个实例,其中205,800个为否定实例。正/负实例比率约为1:20。
3.2 Experiment Settings
- 嵌入
- word embedding:dw=200
- position embedding :dp=50
- BIO embedding :dt=50
- 均随机初始化
- 超参数
- 卷积层中的
- 过滤器数为64,
- 过滤器的窗口大小范围为4到10。
- 计算分数的完全连接层
- 具有128个隐藏单元,
- dropout:0.2。
- 批大小为256。
- 优化器:
- 使用RMSprop优化器训练神经网络,
- 将学习率α设置为0.001。
- the pairwise rank loss:
- 英语:m+=2.5,m−=0.5,γ=0.5,θ=0m^+=2.5,m^-=0.5,\gamma=0.5,\theta=0m+=2.5,m−=0.5,γ=0.5,θ=0
- 中文:m+=4.5,m−=0.5,γ=2,θ=1m^+=4.5,m^-=0.5,\gamma=2,\theta=1m+=4.5,m−=0.5,γ=2,θ=1
- 5折交叉验证
- 评估:正实例的精度(P),召回率(R)和F1分数(F1)用作评估指标。
- 卷积层中的
- 比较
- 我们的模型
- baseline:多卷积核CNN+pairwise rank loss
- dos Santos等人提出的。 (2015)和Nguyen and Grishman(2015)。
- Baseline + Tag:带有BIO标签嵌入的基线模型。
- 基线+ MTL:基线模型,除了使用关系分类外,该模型还使用交叉熵损失进行关系识别。
- Baseline + MTL + Tag,采用多任务学习和BIO标签嵌入的基线模型。
- baseline:多卷积核CNN+pairwise rank loss
- 对于英语语料库,
- 比较:
- SPTree(Miwa和Bansal,2016)
- Walk-based Model(Christopoulou等,2018)进行比较。
- 由于数据准备工作相似,因此我们直接报告原始论文的结果。实验结果总结在表1中。
- 比较:
- 对于中文语料库
- PCNN(Zeng等人,2015)
- Eatt-BiGRU(Qin等人,2017)进行比较。
- 我们重新实现了这两个模型,实验结果总结在表2中。
- 我们的模型
- 从表1和表2可知
- BIO标签嵌入和多任务学习都可以提高基准模型的性能。
- Baseline + Tag在中文和英文语料库上都可以胜过最新模型。与基线模型相比,BIO标签嵌入导致F1分数的绝对增加约10%,这表明BIO标签嵌入非常有效。
- 多任务学习MTL除了可以嵌入BIO标签外,还可以进一步改善:Baseline + MTL + Tag在两个语料库上都获得了最高的F1分数。
3.4 分析
3.4.1 BIO embedding
- BIO embedding用在其他模型上也有效
- 相信BIO标签嵌入可以用作其他模型和潜在其他任务的字符/单词表示的常规部分。
3.4.2 Effect of Positive/Negative Instance Ratio
- 研究方法随着数据不平衡程度的变化而表现如何
- 效果比不用好
- 效果比不用好
如图3所示,这两种模型的性能都会随着正/负实例比率的降低而降低为F1分数。然而,随着数据变得更加不平衡,Baseline + MTL + Tag和Baseline的性能之间的差距越来越大。这表明我们建议的方法在数据更不平衡时更有用,尽管无论正负实例比率如何,它的性能都比基线更好。
3.4.3 Effect of Loss Function w/o Multi-tasking
- RI:关系识别
- 对关系分类,损失函数差别不大
- MTL的功劳,与关系分类的损失函数无关
- 本文(用的是)
- 关系识别:交叉熵
- 关系分类:rank loss
- 当执行单个关系分类任务时,该模型具有较高的精度和较低的查全率,并且具有交叉熵损失,但是具有精度较低,召回率较高,但排名下降; F1得分相差不大。这表明,仅对关系进行分类,损失函数的选择似乎并不太重要。
- 多任务学习有帮助,而与关系分类中使用的损失函数无关。
- 当我们同时使用交叉熵损失和排名损失来进行关系分类时,如果没有多任务处理,则F1分数仅从61.4%略微增加到61.7%。但是,如果将交叉熵应用于另一项相关任务-关系识别和多任务处理,则F1分数将从61.4%增加到62.9%,绝对增加1.5%。这表明我们的多任务体系结构的有效性主要来自于关系识别的引入,并且这种二进制分类任务确实有助于解决数据不平衡问题,从而证实了第1节中所述的动机。
- 在相同的多任务场景中,在关系分类中使用排名损失要好于使用交叉熵损失(分别为62.9%和62.0%),F1评分绝对增加0.9%。注意,交叉熵损失已用于关系识别中。这表明排名损失带来的多样性可以提高性能。
4 Related work
- 深度学习
- CNN:
- 引入:Liu等。 (2013)是第一个采用深度学习进行关系提取的方法。他们建议使用CNN来自动学习功能,而无需使用手工功能。
- position embedding :Zeng等。 (2014年)还使用CNN对句子进行编码,并使用附加的词法功能对词进行嵌入。他们最大的贡献是引入了位置嵌入。
- PCNN:Zeng等。 (2015年)提出了一种名为分段卷积神经网络(PCNN)的模型,其中,每个卷积滤波器被头和尾实体分为三段(pi1,pi2,pi3),并且最大池操作被分别应用于这三段。
- the pairwise rank loss:dos Santos et al. (2015年)也使用了CNN,但提出了新的成对排名损失函数以减少负面实例的影响。
- MIL+ATTCNN:Lin等。 (2016年)在多个实例上使用CNN和句子级注意机制来减少标签中的噪音。
- RNN
- LSTM+Tree:Miwa和Bansal(2016)使用LSTM和树结构进行关系提取任务。他们的模型由三部分组成:用于对输入句子进行编码的嵌入层,用于识别单词是否为实体的序列层以及用于关系提取的依存层。
- ATTBiLSTM:Zhou等。 (2016)使用BiLSTM和注意力机制来改善模型的性能。
- HBGD:She等。 (2018)提出了一种新颖的基于层次注意的双向门控递归神经网络(HBGD),该网络与实体描述集成在一起,以缓解标签错误的问题并使模型能够捕获最重要的语义信息
- 实体背景知识还包含用于关系提取的重要信息。
- KB中提取:Ji等人。 (2017)和She等。 (2018)从Freebase和Wikipedia中提取了实体描述,并使用编码器从这些描述中提取了特征。
- 依赖树:He等。 (2018)使用依赖树表示实体的上下文,并使用基于树的GRU将树转换为实体上下文嵌入。
- 一个句子多个实体
- walk-based model:Christopoulou等人。 (2018)同时考虑了一个句子中的多个实体对,并提出了一种新颖的基于步行的模型来捕获实体对之间的交互模式。
- 全局统计数据,构造关系图,学习关系嵌入:Su等。 (2018)指出实体对之间关系的全局统计数据也很有用,并提出构造关系图并学习关系嵌入以提高关系提取的性能。
- 减轻错误标签影响
- (Lin et al。,2016; She et al。,2018; Qin et al。,2018),
- Li和Ji(2014)提出联合提取实体提及和关系。
- CNN:
5 结论
在本文中,我们专注于语料不平衡的关系提取任务。为了缓解负实例过多的问题,我们提出了一种多任务体系结构,该体系联合训练模型以执行具有交叉熵损失的关系识别任务和具有等级损失的关系分类任务。此外,我们从命名实体识别任务中引入了按字符/按词的BIO标签的嵌入,以丰富输入表示。在ACE 2005中英文语料库上的实验结果表明,我们提出的方法可以成功解决数据不平衡问题,并显着提高性能,在F1评分方面优于最新模型。特别是,我们发现BIO标签嵌入非常有效,我们认为可以将其用作字符/单词表示的通用部分。