Learning to Prune Dependency Trees with Rethinking for Neural Relation Extraction

论文:https://www.aclweb.org/anthology/2020.coling-main.341/

代码:https://github.com/Cartus/AGGCN

任务

​ 预测给定句子中的两个实体之间的关系。

​ 利用输入句子的依赖树模型在捕获目标实体之间的长距离关系方面是有效的。但并不是所有依赖树中的标记都需要表达目标实体对的关系,一些与目标不相关的标记可能会引入噪音。如何有选择地强调目标相关的信息,并从依赖树上删除不相关的内容,仍然是一个开放的问题。

方法(模型)

RE:Relation extraction 旨在检测出现在句子中出现的两个特定实体之间的语义关系(通常分别被称为主题和对象)。

​ 由于自然语言的可变性和模糊性,之前手工制定的修剪规则可能导致有用的信息被遗漏。本文提出了一个动态修剪图卷积网络(DP-GCN)的新架构,它在端到端的方案中学习修剪依赖树,并进行重新思考。在DP-GCN的每一层,采用了一个选择模块,动态地识别依赖树中的关键节点子集,这些节点提供足够的信息来提取两个实体之间的关系,考虑到每个节点和目标实体的语义,生成一组依赖输入的二进制门来决定是否应该保留该节点。为了解决依赖树的稀疏阻碍节点之间的信息传播,使用自注意力机制产生的修剪过的语义图来加强修剪过的树,以确保连通性。之后,利用GCN模块来更新实体特定的上下文表征。引入了一个反思机制,通过反复反馈高级别的学习特征来指导和完善剪枝操作。

模型结构:

image-20210428105439620

BiLSTM encoder:将输入单词转换为上下文化表示。

DP-GCN:将实体信息结合到图形建模过程中,并为给定实体过滤无用的信息。

pooling module:聚合DP-GCN层包含的的节点表示。

Contextual Encoder:

$X = [x_1, …, x_n]$:表示句子中的n个单词。

$H = [h_1, · · · , h_n]$:LSTM隐藏层向量。

Dynamically Pruned GCN

依赖树中的节点表示句子中的单词,边表示单词之间语法依赖路径。

采用自注意力机制保证图的连通性。

GCN:

$A$:依赖树图中n个节点的邻接矩阵。

$W^l$:线性transformation。

$g$ :非线性激活函数(RELU)。

选择模块:

​ 矩阵A包含了许多与目标实体对无关的节点。因此,在每一层,设计了一个选择模块来理解实体的具体环境,并从图中动态地选择出关键的目标相关节点。

​ 引入一组二进制门${z^l _1, · · · , z_l ^n}$,关联到每个节点。$z_l ^n$:取值为0/1,表示第$l$层底$i$个门。

$\hat{A}^l$:表示第l层修剪之后的依赖矩阵。

Pooling(max-pooling)

使用了一个线性组合来整合来自不同层的表征,允许捕获丰富的本地和非本地信息。

$h^{comb}_ i $:token i的组合向量。

$W_{comb}$:权值矩阵。

F:max-pooling

Rethinking Mechanism

在池化过程后引入Rethinking Mechanism机制,将池化模块的输出作为高级特征,并通过在每个DP-GCN层引入反馈连接,利用这些特征来调整选择模块的门值。网络被赋予了自适应完善修剪操作的能力,以便更好地理解特定目标的语义。

数据集

  • TACRED
  • SemEval

性能水平

image-20210501094449787

在TACRED测试数据集上,性能超过了基线模型,相比大多数模型性能都有所提升,并取得了最高的F1得分。

准确度和召回率的提高也表明了动态修剪的有效性。

image-20210501095848865

在SemEval数据集上,DP-GCN同样取得了最优的性能。证明了利用输入句子的依赖树模型在捕获目标实体之间的长距离关系方面是有效的。

结论

消融实验:

image-20210501101139982

实验表明选择模块、思考机制、依赖树结构、二进制门控函数对模型性能都有影响。

结论:

​ 本文提出的DP-GCN模型,通过在每个GCN层中加入选择模型,过滤掉与目标不相关的信息,不依赖任何预先定义的规则。并且加入一个反思机制,动态实现剪枝操作。在两个公共数据集上的实验表明,提出的模型达到了最先进的性能。