指代消解《End-to-end Neural Coreference Resolution》论文笔记

此前的研究

  • 语法解析的错误会传递到模型中(parsing mistakes can introduce cascading errors)
  • 手动特征工程的构建不具有泛化性(many of the hand-engineered rules do not generalize to new languages)

基本术语

参考链接1:https://blog.csdn.net/Answer3664/article/details/102942352
参考链接2:https://blog.csdn.net/weixin_44912159/article/details/106280699

  • mention:可以理解为文档中的实体的不同指代(表述),它可以是代词、也可以是命名实体、还可以是名词短语,其实也可以理解成文档中所有实体,为了和entity加以区别。
  • antecedent:可理解为前指,图中 “Sally” 和 “she ” 具有共指关系,它们都指向关于“Sally”这个人。“Sally” 在"she"前面,即“Sally” 是“she”的前指。
  • coreferent:共指关系,如antecedent中所提。
  • cluster:簇,类似于聚类中的簇,图中 “Sally” 和 “she ” 为一个簇, “John” 和 “him” 为一个簇。
  • anaphoric:回指,回指表示的是抽象化的实体,图中“Sally” 是具体化的实体,“she"是抽象化实体,即“she” 是“Sally”的回指。
  • non-anaphoric:没有回指,如"violin"只有具体化的实体,无抽象化的实体。

Task

  1. 一段文本 D D D 中含有 T T T 个单词,将这些单词分成 N N N 个 span 并用 i i i 进行索引,span( i i i)的头尾索引使用START( i i i)及END( i i i)表示。
    N = T ( T + 1 ) 2 N=\frac{T(T+1)}{2} N=2T(T+1)
    所有的span依据START( i i i)排序,若START( i i i)相等则按END( i i i)排序。
# 例句 I need you.  有3个word
6种可能的子串:I |need |you |I need|I you |need you|
  1. 对于一个 span( i i i)中的所有可能的antecedent y i y_i yi组成 γ ( i ) = { ε , 1 , . . . , i − 1 } \gamma(i)=\{\varepsilon, 1, ..., i-1\} γ(i)={ε,1,...,i1} ε \varepsilon ε表示这个span不是一个mention或是一个mention但与之前所有span没有coreferent
    (The dummy antecedent ε \varepsilon ε represents two possible scenarios: (1) the span is not an entity mention or (2) the span is an entity mention but it is not coreferent with any previous span)

Model

使用条件概率分布,使得最有可能的cluster概率最大

s ( i , j ) s(i,j) s(i,j)表示span( i i i)和span( j j j)之间的共指得分(a pairwise score for a coreference
link between span i i i and span j j j in document D D D)
图3
s ( i , j ) s(i,j) s(i,j)没有前指时为0

算法步骤

在这里插入图片描述

  1. 用向量表示每个单词 x i x_i xi,由预训练的word embedding 和一维 CNN 拼接而成
  2. 使用双向LSTM计算出每个span的向量表示 x ∗ x^* x
  3. 使用注意力机制(Attention Mechanism)对span中的单词进行学习,得到 x ^ \widehat{x} x
  4. 得到span的特征表示 g i = [ x S T A R T ( i ) ∗ , x E N D ( i ) ∗ , x ^ i , ϕ ( i ) ] g_i =[x_{START(i)}^*, x_{END(i)}^*, \widehat{x}_i, \phi(i)] gi=[xSTART(i),xEND(i),x i,ϕ(i)] ϕ i \phi{i} ϕi表示span( i i i)的大小(长度)
    在这里插入图片描述
  5. g g g 送入前馈神经网络(FFNN)计算得到 s m s_m sm s a s_a sa
    在这里插入图片描述
  • s m ( i ) s_m(i) sm(i)表示span( i i i)是一个mention的一元得分
  • s a ( i , j ) s_a(i, j) sa(i,j)表示span( j j j)时span( i i i)的antecedent的得分
  1. 通过公式 s ( i , j ) = s m ( i ) + s m ( j ) + s a ( i , j ) s(i, j) = s_m(i) + s_m(j) + s_a(i, j) s(i,j)=sm(i)+sm(j)+sa(i,j) 得出span( i i i)和span( j j j)之间的共指得分共指得分
  2. 由softmax函数得出 P ( y i ∣ D ) P(y_i|D) P(yiD),得到每个mention最有可能的antecedent
剪枝

计算完每个span的得分后,对得分高的保留,得分低的剪掉;对于保留下来的,每个span也只考虑指定个数的前指。降低计算量并保持不错的召回率。

结果

在这里插入图片描述

参考

[1] https://blog.csdn.net/weixin_44912159/article/details/106276874
[2] https://blog.csdn.net/weixin_44912159/article/details/106280699
[3] https://blog.csdn.net/Answer3664/article/details/102942352
[4] End-to-end Neural Coreference Resolution
[5] OntoNotes数据集
[6] 源码(tensorflow)
[7] PyTorch复现源码

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值