【NLP】ELMO\BERT\GPT入门

elmo\bert\gpt 都是语言模型。

语言模型介绍:深入浅出讲解语言模型 - 忆臻的文章 - 知乎

nlp中的预训练语言模型总结(单向模型、BERT系列模型、XLNet) - JayLou娄杰的文章 - 知乎

A word can have multiple senses

 

图:in typical word embedding, each word type has an embedding

bank是不同的token,但是是同样的type,就是bank。

token是NLP里分词的结果,是没有确定词义的一个词。

word2vector中,每一个word的type有一个embedding,所以不同的token,但它属于同一个type,则它所对应的embedding的一样的。

在过去的任务中,所有不同的token,但是它们的type是一样的,就假设它们的语义是一样的。

 

上述的bank,它们是不同的token,但是是同样的type,它们也有可能有不同的语义。

希望机器给不同意思的token,给出不同的embedding。

 

Contextualized word embedding

之前是每个type有一个embedding,现在希望每个token都有一个embedding

 

如何做到这种每个token都有一个embedding呢?

 

Embeddings from Language Model (Elmo)

rnn-based langauge models不需要标注数据,学到的技能就是预测下一个token是什么

因为rnn学到了潮水、高烧、臣退了等"退了"前面的词汇,所以这里的token会输出不一样的embedding。

但是上述方法只考虑到了"退了"的前文,没有考虑到后文。

因为要deep,所以叠加了很多层,每一层都有concat的embedding。所以到底选哪层的embedding当作这个token最后的embedding呢?elmo全都要。

假如deep了2层,所以下图只有h1、h2(当然如果叠了3层,就有h1\h2\h3了),在你不知道你用elmo抽出的embedding做什么任务之前,这里的 \alpha _1\alpha _2 是不知道的,需要先设定好下游任务,再将 \alpha _1\alpha _2 和下游任务的参数一起learn出来。

 

 

 

 

Bidirectional Encoder Representations from Transformers (BERT)

bert是transformer的encoder,encoder就是bert的network架构。只需要搜集一大堆的句子,不需要标注,就可以训练一个bert。(Transformer需要标注吗?)

although i use "word" as unit here, "character" may be a better choise for Chinese.

词:潮水;字:潮、水

中文常用的字是4000个,但是词无法穷尽,bert的输入也是要one-hot encoding的。中文用字更合适。

 

如何训练?

方式1:随机遮住50%的字,让bert去填回来。bert抽出的embedding通过多分类器,从而得到预测结果。

方式2:给bert 2个句子,让bert预测说这2个句子是接在一起的,还是不是接在一起的。

"你醒醒吧" 和 "你没有妹妹" 是接在一起的,希望bert学到。

[cls]分类,代表这两个句子要不要接在一起。目标就是训练句子要不要接在一起。

实验证明,方式1和方式2结合训练效果最好。

 

只要把elmo和bert想象为一个抽取特征的工具即可。(bert有中文版的,只需下载下来用即可。)

How to use BERT 

case1

input一个句子,将要做分类的句子丢给bert, 然后等待class的结果。

linear classifier(trained from scratch)从头开始训练,这里的参数是随机初始化的。

 

case2

 输入句子,输出embedding,预测每一个embedding是属于哪一个分类。(有监督)

注意这里CLS放在句首,需要明确的就是 transformer 是可以并行的,因为它与 RNN 这种按照时间展开的结构不同。所以CLS是放在前or后没有关系。

 

case3

知识推理

 

 

case4

extraction-based意思是答案在原文中一定可以找到

答案是文章中ds到de的token

求start,橙色(学习出来的参数)

求end,蓝色(学习出来的参数)

 

Generative Pre-Training (GPT)

最大的语言模型

如何预测?

GPT可以做zero-shot learning(不需要学习,直接能预测)

  • Reading Comprehension
  • Summarization
  • Translation

https://talktotransformer.com

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值