论文赏析[NAACL16]RNN文法(一)

简介: 论文赏析[NAACL16]RNN文法论文地址:Recurrent Neural Network Grammars代码地址:github

摘要


今天要介绍的这篇论文是来自NAACL16的Recurrent Neural Network Grammars,主要贡献点就是提出了一种新的文法RNNG,不同于传统的PCFG之类的文法,RNNG使用RNN来对句子和它的句法树的联合概率进行建模,因此它是一个生成模型。但是稍稍修改就可以改为判别模型,也就是大家熟悉的基于转移的成分句法分析系统,并且转移系统是采用top-down方法的,也就是利用了句法树的前序遍历。

RNNG在语言模型任务上取得了当时的state-of-the-art结果,成分句法分析任务上,生成模型取得了媲美最好结果的F1值,而判别模型就差了点。本文最大的贡献点就是提出了生成式模型RNNG,说明了在数据量不是很大的时候,利用生成式模型可以提高成分句法分析的准确率。

RNN在语言模型和其他许多NLP任务上面都已经取得了非常不错的效果,但是RNN只能捕捉到句子的序列特征,例如句子的句法结构等递归嵌套的结构信息无法用RNN捕捉到。

因此本文提出了一种利用RNN建模出来的全新文法RNNG,建立在句子的句法结构之上,消除了PCFG的上下文无关假设。并提出了两种变体,一种是生成模型,可以用来句法分析和训练语言模型,另一种是判别模型,可以用来句法分析。

RNNG建立在top-down转移系统之上,top-down转移系统相比于bottom-up转移系统有一个好处,就是不需要二叉化,因为如果bottom-up转移系统不二叉化的话,REDUCE的状态就会有很多种可能,不知道到底归约栈里的几个结点。而top-down转移系统就不存在这个问题,直接归约到第一个父结点为止就行了。本文应该也是第一个提出用RNN来实现top-down转移系统的,之前的方法都是用top-down的文法,或者是bottom-up的,例如Sochar2013的CVG,也是用二叉化后的RNN学习结点的语义表示。

RNN文法


RNNG定义为三元组 image.png ,其中 N 是非终结符集合, image.png 是终结符集合,并且 image.png 就是神经网络的参数集合。RNNG和传统的PCFG的一个明显区别就是它没有显式地指出语法规则是什么,而是蕴含在了神经网络中,在句法转移的时候动态的生成。

Top-down句法分析和生成


这部分主要介绍RNNG的两个变体,一个是top-down的句法分析系统,还有一个是稍稍修改后的生成系统。

判别式系统

这个判别式模型之前也已经介绍过很多次了,和普通的基于转移的句法分析系统一样,输入是一个句子 X ,输出是它的句法分析树 Y 。主要组成部分有句法树栈、句子单词buffer、动作集合,每一步的动作有三种:

  • NT(X):将一个父结点X移进栈里。
  • SHIFT:从buffer中移一个单词到栈里。
  • REDUCE:将栈顶的若干个结点归约为它们的父结点,并且出栈。

图1就是每个动作的状态变化过程,图2是判别式模型进行句法分析的示例:

image.png


当然得给动作添加一些限制,首先记当前状态为三元组 image.png ,分别表示buffer、栈、当前栈里未归约的父结点数量,这个之前的博客没有提及过:

  • NT(X)动作只有当buffer不为空并且 image.png 的时候才能进行。因为buffer空了的话就没有单词了,此时不可能移进新的非终结符了,并且要限制 image.png 防止一元产生式无限生成下去。
  • SHIFT动作只有当buffer不为空并且 image.png 时才能进行。前者不用解释了,后者的话因为是top-down的,所以栈里至少要有一个父结点才能移进新的单词。
  • REDUCE只有当栈顶不是没有归约的父结点才能进行。
  • REDUCE只有当 image.png 或者buffer为空时才能进行。这里要解释一下为什么image.png,因为如果buffer不为空同时image.png,那么这时候如果REDUCE的话,栈里就只剩一个非终结符了,只可能是根节点S,而buffer里还有单词,所以这是不可能的。

记当前状态的可能动作集合为 image.png

生成式系统

将上面的top-down转移系统稍稍修改即可得到生成式系统。区别有两点:

  • 首先没有了输入的buffer,取而代之的是输出的buffer image.png
  • 其次因为没有输入单词了,所以在需要输入单词的时候采用GEN(x)动作来产生一个新的单词 X ,然后移进栈里,取代SHIFT动作。

图3就是每个动作的状态变化过程,图4是生成式模型进行句法分析的示例:

image.png


同样也要对其采取一些限制:

  • GEN(x)动作只有当 image.png 时才能进行,上面SHIFT限制已经解释过了。
  • REDUCE只有当 image.png 或者buffer为空时才能进行。这里再次解释一下,上面判别式模型限制条件是image.png,为什么这里就变成了image.png?因为生成模型没有输入buffer,所以即使image.png时REDUCE了,以后不要再GEN(x)即可,直接结束分析

记当前状态的可能动作集合为 image.png

转移序列

因为一棵句法树的前序遍历是唯一的,所以不管用判别式模型还是生成式模型,得到的动作序列也都是唯一的。对于句子 X 和句法树 Y ,记生成式模型动作序列为 image.png ,判别式模型动作序列为 image.png

相关文章
|
9月前
|
人工智能 人机交互 语音技术
INTERSPEECH2023论文解读|BAT一种低延迟低内存消耗的RNN-T模型
INTERSPEECH2023论文解读|BAT一种低延迟低内存消耗的RNN-T模型
140 0
|
机器学习/深度学习 存储 算法
图灵机就是深度学习最热循环神经网络RNN?1996年论文就已证明(2)
图灵机就是深度学习最热循环神经网络RNN?1996年论文就已证明
|
机器学习/深度学习 存储 人工智能
图灵机就是深度学习最热循环神经网络RNN?1996年论文就已证明(1)
图灵机就是深度学习最热循环神经网络RNN?1996年论文就已证明
102 0
|
机器学习/深度学习 存储 测试技术
Transformer的潜在竞争对手QRNN论文解读,训练更快的RNN
Transformer的潜在竞争对手QRNN论文解读,训练更快的RNN
155 0
Transformer的潜在竞争对手QRNN论文解读,训练更快的RNN
|
机器学习/深度学习 自然语言处理 算法
论文赏析[NAACL16]RNN文法(二)
论文赏析[NAACL16]RNN文法 论文地址:Recurrent Neural Network Grammars 代码地址:github
112 0
论文赏析[NAACL16]RNN文法(二)
|
13天前
|
机器学习/深度学习
【从零开始学习深度学习】33.语言模型的计算方式及循环神经网络RNN简介
【从零开始学习深度学习】33.语言模型的计算方式及循环神经网络RNN简介
【从零开始学习深度学习】33.语言模型的计算方式及循环神经网络RNN简介
|
4天前
|
机器学习/深度学习 自然语言处理 算法
RNN-循环神经网络
自然语言处理(Nature language Processing, NLP)研究的主要是通过计算机算法来理解自然语言。对于自然语言来说,处理的数据主要就是人类的语言,我们在进行文本数据处理时,需要将文本进行数据值化,然后进行后续的训练工作。
|
13天前
|
机器学习/深度学习 自然语言处理 算法
【从零开始学习深度学习】49.Pytorch_NLP项目实战:文本情感分类---使用循环神经网络RNN
【从零开始学习深度学习】49.Pytorch_NLP项目实战:文本情感分类---使用循环神经网络RNN
|
1月前
|
机器学习/深度学习 自然语言处理 语音技术
深度学习500问——Chapter06: 循环神经网络(RNN)(3)
深度学习500问——Chapter06: 循环神经网络(RNN)(3)
40 3
|
1月前
|
机器学习/深度学习 自然语言处理 PyTorch
使用Python实现循环神经网络(RNN)的博客教程
使用Python实现循环神经网络(RNN)的博客教程
76 1

热门文章

最新文章