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

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

生成式模型


本文最重要的就是上面提到的生成式模型,因为GEN(x)动作的存在,所以模型同时对句子 X 和句法树 Y 的联合分布进行了建模。记当前状态的向量表示为 image.png ,那么联合分布可以表示为:

image.png

其中 image.png 表示动作 A 的向量表示, B 表示偏移向量,都包含在了RNNG参数集合 image.png 里面,通过训练得到。

而当前状态的向量表示 image.png 由三部分得到,输出buffer的LSTM输出 image.png 、栈的LSTM输出 image.png 、历史动作序列的LSTM输出 image.png ,然后经过一个前馈神经网络得到:

image.png

W 和 c 同样也包含在了RNNG参数集合 image.png 里面,下图是三个LSTM的示例图:

image.png


句法成分组合

在REDUCE操作时,需要将若干个子结点归约为一个父结点,为了得到父结点的向量表示,再次利用一个LSTM对子结点序列进行编码,同时在首尾加上父结点,结构图如下所示:

image.png


单词生成

单词生成采用softmax寻找概率最大的单词,但是单词数量可能十分巨大,所以采用分层softmax的思想,首先预测当前动作是不是GEN,如果是GEN,记单词总数为 image.png ,再将单词平均分成 image.png 个类别,用softmax预测属于哪个类别,然后在那个类别里再用softmax预测输出哪个单词。这样时间复杂度就从 image.png 降到了 image.png

参数训练和判别式模型

模型最终训练目的就是使得联合概率最大。

而只需要将输出buffer改为输入buffer,GEN动作改为SHIFT动作,然后重新训练,就可以将模型变为判别式模型了,输出给定输入句子下概率最大的句法树。

通过重要性采样进行推理


本文的生成式模型另一大作用是训练语言模型 image.png ,根据边际分布公式 image.png

可以直接得到 image.png ,但是一句话的句法树可能性是指数级别的,不可能一一枚举,这时候就要用到重要性采样算法。

首先定义一个比较容易得到的条件分布 image.png ,它满足如下性质:

  • image.png 可以推出  image.png
  • 服从分布的样本很容易得到。
  • image.png 可以直接计算得到。

可以发现,上面的判别式模型得到的条件分布符合上面的性质,所以这里直接用判别式模型来进行采样。

这样 image.png 就变为了:

image.png

其中重要性权重 image.png

最后如果根据分布 image.png 采样得到了 N 个句法树样本,那么用蒙特卡罗方法就可以估计出 image.png 了:

image.png

实验


实验部分主要说一下PTB上的句法分析和语言模型吧,下面两张图分别是句法分析和语言模型的结果:

image.pngimage.png

句法分析方面可以看出,生成模型效果要远远好于判别模型,生成模型效果也接近了当时的最好结果。一个合理的解释是在小数据集上面,生成模型效果要更好,而在大数据集上,判别模型效果可以赶上生成模型。

这里要提到的一点是,判别式模型就是每一个状态直接贪心argmax找到概率最大的动作,然后生成句法树。而生成式模型是利用判别式模型采样出100个概率比较高的句法树,然后用生成式模型计算它们的联合概率,重排序选择概率最高的句法树。

语言模型方面,结果要比最好结果高了一点。

总结


RNNG这个文法是个生成式模型,建模了句子和句法树的联合分布,稍稍修改即可应用到句法分析和语言模型中,效果也非常的好。

最后,我再简要梳理一遍RNNG的主要训练过程,因为这篇论文也看了整整两天,还是看的头大,一些细节可能还是没完全搞清。

首先利用生成式模型对每句话进行训练,在每个状态计算正确的动作的概率,然后训练使得概率之积最大。

然后应用到句法分析中,只需要修改为判别式模型即可。

最后应用到语言模型中,由于需要用到重要性采样,所以直接利用判别式模型生成若干样本,然后根据算得的条件概率计算语言模型句子的概率。


相关文章
|
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
|
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
|
12天前
|
机器学习/深度学习 存储 自然语言处理
RNN与LSTM:循环神经网络的深入理解
【6月更文挑战第14天】本文深入探讨RNN和LSTM,两种关键的深度学习模型在处理序列数据时的作用。RNN利用记忆单元捕捉时间依赖性,但面临梯度消失和爆炸问题。为解决此问题,LSTM引入门控机制,有效捕获长期依赖,适用于长序列处理。RNN与LSTM相互关联,LSTM可视为RNN的优化版本。两者在NLP、语音识别等领域有广泛影响,未来潜力无限。

热门文章

最新文章