论文赏析[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之后,结果还是有略微提高的。


相关文章
|
Oracle 关系型数据库
论文赏析[EMNLP18]针对自顶向下和中序移进归约成分句法分析的Dynamic Oracles(一)
本文是发表在EMNLP18上的一篇关于Dynamic Oracle的论文,主要介绍了针对自顶向下和中序两种移进归约成分句法分析模型的Dynamic Oracles。在PTB数据集上,取得了单模型最高的F1值92.0(截至论文发稿时是最高的,张岳TACL18的论文已经取得了92.4的最高F1值)。
166 0
论文赏析[EMNLP18]针对自顶向下和中序移进归约成分句法分析的Dynamic Oracles(一)
|
机器学习/深度学习
论文赏析[EMNLP18]用序列标注来进行成分句法分析(一)
本文定义了一种新的树的序列化方法,将树结构预测问题转化为了序列预测问题。该序列用相邻两个结点的公共祖先(CA)数量和最近公共祖先(LCA)的label来表示一棵树,并且证明了这个树到序列的映射是单射但不是满射的,但是提出了一系列方法来解决这个问题。
140 0
论文赏析[EMNLP18]用序列标注来进行成分句法分析(一)
论文赏析[EMNLP18]用序列标注来进行成分句法分析(二)
本文定义了一种新的树的序列化方法,将树结构预测问题转化为了序列预测问题。该序列用相邻两个结点的公共祖先(CA)数量和最近公共祖先(LCA)的label来表示一棵树,并且证明了这个树到序列的映射是单射但不是满射的,但是提出了一系列方法来解决这个问题。
108 0
论文赏析[EMNLP18]用序列标注来进行成分句法分析(二)
|
机器学习/深度学习 自然语言处理
论文赏析[TACL18]隐式句法树模型真的能学到句子中有意义的结构吗?(一)
本文是一篇分析类论文,主要对近年来几种无监督句法分析模型(RL-SPINN和ST-Gumbel)进行了分析,得出了如下三个结论: 在句子分类任务上,只有一种模型效果好于传统的树结构模型。 这些模型随机性很大,初始化不同,结果也都差距很大。 这些模型产生的句法树的平均深度比PTB数据集的平均深度浅。
123 0
论文赏析[TACL18]隐式句法树模型真的能学到句子中有意义的结构吗?(一)
|
机器学习/深度学习 自然语言处理
论文赏析[TACL18]隐式句法树模型真的能学到句子中有意义的结构吗?(二)
本文是一篇分析类论文,主要对近年来几种无监督句法分析模型(RL-SPINN和ST-Gumbel)进行了分析,得出了如下三个结论: 在句子分类任务上,只有一种模型效果好于传统的树结构模型。 这些模型随机性很大,初始化不同,结果也都差距很大。 这些模型产生的句法树的平均深度比PTB数据集的平均深度浅。
495 0
论文赏析[TACL18]隐式句法树模型真的能学到句子中有意义的结构吗?(二)
|
机器学习/深度学习 自然语言处理
论文赏析[ACL18]直接到树:基于神经句法距离的成分句法分析(二)
今天要讲的这篇论文发表在ACL18上面,一句话概括,本文就是将句法树序列化,通过预测序列进行句法分析。
论文赏析[ACL18]直接到树:基于神经句法距离的成分句法分析(二)
|
自然语言处理 并行计算 算法
论文赏析[ACL18]直接到树:基于神经句法距离的成分句法分析(一)
今天要讲的这篇论文发表在ACL18上面,一句话概括,本文就是将句法树序列化,通过预测序列进行句法分析。
121 0
论文赏析[ACL18]直接到树:基于神经句法距离的成分句法分析(一)
|
算法
论文赏析[EACL17]K-best Iterative Viterbi Parsing(K-best迭代维特比句法分析二)
CKY算法或维特比inside算法是成分句法分析的主要方法之一,但是当产生式数量特别大之后,时间复杂度也线性增大。可行的一种方法是剪枝,但是剪枝会造成准确率的下降。所以本文就提出了一种迭代的维特比句法分析算法,通过剪枝去除掉没用的边。实验表明,时间上加快了一个数量级,但是本文并没有说准确率怎么样。。。 本文用到的inside和outside算法之前已经介绍过了,详见PCFG中inside和outside算法详解。
397 0
论文赏析[EACL17]K-best Iterative Viterbi Parsing(K-best迭代维特比句法分析二)
|
算法 数据挖掘
论文赏析[EACL17]K-best Iterative Viterbi Parsing(K-best迭代维特比句法分析一)
CKY算法或维特比inside算法是成分句法分析的主要方法之一,但是当产生式数量特别大之后,时间复杂度也线性增大。可行的一种方法是剪枝,但是剪枝会造成准确率的下降。所以本文就提出了一种迭代的维特比句法分析算法,通过剪枝去除掉没用的边。实验表明,时间上加快了一个数量级,但是本文并没有说准确率怎么样。。。 本文用到的inside和outside算法之前已经介绍过了,详见PCFG中inside和outside算法详解。
101 0
论文赏析[EACL17]K-best Iterative Viterbi Parsing(K-best迭代维特比句法分析一)