(2020)End-to-end Neural Coreference Resolution论文笔记

在这里插入图片描述
paper: End-to-end Neural Coreference Resolution

code: https://github.com/kentonl/e2e-coref

文章目录:

文章词语解释

Abstract

Introduction

Task

Model

整体算法流程

Experiments


文章词语解释
  • span等术语参考博客

Abstract

  • 想法:通过考虑文档中所有的span【文本中的子串/短语】以及学习每个span的可能的指代。
  • 方法:通过计算span本身embedding表示和span边界的头注意力机制
  • 训练目标:配合上剪枝,训练得到在共指簇中可能性最大的指代的span
  • 实验表现:在ontonote5.0上F1提升1.5,集成5个的小技巧后,F1提升3.1

Introduction

  • 解释了本文第一次使用了端到端的模型,这就意味着只需要考虑输入,通过模型即可得到输出,不需要像之前那样比如前面任务的分词,标注不到位影响模型效果
  • 再次提到模型核心是向量的embedding表示
  • 文档长度为L, 那么计算所有span的得分的复杂度就是L的四次方,不实际, 所以计算一元的mention【文本中的指代】得分,在mention 得分的基础上做剪枝,然后前值对得分的计算量就会减少很多

Task

  • 假设对于某个文档表示为 D,文档中有 T 个word,文档中就有N个可能的span ( N = T ( T + 1 ) 2 N=\frac{T(T+1)}{2} N=2T(T+1))
  • 对于某个span表示为 i ,它的头索引为START(i),尾索引为END(i),然后通过START(i)进行排序,如果START(i)相同,再比较END(i)进行排序。
  • 对于某个span表示为 i,它对应的前值为 y i y_{i} yi y i y_{i} yi可以确定是span i的前面出现过的span或者没有前指(本身就没有/还没出现,在后面),所以 y i y_{i} yi 在集合 Y ( i ) = { ϵ , 1 , … , i − 1 } \mathcal{Y}(i)=\{\epsilon, 1, \ldots, i-1\} Y(i)={ϵ,1,,i1}内。
  • ϵ \epsilon ϵ 的两种可能情况:(1) 某个span本身不是一个实体的mention【指代】,(2)span是实体的指代,但没和之前的span形成共指

Model

  • 目标:使用条件概率分布,使得最有可能的共指簇概率最大:

    P ( y 1 , … , y N ∣ D ) = ∏ i = 1 N P ( y i ∣ D ) = ∏ i = 1 N exp ⁡ ( s ( i , y i ) ) ∑ y ′ ∈ Y ( i ) exp ⁡ ( s ( i , y ′ ) ) \begin{aligned} P\left(y_{1}, \ldots, y_{N} | D\right) &=\prod_{i=1}^{N} P\left(y_{i} | D\right) \\ &=\prod_{i=1}^{N} \frac{\exp \left(s\left(i, y_{i}\right)\right)}{\sum_{y^{\prime} \in \mathcal{Y}(i)} \exp \left(s\left(i, y^{\prime}\right)\right)} \end{aligned} P(y1,,yND)=i=1NP(yiD)=i=1NyY(i)exp(s(i,y))exp(s(i,yi))

    • s ( i , y ′ ) s\left(i, y^{\prime}\right) s(i,y)表示在某个文档中,span i 和span j 共指的得分
    • 计算 s ( i , y ′ ) s\left(i, y^{\prime}\right) s(i,y):(1)span i 的得分 (2)span j 的得分 (3)span j 是 span i 的前指得分
      • 当span i 没有前指时, s ( i , y ′ ) s\left(i, y^{\prime}\right) s(i,y)的得分为0。 s ( i , j ) = { 0 j = ϵ s m ( i ) + s m ( j ) + s a ( i , j ) j ≠ ϵ s(i, j)=\left\{\begin{array}{ll} 0 & j=\epsilon \\ s_{\mathrm{m}}(i)+s_{\mathrm{m}}(j)+s_{\mathrm{a}}(i, j) & j \neq \epsilon \end{array}\right. s(i,j)={0sm(i)+sm(j)+sa(i,j)j=ϵj=ϵ
  • 如何得到span的embedding表示(原论文是先讲计算得分,为了按顺序理解,进行了调换)

    作者认为,对于某个span,它的上下文背景的指代span和他的span本身结构十分重要,每个span的起始word【head word】用注意力机制,用双向LSTM表示span的内部和外部的信息。

    1. 假设输入word i ,对应输入向量表示 x i \boldsymbol{x}_{i} xi【i 对应的预训练的word embedding和经过charCNN得到的embedding拼接的得到的embedding】——> LSTM
    2. 送入bi-LSTM,提取bi-LSTM中两个隐藏层向量,拼接起来作为 i 的特征向量 x t ∗ x_{t}^{*} xt 【包含 x S T A R T ( i ) ∗ x_{START(i)}^{*} xSTART(i) | x E N D ( i ) ∗ x_{END(i)}^{*} xEND(i)】——>注意力机制
    3. 对于 x i \boldsymbol{x}_{i} xi,使用注意力机制对word的重要单词进行学习,分配不同权重得到 x ^ i \hat{\boldsymbol{x}}_{i} x^i ——>进行向量拼接
    4. ​ 包含4部分:span的起始和终止位置的特征向量【包含这个span的起始和终止位置的特征】;这个span的attention表示向量【提取这个span表示的核心信息,比如the black cat中cat是核心信息】;以及一些额外的特征。 g i = [ x S T A R T ( i ) ∗ , x E N D ( i ) ∗ , x ^ i , ϕ ( i ) ] \boldsymbol{g}_{i}=\left[\boldsymbol{x}_{\mathrm{START}(i)}^{*}, \boldsymbol{x}_{\mathrm{END}(i)}^{*}, \hat{\boldsymbol{x}}_{i}, \phi(i)\right] gi=[xSTART(i),xEND(i),x^i,ϕ(i)]
  • 如何计算得分

    • 简单点说:让向量的表示【Embedding】经过一个全连接神经网络【FNN】,即获得得分
    • 抽取了所有span的特征向量 g i \boldsymbol{g}_{i} gi后,需要完成两个任务,一是判断这个span是否是一个指代,二是判断任意两个span是否是coreference的关系。对于任意两个span i和j,它们的打分公式如下图所示,包含三部分,分别表示三个意思:span i是一个指代吗span j是一个指代吗span i和span j是coreference关系吗。三部分的概率计算方法也是全连接网络FFNN的方法。
      (2020)End-to-end Neural Coreference Resolution论文笔记_第1张图片
  • 剪枝

    • 计算完每个span的得分后,对得分高的保留,得分低的剪掉;对于保留下来的,每个span也只考虑指定个数的前指。降低计算量的同时,仍然有不错的召回率。
  • 优化目标

    • 通过真实的簇【gold clustering】,对于每个正确的前值的对数释然进行优化。(这里可以去论文或者代码细看,我觉得我不太能讲清楚)

      log ⁡ ∏ i = 1 N ∑ y ^ ∈ Y ( i ) ∩ coLD ⁡ ( i ) P ( y ^ ) \log \prod_{i=1}^{N} \sum_{\hat{y} \in \mathcal{Y}(i) \cap \operatorname{coLD}(i)} P(\hat{y}) logi=1Ny^Y(i)coLD(i)P(y^)

整体算法流程

  • 由下至上
    (2020)End-to-end Neural Coreference Resolution论文笔记_第2张图片(2020)End-to-end Neural Coreference Resolution论文笔记_第3张图片

Experiments

  • 使用CoNLL-2012的英文指代消解英文数据集,训练集2802个文档,验证集343个文档,测试集348个文档。训练集平均每个文档有454个字,最长的文档有4009个字。

  • 实验效果:

  • 使用CoNLL-2012的英文指代消解英文数据集,训练集2802个文档,验证集343个文档,测试集348个文档。训练集平均每个文档有454个字,最长的文档有4009个字。

  • 实验效果
    (2020)End-to-end Neural Coreference Resolution论文笔记_第4张图片

你可能感兴趣的:(Coreference,resolution)