Attention Guided Graph Convolutional Networks for Relation Extraction(ACL19) 阅读笔记

论文报告

Attention Guided Graph Convolutional Networks for Relation Extraction(ACL19)

Motivation

关系抽取的目的是检测文本中实体之间的关系。他是自然语言处理中较为基础的任务,可以应用在生物医学知识发现、数据库检索等多种领域,同样也是智能问答、自然语言生成、阅读理解等领域的基础。

Related Work

现有的大多关系抽取模型可以分为两类,基于序列的和基于依赖的。基于序列的模型只对单词序列起作用,而基于依赖的模型将依赖树(语法树)合并到模型中。与基于序列的模型只能提取表面形式的局部句法关系相比,基于依赖的模型能够捕获较为深层次的非局部句法关系。

基于依赖的模型,如何构造依赖树(语法树)的结构很大程度上影响了语法树最终的性能。有人提出了基于规则的剪枝的方法去掉一些冗余的信息。然而基于规则的剪枝策略可能会消除整个树中的一些重要信息,理想情况下,模型应该学会如何在全树中包含和排除某些信息之间保持平衡。在该文中,提出了一种基于attention的图卷积网络(AGGCNs),他直接作用于全树。开发了一种软修剪的策略,将原始依赖树转换为全连接的加权图。这些权重可以被视为节点之间的关联强度,可以通过使用self-attention的机制进行端到端的方式学习。

How?

  • GCN

    对于一个n个节点的图,我们用A来表示它的邻接矩阵,如果节点i和节点j之间有边则Ai,j=1A_{i,j}=1,对于无向图Aj,i=1A_{j,i}=1,无边则为0。则节点i在第l层的卷积运算hi(l)\mathbf{h}_{i}^{(l)}定义为:
    hi(l)=ρ(j=1nAijW(l)hj(l1)+b(l)) \mathbf{h}_{i}^{(l)}=\rho\left(\sum_{j=1}^{n} \mathbf{A}_{i j} \mathbf{W}^{(l)} \mathbf{h}_{j}^{(l-1)}+\mathbf{b}^{(l)}\right)
    其中W(l)\mathbf{W}^{(l)}b(l)\mathbf{b}^{(l)}是模型中的参数,ρ\rho是激活函数本文用的(RELU),hi(0)\mathbf{h}_{i}^{(0)}是初始的输入xix_i,其中xiRd\mathbf{x}_{i} \in \mathbb{R}^{d},d是输入的特征维度。

    image-20200310204402519

    图1
    如图一所示,AGGCN模型由M个相同的block组成,每个block包含三层,Attention Guided Layer、Densely connected layer、linear combination layer。
  • Attention Guided Layer

    如图一所示,传统的基于规则的剪枝方式边的权重只包含0或1,而AGGCN添加attention之后每个单词之间就有了关系。
    A~(t)=softmax(QWiQ×(KWiK)Td)V \tilde{\mathbf{A}}^{(\mathbf{t})}=\operatorname{softmax}\left(\frac{Q \mathbf{W}_{i}^{Q} \times\left(K \mathbf{W}_{i}^{K}\right)^{T}}{\sqrt{d}}\right) V
    其中Q,K都分别表示模型上一层的输出h(l1)h^{(l-1)}WiK\mathbf{W}_{i}^{K}WiQ\mathbf{W}_{i}^{Q}是模型的参数矩阵,WiQRd×d\mathbf{W}_{i}^{Q} \in \mathbb{R}^{d \times d},WiKRd×d\mathbf{W}_{i}^{K} \in \mathbb{R}^{d \times d},A~(t)\tilde{\mathbf{A}}^{(\mathbf{t})}是第t层的attention邻接矩阵。

    注:此处有N组不同的参数,N是一个超参数,A~(t)\tilde{\mathbf{A}}^{(\mathbf{t})}表示第t个attention矩阵

  • Densely Connected Layer

    因为attention层构造了一个完全图,为了在更大的图上捕获更多的节点信息,使我们能够训练一个更加深入的模型。引入densely connected layer。

    如图2所示,
    gj(l)=[xj;hj(1);;hj(l1)] \mathbf{g}_{j}^{(l)}=\left[\mathbf{x}_{j} ; \mathbf{h}_{j}^{(1)} ; \ldots ; \mathbf{h}_{j}^{(l-1)}\right]
    在实践中,每个Densely Connected Layer都有L个子层。这些子层的尺寸由L和输入特征尺寸d决定。在AGGCN中,使用dhidden=d/Ld_{\text {hidden}}=d / L例如如果Densely Connected Layer有3个子层,输入维度是300,则dhidden=d/L=300/3=100d_{\text {hidden}}=d / L =300/3=100。然后我们将每个子层的输出链接起来,形成新的表示。

    因为有N组不同的attention矩阵,所以需要N个不同的Densely Connected Layer。所以每层的的计算方式为:
    hti(l)=ρ(j=1nA~ij(t)Wt(l)gj(l)+bt(l)) \mathbf{h}_{t_{i}}^{(l)}=\rho\left(\sum_{j=1}^{n} \tilde{\mathbf{A}}_{i j}^{(t)} \mathbf{W}_{t}^{(l)} \mathbf{g}_{j}^{(l)}+\mathbf{b}_{t}^{(l)}\right)
    其中t=1,,Nt=1, \ldots, Nt选择对应的该组的参数。由于Densely Connected Layer,每层获取到前边层传过来的信息所以每层的W维度也逐层增加。

    Wt(l)Rdhidden×d(l)\mathbf{W}_{t}^{(l)} \in \mathbb{R}^{d_{h i d d e n} \times d^{(l)}},d(l)=d+dhidden×(l1)d^{(l)}=d+d_{h i d d e n} \times(l-1)

  • Linear Combination Layer

    最后一层用于集成来自N个不同密度连接层的表示。线性组合层的输出定义为:
    hcomb=Wcombhout+bcomb \mathbf{h}_{c o m b}=\mathbf{W}_{c o m b} \mathbf{h}_{o u t}+\mathbf{b}_{c o m b}
    其中hout=[h(1);;h(N)]Rd×N\mathbf{h}_{\text {out}}=\left[\mathbf{h}^{(1)} ; \ldots ; \mathbf{h}^{(N)}\right] \in \mathbb{R}^{d \times N},WcombR(d×N)×d\mathbf{W}_{c o m b} \in\mathbb{R}^{(d \times N) \times d}

  • AGGCNs for Relation Extraction

    首先计算出句子的表示hsent\mathbf{h}_{\text {sent}}
    hsent=f(hmask)=f( AGGCN (x)) h_{\text {sent}}=f\left(\mathbf{h}_{\text {mask}}\right)=f(\text { AGGCN }(\mathbf{x}))
    其中mask表示我们把句子中要求的实体mask掉,只选择句子中非实体的单词。f函数是max pooling函数,f:Rd×nRd×1f: \mathbb{R}^{d \times n} \rightarrow \mathbb{R}^{d \times 1}

    对于第i个实体,他的表示heih_{e_i}可以被计算为
    hei=f(hei) h_{e_{i}}=f\left(\mathbf{h}_{\mathbf{e}_{\mathbf{i}}}\right)
    将句子表示和实体表示连接起来形成新的表示,使用前馈神经网络FFNN得到最后的向量:
    hfinal=FFNN([hsent;he1;hei]) h_{\text {final}}=\operatorname{FFNN}\left(\left[h_{\text {sent}} ; h_{e_{1}} ; \ldots h_{e_{i}}\right]\right)
    最后使用逻辑回归对hfinalh_{\text {final}}进行分类。

Proof

在跨句的n元关系提取和句子级的关系提取上进行了实验。

  • 跨句n元关系提取

    对于跨句n元关系提取任务,数据集包含从PubMed中提取的6,987个三元关系实例和6,087个二元关系实例。大多数实例包含多个句子,每个实例都有五个标签,包括“resistance
    or nonresponse”、“sensitivity”、“response”、“resistance”和“none”。本文考虑两个具体的评价任务,即:二类n元关系提取和多类n元关系提取。如之前人们做的工作,本文同样对多类标签进行二值化,将前四个关系类分组为“yes”,将“none”分组为“no”。

    image-20200310230721923

    我们首先关注二元类n元关系的提取任务。对于三元关系提取(表1中的前两列),AGGCN模型分别在单个句子(single)和所有实例(Cross)中的实例上实现了87.1和87.0的准确性,这优于其他所有模型。与GCN模型相比,我们的模型比最优的修剪树模型(K=1)高1.3和1.2个百分点。对于二进制关系提取(表1中的第三和第四列),AGGCN的性能始终优于GS GLSTM和GCN。

  • 句子级的关系抽取

    image-20200310231120353

logistic回归分类器(LR)的精度得分最高。本文认为这是由于数据不平衡的问题。这种基于特征的方法倾向于非常频繁预测一个的标签。

image-20200310231516024

消融实验:

image-20200310231809059

不同超参数

image-20200310231838833

不同句子长度的F1score

image-20200310232141225

不同数据集大小比较两个模型

image-20200310232342631

Summary

将attention+GCN应用于关系抽取,学习一种“软修剪”策略,通过权重来学习如何选择和丢弃信息。再结合Densely Connected Layer,提升了关系抽取的性能。

该篇论文做的实验非常全,不仅有三个数据集,而且对各个方面都进行了实验。比如数据集的大小,不同的句子长度,不同超参数,不同的关系抽取任务等方面。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章