论文赏析[ACL18]直接到树:基于神经句法距离的成分句法分析(二)

简介: 今天要讲的这篇论文发表在ACL18上面,一句话概括,本文就是将句法树序列化,通过预测序列进行句法分析。

训练


模型结构

下面的问题就是给出一个句子,如何学习出它的三元组 image.png呢?

首先将每个单词的词向量和tag向量拼接作为输入,然后送入一个Bi-LSTM,得到隐含层输出为

image.png

对于每个单词,可能存在一元结点,也可能不存在,不存在的话就标记为 image.png ,用一个前馈神经网络和softmax预测每个单词的一元结点:

image.png

为了得到每个split的表示,对两两相邻单词进行卷积:

image.png

注意输出比输入少一个,因为split数量比单词少一个。

然后再将输出通过一层Bi-LSTM,得到最终的split表示:

image.png

当然这里也可以选择采用self-attention,详见我的上一篇博客。

最后将输出通过一个两层前馈神经网络,得到每个split的句法距离值:

image.png

每个内结点的label同样用一个前馈神经网络和softmax预测:

image.png

损失函数

对于训练样例 image.png ,它的损失函数就是 d 和 c 的损失函数之和。

对于 c ,因为用的是softmax预测的,所以直接用交叉熵即可得到损失 image.png

对于 d ,可以用均方误差:

image.png

然而我们并不在意句法距离的绝对值大小,我们只要它的相对大小是正确的即可,所以均方误差在这里不是很合适,可以换成如下损失函数:

image.png

最后总的损失函数为:

image.png

下面这张图形象的说明了模型的结构,由下往上,第一层圆圈是单词之间的LSTM,然后每个单词上面的五边形是前馈神经网络用来预测一元label,两个相邻单词之间的三角形是卷积,卷积得到的结果再通过一个LSTM得到split表示,最后每个split上面有两个五边形,一个是前馈神经网络用来预测label,另一个是前馈神经网络用来预测句法距离。

image.png

实验


在PTB数据集上的实验结果如下:

image.png

可以看出,结果还是很有竞争力的,虽然有很多比本文高的模型,但本文解释了,那是因为他们用了Char-LSTM,用了外部数据,用了半监督方法或者重排序方法。。。目前单模型最高的方法依然是上一篇博客讲的span-based模型。

最后值得一提的是模型的运行速度,之前理论分析时间复杂度非常低,而实际上运行速度的确快了许多,结果如下:

image.png

总结


本文最大的创新点就是应用句法距离进行句法分析,并且时间复杂度很低。至于文章题目为什么叫“Straight to the Tree”,文章最后说因为只通过一个最普通的LSTM和卷积就预测出了句法树,所以是很直接的。。。

本文的模型还比较粗糙,我觉得仍然有许多改进之处:

  • 可以将LSTM替换为self-attention,因为之前博客讲到了,伯克利的self-attention编码器比LSTM编码器准确率高了1个多的百分点。
  • 可以尝试最近新出的词向量模型ELMo,也许会有特别大的提升。
  • 加入词级别的Char-LSTM,可能会有一定提升。
  • 我觉得split的表示可以更加复杂化一点,而不仅仅是一层卷积+一层LSTM这么简单。
相关文章
|
自然语言处理 并行计算 算法
论文赏析[ACL18]直接到树:基于神经句法距离的成分句法分析(一)
今天要讲的这篇论文发表在ACL18上面,一句话概括,本文就是将句法树序列化,通过预测序列进行句法分析。
152 0
论文赏析[ACL18]直接到树:基于神经句法距离的成分句法分析(一)
|
机器学习/深度学习 自然语言处理
论文赏析[ACL18]基于RNN和动态规划的线性时间成分句法分析(一)
好像已经很久没有看论文了呢,开学了一堆事情,以后还是要抽空阅读论文,保持一定的阅读量,并且不能光看最新的论文,还得去前人传统的方法中去寻找有没有能应用于深度学习的东西,说不定就发ACL了呢(手动滑稽)。 论文地址:Linear-Time Constituency Parsing with RNNs and Dynamic Programming 代码地址:github
论文赏析[ACL18]基于RNN和动态规划的线性时间成分句法分析(一)
|
机器学习/深度学习
论文赏析[ACL18]基于RNN和动态规划的线性时间成分句法分析(二)
好像已经很久没有看论文了呢,开学了一堆事情,以后还是要抽空阅读论文,保持一定的阅读量,并且不能光看最新的论文,还得去前人传统的方法中去寻找有没有能应用于深度学习的东西,说不定就发ACL了呢(手动滑稽)。 论文地址:Linear-Time Constituency Parsing with RNNs and Dynamic Programming 代码地址:github
论文赏析[ACL18]基于RNN和动态规划的线性时间成分句法分析(二)
|
机器学习/深度学习 自然语言处理
论文赏析[ACL18]一个句子向量表示究竟可以塞进多少语言性质?
本文主要探究了不同encoder在不同任务上训练得到的句子向量表示,是否蕴含了各种语言性质。
151 0
论文赏析[ACL18]一个句子向量表示究竟可以塞进多少语言性质?
|
机器学习/深度学习 自然语言处理
论文赏析[TACL18]隐式句法树模型真的能学到句子中有意义的结构吗?(二)
本文是一篇分析类论文,主要对近年来几种无监督句法分析模型(RL-SPINN和ST-Gumbel)进行了分析,得出了如下三个结论: 在句子分类任务上,只有一种模型效果好于传统的树结构模型。 这些模型随机性很大,初始化不同,结果也都差距很大。 这些模型产生的句法树的平均深度比PTB数据集的平均深度浅。
526 0
论文赏析[TACL18]隐式句法树模型真的能学到句子中有意义的结构吗?(二)
|
机器学习/深度学习 自然语言处理
论文赏析[TACL18]隐式句法树模型真的能学到句子中有意义的结构吗?(一)
本文是一篇分析类论文,主要对近年来几种无监督句法分析模型(RL-SPINN和ST-Gumbel)进行了分析,得出了如下三个结论: 在句子分类任务上,只有一种模型效果好于传统的树结构模型。 这些模型随机性很大,初始化不同,结果也都差距很大。 这些模型产生的句法树的平均深度比PTB数据集的平均深度浅。
146 0
论文赏析[TACL18]隐式句法树模型真的能学到句子中有意义的结构吗?(一)
论文赏析[EMNLP18]用序列标注来进行成分句法分析(二)
本文定义了一种新的树的序列化方法,将树结构预测问题转化为了序列预测问题。该序列用相邻两个结点的公共祖先(CA)数量和最近公共祖先(LCA)的label来表示一棵树,并且证明了这个树到序列的映射是单射但不是满射的,但是提出了一系列方法来解决这个问题。
132 0
论文赏析[EMNLP18]用序列标注来进行成分句法分析(二)
|
机器学习/深度学习
论文赏析[EMNLP18]用序列标注来进行成分句法分析(一)
本文定义了一种新的树的序列化方法,将树结构预测问题转化为了序列预测问题。该序列用相邻两个结点的公共祖先(CA)数量和最近公共祖先(LCA)的label来表示一棵树,并且证明了这个树到序列的映射是单射但不是满射的,但是提出了一系列方法来解决这个问题。
169 0
论文赏析[EMNLP18]用序列标注来进行成分句法分析(一)
|
机器学习/深度学习 自然语言处理 算法
论文赏析[COLING18]两种成分句法分析的局部特征模型(一)
论文地址:Two Local Models for Neural Constituent Parsing 代码地址:github 今天要介绍的论文来自COLING 2018,本文主要探讨了局部特征对成分句法分析到底有多大的影响,并同时提出了两种局部特征模型,在PTB上面取得了92.4的F1值。
275 0
论文赏析[COLING18]两种成分句法分析的局部特征模型(一)