WDK李宏毅学习笔记第十二周01_ELMO,BERT,GPT

ELMO,BERT,GPT

文章目录

  • ELMO,BERT,GPT
  • 摘要
  • 1、Contextualized Word Embedding
  • 2、Embeddings from Language Model(ELMO)
  • 3、Bidirectional Encoder Representations from Transformers(BERT)
    • 3.1 How to use BERT-Case 1
    • 3.2 How to use BERT-Case 2
    • 3.3 How to use BERT-Case 3
    • 3.4 How to use BERT-Case 4
  • 4、Generative Pre-Training(GPT)
  • 方法
  • 结论与展望


摘要

在实际生活中,一个word往往有多个意思,光靠一个vector是没法完全代表一个word的,所有说,前面word embedding的方法都是不够好的,本章讲的就是解决一词多意问题的方法—ELMO,BERT,GPT,它们的目的是用多个vector表示同一个word的多个意思,以此解决对应问题。

1、Contextualized Word Embedding

Contextualized Word Embedding是根据语义对word进行编码,同样的word可以对应不同的word,以解决一次多用的问题。
WDK李宏毅学习笔记第十二周01_ELMO,BERT,GPT_第1张图片

2、Embeddings from Language Model(ELMO)

ELMO是一个RNN-base的model,它是train一个正向的RNN和一个反向的RNN,再将其得到的结果接起来,就可以得到词汇的Embedding,该Embedding不仅考虑了前文意思,也考虑了后文意思。同样的word,要是前后文意思不同,得到的Embedding也不同,从而实现一词多译。
WDK李宏毅学习笔记第十二周01_ELMO,BERT,GPT_第2张图片
当我们的RNN是Deep的时候,对于同一个词汇,每一层都会输出一个Embedding,这样该如何选择?
WDK李宏毅学习笔记第十二周01_ELMO,BERT,GPT_第3张图片
ELMO的做法是全都要,如下图右上角所示,将每一层的的两个Embedding都加权求和,得到代表能够每一层的Embedding,权重的值是learning到的。WDK李宏毅学习笔记第十二周01_ELMO,BERT,GPT_第4张图片

3、Bidirectional Encoder Representations from Transformers(BERT)

BERT做的事情是输入word,然后输出word对应的Embedding。
WDK李宏毅学习笔记第十二周01_ELMO,BERT,GPT_第5张图片
训练BERT的方法有俩个。

  1. Masked LM。它就是随机的将句子中间的词用[Mask]替代,然后让machine去找合适的词填好。这样如果是多个词填在一起没有违和感时,那么它们就会有非常接近的Embedding。
    WDK李宏毅学习笔记第十二周01_ELMO,BERT,GPT_第6张图片
  2. Next Sentence Prediction。它做的事情是,给machine两个句子,在句子开头,输入标志符[CLS],句子间用标志符[SEP]表示两个句子的分隔符,[CLS]标志符得到的Embedding会送给一个二分类model,该model判断这两个句子该不该连在一块。
    WDK李宏毅学习笔记第十二周01_ELMO,BERT,GPT_第7张图片

3.1 How to use BERT-Case 1

它是进行语义识别的,如下图所示,像BERT输入一些句子,和分类标志符[CLS],将分类标志符的对应位置的Embedding丢给Linear Classifier,Linear Classifier再输出语义是好还是不好。
WDK李宏毅学习笔记第十二周01_ELMO,BERT,GPT_第8张图片

3.2 How to use BERT-Case 2

向BERT输入word和分类标志符[CLS],将每个word对应的输出丢给分类器,分类器输出每个word对应的类别,可以用来解决词性分类的问题。
WDK李宏毅学习笔记第十二周01_ELMO,BERT,GPT_第9张图片

3.3 How to use BERT-Case 3

Natural Language Inference(给machine一个前提和假设,machine判断根据前期假设是否成立,它的做法是输入多个句子和分类标志符[CLS],句子间用标志符[SEP]隔开,分类器输出假设是否成立。
WDK李宏毅学习笔记第十二周01_ELMO,BERT,GPT_第10张图片

3.4 How to use BERT-Case 4

Extraction-based Question Answering(给machine读文章,希望问它问题可以正确的回答),它的做法是给machine输入问题和文章,再learned两个vector,一个vector和文章word的embedding做点积,将得到的值做Softmax,得到最大值位置,作为答案的起始点,另一个word也是同样的做法,它输出的最大值位置作为文章结束点。
WDK李宏毅学习笔记第十二周01_ELMO,BERT,GPT_第11张图片

4、Generative Pre-Training(GPT)

GPT就是如下图所示的model,它其实就是Transformer 的 Decoder ,它做的事情是自动填词。GPT是最复杂的,但是它也是很有效,相比其他model,它可以用很少的training data就可以做到相同的事情。
WDK李宏毅学习笔记第十二周01_ELMO,BERT,GPT_第12张图片

方法

  1. ELMO的做法是training一个正向的RNN和反向的RNN,两者组合作为word的Embedding,这样word Embedding不仅考虑了前文语境思,也考虑了后文语境,且不同语境得到的word也都是不同的。
  2. BERT是Transformer的Encoder,它常用的训练方法有两个,一个是将句子中的某些word用标志符[mask]代替,让machine去猜被代替的词是什么,如此就可以找到每个word的Embedding。另一个是输入分类标志符和句子间的分隔标志符,然后输入句子是否是可以连在一块的,让machine知道句子间的联系及含义。
  3. GPT是Transformer的Dncoder,它是将每一个word分为3个vector,每一层的输出作为下一次的输入,将联系一层一层传递下去,然后training出所有word的vectors。

结论与展望

ELMO在处理一词多意的问题上是很有效的,还可以适当增加Deep来提高准确率,相比这三个model,ELMO所占内存也是最小的。BERT则是更适合用在处理文本分类的问题上,且在文本分类问题的比赛中常年霸榜。GPT是这三个model最复杂占用内存最大的,但是在这3个model中,它可以用更少的训练数据完成同样的效果,所以当训练数据不充足时,使用该model将会更准确。

你可能感兴趣的:(笔记)