- 作者:韩信子@ShowMeAI,路遥@ShowMeAI,奇异果@ShowMeAI
- 教程地址:www.showmeai.tech/tutorials/3…
- 本文地址:www.showmeai.tech/article-det…
- 声明:版权所有,转载请联系平台与作者并注明出处
- 收藏ShowMeAI查看更多精彩内容
ShowMeAI为斯坦福CS224n《自然言语处理与深度学习(Natural Language Processing with Deep Learning)》课程的全部课件,做了中文翻译和注释,并制作成了GIF动图!视频和课件等资料的获取方式见文末。
1.NLP和深度学习的未来
- 5年前的深度学习和NLP
- No Seq2Seq
- No Attention
- No large-scale QA / reading comprehension datasets
- No TensorFlow or Pytorch
- 运用无标签数据
- Back-translation 和无监督机器翻译
- 提高预练习和 GPT-2
- 接下来呢?
- NLP 技能的危险和社会影响
- 未来的研究方向
1.1 为什么深度学习最近如此成功?
- 扩展才能 (模型和数据巨细) 是深度学习近些年来成功的原因
- 曩昔受到核算资源和数据资源的规模束缚
1.2 三个运用大量数据获得成功的典范
-
图像识别:被 Google, Facebook 等广泛运用
- ImageNet:14 million examples
-
机器翻译:谷歌翻译等
- WMT:Millions of sentence pairs
-
打游戏:Atari Games, AlphaGo, and more
- 10s of millions of frames for Atari AI
- 10s of millions of self-play games for AlphaZero
1.3 NLP 数据集
- 即使是英语,大部分使命也只要 100k100k 或更少的有标签样本
- 其他言语的可用数据就更少了
- 有不计其数的言语,其中有成百上千的言语的母语运用者是大于一百万的
- 只要 10%10\% 的人将英语作为他们的第一言语
- 越来越多的处理方案是运用 无标签 数据
2.运用未符号数据进行翻译
2.1 机器翻译数据
- 获得翻译需求人类的专业常识
- 束缚数据的巨细和范畴
- 言语文本更简略获得
2.2 预练习
- ① 分别将两个预练习好的言语模型作为 Encoder 和 Decoder
- ② 然后运用双语数据共同练习
- English -> German Results:2+ BLEU point improvement
- 英语到德语的翻译成果,BLEU 有 22 个点的提高
2.3 自练习
- 预练习的问题:预练习中两个言语之间没有交互
- 自练习:符号未符号的数据以获得有噪声的练习样本
- 自练习技能没有被广泛运用,因为其练习的来历是其之前的产出
2.4 Back-Translation
- 有两种方向相反的机器翻译模型 en→fr 和 fr→en
- 不再循环
- 模型再也看不到
坏
翻译,只要坏输入
弥补解说
- 模型练习时会参加一些符号数据,确保 en→fr 模型的输出,即 fr→en 模型的输入,然后确保模型的正常
- 怎么协调对符号数据与未符号数据的练习呢?
- 先在符号数据上练习两个模型
- 然后在未符号数据上符号一些数据
- 再在未符号数据上进行反向翻译的练习
- 重复如上的进程
- 4.5M English-German sentence pairs and 226M monolingual sentences
2.5 如果没有双语数据呢?
弥补解说
- 当咱们只要未符号的语句时,咱们运用一种比彻底的翻译更简略的使命
- 不是做语句翻译
- 而是做单词翻译
- 咱们想要找到某种言语的翻译但不运用任何符号数据
2.6 无监督单词翻译
-
跨言语文字嵌入 cross-lingual word embeddings
- 两种言语同享嵌入空间
- 保持词嵌入的正常的好特点
- 但也要挨近他们的翻译
- 想从单语语料库中学习
弥补解说
- 如上图所示,在同享的嵌入空间中,每个英文单词都有其对应的德语单词,并且间隔很近
- 咱们在运用时,只需选取英文单词在嵌入空间中间隔最近的德语单词,就能够获得对应的翻译
- 词嵌入有许多结构
- 假设:不同言语之间的结构应该类似
弥补解说
- 即使是运行两次 word2vec 会获得不同的词嵌入,嵌入空间的结构有许多规律性
- 如上图所示,是英语与意大利语的词嵌入,矢量空间看上去彼此非常不同,可是结构是非常类似的
- 能够了解为,在英语词嵌入空间中的 cat 与 feline 的间隔与意大利语词典如空间中的 gatto 和 felino 之间的间隔是类似的
- 咱们在跨言语的词嵌入中想要学习不同种言语的词嵌入之间的对齐方式
- 首先在单语语料库上运行 word2vec 以得到单词嵌入 XX 和 YY
- 学习一个 (正交) 矩阵 WW 使得 WX∼YWX \sim Y
- 运用对立练习来学习 WW
- 鉴别器:猜测一个嵌入是来自于 YY 的仍是来自于 XX 并运用 WW 转化后的嵌入
- 练习 WW 使得鉴别器难以区别这两者
- 其他能够被用来进一步提高作用的办法参见 Word Translation without Parallel Data
- 正交性来束缚词嵌入的原因是为了防止过拟合
- 咱们假设咱们的嵌入空间是类似的,仅仅需求对英语的词向量和意大利语的词向量进行旋转
-
模型:不考虑不同输入和输出言语,运用相同的(同享的) encoder-decoder (没有运用留意力)
- 运用 cross-lingual 的词嵌入来初始化,即其中的英语和法语单词应该看起来彻底相同
弥补解说
- 能够喂给 encoder 一个英文语句,也能够喂一个法语语句,然后获得 cross-lingual embeddings ,即英文语句和法语语句中各个单词的词嵌入,这意味着 encoder 能够处理任何输入
- 关于 decoder,咱们需求喂一个特别的符号 来告诉模型应该生成什么言语的输出
- 能够用做一个 auto-encoder,完结 en→en ,即再现输入序列
2.7 无监督神经机器翻译
- Training objective 1:降噪自编码器
- Training objective 2:back translation (只要无标签的数据)
- 首先翻译 fr→en
- 然后运用一个监督样本来练习 en→fr
弥补解说
-
留意,这里的 fr→en 输出的语句,是 en→fr 输入的语句,这个语句是有些混乱的,不完美的,例如这里的
I am student
,丢掉了a
- 咱们需求练习模型,即使是有这样糟糕的输入,也能够还原出原始的法语语句
2.8 为什么无监督会有效
- 跨言语嵌入和同享编码器为模型提供了一个起点
- 运用 cross-lingual 的词嵌入来初始化,即其中的英语和法语单词应该看起来彻底相同
弥补解说
- 同享编码器
- 例如咱们以一个法语语句作为模型的输入
- 因为嵌入看起来非常类似,并且咱们运用的是相同的 encoder
- 因此 encoder 得到的法语语句的 representation 应该和英语语句的 representation 非常类似
- 所以希望能够获得和原始的英语语句相同的输出
- 练习方针鼓励言语无关(language-agnostic)的表示
- 获得与言语类型无关的 encoder vector
2.9 无监督机器翻译
弥补解说
- 水平线是无监督模型,其他的都是有监督的
- 在一定的监督数据规模下,无监督模型能够获得和监督模型类似的作用
- 当然,跟着数据规模的增大,监督模型的作用会提高,超越无监督模型
2.10 特点迁移
- 还能够运用无监督的机器翻译模型完结特点转移
2.11 一些缺陷
- 英语,法语和德语是相当类似的言语
- 在非常不同的言语上 (例如英语和土耳其语)
- 彻底的无监督的词翻译并不非常有效。需求种子字典可能的翻译
- 简略的技巧:运用相同的字符串从词汇
- UNMT 几乎不作业
- 彻底的无监督的词翻译并不非常有效。需求种子字典可能的翻译
2.12 跨言语BERT
- 惯例的 BERT ,有一系列的英语语句,并且会 mask 一部分单词
- 谷歌实际上现已完结的是练习好的多言语的 BERT
- 基本上是衔接一大堆不同言语的语料库,然后练习一个模型
- masked LM training objective
- 由Facebook 提出的
- 联合了 masked LM training objective 和翻译
- 给定一个英语语句和法语语句,并分别 mask 一部分单词,并希望模型添补
3.大模型和GPT-2
3.1 练习大模型
3.2 机器学习大趋势
弥补阐明
- peta:用于计量单位,表示10的15次方,表示千万亿次
- FLOPS = FLoating-point Operations Per Second,每秒浮点运算次数
3.3 核算机视觉中的大模型
- 运用无监督技能的大规模核算机视觉模型
3.4 练习大模型
- 更好的硬件
- 数据和模型的并行化
3.5 GPT-2
- 仅仅一个非常大的 Transformer LM
- 40 GB的练习文本
- 投入相当多的努力去确保数据质量
- 运用 reddit 中获得高投票的网页 link
3.6 那么,GPT-2能做什么呢?
mg20-37.png 那么,GPT-2能做什么呢?
- 明显,言语模型建模(作用非常好)
- 在其没有练习过的数据上,都能够得到最先进的困惑度(perplexity)
- Zero-Shot Learning:no supervised training data! 在没有接受过练习的情况下尝试完结使命
- Ask LM to generate from a prompt
3.7 GPT-2 成果
- GPT2在阅览了解、翻译、摘要生成、问答里的体现
3.8 GPT-2怎么进行翻译?
- 它有一个很大的语料库,里面几乎全是英语
弥补阐明
- 因为数据集中存在一些翻译的比如
- 法语习语及其翻译
- 法语引证及其翻译
3.9 GPT-2 问答
- Simple baseline:1% accuracy
- GPT-2:~4% accuracy
- Cherry-picked most confident results 精选出最自傲的成果
3.10 当模型变得更大时会产生什么?
- 关于一些使命,性能好像跟着 log (模型巨细) 的添加而添加
- 但如下图所示趋势并不明朗
3.11 GPT-2相关事情
- 关于GPT2是否应该开源的一些争端
- 关于GPT2是否应该开源的一些说法
-
NLP专家应该做这些决议吗?
- 核算机安全专家?
- 技能和社会专家?
- 道德专家?
- 需求更多的跨学科科学
- 许多NLP具有较大社会影响的比如,尤其是关于成见/公正
3.12 影响程度大的决议计划
-
越来越感兴趣用 NLP 协助高影响力的决议计划
- 司法判决
- 招聘
- 等级测验
- 一方面,能够快速评价机器学习体系某些成见
- 但是,机器学习反映了练习数据
- 甚至放大成见…这可能导致更倾向数据的创建
- AI模型
成见
- 在男女平等和法律范畴
3.13 谈天机器人
4.BERT处理了什么?接下来做什么?
4.1 GLUE基线成果
- 逐年提高的GLUE成果
4.2 再也不用在神经网络模型规划技巧上重复揣摩?
- 往年会有许多不同的神经网络结构构建思路
- 在
attention is all you need
之下,这些结构不再热门
- 花费六个月来研究 体系结构的规划,得到了1个点 F1 的提高
- 仅仅让 BERT 扩大3倍,得到了 5个点 F1 的提高
- SQuAD 的 TOP20 参赛者都是用了 BERT
4.3 更难的自然言语了解
-
阅览了解
- 在长文档或多个文档
- 需求多跳推理
- 在对话中定位问答
- 许多现有阅览了解数据集的关键问题:人们写问题时看着上下文
- 不现实的
- 鼓励简略的问题
4.4 QuAC:根据上下文的问答
- 学生问问题,老师回答的对话
- 教师看到维基百科文章主题,学生不喜欢
- 依然和人类水平有很大差距
4.5 HotPotQA
- 规划要求多跳推理
- 问题在多个文档
4.6 多使命学习
- NLP的另一个前沿是让一个模型履行许多使命。GLUE 和 DecaNLP是最近的比如
- 在BERT的根底上,多使命学习产生了改善
4.7 低资源支撑的场景
-
不需求许多核算才能的模型(不能运用BERT)
- 为移动设备尤其重要
- 低资源言语
-
低数据环境(few shot learning 小样本学习)
- ML 中的元学习越来越受欢迎
4.8 模型了解/可解说性
- 咱们能得到模型猜测的解说吗?
- 咱们能了解模型,例如BERT知道什么和他们为什么作业这么好?
- NLP中快速增长的地区
- 关于某些运用程序非常重要(如医疗保健)
4.9 Diagnostic/Probing Classifiers
- 看看模型知道什么言语的信息
- 确诊分类器需求表示一个模型(例如BERT)作为输入,并做一些使命
- 只要确诊分类器被练习
- 确诊分类器一般非常简略(例如,单个softmax)
- 不然他们不通过模型表示来自省会学会完结使命
- 一些确诊使命
-
Results / 成果
- BERT 的低层表示在根底(低层次)使命中体现更好
4.10 NLP职业运用与开展
- NLP是快速增长的职业。尤其是两大范畴:
-
对话
- 谈天机器人
- 客户服务
-
健康
- 了解健康记录
- 了解生物医学文献
4.11 定论
- 在曩昔的5年里,因为深度学习,进步很快
- 跟着有才能练习更大的模型和更好地运用无监督数据,在上一年有了更大的发展
- 是在NLP范畴的激动人心的时间
- NLP是正逐渐对社会产生巨大影响力,使误差和安全等问题越来越重要
5.视频教程
能够点击 B站 查看视频的【双语字幕】版本
[video(video-1ccwQkLb-1652089877902)(type-bilibili)(url-player.bilibili.com/player.html… | 深度学习与自然言语处理(2019全20讲))]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与深度学习的未来