Going out on a limb:Joint Extraction of Entity Mentions and Relations without Dependency Trees【论文笔记】

一、Background

  从文本中抽取实体及其关系是NLP中的一种结构化预测任务,比如细粒度观点挖掘,语义角色标注等等。
  一些方法被提出用于抽取实体及其关系。这些方法可以被分为两类:pipeline的方法和joint models。联合模型的性能要优于pipeline的方法,因为关系类型的信息能辅助实体抽取,反之亦然。
  RNN是序列标注的常用模型。但是,RNN在识别句子中非相邻的单词之间的关系时有点困难。对于这些任务,使用树结构的RNN更合适。比如,Miwa and Bansal(2016)提出了基于RNN的联合抽取模型,使用LSTM用于实体抽取,tree-LSTM用于关系分类。这就导致模型的性能严重依赖于依存树,将其限制为句子级别的抽取以及存在依赖解析器的语言。另外,他们的模型也不是联合抽取实体及其关系,首先抽取实体,然后在所有实体对中进行关系分类。

二、Motivation

  纯粹的RNN模型很难捕捉到非相邻单词之间的依赖关系,而基于树的LSTM模型依赖于依赖解析,泛化性差。 因此作者提出了一个新颖的基于RNN的模型,用于实体及其关系的联合抽取。与其它模型不同,作者的模型不依赖于依存树信息。

三、Model

  我们的模型包含一个多层的双向LSTM,学习句中每个单词的表示。我们使用顶层的隐藏层表示用于实体及其关系的联合抽取。对于每个单词,我们输出一个实体标签和一个关系标签。实体标签对应实体类型,关系标签是一个元祖,包含相关的实体和关系类型。如图一所示。我们将预测关系标签从实体级别转换为单词级别。比如,对于关系"ORG-AFF",我们对实体“ITV News”中的每个词分别建模。也就是说,分别建模“ITV”与“Martin Geissler”、“News”与“Martin Geissler”之间的关系。我们在sequence layer后接pointer-like network,以此对每个单词找到对应的关系标签,如图二所示。
在这里插入图片描述
在这里插入图片描述

3.1 Multi-layer Bi-directional Recurrent Network

  使用多层双向LSTM来捕捉单词之间的长期依赖信息。
h t → = L S T M ( x t , h t − 1 → ) \overrightarrow {h_t}=LSTM(x_t, \overrightarrow {h_{t-1}}) ht =LSTM(xt,ht1 ) h t ← = L S T M ( x t , h t + 1 ← ) \overleftarrow {h_t}=LSTM(x_t, \overleftarrow {h_{t+1}}) ht =LSTM(xt,ht+1 )
  在本篇论文中,我们只使用最后一层L的隐藏层状态输入到下一层中,计算顶层的隐藏层表示如下:
z t ' = V → h → t ( L ) + V ← h ← t ( L ) + c z^'_t=\overrightarrow V \overrightarrow h_t^{(L)}+\overleftarrow V \overleftarrow h_t^{(L)}+c zt=V h t(L)+V h t(L)+c

3.2 Entity Detection

  将实体检测视为序列标注问题,标注机制为BILOU。对于句中的每个单词,我们通过softmax输出每个实体类型的概率:
y t = s o f t m a x ( U z t ' + b ) y_t=softmax(Uz^'_t+b) yt=softmax(Uzt+b)
  从图二中,我们也可以看到,作者将上一时刻的输出的标签输入到top-hidden layer中,以此捕捉标签之间的依赖关系。为了添加这个连接操作,我们将输出转化为label embedding b t − 1 k b_{t-1}^k bt1k。我们表示每个标签类型k为密集表示 b k b_k bk。我们计算输出层的表示:
z t = L S T M ( [ z t ' ; b t − 1 k ] , h t − 1 ) z_t=LSTM([z^'_t;b^k_{t-1}],h_{t-1}) zt=LSTM([zt;bt1k],ht1) y t = s o f t m a x ( U z t + b ' ) y_t=softmax(Uz_t+b^') yt=softmax(Uzt+b)

3.3 Attention Model

  我们使用attention模型用于关系分类。attention模型,通过编码器中的句子表示z,可以计算得到一个概率分布p, d i d_i di表示解码端第i个单词。这个概率分布表示了编码器中不同单词的重要性。
u t i = v T t a n h ( W 1 z + W 2 d i ) u^i_t=v^Ttanh(W_1z+W_2d_i) uti=vTtanh(W1z+W2di) p t i = s o f t m a x ( v t i ) p^i_t=softmax(v^i_t) pti=softmax(vti)
  我们在模型中使用了指针网络,是attention模型的一种变体。指针网络将这些 p t i p^i_t pti解释为输入编码序列上的概率分布,并使用 u t i u_t^i uti作为输入元素的指针。我们可以使用这些指针来编码当前单词和先前预测的单词之间的关系。

3.4 Relation detection

  我们将关系抽取也视为序列标注问题。对于每个单词,我们想要在之前的单词中找到与当前单词相关的单词以及它们之间的关系类型。比如,“Safwan”和单词“Martin”、“Geissler”存在“PHYS”关系。简单点,在训练过程中假设当前词只与之前的一个词存在关系。比如,“Safwan”与“Geissler”存在“PHYS”关系。
  在每个时间步中,我们堆叠之前时间步的隐藏层表示 z ≤ t 2 z_{\leq t}^2 zt2和对应的label embedding b ≤ t b_{\leq t} bt。我们只堆叠最顶层的隐藏层表示,并且单词的实体标签是非O的。那么attention的权重向量可以如下计算:
u ≤ t t = v T t a n h ( W 1 [ z ≤ t ; b ≤ t ] + W 2 [ z t ; b t ] ) u^t_{\leq t}=v^Ttanh(W_1[z_{\leq t};b_{\leq t}]+W_2[z_t;b_t]) utt=vTtanh(W1[zt;bt]+W2[zt;bt]) p ≤ t t = s o f t m a x ( u ≤ t t ) p^t_{\leq t}=softmax(u^t_{\leq t}) ptt=softmax(utt)

四、Experiment

  

五、Conclusion

  

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值