【笔记】李宏毅 -- ELMO、BERT、GPT
1.背景知识 one-hot -> word class -> word embedding 不过传统的word embedding解决不了多义词的问题。 2. ELMO 为了解决上述问题,首先有了ELMO。 它是一个双向的RNN网络,这样每一个单词都对应两个hidden state,进行拼接便可以得到单词的Embedding表示。当同一个单词上下文不一样,得到的embedding就不同。 当然也可以搞很多层,每一层得到的embedding都要。 根据下游任务,可以得到不同embedding的权重。 3. BERT BERT只是Transformer中的Encoder,那Bert怎么训练呢?有两种方法。 第一个称为Masked LM,做法是随机把一些单词变为Mask,让模型去猜测盖住的地方是什么单词。 假设输入里面的第二个词汇是被盖住的,把其对应的embedding输入到一个多分类模型中,来预测被盖住的单词。 另一种方法是预测下一个句子,这里,先把两句话连起来,中间加一个[SEP]作为两个句子的分隔符。 而在两个句子的开头,放一个[CLS]标志符,将其得到的embedding输入到二分类的模型,输出两个句子是不是接在一起的。 实际中,同时使用两种方法往往得到的结果最好。 在ELMO中,训练好的embedding是不会参与下游训练的,下游任务会训练不同embedding对应的权重