深度学习(7):ELMO,BERT,GPT 和 transformer介绍

Introduction of ELMO, BERT, GPT

在这里插入图片描述

词嵌入:将每一个词用一个向量表示,语意相近的词他们的向量在控件的位置会比较接近。

解决一词多义的问题

在这里插入图片描述

根据词所在文本的上下文

1、EMLO Embeddings from Language Model

Contextualized word embedding
在这里插入图片描述
根据上一个词预测下一个词是什么,RNN之间的hidden layer就是当前输入词汇的contextualized word embedding

退了这个词前面可能有其他不同的输入,由于它之前读过的embedding不同,所以输出的也不一样。

反向rnn

在这里插入图片描述

deep rnn

在这里插入图片描述
在这里插入图片描述

  • token:原始词
  • lstm-1:第一层
  • lstm-2:第二层

BERT: Bidirectional Encoder Representations from Transformers

在这里插入图片描述

使用字代替词作为bert的输入的话,使用one-hot encoding 会更方便很多

== bert=Encoder of Transformer==

Train of BERT

Approach 1:Masked LM

把输入的句子随机有15%的几率会被mask遮挡住,特殊的token,bert要做的就是去猜测这些盖住的mask是什么

每一个input通过bert都会输出一个embedding,把被masked的embedding 丢入一个linear multi-class classifier,要求这个classifier预测出被masked的词汇是哪个,由于该线性classifier很简单的模型,如果可以预测对,则代表这个bert模型足够复杂。

在这里插入图片描述

Approach2:Next Sentence Prediction

The boundary of two sentences

在这里插入图片描述

将两个句子以[sep]链接输入到BERT中,最后[CLS]位置的输出再输入进一个线性二项分类器中,判断两个句子是否该连在一起。如果bert中的nn为RNN,[CLS]最好放在最后面。因为RNN是由左读到右的。但BERT的内部不是RNN,而是一个transformed encoder。将每两个句子连接,训练它linear binary classifier是yes还是no,代表他们是否该相连。

在这里插入图片描述

两个方法同时使用

将bert当成一个抽feature的工具形成新的embedding

How to use BERT ——Case 1

判断句子属于哪个主题
在这里插入图片描述

bert和linear classifier一起学习,后者要trained from scratch,从头学

How to use BERT ——Case 2

判断句子中的每个词汇属于哪个主题

在这里插入图片描述

input一个句子,每一个词汇都会产生一个embedding,再把这些embedding输入到linear cls中。

How to use BERT ——Case 3

input两个句子,output一个class

在这里插入图片描述

只有三个类别的分类问题,T,F,Unknown

通过[sep]分割符号把两个sentence丢给BERT,在开头加入[cls],代表分类,将开头的地方输出的embedding,拿它输入linear classifier做分类。

How to use BERT ——Case 4

Extraction-based Question answering

给你的model都一篇文章,给它一个问题,希望可以得到问题,条件为:答案一定出现在文章里

在这里插入图片描述

给QAmodel一个文章一个问题,output两个整数(s,e),这两个整数的意思是现在该问题的答案落在该文章 d s 到 d e d_s到d_e dsde个token。
在这里插入图片描述
对于答案为gravity的问题,s和e的输出为17和17
对于答案为within a cloud,s和e的输出分别为77,79

如何用bert解决case 4

把问题和文章间隔为[sep]输进去,让machine去learn另外两个vector(红色的和蓝色的),这两个的dimension和bert输出的embedding的dimension是一样的,拿红色的vector与document里的每一个word embedding做dot product,类似attention。算出一个scaler,通过softmax得到文档中拿个词汇得到的分数最高。红色的vector决定了s等于多少。再用蓝色的vector作上述操作,定义e的大小。

在这里插入图片描述

在这里插入图片描述

红色的vector和蓝色的vector是学习出来的,给与模型学很多问题和文本。random的从头开始学出来的

Enhanced Representation through Knowledge Integration ——ERNIE

在这里插入图片描述

以中文的字为单位,一次用mask盖住一个词汇

BERT 在各种测试中的表现

在这里插入图片描述

上方图片右侧图表中的蓝色区域越大的代表那一部分所在的word embedding的权值越大。每一个row代表了一个nlp的任务,每一个column代表bert的层。例如做pos(词性标记),最需要bert的11-13层,如果解的是coref任务,最需要17-19层的bert。

3、GPT Generative pre-Training

在这里插入图片描述

GPT-2有1542M的参数

  • Transformer decoder

如何运作,预测下一个词汇

在这里插入图片描述

将q3和已经产生的词汇k1和k2做attention产生 a 3 , 1 , a 3 , 2 和 a 3 , 3 a_{3,1},a_{3,2}和a_{3,3} a3,1,a3,2a3,3,再跟每一个词汇产生的 v 1 , v 2 , v 3 v^1,v^2,v^3 v1,v2,v3做?,得到 b 3 b^3 b3的embedding,再通过很多层产生就这个词,继续这个过程,产生一个完整的句子

可以在完全没有训练资料的情况下做

  • reading comprehension
  • summarization
  • Translation
    在这里插入图片描述
    在这里插入图片描述

很多不同的词汇都会探测到第一个词汇,layer和head越深约会这样

2、Transformer

Seq2seq model with “Self-attention”

最常用的架构:RNN

  • 输入一串vector sequence,输出另一串vector sequence。输出 a 3 , 时 a 1 , a 2 a^3,时a^1,a^2 a3,a1,a2已经被看过
  • 问题:不易被平行化,例如,为了计算 b 4 , 需 要 考 虑 , a 1 − 4 b^4,需要考虑,a^{1-4} b4,a14
  • 所以用CNN取代RNN
  • 每一个三角形代表一个filter,以三个vector作为输入,与filter里的参数做内积,用filter扫过 a 1 , a 2 , a 3 , a 4 a^1,a^2,a^3,a^4 a1,a2,
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值