【笔记3-9】CS224N课程笔记 -递归神经网络和成分句法分析

本文深入探讨了递归神经网络(RNN)的变体,如SU-RNN、MV-RNN和RNTN在自然语言处理中的应用,特别是其在成分句法分析中的作用。通过解析树,RNN能够理解和表示句子的嵌套结构,从而进行语义分析。RNTN作为一种更强大的模型,能更好地捕捉复杂的关系,但仍有如否定词处理的挑战。
摘要由CSDN通过智能技术生成

【笔记3-1】CS224N课程笔记 - 深度自然语言处理
【笔记3-2】CS224N课程笔记 - 词向量表示 word2vec
【笔记3-3】CS224N课程笔记 - 高级词向量表示
【笔记3-4】CS224N课程笔记 - 分类与神经网络
【笔记3-5】CS224N课程笔记 - 依存分析
【笔记3-6】CS224N课程笔记 - RNN和语言模型
【笔记3-7】CS224N课程笔记 - 神经网络机器翻译seq2seq注意力机制
【笔记3-8】CS224N课程笔记 - 卷积神经网络

CS224n:深度学习的自然语言处理(2017年冬季)1080p https://www.bilibili.com/video/av28030942/

涉及到的论文:

Improved Semantic Representations From Tree-Structured Long Short-Term Memory Networks (Kai Sheng Tai, Richard Socher*, Christopher D. Manning)
https://arxiv.org/pdf/1503.00075.pdf

Deep Reinforcement Learning for Dialogue Generation (Jiwei Li, Will Monroe, Alan Ritter, Michel Galley, Jianfeng Gao and Dan Jurafsky)
https://arxiv.org/pdf/1606.01541.pdf

Parsing with Compositional Vector Grammars (Richard Socher John Bauer Christopher D. Manning Andrew Y. Ng)
https://nlp.stanford.edu/pubs/SocherBauerManningNg_ACL2013.pdf

Recursive Deep Models for Semantic Compositionality Over a Sentiment Treebank (Richard Socher, Alex Perelygin, Jean Y. Wu, Jason Chuang, Christopher D. Manning, Andrew Y. Ng and Christopher Potts)
https://nlp.stanford.edu/~socherr/EMNLP2013_RNTN.pdf

关键词:RNN, Recursive Neural Networks, MV-RNN, RNTN

本节讨论递归神经网络的多种变体及其在自然语言处理中的应用和成功。“RNN”在本文中是指递归神经网络(Recursive Neural Network),而不是循环神经网络(Recurrent Neural Network)。前者是后者的超集。下图是递归神经网络的一个例子。
tips:循环神经网络可以理解为只有右侧分支的递归神经网络
在这里插入图片描述

递归神经网络

本节笔记介绍一种新的模型递归神经网络,它是以前讨论过的循环神经网络的超集。递归神经网络非常适合具有嵌套层次结构和内在递归结构的设置。思考一个句子 “A small crowd quietly enters the historical church” 首先将句子分成名词短语、动词短语 “A small crowd” 和 “quietly enters the historical church”。在动词短语中又有一个名词短语,动词短语 “quietly enters” 和 “historical church”,这就是递归的一个例子。

语言的句法规则是高度递归的,因此RNN模型可以充分利用这种递归结构。用RNN建模的另一个好处是可以输入任意长度的句子,不论输入句子的长度如何,都能转换成相等规模的句子进行输出。

假设我们的任务将一个句子表示为与单词本身语义空间相同的向量。像“I went to the mall yesterday”、“We went shopping last week”和“They went to the store”这样的短语彼此之间的距离都非常近。前面介绍过训练unigram词向量的方法,如果对bigram、trigram等也做同样的处理可能很有效,但这种想法存在两个问题:1)单词有无限多种可能的组合。存储和训练无限数量的向量是不切实际的。2)有些单词的组合虽然在语言中完全可能出现,但可能不在培训/开发语料库中,所以永远学不会。

先讨论一下句子的语义和语法理解的区别。语义分析是对一个句子的意义的理解,能够在一个结构化的语义空间中把短语表示为一个向量,相似的句子非常近,不相关的句子非常远。语法理解是指已经确定了句子的基本语法结构,句子的哪一部分取决于哪一部分,哪些词在修饰哪些词等。这种理解的输出通常表示为一个解析树,如下图所示:
街系数
现在来看看最重要的问题:如果想要知道语义表征,拥有语法理解可能是一个优势,现在用下面的方法来处理这个语义组合任务。首先需要理解单词;然后需要知道单词是如何组合在一起的;最后可以通过利用前面的两个概念得到一个短语或句子的意思。

先从第一个基于这个原则的模型开始。假设有一个句子,我们知道这个句子的解析树,如上图所示,目标是使用一个简单的RNN来找出句子的编码,以及从句子的单词向量中得到一个情感得分。

一个简单的单层RNN

RNN
考虑上图中的模型。先获取一个句子解析树和句子单词向量,然后遍历该树。图中最低的节点是节点3,因此将 L 29 L_{29} L29 L 430 L_{430} L430 连接起来形成一个向量 ∈ R 2 d \in \mathbb{R}^{2d} R2d,并将其输入到网络中计算
h ( 1 ) = t a n h ( W ( 1 ) [ L 29 L 430 ] + b ( 1 ) ) W ( 1 ) ∈ R d ∗ 2 d , b ( 1 ) ∈ R d , h ( 1 ) ∈ R d h^{(1)}=tanh(W^{(1)}\begin{bmatrix}L_{29}\\ L_{430}\end{bmatrix}+b^{(1)}) \\ W^{(1)}\in\mathbb{R}^{d*2d},b^{(1)}\in\mathbb{R}^d,h^{(1)}\in\mathbb{R}^d h

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值