介绍
Dynamic Oracle是用在转移系统中,防止错误传播的一种手段。而转移系统主要有分为三种:bottom-up、top-down和in-order的转移系统。
其中bottom-up转移系统的Dynamic Oracle在
Span-Based Constituency Parsing with a Structure-Label System and Provably Optimal Dynamic Oraclesaclweb.org
中有很详细的证明,也可以参看我之前的博客
Deep Understanding of Dynamic Oracle in Constituent Parsinggodweiyang.com
而本文就提出了另外两种转移系统的Dynamic Oracle,其中top-down转移系统主要基于
Recurrent Neural Network Grammarsaclweb.org
in-order转移系统主要基于
In-Order Transition-based Constituent Parsingaclweb.org
基础知识
形式化定义
bottom-up的转移系统这里就不讨论了,这里主要讨论另外两种转移系统。转移系统的状态用五元组 表示,五元组内元素分别表示stack、buffer第一个单词的下标、in-order转移系统中结束标记、已经生成的短语成分集合、stack中非终结符集合。
每个短语成分用三元组 表示,其中X是非终结符,l和r是短语的边界下标。而非终结符用二元组 表示,其中j表示X入栈后下一个入栈的单词的下标。
例如对于上图中的句法树,它的gold短语成分集合是
如果采用top-down的转移系统,非终结符入栈的顺序为
如果采用in-order的转移系统,非终结符入栈的顺序为
正如之前所说,top-down中非终结符的下标就是短语的第一个单词的下标,但是in-order不是的,因为短语的第一个子结点已经在非终结符入栈之前形成了,所以它的下标是第二个子结点表示的短语的第一个单词的下标。
之前的top-down和in-order转移系统中并没有用到预测的短语集合 和stack里的非终结符集合 ,但是在本文的转移系统中需要用到,因为本文要用它来改进loss函数,以此来实现Dynamic Oracle。
top-down转移系统
上面两张图分别是top-down转移系统的转移过程和具体的转移示例。注意到REDUCE动作会将新的短语加入到 集合中,并且从非终结符集合 中删去该非终结符。而NT-X动作会将新的非终结符X加入到非终结符集合 中。
in-order转移系统
上面两张图分别是in-order转移系统的转移过程和具体的转移示例,大致细节和top-down转移系统类似。