Paper Reading: Recurrent Neural Network Grammars

前言

之前所接触的课题均为基于纯深度学习方法的文本理解、生成等工作。但深觉如果没有一些关于语言语法本身的先验知识作为帮助,我们(模型设计者)很难对自己设计的模型有深入的了解和掌握,从而进行有方向的改进。

对一个比较复杂的模型作出理论上可证明的改进、并经过实验来验证这个改进的有效性是一件非常有趣的事情。但可惜很多模型的作者也无法很好解释它为何outperform state-of-the-art。次一点的设计思路是对特定的任务结构进行分析,并探求可能的改进方向,针对这个方向在模型中增加相应的结构(无法确保这个结构一定能在这个方向带来增益),再通过实验来测试这个方法的可行性。当然最次的就是进行一些自己也不知道为何要这样做的改动,得到一个自己也不知道为什么会高的结果,这个用来打打比赛估计还行,长期以往就会觉得无聊了。

笔者对形式语法也很感兴趣,之前也一直在探索传统语言学分析方法与深度学习方法的结合。在进行domain research的时候遇到了这篇文章,觉得获益匪浅,决定把它认真读几遍,做个阅读笔记供以后回顾。

1.Paper Introduction

这篇文章发表在NAACL16。论文的motivation是基于现有RNN模型在文本理解方面的缺陷:RNN对文本的线性encoding是一个不太合适的先验(prior,任何与计算最终目标值,比如 p ( x ∣ y ) p(x|y) p(xy),相关的抽象概念,包括RNN参数和其结构本身,都可以称为先验)。关于句法结构,Chomsky做了很多研究,一般比较熟悉的是基于上下文无关文法的syntax parsing。普遍比较同意的观点是,语言的结构是层次的,而不是线性的。如果只使用线性RNN来encode一段文本,若解释“模型能在训练过程中学习到syntax和semantic的表示并体现在参数变化中”似乎有些勉强。总而言之,一个蕴含层次化syntax结构作为先验的RNN是要比普通的线性结构RNN更好的。

文章提出了叫做Recurrent Neural Network Grammar的模型。它结合了RNN和传统transition-based parsing的思想。该模型是自顶向下分析的,即以初始非终结符S开始,逐步对非终结符进行展开,最终得到终结符串,同时建立起语法分析树。这个模型不仅可以作为syntax parser(即给定一个字符串,模型挑选出最有可能的语法分析树作为返回),还能作为语言模型(language model,即对于任意长度字符串 s = w 1 w 2 . . . w n s=w_1w_2...w_n s=w1w2...wn,能根据公式 p ( s ) = p ( w 1 ) p ( w 2 ∣ w 1 ) . . . p ( w n ∣ w 1 w 2 . . . w n − 1 ) p(s)=p(w_1)p(w_2|w_1)...p(w_n|w_1w_2...w_{n-1}) p(s)=p(w1)p(w2w1)...p(wnw1w2...wn1)计算该字符串的出现概率)。

2.Model Illustration

RNN Grammar的形式化定义为一个三元组: ( N , Σ , Θ ) (N,\Sigma,\Theta) (N,Σ,Θ,前两个分别是终结符和非终结符的集合。和传统CFG定义不同之处在于,最后一个 Θ \Theta Θ只是一个参数,而非显式规定的规则集。模型对我们所定义的规则是通过对训练数据的学习获取的(这里和上面所说线性RNN通过学习获取syntax信息不同之处在于,RNNG的学习过程本身就是放在一个CFG语法分析树框架里的)。RNNG有一个栈,用来存当前正在处理的非终结符和终结符;一个buffer,用来存放未处理输入(或已生成输出,区别见后)。

RNNG可以通过两种方式来进行学习:判别模型(discriminative)和生成模型(generative)。具体来说,生成模型学习的是训练数据 { x i } i = 1 m \{x_i\}_{i=1}^{m} { xi}i=1m​<

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值