我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的、自己不知道的东西。

已经有人记了笔记(很用心,强烈推荐):https://github.com/Sakura-gh/ML-notes

本节内容综述

  1. 首先概略地复习一下,在有ELMO, BERT, GPT这些技术前,我们如何做NLP:对词独热编码;之后考虑了Word ClassWord Embedding技术。
  2. 但是,一个词汇可能有不同的意义,传统来讲:In typical word embedding, each word type has an embedding。因此,我们不考虑word type,而是word token对嵌入。见[小细节](#Contextualized Word Embedding)
  3. 如何做到Contextualized Word Embedding呢?使用Embeddings from Language Model (ELMO)
  4. 之后,介绍了Bidirectional Encoder Representations from Transformers (BERT)。包括BERT的训练与用法。
  5. BERT在NLP领域的比赛基本屠榜。
  6. 接下来介绍了Enhanced Representation through Knowledge Intergration (ERNIE)
  7. What does BERT learn?
  8. 接着介绍了 Multilingual BERT。
  9. 接下来进入Generative Pre-Training (GPT)部分。体积巨大,BERT是Transformer的Encoder,而GPT是Transformer的Decoder。
  10. GPT很有趣,能做很多有趣的事,且无需额外训练。

文章目录

  • 本节内容综述
  • 小细节
    • Contextualized Word Embedding
    • Embeddings from Language Model
    • Bidirectional Encoder Representations from Transformers
      • Training of BERT
      • How to use BERT
    • Enhanced Representation through Knowledge Intergration
    • What does BERT learn?
    • Multilingual BERT
    • Generative Pre-Training
    • GPT做的神奇的事
      • Zero-shot Learning?
      • Visualization
      • 自动写文章

小细节

Contextualized Word Embedding


如图,对有颜色的输出,是对 bank 进行 embedding。如果语意相近,比如下面的两个句子,那么其bank输出对应的embed向量就会是相近的。

Embeddings from Language Model

如上,ELMO是一种基于RNN的技术:

  • 在训练时,输入第i个词,输出为第i+1个词;
  • 这样,把隐层的值拿出来,就是输出那个词的embedding向量;
  • 值得注意的是,为什么叫做Contextualized:因为如上,同样都是输出“退了”,但是前文却不同。

但是,这样,只考虑到了前文,没有后文。因此,我们再来一个返向的RNN。


如上,正向反向、不同层都会对同一个词产生Embedding`,ELMO这篇文章就选择了“我全都要”的思路。

如上,将不同层的嵌入向量求加权,其中权重alphaalphaalpha是通过任务的表现学出来的。

Bidirectional Encoder Representations from Transformers

  • BERT = Encoder of Transformer
  • Learned from a large amount of text without annotation

如上,李老师提醒我们:

  • 中文的词太多了,几乎无法穷举;
  • 因此我们把常用的 4000 + 的中文的“字”做embedding更为合适。

Training of BERT

Approach 1: Masked LM


如上,给某一个词盖上MASK,接着将其由BERT产生的向量取出,放入线性分类器中:

  • 线性分类器能力较弱,如果线性分类器都能很好好得区分,说明词嵌入做得好;
  • 这样得效果就是,如果两个词放在同一地方没有违和感,那么它们就有类似的embedding。

Approach 2: Next Sentence Prediction

如上,我们有两个句子,将其以[SEP]作为中介进行拼接,在开头放置一个[CLS],其对应的输出放入一个线性二分器,对应“两个是拼接在一起的”,或“不是拼接在一起的”,以此进行训练:

  • [CLS]放在哪里都没关系,因为 Transformer 中的 Self-attention 是“天涯若比邻”的。

在 BERT 文章中,两个方法一起训练。

How to use BERT

文章中有四个BERT应用示例。

Case 1

如上,可用于对句子的情感进行分类:

  • [CLS]对应的输出,放入线性分类器中,作为最终的类别;
  • BERT中的参数只需要跟着任务训练微调就好。

Case 2


如图,BERT也可用来做 Slot filling ,为句子中的每个词确定成份与类别。

Case 3

如图,输入两个句子(比如一个前提,一个假设),输出这个假设是否成立或是不确定。

Case 4

如上图,进行阅读理解并回答。但是这里放了个水:答案一定出现在文章里

输入一个文章(以 token 形式),输入一个问题;输出两个整数:

  • s代表答案的第一个token在文章中的起始索引;
  • e则代表结束索引。

BERT在其中起的作用如上。其中:

  • 如果s大于e,那说明机器认为这个问题是不可回答的;
  • BERT只要搬过来就好,而红色和蓝色代表的向量是从文章中学来的。

Enhanced Representation through Knowledge Intergration

特别为了中文设计的。

其将由字组成的词汇盖住,让机器进行推测。

What does BERT learn?

BERT接近输入的层,进行了与文法有关的任务;在输出附近的层,进行的会是比较困难的任务。

可以通过下面的实验看出。

BERT有24层,因此每个词汇可以抽出 24 个向量,把这 24 个向量做统计(叫 weight sum),见https://arxiv.org/abs/1905.05950。

我们就会值得,这些任务特别需要 BERT 中的哪些层。

对于 POS (词性标记)这个任务,把第 11-13 层的word embedding抽出来,更为合适。

如果比较困难的任务,则抽出后面的层作为embedding更为合适。

Multilingual BERT

谷歌自动爬了 104 种语言的文章。

这个 BERT 可以做到说:教它英文文章分类,其会学到中文文章的分类。

Generative Pre-Training

如图,GPT-2多达 1542M 个参数,体积巨大。

但是 GPT 不是芝麻街人物…

BERT是Transformer的Encoder,而GPT是Transformer的Decoder。

如上,依次输入句子元素,进行预测。

GPT做的神奇的事

Zero-shot Learning?


如上,GPT在输入A:后会自动输出答案,原因可能为其训练数据种出现过问答的句子。其表现在参数量大时也是较为可观的。但是对于 Summarization 与 Translation 这两个问题,表现则没有那么好。

Visualization


如图,很多次都要倾向于attend到第一个词汇;第一个词没有特别的地方,当不需要attention时,机器可能学到,自己找第一个词汇。

自动写文章

OpenAI输入一段文字,GPT-2自动输出了一段话。

OpenAI没有开放参数最多的版本,但是参数较小的版本已经有了Demo:

  • https://talktotransformer.com/
  • 目前已经用不了了…因为运营成本太高


甚至程序都能写。

这个图有两个意思:

  • GPT-2 很有趣,甚至比 BERT 有趣;
  • 但是你难以得到 GPT-2 。

【李宏毅2020 ML/DL】P25 ELMO, BERT, GPT相关推荐

  1. 【李宏毅2020 ML/DL】P1 introduction

    [李宏毅2020 ML/DL]P1 introduction 本节主要介绍了 DL 的15个作业 英文大意 Regression: 回归分析 Classification: 分类 RNN: 循环神经网 ...

  2. 【李宏毅2020 ML/DL】P86-87 More about Domain Adaptation

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 本节内容综述 本节课由助教 Chao Brian 讲解. 首先讲解些领域适配的基础内容,包括名词.定义等. 接 ...

  3. 【李宏毅2020 ML/DL】P59 Unsupervised Learning - Auto-encoder

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐):https://github.com/Sakura-gh/ML-note ...

  4. 【李宏毅2020 ML/DL】P58 Unsupervised Learning - Neighbor Embedding | LLE, t-SNE

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐):https://github.com/Sakura-gh/ML-note ...

  5. 【李宏毅2020 ML/DL】P15 Why Deep-

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐): https://github.com/Sakura-gh/ML-not ...

  6. 【李宏毅2020 ML/DL】P14 Tips for training DNN | 激活函数、Maxout、正则、剪枝 Dropout

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐): https://github.com/Sakura-gh/ML-not ...

  7. 李宏毅svm_李宏毅2020 ML/DL补充Structured Learning Structured SVM

    李宏毅2020 ML/DL补充Structured Learning Structured SVM [李宏毅2020 ML/DL]补充:Structured Learning: Structured ...

  8. 【李宏毅2020 ML/DL】P66 Self-supervised Learning

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 本节内容综述 本节课四十分钟,由助教 Chi-Liang Liu 讲解 Self-Supervised Lea ...

  9. 【李宏毅2020 ML/DL】P8-9 Optimization for Deep Learnin | 优化器技术总结,SGDM 与 Adam 对比与使用建议

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐): https://github.com/Sakura-gh/ML-not ...

最新文章

  1. 使用proc文件系统
  2. exec 执行结果_php执行系统外部命令的4种方法
  3. svn 建子项目的方法
  4. 中修改环境变量_Golang入门(1):安装与配置环境变量的意义
  5. Java笔记-DH密钥交换获取密钥及AES加解密
  6. 数字货币交易所数据安全随笔
  7. centos7部署posgresql和kong总结
  8. 好奇怪呀后面加什么标点_沙发位后面是窗户有什么好的方案?
  9. 设计模式-关于模式的一些很基本的知识点
  10. 数据分析-回归-案例-波士顿房价数据集
  11. 打破定制化语音技术落地怪圈?从讲一口标准英音的语音助手说起
  12. locust 性能测试工具(V2.8.6)
  13. DDNS的NAT穿越问题
  14. 微信小程序底部菜单详解
  15. MySQL 数据库下载(windows)
  16. 【红宝书笔记精简版】第十二章 BOM
  17. 四川师范大学区域规划(3-区域发展的经济社会背景分析)90分以上版本
  18. 馈线自动化的主要采用计算机技术,配电及馈线自动化技术探讨
  19. Linux 监控命令
  20. Leetcode题解(超赞!!!)

热门文章

  1. 关于数据库中的char与varchar
  2. sqlserver 事务日志过大 收缩方法解决方案
  3. 一个简单的解决方法:word文档打不开,错误提示mso.dll模块错误。
  4. 解决 Electron 5.0 版本出现 require is not defined 的问题
  5. bash:pip:找不到命令
  6. Gitlab管理Create Merge Request,new Merge Request创建合并请求
  7. 复选框 checkbox获取值
  8. 计算机不能代替人类英语,英语作文 谈谈计算机1我们已进入了计算机时代2计算机有许多优点3计算机不能代替人类...
  9. mysql查询m到n条数据库,对查询数据库中第M到N条记录的思考
  10. 获取textarea每一行的内容_PLC编程的基本原则和方法,64页内容介绍PLC编程,值得收藏...