论文阅读 - 《Relation Classification via Multi-Level Attention CNNs》

来源:互联网 发布:意大利语 知乎 编辑:程序博客网 时间:2024/06/05 16:08

作者:xg123321123

出处:http://blog.csdn.net/xg123321123/article/details/553163257

声明:版权所有,转载请联系作者并注明出处

1 问题定义

关系提取用于从文本中抽取结构化事实。

2 背景综述

  • 除了少数无监督方法,大部分方法都是将关系提取转化为多分类问题来做;
  • 传统的基于特征的方法要么依赖于手工提取的特征,要么依赖于精心设计的kernel,这些方法不仅容易出错,提取特征的能力也是有限的,当应用到新的领域时不够鲁棒;
  • 近年来出现的神经网络模型取得了一定成果,但模型较为复杂,要么是需要外部依赖,要么是需要训练多个子模型。

3 灵感来源

  • 现实世界中,同一关系可以被表达为很多种形式,这就要求模型不仅得考虑词级信息,还得考虑句级和语义级别的信息;
  • 有很多手工设计提取特征的模型;
  • 也有一些基于神经网络的模型,但大多需要外部依赖,同时,对于关键信息的捕捉还不理想。

4 方法概述

将attention机制加入到神经网络中,对于反映实体关系更重要的词语给予更大的权重,辅以改进后的目标函数,从而提高关系提取的效果。
整体结构示意图如下:

这里写图片描述

  • 将attention机制应用在输入序列中,用于学习输入语句中各部分对两个实体的注意力;
  • 将attention机制应用在池化层上,用于学习目标类别的注意力;
  • 改进了目标函数,使其在关系提取上表现得更好。

输入表示

对于一个句子S=(w1,w2,...wn),有两个标记的实体e1(wp)e2(wt),其中(p,t[1,n],pt)

  • 先将每个单词转换为真值向量,即将wi表示为wdiTdw,其中dw是向量的维度;
  • 为了进一步捕获实体之间关系的信息,引入了WPE(word position embeddings),具体来说,就是将每个单词相对于两个实体的距离给保存下来,即将wi表示为wMi=[(wdi)T,(wpi,1)T,(wpi,2)T]T,其中(wpi,1)T,(wpi,2)T分别是wi关于实体e1e2的向量;
  • 最后为了充分利用上下文信息,用了一个大小为k的sliding window,每次以第i个词为中心进行“卷积”(进行了padding操作),这样就将k个词语的信息都编码成了最终的向量形式zi
    zi=[(wMi(k1)/2)T,,(wMi+(k1)/2)T]T

输入级attention机制

  • 输入级的attention机制是设计两个关于实体对上下文相关的对角矩阵,Aj,j=1,2
  • 该矩阵中各元素反映该词语与给定实体间联系的强弱,也就是分配在该词上对于实体的注意力,比如Aji,i=f(ej,wi)就是反映的wiej之间的联系强弱程度;
  • 上一点中,函数fwiej的内积;
  • 网络训练的目标之一就是训练出这两个矩阵;
  • 为了衡量第i个词与第j个实体间的关联程度,定义以下因子:
    αji=exp(Aji,i)ni=1exp(Aji,i)
  • 用该因子乘以之前构造的输入向量R=[r1,r2,...,rn],其中n是句子长度,作为输入层的最终输出;
  • 对于α1iα2i两个相关因子,有三种处理方式:
    • 直接平均:
      ri=ziα1i+α2i2
    • 串联:
      ri=[(ziα1i)T,(ziα2i)T]T
    • 距离:
      ri=ziα1iα2i2

池化级attention机制

  • 将前面得到的矩阵R送入卷积核大小为dc的卷积层,卷积操作可形式化表示为
    R=tanh(WfR+Bf)

    其中Wf尺寸为dc×k(dw+2dp);
  • 然后构建一个相关性矩阵来捕获卷积层输出R与实体关系WL之间的联系
    G=RTUWL

    其中U为要学习的权重矩阵,WL后面会介绍到;
  • 再用softmax函数来处理相关性矩阵G,获得attention pooling矩阵Ap(这真不知道该咋翻译了)
    Api,j=expGi,jni=1exp(Gi,i)
  • 最后用Ap与卷积层输出R相乘,也就是加入混合中的attention,然后取出每一维度的最大值,得到网络的输出
    wOi=maxj(RAp)i.j

目标函数

  • 整个网络的输出应该是将编码后的输入序列映射在实体关系空间中的向量,同样地,网络也会学习出对应每一类实体关系的向量。基于这两个向量,文章提出了一种距离函数:

    δθ(S,y)=||w⃗ o|w⃗ o|WLy||

    其中,距离为欧式距离,WLy为关系嵌入。

  • 根据目标函数,设计出了损失函数:

    L=[δθ(S,y)+(1δθ(S,y^))]+β||θ||2
    =[1+||w⃗ o|w⃗ o|WLy||||w⃗ o|w⃗ o|WLy^||]+β||θ||2

    其中δθ(S,y)表示预测的输出与ground truth之间的距离,δθ(S,y^)表示预测的输出与所有错误类别中得分最高的那个类别的距离。最后一项为正则项。

5 模型分析

attention机制

为了探究attention机制的作用,随机选取一个句子:

The disgusting scene was retaliation against her brother Philip who rents the [room]e1 inside this apartment [house]e2 on Lombard street.

画出其经过attention机制后的权重图,发现“inside”被赋予了最高的权重,“room”和“house”也享有较高的权重,因为他们跟分类关系有直接关联,而“this”则获得最低的权重,大概是因为其和分类关系的关联太过微弱。

关系分类有力的特征

根据三元组对句子关系分类的贡献度进行排序后发现,排在前面的都是一些典型的“固定搭配”。

错误分析

  • 对于在训练集中未出现的,或者使用比喻性用法时,出错可能性比较大;
  • 对于一些上下文没有明显帮助的隐式关系,也较为容易出错,而更加丰富的词嵌入可能会对这种情况有帮助。

6 未来展望

未来会考虑将这种多层级的attention机制运用在其他方面。

本篇博客主要参考自
《< Relation Classification via Multi-Level Attention CNNs>小结》

0 0
原创粉丝点击