论文赏析[EMNLP18]针对自顶向下和中序移进归约成分句法分析的Dynamic Oracles(二)

简介: 本文是发表在EMNLP18上的一篇关于Dynamic Oracle的论文,主要介绍了针对自顶向下和中序两种移进归约成分句法分析模型的Dynamic Oracles。在PTB数据集上,取得了单模型最高的F1值92.0(截至论文发稿时是最高的,张岳TACL18的论文已经取得了92.4的最高F1值)。

Dynamic Oracles简介

最后再解释一下Dynamic Oracle是干嘛用的,传统的Static Oracle就是在转移的每一步按照标准转移序列中的action进行转移,但是这样会有一个问题,如果预测的时候某一步预测错了,遇到了一个训练阶段没有出现过的状态,那么该怎么进行转移呢?这时候就要用到Dynamic Oracle,用来针对不同的错误情况进行动态的指导,引导它转移到正确的状态中去。另外在训练时可以手动加入一些错误状态,来训练模型,不然的话遇到的错误状态还是太少了,不足以训练好模型。

Dynamic Oracles


Goldberg (2012)证明了Dynamic Oracle可以通过定义一个损失函数来直接实现,而这个损失函数可以用来衡量当前状态可以产生的最优句法树和标准句法树的距离。最小化这个距离就会使得错误状态也会转移到最终错误最少的状态。而这个损失函数就要和当前状态c挂钩了,这样才能达到和传统的Dynamic Oracle类似的效果。

损失函数

传统的损失函数定义为预测短语成分集合和标准短语成分集合不相交的元素数量,即:

image.png

根据上一篇博文

更快的基于非二叉化自底向上策略的转移系统成分句法分析godweiyang.com


的推导,该损失函数可以计算为

image.png

上面的损失函数是上一篇论文中介绍的bottom-up的转移系统的Dynamic Oracle,但是本文主要讨论top-down和in-order的转移系统,因为转移系统多了non-terminal,所以需要新加入两项损失,用来衡量当前状态可以产生的最优句法树与标准句法树之间的汉明损失。

这两项新加的损失分别是:

  • 当前栈中已经生成的non-terminal集合 image.png 中不包含在标准non-terminal集合 image.png 中的non-terminal数量,即 image.png
  • 当前栈中违反了标准树中non-terminal顺序的non-terminal数量。

所以最终的损失函数为:

image.png

前面三项都很容易求得,至于最后一项,可以通过计算栈里的gold non-terminal序列的最长上升子序列来得到,而序列中每个non-terminal的标号就是它在标准树转移序列的non-terminal顺序标号。

短语的可达性

在这里用短语集合 image.png 来表示一棵句法树,我们假设状态c的短语集合为 image.png ,那么我们说,标准句法树中的一个短语 image.png 当且仅当满足如下三个条件之一时,称它是“各自可达短语”:

对于top-down转移系统:

  • image.png (因为短语已经包含在了状态c已生成的短语集合里,那么它当然是可达的)。
  • image.png (因为短语还在buffer中,并且短语的non-terminal还没有入栈,所以可以通过入栈 image.png ,再不断SHIFT然后REDUCE得到)。
  • image.png(这种情况表明了短语的左端点恰好位于栈里某个短语的边界处,而右端点又还在buffer里,所以还可以通过不断SHUFT然后REDUCE得到短语。但是如果左端点不是栈里短语的边界,那说明产生了交叉,自然不会可达了。而如果右端点已经在栈里了,那之后也不会得到了,因为转移系统每次都是REDUCE栈顶的短语,不可能从栈里面开始REDUCE的,当然这些前提条件当然是non-terminal image.png 已经在栈里了)。

对于in-order转移系统:

  • image.png (因为短语已经包含在了状态c已生成的短语集合里,那么它当然是可达的)。
  • image.png (因为短语还在buffer中,所以可以通过入栈第一个左儿子,再入栈 image.png ,再不断SHIFT然后REDUCE得到)。
  • image.png (这种情况表明了第一个左儿子已经生成了一部分或者完全生成了,并且根结点non-terminal还没有入栈,所以依然可以生成)。
  • image.png (这种情况表明了第一个左儿子已经完全生成了,并且根结点non-terminal在栈里,所以依然可以生成)。

枚举标准树中的所有短语,根据以上规则可以得到可达短语集合 image.png ,然后从标准短语集合中排除掉这部分短语,剩下的就是不可达短语集合 image.png 。这部分短语就是不论采取何种动作序列,最后都不可能生成的短语集合。

关于这两个Dynamic Oracles的正确性,这里就不再证明了,证明过程和上一篇bottom-up的差不多。

实验结果


本文和基础的几个转移系统做了对比,代码也是在他们基础上进行修改的,结果如下:

image.png

可以发现,加了Dynamic Oracles之后,结果还是有略微提高的。


相关文章
|
8月前
没有给出二分图两个左右点集时的二分图最大匹配
没有给出二分图两个左右点集时的二分图最大匹配
36 0
|
算法
二分图的匈牙利算法(用于解决最大匹配问题)--以杭电过山车题为例
二分图的匈牙利算法(用于解决最大匹配问题)--以杭电过山车题为例
121 0
|
机器学习/深度学习 人工智能 运维
NeurIPS 2022 Oral | 基于最优子集的神经集合函数学习方法EquiVSet
NeurIPS 2022 Oral | 基于最优子集的神经集合函数学习方法EquiVSet
104 0
|
算法
【算法竞赛进阶指南】車的放置(行列模型二分图最大匹配+匈牙利算法)
【算法竞赛进阶指南】車的放置(行列模型二分图最大匹配+匈牙利算法)
100 0
|
Oracle 关系型数据库
论文赏析[EMNLP18]针对自顶向下和中序移进归约成分句法分析的Dynamic Oracles(一)
本文是发表在EMNLP18上的一篇关于Dynamic Oracle的论文,主要介绍了针对自顶向下和中序两种移进归约成分句法分析模型的Dynamic Oracles。在PTB数据集上,取得了单模型最高的F1值92.0(截至论文发稿时是最高的,张岳TACL18的论文已经取得了92.4的最高F1值)。
211 0
论文赏析[EMNLP18]针对自顶向下和中序移进归约成分句法分析的Dynamic Oracles(一)
|
机器学习/深度学习 Oracle 算法
论文赏析[TACL17]基于中序转移的成分句法分析(二)
论文地址:In-Order Transition-based Constituent Parsing 代码地址:github 今天要介绍的这篇论文是成分句法分析领域目前的第三名,结果最高的几篇paper可以参见ruder在github整理的列表:github。下面就是成分句法分析目前排名:
138 0
论文赏析[TACL17]基于中序转移的成分句法分析(二)
|
算法
论文赏析[TACL17]基于中序转移的成分句法分析(一)
论文地址:In-Order Transition-based Constituent Parsing 代码地址:github 今天要介绍的这篇论文是成分句法分析领域目前的第三名,结果最高的几篇paper可以参见ruder在github整理的列表:github。下面就是成分句法分析目前排名:
114 0
论文赏析[TACL17]基于中序转移的成分句法分析(一)
论文赏析[EMNLP18]用序列标注来进行成分句法分析(二)
本文定义了一种新的树的序列化方法,将树结构预测问题转化为了序列预测问题。该序列用相邻两个结点的公共祖先(CA)数量和最近公共祖先(LCA)的label来表示一棵树,并且证明了这个树到序列的映射是单射但不是满射的,但是提出了一系列方法来解决这个问题。
138 0
论文赏析[EMNLP18]用序列标注来进行成分句法分析(二)
|
机器学习/深度学习
论文赏析[EMNLP18]用序列标注来进行成分句法分析(一)
本文定义了一种新的树的序列化方法,将树结构预测问题转化为了序列预测问题。该序列用相邻两个结点的公共祖先(CA)数量和最近公共祖先(LCA)的label来表示一棵树,并且证明了这个树到序列的映射是单射但不是满射的,但是提出了一系列方法来解决这个问题。
176 0
论文赏析[EMNLP18]用序列标注来进行成分句法分析(一)
|
机器学习/深度学习 自然语言处理
论文赏析[ACL18]直接到树:基于神经句法距离的成分句法分析(二)
今天要讲的这篇论文发表在ACL18上面,一句话概括,本文就是将句法树序列化,通过预测序列进行句法分析。
121 0
论文赏析[ACL18]直接到树:基于神经句法距离的成分句法分析(二)

热门文章

最新文章