[arXiv18]更快的基于非二叉化自底向上策略的转移系统成分句法分析
原文链接:
Faster Shift-Reduce Constituent Parsing with a Non-Binary, Bottom-Up Strategy
论文地址:Faster Shift-Reduce Constituent Parsing with a Non-Binary, Bottom-Up Strategy
介绍
这篇论文提出了一种非二叉化、自底向上的转移系统,并且针对它提出了一种Dynamic Oracle,用损失函数的形式来实现它。
之前的模型针对多叉树的处理都是采用head规则进行二叉化,或者采用空结点作为临时结点来进行隐式二叉化。但是本文将REDUCE动作扩展为REDUCE-k动作,从而可以对k叉树进行预测,这样减少了很多二叉树预测的中间过程,降低了模型的训练时间。并且为了提升准确率,还提出了一种用损失函数实现的Dynamic Oracle。
自底向上的转移系统就不详细介绍了,之前都已经介绍过了,这里只说明一下之后要用到的记号。
转移系统由一个stack和buffer组成,每个时刻的状态通常表示为 ,四个元素分别表示stack、buffer第一个单词的单词下标、分析结束标记、已经生成的短语成分的集合。
自底向上的转移系统
传统的转移系统REDUCE操作都只是将栈顶的两个元素归约为一个结点,而本文提出的转移系统将REDUCE扩展为REDUCE-X#k动作,归约栈顶概率最大的k个结点为结点X。举个例子,对于产生式 ,使用的动作为REDUCE-VP#3,表示归约栈顶的三个结点。
具体的转移系统和例子如上图所示,为了区分具有不同数量儿子的结点X,将结点的label细化为X#k,表示具有k个儿子。例如对于VP结点,如果有两个儿子,那么它的label就是VP#2,如果有三个儿子就是VP#3。
Dynamic Oracle
本文采用的Dynamic Oracle是用损失函数来实现的,损失函数衡量的是状态c可以产生的最优句法树和标准句法树之间的距离,这样就可以计算出采取每一个动作之后下一个状态的损失函数值,选择损失函数值最小的动作。
对于状态c,损失函数 定义为状态c可以产生的最终的句法树t和标准句法树 之间的最小汉明距离,即:
一个训练正确的Dynamic Oracle应当使得预测的下一个状态 不会增加损失函数值,即
这个最小汉明损失可以定义为 ,下面就将讨论这两部分怎么计算,主要用到短语的可达性和可分解性。
短语的可达性
在这里用短语集合 来表示一棵句法树,我们假设状态c的短语集合为 ,那么我们说,标准句法树中的一个短语 当且仅当满足如下三个条件之一时,称它是“各自可达短语”:
- (因为短语已经包含在了状态c已生成的短语集合里,那么它当然是可达的)。
- (因为短语还在buffer中,所以可以通过不断SHIFT然后REDUCE得到)。
- (这种情况表明了短语的左端点恰好位于栈里某个短语的边界处,而右端点又还在buffer里,所以还可以通过不断SHUFT然后REDUCE得到短语。但是如果左端点不是栈里短语的边界,那说明产生了交叉,自然不会可达了。而如果右端点已经在栈里了,那之后也不会得到了,因为转移系统每次都是REDUCE栈顶的短语,不可能从栈里面开始REDUCE的)。
枚举标准树中的所有短语,根据以上规则可以得到可达短语集合 ,然后从标准短语集合中排除掉这部分短语,剩下的就是不可达短语集合 。这部分短语就是不论采取何种动作序列,最后都不可能生成的短语集合。
损失函数
对于每一个状态c,可以定义它的损失函数为
其中第一个因子惩罚的是False Negative短语,也就是漏报的短语,即正确的但是不可能被生成的短语。第二个因子惩罚的是False Positive短语,也就是误报的短语,即已经生成的但是是错的短语。
正确性证明
那么我们如何证明,按照这个最小的损失函数值走下去,一定能得到最优的句法树呢?也就是要证明,这个状态c的损失函数,的确就是从状态c能得到的最优句法树和标准树的汉明损失。
首先证明这个损失函数是短语可分解的,也就是证明,对于一个标准树中的短语集合,如果其中的每一个短语都是各自可达的,那么整个集合中的短语可以同时生成。
证明这个性质要用到数学归纳法。首先 时显然成立,然后假设集合元素个数为 时性质成立,下面证明集合T元素个数为 时性质也成立。
令 表示集合T中偏序最小的短语,即l是最小的,如果l有相等的,就再取r最小的。根据假设, 是从状态c可到达的gold短语。令 ,所以集合T'有m个元素,根据递归定义,整个集合都是从状态c可达的。
如果短语的可达性条件中第一种情况满足,那么 已经存在于状态c已生成短语集合中了,那么整个T集合当然是可达的。
如果第二种情况满足,即 ,那么可以通过不断SHIFT再一个REDUCE来得到短语 。那么T'集合又如何能全部生成呢?可以发现T'集合中的短语,要么是左边界等于l并且右边界大于r的(根据定义),这种可以继续SHUFT再REDUCE得到(满足条件3)。要么是左边界大于等于r的(因为都是标准树中的短语,所以不会有边界交叉),这种满足条件2,也可达。论文中就说了这两种情况,是否还存在一种左边界大于等于l,右边界小于等于r的情况呢?当然这种情况满足条件1,因为在生成 的时候就已经生成了。所以最终T集合还是全部可达的。
如果第三种情况满足,即l是栈里某个短语的边界,而r大于等于j,那么这种情况依然可以通过不断SHIFT再REDUCE得到,而T集合仍然可以全部可达,原因和上一种情况类似。
所以可以证得,从状态c开始,存在某个转移序列,使得所有可达短语全部生成,那么只有不可达的短语会被错过,即:
最后一步就是证明另一项 等于 。首先因为前者肯定包含了后者,因为随着转移的进行,预测错误的短语只会增加,不会减少。然后证明最优句法树不会再增加新的错误短语,即从状态c开始的最优句法树一定是 。这里不是很好想,可以想象从包含当前栈顶短语的最小的标准短语开始,一步步的进行转移,按照James and Huang中的Dynamic Oracle。
至此已经证明了,这个损失函数可以保证每一步都按照最优的策略来进行转移。
实验
实验采用的转移模型都是基于Dyer et al.,并且也采用了James and Huang中的exploration策略来增加错误状态,提高Dynamic Oracle的准确率。
在PTB上的实验结果如下:
结果其实也不是很高,现在来看算低的了,本文只和其他的转移系统结果进行了比较,可以说在转移系统上还算比较高的吧,虽然今年转移系统也做到了92.0了。在运行速度上,本文的模型也比其他转移系统略有提升,我感觉虽然不需要二叉化了,但是REDUCE#k动作的增加同样会增加复杂度,这是自底向上转移系统的一个固有的问题。
总结
本文提出了一个非二叉化的自底向上的转移系统,主要有如下几个贡献点吧:
- 非二叉化预测,采用REDUCE#k动作。
- 采用损失函数来实现Dynamic Oracle。
- 准确率上超过了除了in-order的大多数转移系统。
- 训练速度上是所有转移系统中最快的。
看完这篇,我准备在chart-based的top-down模型上面也搞一个这种Dynamic Oracle试试,需要改变的就是每个状态的损失函数,现在的F1还只有91.87,希望能有所突破吧。
[arXiv18]更快的基于非二叉化自底向上策略的转移系统成分句法分析相关推荐
- [Mac入门] 如果更快的打开程序或文件
今天有位网友问我在Windows下可以用Ctrl+R快速打开程序/文件夹等,在Mac下有没有相类似的功能?本文将介绍一些我的一般做法. 1.Windows下的Ctrl+R是什么? 我打算从解释Ctrl ...
- 旧电脑装什么系统最快_旧电脑的福音:Win10精简版,运行比Win7更快,安装包不到3GB...
原标题:旧电脑的福音:Win10精简版,运行比Win7更快,安装包不到3GB 在整个Windows系统的家族中,Windows7是一个非常成功的系统版本.无论是从系统的流畅性还是兼容性和稳定性来讲,都 ...
- Beam Search还能更快?结合优先队列的最佳优先化Beam Search
论文标题:Best-First Beam Search 论文作者:Clara Meister, Tim Vieira, Ryan Cotterell 论文链接:https://arxiv.org/pd ...
- AI大事件 | 谷歌的计算引擎鸟枪换炮用上了更快的GPU,基于Python的亚马逊AWS深度学习AMI
大数据文摘作品 编译 | 宁云州 呜啦啦啦啦啦大家好呀,又到了本周的AI大事件时间了.过去的一周中AI圈都发生了什么?大佬们互撕了哪些问题?研究者们发布了哪些值得一读的论文?又有哪些开源的代码和数据库 ...
- 基于cv2.VideoCapture 和 OpenCV 得到更快的 FPS之Webcam篇
使用线程处理 I/O 繁重的任务(例如从相机传感器读取帧)是一种已经存在数十年的编程模型. 例如,如果我们要构建一个网络爬虫来抓取一系列网页(根据定义,这个任务是 I/O 绑定的),我们的主程序将生成 ...
- AI时代的视频云转码移动端化——更快、更好,更低,更广
编者按: AI技术的落地是渐渐地从服务器端.云端落地,逐步到移动端及边缘设备上.这些年随着AI技术的进步,轻量级算法模型开始在移动端实时跑起来,并且移动端算法也在不断进行迭代和完善,而对于实时直播场景 ...
- AI 时代的视频云转码移动端化,更快、更好、更低、更广
编者按:AI技术的落地是渐渐地从服务器端.云端落地,逐步到移动端及边缘设备上.这些年随着AI技术的进步,轻量级算法模型开始在移动端实时跑起来,并且移动端算法也在不断进行迭代和完善,而对于实时直播场景, ...
- 使用现场总线更快更远
使用现场总线更快更远 Going faster and further with Fieldbus PROCENTEC等行业专家表示,基于RS-485的现场总线技术(PROFIBUS®)和工业以太网( ...
- TensorRT 3:更快的TensorFlow推理和Volta支持
TensorRT 3:更快的TensorFlow推理和Volta支持 TensorRT 3: Faster TensorFlow Inference and Volta Support 英伟达Tens ...
- CSS 和 JS 动画哪个更快
基于Javascript的动画暗中同CSS过渡效果一样,甚至更加快,这怎么可能呢?而Adobe和Google持续发布的富媒体移动网站的性能可媲美本地应用,这又怎么可能呢? 本文逐一遍览了基于Javas ...
最新文章
- ​Unity资源Assetmport New Asset对话框
- find的命令的使用和文件名的后缀
- 深入理解springMVC
- 如何在 C# 中使用 投影(Projection)
- VM虚拟机ping不通局域网其他主机的解决办法
- DataWorks 如何撑起阿里99%的数据开发?
- YUV格式学习:YUV422P、YV16、NV16、NV61格式转换成RGB24
- jquey 阻止表单提交
- .net模式子窗口传值给父窗口
- 「镁客·请讲」归墟电子王景阳:以桌面小型机器人切入市场,沿着“机器人+教育”的方向前进...
- android音乐播放器音乐推荐,七大主流Android音乐播放器横向评测
- 电脑桌面不见计算机图标,主编教您电脑桌面图标都不见了怎么办
- OAuth开放授权协议初探
- 如何把excel中的多行数据按行数拆分成多个
- 致家长--为什么选择Scratch
- 最全小说资源网——连载阅读升级版(亲测好用)
- 2023面试官常考的前端面试题
- Linux安装postman工具
- Zotero中文文献管理
- 面向对象的特点?对象模型、动态模型和功能模型3种模型之间的关系?