CS224n | Natural Language Processing with Deep Learning Stanford University
Lecture Notes: Part IX - Recursive Neural Networks and Constituency Parsing
1
Lecture Notes: Part IX
Recursive Neural Networks and Constituency Parsing
CS224n
RNN LSTM CNN
transformerbert问答要、成、模型
理解等前沿内容。
RNN Recursive Neural
NetworksRecurrent Neural Networks
是后者的超集
笔记核心词
Recursive Neural Networks, 递归, 句法, SU-RNN,
MV-RNN, RNTN, Constituency Parsing, 成分句法分析
课程部资料和已整
获取!!
微信公众号
·全套资料
回复 CS224n
底部菜单栏
Bilibili
·课程视频
视频简介
置顶评论
GitHub
·项目代码
阅读 ReadMe
点击超链接
CS224n | Natural Language Processing with Deep Learning Stanford University
Lecture Notes: Part IX - Recursive Neural Networks and Constituency Parsing
2
1. Recursive Neural Networks
在这些笔记中,我们介绍并讨论了一种新的模型,它是之前讨论
过的神经超集归神(RNNs 图所)
常适合具有嵌套层次结构和内在递归结构的设置。
“A
small crowd quietly enters the historical church
先,我们将子分成名词短语、动词短语、A small crowd”
“quietly enters the historical church”
:“quietly enters” “historical church”
等。这看起来确实很递归。
言的则是度递的。,我使用一利用
归结构的模型。使用 RNN 模句子的另一个好处是我们现在
以输入任意长度的句子,这是一个巨大的头脑在 NLP 使用神经
网络和非常聪明的技巧使句子的输入向量相等尺寸相同,尽管句
子的长度不相等。(see Bengio et al., 2003; Henderson, 2003;
Collobert & Weston, 2008)
假设我们的任务是取一个句子,并将其表示为与单词本身语义空
I went to the mall yesterday”We
went shopping last week”“They went to the store”
的短语,彼此之间的距离都非常近。
我们已经看到了训练单字向量的方法,我们是否应该对二元组、
三元组等也做同样的事情。这可能非常有效,但这种想法存在两
个主要问题。
1)
荒谬的。
2) 中完
会出现在我们 训练 / 开发 语料库中,所以我们永远学不会。
我们需要一种方法来取一个句子及其相应的词向量,并推导出嵌
入向量应该是什么。现在让我们先问一个非常有争议的问题。我
们用来表示所有单词的向量空间,具有足够的表达能力以至于能
够表示任意长度的所有句子,这是天真的想法吗?虽然这可能是
情。
1 Notes info.
课件/Slides
Lecture 18, P17
视频/Video
Lecture 18,
21:10
GitHub·代码
实时在线查阅文档
Bilibili·视频
中英字幕课程视频
Stanford University X ShowMeA
I
CS224n | Natural Language Processing with Deep Learning Stanford University
Lecture Notes: Part IX - Recursive Neural Networks and Constituency Parsing
3
我们先来讨论一下句子的语义理解和语法理解的区别。语义分析
是对句子意义的理解,能够在结构语义空间中把短语表示为一个
向量,相似的句子非常近,不相关的句子非常远。语法理解是指
我们已经确定了句子的基本语法结构,句子的哪一部分取决于哪
一部分,哪些词在修饰哪些词,等等。这种理解的输出通常用解
析树表示,如右图所示。
现在,让我们来看看最重要的问题。如果我们想要知道语义的表
达方式,是否需要有语法上的理解?有些人可能不同意,但现在
我们将用下面的方法来处理这个语义组合任务。首先,我们需要
后,最后,我们可以通过利用前面的两个概念得到一个短语或句
子的意思。
让我们从我们的第一个基于这个原则的模型开始。假设我们有一
个句子,我们知道这个句子的解析树,如右图所示,我们能找出
这个句子的编码吗?也许还能从句子中的单词向量中得到一个情
感得分?我们观察一个简单RNN 是如何完成这项任务的。
1.1 A simple single layer RNN
让我们浏览一下右图中显示的模型。我们首先获取一个句子解析
Node
3
29
430
2
,并将其输入到我们的网络中进行计算:
(1)
=tanh
(1)
29
430
+
(1)
W
(1)
d×2d
andb
(1)
d
,
(1)
d
(1)
bigram “this assignment” 的相
一个点,我们不需要分别学习表示,而是从其构成的单词向量中
派生。
(1)
softmax 中来
分数,情感类别是一个已知的代表一些含义的离散集合。在积极
/情绪况下会有 5 ,类 0 烈的
消极,类 1 表示消极2 表示中性,类 3 表示积极最后
4 表示强烈的积极。
1.1 Notes info.
课件/Slides
Lecture 18, P20
视频/Video
Lecture 18, 24:00
GitHub·代
实时在线查阅文档
Bilibili·视频
中英字幕课程视频
Stanford University X ShowMeA
I
CS224n | Natural Language Processing with Deep Learning Stanford University
Lecture Notes: Part IX - Recursive Neural Networks and Constituency Parsing
4
“I”“love”“I love”
(1)
I love this
assignment
量!我们用同样的方法,把两个
(1)
连接起来并且计算
(1)
=tanh
(1)

(1)
ℎ
(1)
+
(1)
”I love this
assignment
(1)
softmax
经过训练后才能可靠地做到这一点。
退使
W
(1)
再次使用相
W
将所短语
的短语,这样的想法是不是太天真了?这些批评是合理的,我们
可以通过下面对简单 RNN 的处理来解决它们。
1.2 Syntactically Untied SU-RNN
正如们在使
W
将名
语和动词短语组合在一起,将介词短语和另一个词向量组合在一
起,从直觉上看似乎是错误的。也许我们是直接将所有这些功能
合并到一个太弱的模型中。
的权
意思,没
W
与另类输
W
完全相关。所以我们让这些
W
不一样,放松这个约束。虽
然这确实增加了我们要学习的权重矩阵,但是我们获得的性能提
升却不是微不足道的。
正如右图所示,我们注意到我们的模型现在取决于输入的语法类
(PCFG)确定类别,这个语法或多或少是通过计Penn Tree
Bank 汇总统计息来学习,以学习,比如“the”
DT 需要
它非常简单。
1.2 Notes info.
课件/Slides
Lecture 18, P37
视频/Video
Lecture 18, 35:50
GitHub·代
实时在线查阅文档
Bilibili·视频
中英字幕课程视频
Stanford University X ShowMeAI
CS224n | Natural Language Processing with Deep Learning Stanford University
Lecture Notes: Part IX - Recursive Neural Networks and Constituency Parsing
5
这个模型中唯一的其他主要区别是,我们根据语言类别分别初始
W
值。缓慢但肯定的是,模型会学会哪个向量更重要,以及向量的
任何旋转或缩放都可以提高性能。我们在右图中观察到,经过训
练的矩阵!例DT-NP 规则,或
(“The car”“A man”) 例子
(线
的,示更高的)这被soft head words 概念
言学家们长期以来一直认为这是正确的,然而这个模型仅仅通过
观察数据就学会了这一点。很酷!
SU-RNN 比之过的表现更好也许的表
“very
这个单词向量和下面这个单词向量的插值,肯定不是我们所理解
“very”的本质。
线
时,我们怎么能得到一个强调其他向量的向量呢?我们如何构造
不能。我们需要一个词对另一个词的乘法。我们在下面发现了两
个这样的组合,它们可以实现这一点。第一个利用单词矩阵,另
一个利用二次方程的典型仿射。
1.3 MV-RNN’s (Matrix-Vector Recursive
Neural Networks)
我们现在扩大我们的单词表示,不仅包括一个单词向量,而且还
“very”
v
very
d
V
very
d×d
词的,还学习“modify 修饰他单的方。单
矩阵的就是后为了将两
a
b
输入 RNN我们
它们
A
B
,形
x
,作
Ab
Ba
“very”
V
very
意大 1 它可相邻向量
正是我们所需要的那种表示能力。当新的单词表示开拓了我们的
特征空间时,我们可以更好地表达单词彼此修饰的方式。
通过型误使 MV- RNN 也不
达一定的关系。我们观察到三大类错误。
1.3 Notes info.
课件/Slides
Lecture 18, P46
视频/Video
Lecture 18, 54:55
GitHub·代
实时在线查阅文档
Bilibili·视频
中英字幕课程视频
Stanford University X ShowMeA
I
CS224n | Natural Language Processing with Deep Learning Stanford University
Lecture Notes: Part IX - Recursive Neural Networks and Constituency Parsing
6
Negated Positives
西,但一个词变成了消极的,模型不能衡量一个词强大到足以翻
转整子的绪。示了样一子,“most
转换为least”该会翻转整个句子的情绪,但是 MV-RNN
有成功地捕捉到这一点。
Negated Negative
MV-RNN
“not”这个词会使情绪从消极变为中性。
“X but Y
里的 X 负的如果 Y ,那模型
子的情感输出应该是正的!MV-RNNs 正在与之斗争
因此必须更富的组能够
1.4 RNTNs
(Recursive Neural Tensor Network)
RNN
的三种误类型中效果最成功。递归神经量网 Recursive
Neural Tensor Network
了传统仿变换 pre-tanh/sigmoid 念。为了两个
2d
,但我们仿后是非线
线
如:
(1)
=tanh x
T
Vx+Wx
V
2d×2d×d
x
T
V[i]x,∀i
[1,2,d]
d
Wx
成一个非线性函数。二次方显示了乘法,我们确实可以使得词向
量之间进行乘法交互,而不需要维护和学习单词矩阵!
RNTN
的模型。
(CNN)
RNTN,并且不需要输入解析!”
CS224n | Natural Language Processing with Deep Learning Stanford University
Lecture Notes: Part IX - Recursive Neural Networks and Constituency Parsing
7
2. Constituency Parsing
自然语言理解要求能够从较大的文本单元中较小的部分的理解中
提取意义。这种提取要求能够理解较小的部件是如何组合在一起
constituency
parsing and dependency parsing
依存分析前几节课已经讨论(参见 Note04)过在单词
及其依赖项之间建立二进制非对称关系,结构显示了哪个单词依
赖于哪个单词。现在我们关注成分句法分析,它将单词组织成嵌
套的成分。
成分句法析是将一文本(一个句子)子短语的种方
(”)
文本中的成分,这些成分在从文本中提取信息时非常有用。通过
分析句子后了解成分,就有可能生成语法上正确的类似句子。
2.1 Constituent
在句法分析中,一个成分可以是一个单词或短语,作为一个层次
a head lexical item
为一个单位使用。作为一个短语,一组词应该在句子中发挥特定
的作用。此外,一组词可以一起移动或替换为一个整体,句子应
该保持流利和语法。
我们用较小元素的符号组合来解释大的文本单元。这些较小的元
素可以在保持相同含义的同时进行更改,如下面的示例所示。
例如,下面的句子包含名词短语:wonderful CS224N
I want to be enrolled in the wonderful CS224N!
我们通过移动整个短语到最前面来重写这个句子
The wonderful CS224N I want to be enrolled in
"great CS course in Stanford about NLP and Deep
Learning”
I want to be enrolled in the great CS course in
Stanford about NLP and Deep Learning!
2 Notes info.
课件/Slides
Lecture 18, P50
视频/Video
Lecture 18, 63:10
GitHub·代
实时在线查阅文档
Bilibili·视频
中英字幕课程视频
Stanford University X ShowMeA
I
CS224n | Natural Language Processing with Deep Learning Stanford University
Lecture Notes: Part IX - Recursive Neural Networks and Constituency Parsing
8
(
词短语 NP)和谓(词短语 VP)的二元划分,表达如下规则
子句的二元划分导致一对一或一对多通信。对于句子中的每个元
素,树结构中都有一个或多个节点。
SNP VP
事实上,解析的过程说明了某些类似的规则。我们从句子符号 S
开始推导规则,依次对短语结构规则进行叠加,最后应用替代规
则来使用抽象符号代替实际单词。根据提取规则,可以生成相似
的句子。如果规则正确,那么以这种方式产生的任何句子都应该
在语法上正确。然而,生成的句子在语法上可能是正确的,但在
语义上却是荒谬的,比如下面这个众所周知的例子:
Colorless green ideas sleep furiously
2.2 Constituency Parse Tree
有趣的是,在自然语言中,这些成分很可能彼此嵌套在一起。因
此,这些短语的自然表示形式是树。通常我们使用成分解析树来
演示解析过程。基于结构语法的成分解析树可以区分终端节点和
(
) “John hit the ball”
例,英语句子句法结构如右图所示我们有一个解析树,从表示整
个句子的 S 开始到表句子中的单词的叶子节点
结束。我们使用以下缩写
S 代表句子,最高级的结构
NP 代表名词短语,包括句子的主语和宾语
VP 代表动词短语,充当谓语
V 代表动词
D 代表限定词,例如 “the”
N 代表名词
注意:回到句子表示,如果你不知道解析树呢?我们在这一系列
课堂中观RNNs 赖于的初析。我们
使
样?果我在最 Softmax
几个字将对输出产生不成比例的大影响,例如,分类。卷积神经
网络解决了这个问题,正如之前的讲义所述。
CS224n | Natural Language Processing with Deep Learning Stanford University
Lecture Notes: Part IX - Recursive Neural Networks and Constituency Parsing
9
机器学习
深度学习
自然语言处
计算机视觉
知识图谱
Machine Learning
Deep Learning
Natural Language Processing
Computer Vision
Knowledge Graphs
Stanford · CS229
Stanford · CS230
Stanford · CS224n
Stanford · CS231n
Stanford · CS520
# 系列内容 Awesome AI Courses Notes Cheatsheets
图机器学习
深度强化学
自动驾驶
Machine Learning with Graphs
Deep Reinforcement Learning
Deep Learning for Self-Driving Cars
Stanford · CS224W
UCBerkeley · CS285
MIT · 6.S094
...
...
...
ShowMeAI 的分覆盖知名TOP20+ AI 旨在习者整套
高品质中文学习笔记和速查表。
斯坦(Stanford University) Natural Language Processing with Deep Learning (CS224n)
系列的第三门产出。
课程版本 2019 Winter,核心深(transformerbert问答摘要、文生成)在当(2021 )
业界和研究界依旧是前沿的方法。最新版课程的笔记生产已在规划中,也敬请期待。
笔记内容经由深度加工整合,以 5 个部分构建起完整的CS224n 容世界”,并依托 GitHub 建了汇总
页。快扫描二维码,跳转进入吧!有任何建议和反馈,也欢迎通过下方渠道和我们联络 (*3)~