萱草|端到端指代消解 Coreference Resolution

指代消解 (Coreference Resolution) 是 NLP 里面一种常见的任务 ,可以识别一段文本中指代相同对象的部分 。 在 2017 年之前指代消解通常要利用语法解析和手动特征工程等技术 , 效果不理想 。 本文介绍第一篇使用神经网络进行端到端指代消解的论文《End-to-end Neural Coreference Resolution》 , 该方法超越了之前的所有指代消解方法 , 后续很多技术都用到了这一论文的思想 。
1.前言指代消解 (Coreference Resolution) 是 NLP 里面一种常见的任务 ,主要用于识别一段文本中指示相同实体的内容 , 通常是名字和代词 。 下面是指代消解的一个例子 , 句子中一共有三个实体对象 (我 , 姐姐 , 书) , 其中 "姐姐" 和 "她" 都是指代同一实体:
萱草|端到端指代消解 Coreference Resolution指代消解例子
在 2017 年之前 , 主流的指代消解方法通常需要用到语法解析和手工构造特征 , 这种做法存在一些缺点:

  • 语法解析出现的错误会传递到下一个模型中 。
  • 手工构造特征不够灵活 , 也很难用于不同的语言中 。
《End-to-end Neural Coreference Resolution》是第一篇使用神经网络对指代消解进行端到端 (End-to-end) 处理的论文 , 其性能也超过了之前的模型 。 在介绍模型之前 , 首先看一下指代消解中的一些术语:
  • mention 可以理解为文本中的实体
  • antecedent 指先行词 , 例如句子 "我的姐姐把她的书给了我" 中 "姐姐" 和 "她" 指代相同 , "姐姐" 出现在 "她" 之前 , 因此 "姐姐" 是 "她" 的先行词 。
  • coreferent 共指关系 , 例如上面的 "姐姐" 和 "她" 之间存在共指关系 。
  • cluster 表示簇 , 一个簇里面的所有词指代同一个对象 。

萱草|端到端指代消解 Coreference Resolution指代消解的一些术语
2.端到端模型2.1 模型的主要思想
模型的主要思想是把文本中所有区间 (span) 都考虑上 , 并计算两两区间指代同一对象的概率 。 例如句子 "猫吃鱼" 里面包含 6 个区间 "猫"、"吃"、"鱼"、"猫吃"、"吃鱼"、"猫吃鱼" 。 假设句子的长度为 T , 则区间总数 N = (T+1)T/2 。
对于区间 i , 它的起始位置用 START(i) 表示 , 结束位置用 END(i) 表示 。 区间按照 START 从小到大排序 , 如果 START 一样则按照 END 从小到大排序 。 区间 i 所有可能的先行词集合用 Y(i) 表示 , 如下面的公式所示 , 其中的 ε 表示区间 i 没有先行词 。
萱草|端到端指代消解 Coreference Resolution区间 i 的所有可能的先行词
函数 s(i,j) 计算区间 i 和区间 j 指代同一对象的得分 , 其计算公式如下:
萱草|端到端指代消解 Coreference Resolution区间 i,j 指代同一对象的得分
模型需要最大化下面的条件概率:
萱草|端到端指代消解 Coreference Resolution最大化条件概率
2.2 模型结构
模型的结构主要分为两个部分 , 第一部分 Span Representations , 负责计算每一个区间 (span) 的表征向量;第二部分 Scoring Architecture , 负责计算该区间是一个实体的概率、两区间指代同一对象的概率 。


推荐阅读