Dependency-driven Relation Extractionwith Attentive Graph Convolutional Networks

 Abstract

        句法信息和依赖树在已有的研究中已经广泛用于改进关系抽取,并能更好地指导分析与给定实体相关的上下文信息。 然而,现有的研究依赖树中大多存在噪声,特别是当依赖树自动生成时,其过度利用依赖信息可能会给关系分类带来混乱,必要的剪枝在此任务中非常重要。 本文提出了一种依赖驱动的注意力图卷积网络关系抽取方法(A-GCN)。 在这种方法中,图卷积网络上的注意力机制应用于从现成的依赖解析器获得的依赖树中的不同上下文词,以区分不同词依赖的重要性。考虑到单词之间的依赖类型也包含重要的上下文指导,这可能有助于关系提取。

目录

1.Introduction

2.The Proposed Approach   

3.Experimental Settings

4.Results

5.Analyses

6.Conclusion

1.Introduction

        关系提取 (RE) 旨在从原始文本中检测实体及其之间的关系的一种技术,是信息提取和检索中最重要的任务之一,在支持许多下游自然语言处理 (NLP) 应用程序中起着至关重要的作用,例如文本挖掘、情感分析、问答等方面。最近,神经网络模型 RE 方法使用强大的编码器(如 CNN、RNN 和 Transformers)显着提高了 RE 的模型性能,因此使 得RE 系统能够更好地理解文本并识别给定文本中实体之间的关系。采用神经网络模型来帮助 RE 不仅简单有效,而且还有望将更多样化和信息丰富的知识纳入 RE 系统。在所有不同的知识中,句法信息,尤其是依赖树,已在许多研究中被证明是有益的因为它们提供了目标实体之间的长距离词连接,从而引导系统更好地提取实体对之间的关​​系。

        然而,频繁的利用依赖信息并不总能带来良好的 RE 性能,因为依赖树中的噪声可能会给关系分类带来混淆,尤其是当依赖树是自动生成时。例如,下图中显示了一个带有依赖树的例句,其中当对象要预测“牛奶”和“南瓜混合物”之间的关系时,“南瓜混合物”和“碗”之间的依赖关系可能会引入噪声。因此,之前的研究在通过特定模型或图卷积网络对依赖信息进行编码之前,总是需要必要的剪枝策略。因为固定剪枝策略不能保证生成包含所有重要上下文信息并过滤掉所有噪声的子树,所以有必要设计一种适当的方法来区分依赖树中的噪声并相应地对其进行建模。

         由此,本文提出了一种依赖驱动的神经方法,其中提出了注意力图神经网络 (A-GCN) 来区分该任务的重要上下文信息。此外,鉴于与依赖连接相关联的依赖类型(例如,名义主题)也可能对 RE 模型有用,因为它们包含连接词之间的句法指令,我们通过将类型信息引入其中来进一步改进 A-GCN。具体来说,我们首先从现成的工具包中获取输入句子的依存关系树,然后在依存关系树上构建图,并为任意两个单词之间的不同标记依存关系分配不同的权重,权重的计算基于连接及其依赖类型,最后由 AGCN 根据学习的权重预测关系。这样做,A-GCN 不仅能够从依赖树中区分重要的上下文信息并相应地利用它们,从而不需要依赖剪枝策略,而且 A-GCN 还可以利用大多数先前忽略的依赖类型信息研究。

2.The Proposed Approach   

        模型的整体架构如下图所示。具体来说,给定一个非结构化输入语句 X = x1,···,xn,其中有n个单词并让 E1 和 E2 表示 X 中的两个实体,我们的方法通过以下方式预测 E1 和 E2 之间的关系 

   

        其中Tx是从现成的工具包中获得的x的依赖树,R是关系类型集; P计算给定两个实体的特定关系r\epsilon R的概率,而\widehat{r}是以X和Tx为输入的A-GCN的输出。 

         通常,标准 GCN 模型中的图是由词依赖构建的,并由邻接矩阵 A =(a_{i,j})_{n*n}表示,其中a_{i,j} =1 ,如果 i = j 或存在依赖连接在依赖树 Tx 中的两个词 xi 和 xj 之间,否则a_{i,j}=0。基于 A,对于每个单词 x_{i}\epsilon X,第 l个 GCN 层收集其在 Tx 中的上下文单词携带的信息,并通过以下方式计算 x_{i} 的输出表示 h^{(l)i}: 

 

         h_{j}^{(l-1)}x_{j}在(l-1)层GCN模型的输出,W^{(l)}b^{(l)}分别是第 l层 GCN 的可训练矩阵和偏差,\sigma 是 ReLU 激活。

        在公式(2)中词之间的连线被平等对待(a_{i,j}要么是0要么是1),因此传统的GCN模型不能区分不同连接的重要性。 为此,我们提出了A-GCN,它使用注意力机制来计算不同连接的权重,以便模型能够相应地利用不同的依赖连接。我们首先用类型矩阵T=(t_{i,j})_{n*n}来表示Tx中的依赖类型,其中t_{i,j}是与x_{i}x_{j}之间的有向依赖连接相关联的依赖类型。 接下来,我们将每个类型t_{i,j}映射到它的嵌入e_{i,j}^{t}。 然后,在第l层GCN,计算x_{i}x_{j}之间连接的权重。

         其中a_{i,j}\epsilonA,“\cdot”表示内积,S_{i}^{(l)}S_{j}^{(l)}分别是x_{i}x_{j}的两个中间向量,由下式计算:

         用\bigoplus表示向量级联操作,然后我们将权重p_{i,j}^{(l)}应用于x_{i}x_{j}之间的关联依赖连接通过以下方式训练得到x_{i}的输出表示

 

 

        然后,我们将最大池机制应用于属于一个实体提及(即E_{K},K=1,2)的词的输出隐藏向量,以计算实体表示(表示为h_{Ek})  

 

        然后,我们将句子(即h_{x})和两个实体(即h_{E1}h_{E2})的表示连接起来,并将一个可训练矩阵W_{R}应用于计算的向量,以通过以下步骤将其映射到输出空间  

 

        其中,o是一个| R |维向量,其每个值都表示关系类型集R中的关系类型。最后,我们通过o的softmax函数通过以下公式预测E1和E2之间的关系 r\hat{}

 

        用 o^{u}表示 o 中维度u处的值。

   图为本文提出的 A-GCN 模型用于关系抽取的整体架构用一个示例输入语句(“诽谤”和“主教”这两个实体分别以蓝色和红色突出显示)及其依赖树进行了说明。左侧部分显示了我们的 A-GCN 模型,其中注意力权重应用于不同的连接,以对依赖类型感知的上下文信息进行建模。右侧部分说明了依赖图的邻接矩阵 A 以及计算不同连接的注意力权重(即 p_{i,j}^{(l)})的过程。    

3.Experimental Settings

数据集:在实验中,我们为模型准备了两个英文基准数据集,即 ACE2005EN和 SemEval 2010 。对于 ACE05,我们对其进行预处理(删除两个小子集 cts 和 un)并将文档拆分成训练集、开发集和测试集。下图中显示了 ACE05 和 SemEval 基准数据集的训练/开发/测试集的实例数(即实体对数)。

 依赖图构建:为了构造A-GCN的图,我们使用标准的CorenLP Toolkits(SCT)来获得每个输入句子x的依赖关系树Tx。虽然我们的方法能够通过注意力机制来区分不同依赖关系的重要性,但如果我们能够通过特定的剪枝策略过滤掉那些给RE带来混乱的依赖关系,则仍然是有益的。 本文通过包含两组依赖连接,即局部连接和全局连接,构造了A-GCN的图。 具体来说,局部连接包括直接连接到两个实体头部的所有依赖项,全局连接包括沿着两个实体头部之间的最短依赖路径(SDP)的所有依赖项,在许多情况下,也涉及到不直接连接到两个实体的字。 通过一个包括两个实体(即“公司”和基准测试)的示例语句,下图说明了两组依赖关系以及由这两组关系构建的邻接矩阵。 值得注意的是,当SDP较短时,本地组中的连接可能比全局组中的连接多。 

        示例句子的两组(即局部和全局)依赖关系的图示(实体以红色突出显示),邻接矩阵(右侧)建立在两组的所有连接之上。局部和全局连接分别用橙色和蓝色表示, 

具体实施:我们在输入句子中插入四个特殊标记(即“<e1>”、“</e1>”、“<e2>”和“</e2>”)来标记两个实体的边界,这使得编码器在编码过程中能够区分实体的位置,从而提高模型性能。对于编码器,我们使用 BERT。对于A-GCN,我们随机初始化所有可训练参数和依赖类型嵌入。 为了评估方便,我们遵循以前的研究,使用标准的微观F1分数在ACE05数据集上,使用宏观平均F1分数在Semeval数据集上。 在我们的实验中,我们尝试了不同的超参数组合,并在DEV集上对它们进行调整,然后用在DEV集上获得最高F1分数的模型对测试集进行评估。

4.Results

        我们的A-GCN模型的F1分数和基线(即仅Bert-only,标准GAT,标准GCN)在不同设置下,使用Bert-Base(A)和Bert-Large(B)。 所有基于图的模型(即GAT、GCN和A-GCN)都使用两种设置进行测试:第一种是使用包含所有依赖连接的全图(FULL),第二种是使用局部和全局连接的组合(L+G)。 我们还运行具有不同层数(即1到3层)的GCN和A-GCN,以进行公平的比较。 

 

        在ACE05和Semeval上使用两层的A-GCN和Bert-Large编码器将前人研究和我们的最佳模型进行了比较(F1评分)。  

         使用 BERT-large 编码器在来自 SemEval 的三组测试实例上的不同模型(即仅 BERT、两层标准 GCN 和两层 A-GCN)的性能(F1 分数),其中每组是基于生成的关于实例中两个实体之间的距离(即单词数)。

5.Analyses

模型利用不同类型依存信息,在两个基准数据集上的性能:

不同设定下模型在两个基准数据集上的性能: 

 

 

案例研究:

        上图中为示例输入分配给A-GCN(full)和AGCN(L+G)不同依赖连接的权重的可视化,其中较深和较粗的线表示具有较高权重的连接。  

6.Conclusion

论文地址:https://aclanthology.org/2021.acl-long.344.pdf

论文代码:GitHub - cuhksz-nlp/RE-AGCN

        本文为ACL2021中的一篇论文,从实验结果来看,使用GCN是有增益的,尤其是加入了attention 系数的GCN,但是增益不会很大,且GCN并不需要太多层,2层性能就不错,甚至使用Full信息的时候,也就是 依存关系全保留的情况下,使用GCN反而有坏处,如图中的 +1 GCN Layer FULL效果都比Baseline差,精简了信息以后才有一定的正向增益。相比于使用GAT模型,作者由于引入了entity type信息,故整体的效果还是可以的。GNN模型本身的思想是信息的传播与聚合,在这个过程中,信息会进行流动,相同类别的数据会趋同,不同类别的数据差异会拉大,故GNN非常适用于分类任务,经典的任务如在cora上进行半监督学习。但是用于其他的任务,这种信息的聚合流动不一定能带来收益。由此观之,Graph的信息并不是越多越好,去掉噪声信息,保留核心信息便于模型“突出重点”,而不是全局平均化。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值