李宏毅-ELMO, BERT, GPT讲解: 李宏毅-ELMO, BERT, GPT讲解
在ELMO之前word2vec是静态的embdding,静态embedding的特点是同一个词,在不通语境下是同一个embedding。然而这不符合语言学的特点,例如:“太阳就是日”和“我日你大爷”。很明显两个“日”表达的意思并不相同,但是如果使用word2vec做静态embedding,那么神经网络看到的“日”是同样的语意。于是就延伸出带有上下文的embedding(Contextualized word embedding)。这种embeding可以保证同一个字在不同的语境下有不同的embeding。而本文介绍的三个网络都是Contextualized word embedding
ELMO
ELMO的结构
简单来说就就是一个自回归的双向RNN,其中隐含层的输入被当做词的embedding
ELMO的使用
ELMO在使用时一般可以取出多个隐含层的输出加权做为该词的embedding
具体权重可以由下游任务去学习得到
BERT
bert实际上使用了Transformer的encoder作为编码器,使用大量文本进行预训练
BERT的训练
在训练时主要解两个任务:
bert是一种自编码模型
BERT的使用
简单的分成4中情况:
任务 | 实例 | 下游任务用法 |
---|---|---|
句子分类 | 句子情感分析 | 下游任务直接使用cls标记的embedding |
序列标注 | 词性标注,NER | 下游任务使用每个词输出的embedding |
两句话分析关系 | 句子相似度 | 下游任务直接使用cls标记的embedding |
SQuAD | 阅读理解 | 见下图 |
黄,蓝向量分别代指起始和结束位置。
GPT
GPT实际上使用了Transformer的decoder作为编码器,使用大量文本进行预训练
GPT的训练
自回归的language model
GPT的使用
不开源