700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 斯坦福NLP名课带学详解 | CS224n 第18讲 - 句法分析与树形递归神经网络(NLP通关指南·完结)

斯坦福NLP名课带学详解 | CS224n 第18讲 - 句法分析与树形递归神经网络(NLP通关指南·完结)

时间:2022-07-08 16:18:05

相关推荐

斯坦福NLP名课带学详解 | CS224n 第18讲 - 句法分析与树形递归神经网络(NLP通关指南·完结)

作者:韩信子@ShowMeAI,路遥@ShowMeAI,奇异果@ShowMeAI教程地址:https://www.showmeai.tech/tutorials/36本文地址:https://www.showmeai.tech/article-detail/256声明:版权所有,转载请联系平台与作者并注明出处收藏ShowMeAI查看更多精彩内容

ShowMeAI为斯坦福CS224n《自然语言处理与深度学习(Natural Language Processing with Deep Learning)》课程的全部课件,做了中文翻译和注释,并制作成了GIF动图!

本讲内容的深度总结教程可以在这里查看。视频和课件等资料的获取方式见文末

引言

本篇内容覆盖

Motivation: Compositionality and RecursionStructure prediction with simple Tree RNN: ParsingBackpropagation through StructureMore complex TreeRNN unitsOther uses of tree-recursive neural netsInstitute for Human-Centered Artificial Intelligence

1.CS语言谱

词袋模型和复杂形式的语言表达结构

1.1 语言的语义解释:不仅仅是词向量

我们怎样才能弄清楚更大的短语的含义?The snowboarderis leaping over a mogulA person on a snowboardjumps into the airThe snowboarder在语义上相当于A person on a snowboard,但它们的字长不一样

人们通过较小元素的语义成分来解释较大文本单元的意义

实体,描述性术语,事实,论点,故事 人们之所以可以理解A person on a snowboard,是因为组合原则 (the principle of compositionality) 人们知道每个单词的意思,从而知道了on a snowboard的意思知道组件的含义并将他们组合成为更大的组件 小的组件元素构建成完整图片场景 语言理解 - 和人工智能 - 需要能够通过了解较小的部分来理解更大的事物 我们拥有将较小的部分组合起来制作出更大东西的能力

1.2 语言是递归的吗?

认知上有点争议 (需要前往无限)

但是:递归对于描述语言是很自然的

[The person standing next to [the man from [the company that purchased [the firm that you used to work at]]]]包含名词短语的名词短语,包含名词短语

它是语言结构的一个非常强大的先验

1.3 Penn Treebank tree

2.基于词向量空间模型的构建

the country of my birth

the place where I was born

我们怎样表示更长短语的意思呢?

通过将他们映射到相同的向量空间!

2.1 我们应该如何将短语映射到向量空间?

基于组合原则 使用单词的含义和组合他们的规则,得到一个句子的含义向量 同时学习解析树以及组合向量表示

2.2 Constituency Sentence Parsing

我们需要能够学习如何解析出正确的语法结构,并学习如何基于语法结构,来构建句子的向量表示

2.3 递归与循环神经网络

循环神经网络需要一个树结构循环神经网络不能在没有前缀上下文的情况下学习理解短语,并且经常它得到的最终向量包含太多末尾单词的信息 (而忽略了前面的一些内容)

2.4 结构预测对的递归神经网络

如果我们自上而下的工作,那么我们在底层有单词向量,所以我们想要递归地计算更大成分的含义

输入:两个候选的子节点的表示

输出:

两个节点被合并后的语义表示新节点的合理程度

2.5 递归神经网络定义

2.6 用递归网络分析句子

自左向右重复遍历,每次将得分最高的两者组合在一起

2.7 分析一个句子

2.8 Max-Margin Framework:细节

树的得分是通过每个节点的解析决策得分的总和来计算的

s(x,y)=∑n∈node(y)sns(x, y)=\sum_{n \in n o d e (y)} s_{n} s(x,y)=n∈node(y)∑​sn​

xxx 是句子,yyy 是解析树 类似于最大边距解析 (Taskar et al.) ,有一个监督学习的最大边际目标

J=∑is(xi,yi)−max⁡y∈A(xi)(s(xi,y)+Δ(y,yi))J=\sum_{i} s\left(x_{i}, y_{i}\right)-\max _{y \in A\left(x_{i}\right)}\left(s\left(x_{i}, y\right)+\Delta\left(y, y_{i}\right)\right) J=i∑​s(xi​,yi​)−y∈A(xi​)max​(s(xi​,y)+Δ(y,yi​))

损失 Δ(y,yi)\Delta\left(y, y_{i}\right)Δ(y,yi​) 惩罚所有不正确的决策结构搜索 A(x)A(x)A(x) 是贪婪的 (每次加入最佳节点) 相反:使用 Beam search 搜索图

2.9 场景分析

和组合类似的准则 场景图像的含义也是较小区域的函数它们如何组合成部分以形成更大的对象以及对象如何相互作用

2.10 图像解析算法

Same Recursive Neural Network as for natural language parsing! (Socher et al. ICML )

2.11 多类分割

3.结构反向传播(BTS)

Introduced by Goller & Küchler (1996)和通用的反向传播的规则相同

δ(l)=((W(l))Tδ(l+1))∘f′(z(l))\delta{(l)}=\left(\left(W^{(l)}\right)^{T} \delta^{(l+1)}\right) \circ f^{\prime}\left(z^{(l)}\right) δ(l)=((W(l))Tδ(l+1))∘f′(z(l))

∂∂W(l)ER=δ(l+1)(a(l))T+λW(l)\frac{\partial}{\partial W^{(l)}} E_{R}=\delta^{(l+1)}\left(a^{(l)}\right)^{T}+\lambda W^{(l)} ∂W(l)∂​ER​=δ(l+1)(a(l))T+λW(l)

递归和树结构导致的计算:

① 从所有节点 (像RNN一样) 求 WWW 的导数② 在每个节点处拆分导数 (对于树)③ 从父节点和节点本身添加 error message

3.1 结构反向传播:第1步

求所有节点的偏导

∂∂Wf(W(f(Wx))=f′(W(f(Wx))((∂∂WW)f(Wx)+W∂∂Wf(Wx))=f′(W(f(Wx))(f(Wx)+Wf′(Wx)x)\begin{aligned} & \frac{\partial}{\partial W} f(W(f(W x))\\ =& f^{\prime}\left(W(f(W x))\left(\left(\frac{\partial}{\partial W} W\right) f(W x)+W \frac{\partial}{\partial W} f(W x)\right)\right.\\ =& f^{\prime}\left(W(f(W x))\left(f(W x)+W f^{\prime}(W x) x\right)\right. \end{aligned} ==​∂W∂​f(W(f(Wx))f′(W(f(Wx))((∂W∂​W)f(Wx)+W∂W∂​f(Wx))f′(W(f(Wx))(f(Wx)+Wf′(Wx)x)​

∂∂W2f(W2(f(W1x))+∂∂W1f(W2(f(W1x))=f′(W2(f(W1x))(f(W1x))+f′(W2(f(W1x))(W2f′(W1x)x)=f′(W2(f(W1x))(f(W1x)+W2f′(W1x)x)=f′(W(f(Wx))(f(Wx)+Wf′(Wx)x)\begin{aligned} & \frac{\partial}{\partial W_{2}} f\left(W_{2}\left(f\left(W_{1} x\right)\right)+\frac{\partial}{\partial W_{1}} f\left(W_{2}\left(f\left(W_{1} x\right)\right)\right.\right.\\ =& f^{\prime}\left(W_{2}\left(f\left(W_{1} x\right)\right)\left(f\left(W_{1} x\right)\right)+f^{\prime}\left(W_{2}\left(f\left(W_{1} x\right)\right)\left(W_{2} f^{\prime}\left(W_{1} x\right) x\right)\right.\right.\\ =& f^{\prime}\left(W_{2}\left(f\left(W_{1} x\right)\right)\left(f\left(W_{1} x\right)+W_{2} f^{\prime}\left(W_{1} x\right) x\right)\right.\\ =& f^{\prime}\left(W(f(W x))\left(f(W x)+W f^{\prime}(W x) x\right)\right. \end{aligned} ===​∂W2​∂​f(W2​(f(W1​x))+∂W1​∂​f(W2​(f(W1​x))f′(W2​(f(W1​x))(f(W1​x))+f′(W2​(f(W1​x))(W2​f′(W1​x)x)f′(W2​(f(W1​x))(f(W1​x)+W2​f′(W1​x)x)f′(W(f(Wx))(f(Wx)+Wf′(Wx)x)​

3.2 结构反向传播:第2步

在每个节点处分开偏导

3.3 结构反向传播:第3步

叠加 error message

3.4 BTS Python 编程:前向传播

3.5 BTS Python 编程:反向传播

4.版本1:简单TreeRNN

使用单矩阵 TreeRNN 的结果单个权重矩阵 TreeRNN 可以捕获一些现象但不适合更复杂的现象以及更高阶的构成或解析长句输入词之间没有真正的交互组合函数对于所有句法类别,标点符号等都是相同的

5.版本2: Syntactically-Untied RNN

符号的上下文无关的语法(Context Free Grammar CFG)主干是足以满足基本的句法结构我们使用子元素的离散句法类别来选择组合矩阵对于不同的语法环境,TreeRNN可以针对不同的组合矩阵做得更好结果为我们提供了更好的语义

补充讲解

左边 RNN 是使用概率的上下文无关的语法解析,为句子生成可能的树结构右边 SU-RNN 是语法解开的递归神经网络,此时每个节点和序列都有一个类别,我们可以使用对应不同类别的矩阵组合起来,例如将类别 B 和类别 C 的矩阵组合起来作为本次计算的权重矩阵,所以这个权重矩阵是更符合句子结构的

5.1 组合向量文法

问题:速度

集束搜索中的每个候选分数都需要一次矩阵向量乘法

解决方案:仅针对来自更简单,更快速模型(Probabilistic Context Free Grammar (PCFG))的树的子集计算得分

对概率低的候选进行剪枝以获得更快的速度为每个集束候选提供子句的粗略语法类别

组合矢量语法= PCFG + TreeRNN

5.2 解析相关工作

产生的 CVG Parser 与以前扩展PCFG解析器的工作有关Klein and Manning (a):手工特征工程Petrov et al. ():分解和合并句法类别的学习算法词汇化解析器(Collins, ; Charniak, 2000):用词汇项描述每个类别Hall and Klein () 在一个因式解析器中结合了几个这样的注释方案CVGs 将这些想法从离散表示扩展到更丰富的连续表达

5.3 实验

5.4 #论文解读# SU-RNN / CVG

Learns soft notion of head words初始化:W(⋅)=0.5[In×nIn×n0n×1]+εW^{(\cdot)}=0.5\left[I_{n \times n} I_{n \times n} 0_{n \times 1}\right]+\varepsilonW(⋅)=0.5[In×n​In×n​0n×1​]+ε 初始化为一对对角矩阵学习的是一个短语中哪个子节点是重要的

5.5 结果向量表示的分析

所有数据均根据季节变化进行调整

所有数字都根据季节性波动进行调整调整所有数字以消除通常的季节性模式

night-Ridder不会评论这个提议

Harsco declined to say what country placed the orderCoastal wouldn’t disclose the terms

Sales grew almost 7%7\%7% to $$ \text{UNK}$ m. from $$ \text{UNK}$ m.

Sales rose more than 7%7\%7% to $$ 94.9$ m. from $$ 88.3$ m.Sales surged 40%40 \%40% to UNK\text{UNK}UNK b. yen from UNK\text{UNK}UNK b.

6.版本3: Compositionality Through Recursive Matrix-Vector Spaces

之前:p=tanh⁡(W[c1c2]+b)p=\tanh \left(W\left[\begin{array}{l}{c_{1}} \\ {c_{2}}\end{array}\right]+b\right)p=tanh(W[c1​c2​​]+b)

c1c_1c1​ 和 c2c_2c2​ 之间并没有相互影响

使组合函数更强大的一种方法是解开权重 WWW

但是,如果单词主要作为运算符,例如very goodvery是没有意义的,是用于增加good的规模的运算符

提案:新的组合函数

问题是如何定义呢,因为不知道 c1c_1c1​ 和 c2c_2c2​ 哪个是 operator,比如 very good ,就应该讲 very 视为作用在 good 的矩阵上的向量

每个单词都拥有一个向量意义和一个矩阵意义

左侧计算得到合并后的向量意义

右侧计算得到合并后的矩阵意义

可以捕获运算符语义,即中一个单词修饰了另一个单词的含义

6.1 预测情绪分布

语言中非线性的好例子

6.2 语义关系的分类

MV-RNN 可以学习到大的句法上下文传达语义关系吗?为包括两项的最小成分构建单个组合语义

6.3 语义关系的分类

问题:参数量过大,且获得短语的矩阵意义的方式不够好

7.版本4: Recursive Neural Tensor Network

比 MV-RNN 更少的参数量允许两个单词或短语向量乘法交互

7.1 词袋之上: 情感检测

一段文字的语调是积极的,消极的还是中性的?

某种程度上情绪分析是容易的较长文档的检测精度~90%,但是

有了这样的演员阵容和题材,这部电影应该会更有趣,更具娱乐性。

7.2 斯坦福情感分析数据集

215,154 phrases labeled in 11,855 sentences可以真的训练和测试组合http://nlp.stanford.edu:8080/sentiment/

7.3 好的数据集对所有模型都有提升帮助

负面情感的难样本仍然大多判断错误的我们还需要一个更强大的模型!

7.4 版本4: Recursive Neural Tensor Network

思路:允许载体的加性和介导的乘法相互作用

在树中使用结果向量作为逻辑回归的分类器的输入

使用梯度下降联合训练所有权重

补充讲解

回到最初的使用向量表示单词的意义,但不是仅仅将两个表示单词含义的向量相互作用,左上图是在中间插入一个矩阵,以双线性的方式做注意力并得到了注意力得分。即令两个单词的向量相互作用并且只产生一个数字作为输出如上中图所示,我们可以拥有三维矩阵,即多层的矩阵(二维),从而得到了两个得分使用 softmax 做分类

7.5 递归神经张量网络/Recursive Neural Tensor Network

7.6 数据集上的实验效果

RNTN 可以捕捉类似 XXX but YYY 的结构RNTN accuracy of 72%, compared to MV-RNN (65%), biword NB (58%) and RNN (54%)

7.7 否定的样本结果

双重否定时,积极反应应该上升Demo: http://nlp.stanford.edu:8080/sentiment/

8.版本5: Improving Deep Learning Semantic Representations using a TreeLSTM

目标:

仍试图将句子的含义表示为 (高维,连续) 向量空间中的位置一种准确处理语义构成和句子含义的方式将广泛使用的链式结构 LSTM 推广到树结构

8.1 LSTM Units for Sequential Composition

门是 [0,1]d[0,1]^{d}[0,1]d 的向量,用于逐元素乘积的软掩蔽元素

8.2 #论文解读# Tree-Structured Long Short-Term Memory Networks

8.3 Tree-structured LSTM

将连续LSTM推广到具有任何分支因子的树

8.4 结果

8.5 忘记门:选择性状态保护

Stripes = forget gate activations; more white ⇒ more preserved图中的条纹代表遗忘门激活,更多的白色占比表示更多的信息保留

9.#论文解读# QCD-Aware Recursive Neural Networks for Jet Physics

10.用于程序翻译的tree-to-tree神经网络

探索在编程语言之间使用树形结构编码和生成进行翻译在生成中,将注意力集中在源树上

11.HAI 以人为中心的人工智能

人工智能有望改变经济和社会,改变我们沟通和工作的方式,重塑治理和政治,并挑战国际秩序HAI的使命是推进人工智能研究,教育,政策和实践,以改善人类状况

12.视频教程

可以点击B站查看视频的【双语字幕】版本

【双语字幕+资料下载】斯坦福CS224n | 深度学习与自然语言处理(·全20讲)

13.参考资料

《斯坦福NLP名课带学详解 | CS224n》本讲带学的动态翻页PPT在线阅翻页-Lecture18《斯坦福CS224n深度学习与自然语言处理》课程学习指南《斯坦福CS224n深度学习与自然语言处理》课程大作业解析双语字幕视频】斯坦福CS224n | 深度学习与自然语言处理(·全20讲)Stanford官网| CS224n: Natural Language Processing with Deep Learning

ShowMeAI 深度学习与自然语言处理教程(完整版)

ShowMeAI 深度学习与自然语言处理教程(1) - 词向量、SVD分解与Word2vecShowMeAI 深度学习与自然语言处理教程(2) - GloVe及词向量的训练与评估ShowMeAI 深度学习与自然语言处理教程(3) - 神经网络与反向传播ShowMeAI 深度学习与自然语言处理教程(4) - 句法分析与依存解析ShowMeAI 深度学习与自然语言处理教程(5) - 语言模型、RNN、GRU与LSTMShowMeAI 深度学习与自然语言处理教程(6) - 神经机器翻译、seq2seq与注意力机制ShowMeAI 深度学习与自然语言处理教程(7) - 问答系统ShowMeAI 深度学习与自然语言处理教程(8) - NLP中的卷积神经网络ShowMeAI 深度学习与自然语言处理教程(9) - 句法分析与树形递归神经网络

ShowMeAI 斯坦福NLP名课 CS224n带学详解(20讲·完整版)

斯坦福NLP名课带学详解 | CS224n 第1讲 - NLP介绍与词向量初步斯坦福NLP名课带学详解 | CS224n 第2讲 - 词向量进阶斯坦福NLP名课带学详解 | CS224n 第3讲 - 神经网络知识回顾斯坦福NLP名课带学详解 | CS224n 第4讲 - 神经网络反向传播与计算图斯坦福NLP名课带学详解 | CS224n 第5讲 - 句法分析与依存解析斯坦福NLP名课带学详解 | CS224n 第6讲 - 循环神经网络与语言模型斯坦福NLP名课带学详解 | CS224n 第7讲 - 梯度消失问题与RNN变种斯坦福NLP名课带学详解 | CS224n 第8讲 - 机器翻译、seq2seq与注意力机制斯坦福NLP名课带学详解 | CS224n 第9讲 - cs224n课程大项目实用技巧与经验斯坦福NLP名课带学详解 | CS224n 第10讲 - NLP中的问答系统斯坦福NLP名课带学详解 | CS224n 第11讲 - NLP中的卷积神经网络斯坦福NLP名课带学详解 | CS224n 第12讲 - 子词模型斯坦福NLP名课带学详解 | CS224n 第13讲 - 基于上下文的表征与NLP预训练模型斯坦福NLP名课带学详解 | CS224n 第14讲 - Transformers自注意力与生成模型斯坦福NLP名课带学详解 | CS224n 第15讲 - NLP文本生成任务斯坦福NLP名课带学详解 | CS224n 第16讲 - 指代消解问题与神经网络方法斯坦福NLP名课带学详解 | CS224n 第17讲 - 多任务学习(以问答系统为例)斯坦福NLP名课带学详解 | CS224n 第18讲 - 句法分析与树形递归神经网络斯坦福NLP名课带学详解 | CS224n 第19讲 - AI安全偏见与公平斯坦福NLP名课带学详解 | CS224n 第20讲 - NLP与深度学习的未来

ShowMeAI系列教程精选推荐

大厂技术实现:推荐与广告计算解决方案大厂技术实现:计算机视觉解决方案大厂技术实现:自然语言处理行业解决方案图解Python编程:从入门到精通系列教程图解数据分析:从入门到精通系列教程图解AI数学基础:从入门到精通系列教程图解大数据技术:从入门到精通系列教程图解机器学习算法:从入门到精通系列教程机器学习实战:手把手教你玩转机器学习系列深度学习教程:吴恩达专项课程 · 全套笔记解读自然语言处理教程:斯坦福CS224n课程 · 课程带学与全套笔记解读深度学习与计算机视觉教程:斯坦福CS231n · 全套笔记解读

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。