指代消解《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
指代消解《End-to-end Neural Coreference Resolution》论文笔记

  • 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,...,i−1}, ε \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概率最大
指代消解《End-to-end Neural Coreference Resolution》论文笔记
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)
指代消解《End-to-end Neural Coreference Resolution》论文笔记
s ( i , j ) s(i,j) s(i,j)没有前指时为0

算法步骤

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

  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)的大小(长度)
    指代消解《End-to-end Neural Coreference Resolution》论文笔记
  5. 将 g g g 送入前馈神经网络(FFNN)计算得到 s m s_m sm​ 和 s a s_a sa​
    指代消解《End-to-end Neural Coreference Resolution》论文笔记
  • 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(yi​∣D),得到每个mention最有可能的antecedent
剪枝

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

结果

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

参考

[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复现源码

上一篇:教你写病毒


下一篇:【cf】J. Grammy and Jewelry(Dijkstra+完全背包)