- 作者:韩信子 @ShowMeAI,路遥 @ShowMeAI,奇异果 @ShowMeAI
- 教程地址:http://www.showmeai.tech/tutorials/36
- 本文地址:http://www.showmeai.tech/article-detail/238
- 申明:版权所有,转载请分割平台与作者并注明出处
- 珍藏 ShowMeAI 查看更多精彩内容
ShowMeAI 为 斯坦福 CS224n《自然语言解决与深度学习 (Natural Language Processing with Deep Learning)》课程的全副课件,做了 中文翻译和正文,并制作成了 GIF 动图!
本讲内容的 深度总结教程 能够在 这里 查看。视频和课件等材料的获取形式见 文末。
引言
授课打算
1. 句法结构:成分与依赖
1.1 语言构造的两种观点:无上下文语法
- 句子是应用逐渐嵌套的单元构建的
- 短语构造将单词组织成嵌套的成分
-
起步单元:单词被赋予一个类别
- part of speech = pos 词性
- 单词 组合成不同类别的 短语
- 短语 能够递归地组合成 更大的短语
- Det 指的是
Determiner
,在语言学中的含意为 限定词 - NP 指的是
Noun Phrase
,在语言学中的含意为 名词短语 - VP * 指的是
Verb Phrase
,在语言学中的含意为 动词短语 * - P 指的是
Preposition
,在语言学中的含意为 介词 - PP 指的是
Prepositional Phrase
,在语言学中的含意为 介词短语
1.2 语言构造的两种观点:无上下文语法
1.3 语言构造的两种观点:依赖构造
- 不是应用各种类型的短语,而是间接通过单词与其余的单词关系示意句子的构造,显示哪些单词依赖于 (润饰或是其参数) 哪些其余单词
补充解说
-
look
是整个句子的本源,look
依赖于crate
(或者说crate
是look
的依赖)in
,the
,large
都是crate
的依赖in the kitchen
是crate
的润饰in
,the
都是kitchen
的依赖by the door
是crate
的依赖
1.4 为什么咱们须要句子构造?
- 为了可能正确地解释语言,咱们须要了解句子构造
- 人类通过将单词组合成更大的单元来传播简单的意思,从而交换简单的思维
-
咱们须要晓得什么与什么相关联
- 除非咱们晓得哪些词是其余词的参数或修饰词,否则咱们无奈弄清楚句子是什么意思
1.5 介词短语附丽歧义
San Jose cops kill man with knife
-
警察用刀杀了那个女子
cops
是kill
的subject
(subject 指 主语)man
是kill
的object
(object 指 宾语)knife
是kill
的modifier
(modifier 指 修饰符)
-
警察杀了那个有刀的女子
knife
是man
的modifier
(名词修饰符,简称为nmod
)
1.6 介词短语附丽歧义
补充解说
-
from space
这一介词短语润饰的是后面的动词count
还是名词whales
?- 这就是人类语言和编程语言中不同的中央
1.7 介词短语附加歧义成倍增加
-
要害的解析决策是咱们如何“依存”各种成分
- 介词短语、状语或分词短语、不定式、协调等。
补充解说:
上述句子中有四个介词短语
board
是approved
的主语,acquisition
是approved
的谓语by Royal Trustco Ltd.
是润饰acquisition
的,即董事会批准了这家公司的收买of Toronto
能够润饰approved
,acquisition
,Royal Trustco Ltd.
之一,通过剖析能够得悉是润饰Royal Trustco Ltd.
,即示意这家公司的地位for $27 a share
润饰acquisition
at its monthly meeting
润饰approved
,即示意批准的工夫地点
补充解说:
面对这样简单的句子构造,咱们须要思考 指数级 的可能构造,这个序列被称为 卡特兰数 /Catalan numbers
Catalan numbers
$$
C_{n}=(2 n) ! /[(n+1) ! n !]
$$
1.8 协调范畴含糊
补充解说
Shuttle veteran and longtime NASA executive Fred Gregory appointed to board
- 一个人:
[[Shuttle veteran and longtime NASA executive] Fred Gregory] appointed to board
- 两个人:
[Shuttle veteran] and [longtime NASA executive Fred Gregory] appointed to board
1.9 协调范畴含糊
- 例句:Doctor: No heart,cognitive issues
1.10 形容词修饰语歧义
补充解说
Students get first hand job experience
-
first hand
示意 第一手的,间接的,即学生取得了间接的工作教训first
是hand
的形容词修饰语(amod)
first
润饰experience
,hand
润饰job
1.11 动词短语 (VP) 依存歧义
补充解说
Mutilated body washes up on Rio beach to be used for Olympic beach volleyball
to be used for Olympic beach volleyball
是 动词短语 (VP)- 润饰的是
body
还是beach
2. 依赖语法与树库
2.1 #论文解读# 依赖门路辨认语义关系
2.2 依存文法和依存构造
- 关联语法假如句法结构包含词汇项之间的关系,通常是二元不对称关系 (“箭头”),称为 依赖关系
Dependency Structure 有两种表现形式
1.一种是间接在句子上标出依存关系箭头及语法关系
2.另一种是将其做成树状机构(Dependency Tree Graph)
- 箭头通常标记 (type) 为语法关系的名称(主题、介词对象、apposition 等)
-
箭头连贯头部 (head)(调速器,下级,regent) 和一个依赖(修饰词,上级,上司)
- \(A \to\) 的事件
- 通常,依赖关系造成一棵树(单头,无环,连贯图)
2.3 依存语法 / 解析历史
2.4 依存语法 / 解析历史
-
依赖构造的概念能够追溯到很久以前
- Paṇini 的语法(公元前 5 世纪)
- 一千年,阿拉伯语的语法的根本办法
-
选区 / 上下文无关文法是一个离奇的创造
- 20 世纪创造(R.S.Wells,1947; then Chomsky)
-
古代依赖工作常常源于 L. Tesnière(1959)
-
是 20 世纪“西方”的主导办法(俄罗斯,中国,…)
- 有利于更自在的语序语言
-
-
NLP 中最早类型的解析器在美国
- David Hays 是美国计算语言学的创始人之一,他很早就 (第一个?) 构建了依赖解析器(Hays 1962)
2.5 依存语法和依赖构造
-
人们对箭头指向的形式不统一:有些人把箭头朝一个方向画;有人是反过来的
- Tesnière 从头开始指向依赖,本课应用此种形式
- 通常增加一个伪根指向整个句子的头部,这样每个单词都准确地依赖于另一个节点
2.6 带正文数据的衰亡:通用依存句法树库
补充解说
Universal Dependencies:咱们想要领有一个对立的、并行的依赖形容,可用于任何人类语言
- 从前手工编写语法而后训练失去能够解析句子的解析器
-
用一条规定捕获很多货色真的很有效率,然而事实证明这在实践中不是一个好主见
- 语法规定符号越来越简单,并且没有共享和重用人类所做的工作
- 句子构造上的 treebanks 反对构造更无效
2.7 带正文数据的衰亡
从一开始,构建 treebank 仿佛比构建语法慢得多,也没有那么有用
然而 treebank 给咱们提供了许多货色
-
可重用性
- 许多解析器、词性标记器等能够构建在它之上
- 语言学的贵重资源
- 宽泛的覆盖面,而不仅仅是一些直觉
- 频率和散布信息
- 一种评估零碎的办法
2.8 依赖条件首选项
依赖项解析的信息起源是什么?
-
1.Bilexical affinities (两个单词间的密切关系)
- [discussion → issues] 是看上去有情理的
-
2.Dependency distance 依赖间隔
- 次要是与相邻词
-
3.Intervening material 介于两头的物质
- 依赖很少逾越介于两头的动词或标点符号
-
4.Valency of heads
- How many dependents on which side are usual for a head?
2.9 依赖关系剖析
- 通过为每个单词抉择它所依赖的其余单词 (包含根) 来解析一个句子
-
通常有一些限度
- 只有一个单词是依赖于根的
- 不存在循环 A→B,B→A
- 这使得依赖项成为树
-
最初一个问题是箭头是否能够穿插(非投影的 non-projective)
- 没有穿插的就是 non-projectice
2.10 射影性
- 定义:当单词按线性顺序排列时,没有穿插的依赖弧,所有的弧都在单词的上方
-
与 CFG 树并行的依赖关系必须是投影的
- 通过将每个类别的一个子类别作为头来造成依赖关系
-
然而依赖实践通常容许非投射构造来解释移位的成分
- 如果没有这些非投射依赖关系,就不可能很容易取得某些构造的语义
2.11 依存分析方法
1.Dynamic programming
- Eisner(1996)提出了一种复杂度为 O(n3) 的聪慧算法,它生成头部位于开端而不是两头的解析项
2.Graph algorithms
- 为一个句子创立一个最小生成树
- McDonald et al.’s (2005) MSTParser 应用 ML 分类器独立地对依赖项进行评分(他应用 MIRA 进行在线学习,但它也能够是其余货色)
3.Constraint Satisfaction
- 去掉不满足硬束缚的边 Karlsson(1990), etc.
4.“Transition-based parsing” or “deterministic dependency parsing”
- 良好的机器学习分类器 MaltParser(Nivreet al. 2008) 领导下的依存贪心抉择。已证实十分无效。
3. 基于转换的依存分析模型
3.1 #论文解读# Greedy transition-based parsing [Nivre 2003]
![# 论文解读# Greedy transition-based parsing [Nivre 2003]](https://img-blog.csdnimg.cn/i…)
- 贪心判断依赖解析器一种简略模式
-
解析器执行一系列自底向上的操作
- 大抵相似于 shift-reduce 解析器中的“shift”或“reduce”,但“reduce”操作专门用于创立头在左或右的依赖项
-
解析器如下:
- 栈 \(\sigma\) 以 ROOT 符号开始,由若干 \(w_i\) 组成
- 缓存 \(\beta\) 以输出序列开始,由若干 \(w_i\) 组成
- 一个依存弧的汇合 \(A\),一开始为空。每条边的模式是 \((w_i,r,w_j)\),其中 \(r\) 形容了节点的依存关系
- 一组操作
3.2 根本的基于转换的依存关系解析器
- 最终目标是 \(\sigma = [ROOT]\),\(\beta = \phi\),\(A\) 蕴含了所有的依存弧
补充解说
state 之间的 transition 有三类:
- 1.SHIFT:将 buffer 中的第一个词移出并放到 stack 上。
- 2.LEFT-ARC:将 \((w_j,r,w_i)\) 退出边的汇合 \(A\),其中 \(w_i\) 是 stack 上的次顶层的词,\(w_j\) 是 stack 上的最顶层的词。
- 3.RIGHT-ARC:将 \((w_i,r,w_j)\) 退出边的汇合 \(A\),其中 \(w_i\) 是 stack 上的次顶层的词,\(w_j\) 是 stack 上的最顶层的词。
咱们一直的进行上述三类操作,直到从初始态达到最终态。
- 在每个状态下如何抉择哪种操作呢?
- 当咱们思考到 LEFT-ARC 与 RIGHT-ARC 各有 \(\left|R\right|\)(\(\left|R\right|\)为 \(r\) 的类的个数)品种,咱们能够将其看做是 class 数为 \(2\left|R\right|+1\) 的分类问题,能够用 SVM 等传统机器学习办法解决。
3.3 基于 Arc 规范转换的解析器
- 还有其余的 transition 计划
- Analysis of
I ate fish
3.4 #论文解读# MaltParser [Nivre and Hall 2005]
![# 论文解读# MaltParser [Nivre and Hall 2005]](https://img-blog.csdnimg.cn/i…)
-
咱们须要解释如何抉择下一步口头
- Answer:机器学习
- 每个动作都由一个有区别分类器 (例如 softmax classifier) 对每个非法的挪动进行预测
- 最多三种无类型的抉择,当带有类型时,最多 \(\left|R\right|×2+1\) 种
- Features:栈顶单词,POS;buffer 中的第一个单词,POS;等等
-
在最简略的模式中是没有搜寻的
- 然而,如果你违心,你能够无效地执行一个 Beam search 束搜寻(尽管速度较慢,但成果更好):你能够在每个工夫步骤中保留 \(k\) 个好的解析前缀
- 该模型的精度略低于依赖解析的最高程度,但它提供了十分快的线性工夫解析,性能十分好
3.5 传统特色示意
- 传统的特色示意应用二元的稠密向量 \(10^6 \sim 10^7\)
- 特色模板:通常由配置中的 \(1 \sim 3\)个元素组成
- Indicator features
3.6 依赖剖析的评估:(标记)依赖准确性
- UAS (unlabeled attachment score) 指无标记依存正确率
- LAS (labeled attachment score) 指有标记依存正确率
3.7 解决非投影性
- 咱们提出的弧规范算法只构建投影依赖树
头部可能的方向:
- 1. 在非投影弧上发表失败
- 2. 只具备投影示意时应用依赖模式[CFG 只容许投影构造]
- 3. 应用投影依赖项解析算法的后处理器来辨认和解析非投影链接
- 4. 增加额定的转换,至多能够对大多数非投影构造建模(增加一个额定的替换转换,冒泡排序)
- 5. 转移到不应用或不须要对投射性进行任何束缚的解析机制(例如,基于图的 MSTParser)
3.8 为什么要训练神经依赖解析器?从新扫视指标特色
-
Indicator Features 的问题
- 问题 1:稠密
- 问题 2:不残缺
- 问题 3:计算简单
- 超过 95% 的解析工夫都用于特色计算
4. 神经网络依存分析器
4.1 #论文解读# A neural dependency parser [Chen and Manning 2014]
![# 论文解读# A neural dependency parser [Chen and Manning 2014]](https://img-blog.csdnimg.cn/i…)
-
斯坦福依存关系的英语解析
- Unlabeled attachment score (UAS) = head
- Labeled attachment score (LAS) = head and label
- 成果好,速度快
4.2 分布式示意
-
咱们将每个单词示意为一个 d 维浓密向量(如词向量)
- 类似的单词应该有相近的向量
-
同时,part-of-speech tags 词性标签 (POS) 和 dependency labels 依赖标签也示意为 d 维向量
- 较小的离散集也体现出许多语义上的相似性。
-
NNS(复数名词)应该靠近 NN(复数名词)
- num(数值修饰语)应该靠近 amod(形容词修饰语)
4.3 从配置中提取令牌和向量示意
补充解说
-
对于 Neural Dependency Parser,其输出特色通常蕴含三种
- stack 和 buffer 中的单词及其 dependent word
- 单词的 part-of-speech tag
- 形容语法关系的 arc label
4.4 模型体系结构
4.5 句子构造的依存剖析
- 神经网络能够精确地确定句子的构造,反对解释
- Chen and Manning(2014)是第一个简略,胜利的神经依赖解析器
- 密集的示意使得它在精度和速度上都优于其余贪心的解析器
4.6 基于转换的神经依存剖析的新进展
-
这项工作由其他人进一步开发和改良,特地是在谷歌
- 更大、更深的网络中,具备更好调优的超参数
- Beam Search 更多的摸索动作序列的可能性,而不是只思考以后的最优
- 全局、条件随机场 (CRF) 的推理出决策序列
- 这就引出了 SyntaxNet 和 Parsey McParseFace 模型
4.7 基于图形的依存关系分析器
4.8 #论文解读# A Neural graph-based dependency parser [Dozat and Manning 2017; Dozat, Qi, and Manning 2017]
![# 论文解读# A Neural graph-based dependency parser [Dozat and Manning 2017; Dozat, Qi , and Manning 2017]](https://img-blog.csdnimg.cn/i…)
- 为每条边的每一个可能的依赖关系计算一个分数
-
为每条边的每一个可能的依赖关系计算一个分数
- 而后将每个单词的边缘增加到其得分最高的候选头部
- 并对每个单词反复雷同的操作
-
在神经模型中为基于图的依赖剖析注入生机
- 为神经依赖剖析设计一个双仿射评分模型
- 也应用神经序列模型,咱们将在下周探讨
-
十分棒的后果
- 然而比简略的基于神经传递的解析器要慢
- 在一个长度为 \(n\) 的句子中可能有 \(n^2\) 个依赖项
5. 视频教程
能够点击 B 站 查看视频的【双语字幕】版本
6. 参考资料
- 本讲带学的 在线阅翻页本
- 《斯坦福 CS224n 深度学习与自然语言解决》课程学习指南
- 《斯坦福 CS224n 深度学习与自然语言解决》课程大作业解析
- 【双语字幕视频】斯坦福 CS224n | 深度学习与自然语言解决(2019·全 20 讲)
- Stanford 官网 | CS224n: Natural Language Processing with Deep Learning
ShowMeAI 系列教程举荐
- 大厂技术实现 | 举荐与广告计算解决方案
- 大厂技术实现 | 计算机视觉解决方案
- 大厂技术实现 | 自然语言解决行业解决方案
- 图解 Python 编程:从入门到精通系列教程
- 图解数据分析:从入门到精通系列教程
- 图解 AI 数学根底:从入门到精通系列教程
- 图解大数据技术:从入门到精通系列教程
- 图解机器学习算法:从入门到精通系列教程
- 机器学习实战:手把手教你玩转机器学习系列
- 深度学习教程 | 吴恩达专项课程 · 全套笔记解读
- 自然语言解决教程 | 斯坦福 CS224n 课程 · 课程带学与全套笔记解读
NLP 系列教程文章
- NLP 教程(1)- 词向量、SVD 合成与 Word2vec
- NLP 教程(2)- GloVe 及词向量的训练与评估
- NLP 教程(3)- 神经网络与反向流传
- NLP 教程(4)- 句法分析与依存解析
- NLP 教程(5)- 语言模型、RNN、GRU 与 LSTM
- NLP 教程(6)- 神经机器翻译、seq2seq 与注意力机制
- NLP 教程(7)- 问答零碎
- NLP 教程(8)- NLP 中的卷积神经网络
- NLP 教程(9)- 句法分析与树形递归神经网络
斯坦福 CS224n 课程带学详解
- 斯坦福 NLP 课程 | 第 1 讲 – NLP 介绍与词向量初步
- 斯坦福 NLP 课程 | 第 2 讲 – 词向量进阶
- 斯坦福 NLP 课程 | 第 3 讲 – 神经网络常识回顾
- 斯坦福 NLP 课程 | 第 4 讲 – 神经网络反向流传与计算图
- 斯坦福 NLP 课程 | 第 5 讲 – 句法分析与依存解析
- 斯坦福 NLP 课程 | 第 6 讲 – 循环神经网络与语言模型
- 斯坦福 NLP 课程 | 第 7 讲 – 梯度隐没问题与 RNN 变种
- 斯坦福 NLP 课程 | 第 8 讲 – 机器翻译、seq2seq 与注意力机制
- 斯坦福 NLP 课程 | 第 9 讲 – cs224n 课程大我的项目实用技巧与教训
- 斯坦福 NLP 课程 | 第 10 讲 – NLP 中的问答零碎
- 斯坦福 NLP 课程 | 第 11 讲 – NLP 中的卷积神经网络
- 斯坦福 NLP 课程 | 第 12 讲 – 子词模型
- 斯坦福 NLP 课程 | 第 13 讲 – 基于上下文的表征与 NLP 预训练模型
- 斯坦福 NLP 课程 | 第 14 讲 – Transformers 自注意力与生成模型
- 斯坦福 NLP 课程 | 第 15 讲 – NLP 文本生成工作
- 斯坦福 NLP 课程 | 第 16 讲 – 指代消解问题与神经网络办法
- 斯坦福 NLP 课程 | 第 17 讲 – 多任务学习(以问答零碎为例)
- 斯坦福 NLP 课程 | 第 18 讲 – 句法分析与树形递归神经网络
- 斯坦福 NLP 课程 | 第 19 讲 – AI 平安偏见与偏心
- 斯坦福 NLP 课程 | 第 20 讲 – NLP 与深度学习的将来