OpenAI GPT解读

背景

上篇我们讲了transformer的模型架构,论文《Attention is all you need》 也表明了transformer的效果是比RNN和CNN好的,而在ELMo解读里,我们也谈到了训练语言模型再结合具体任务即pre-train的思想,这两者的优势进行简单的结合便得到了OpenAI GPT,具体论文见《Improving Language Understanding by Generative Pre-Training》

介绍

OpenAI GPT主体采用无监督学习的方式,不需要labeled的data进行语言模型的预训练,之后针对具体下游任务进行fine-tune。模型结构如下图所示:
OpenAI GPT解读_第1张图片

Unsupervised pre-training

采用传统的单向语言模型训练方式,最大化概率
在这里插入图片描述
和单向ELMo完全一致,唯一不同的是ELMo单向采用LSTM,这里采用多层transformer
OpenAI GPT解读_第2张图片
以上图取自论文,即用单词embedding和位置embeding线性计算得到h0即输入的embedding,通过多层transformer的decoder(即multihead attention和输入的token进行),最后通过全连接和softmax输出得到预测词的概率。

Supervised fine-tuning

训练完了单向语言模型后,如何继续进行fine-tuning呢。
OpenAI GPT解读_第3张图片
这里采用输入序列的最后一个transformer的输出,用另一个 W y W_y Wy(和预训练不共享)进行计算后softmax得到label,再用反向传播的方式进行fine-tuning,同时作者发现
在这里插入图片描述
加入语言模型训练的目标作为辅助,能提升模型效果并加速收敛

总结

OpenAI GPT比较简单回顾下他和ELMo的区别

  1. ELMo采用的是双向语言模型,GPT是单向语言模型
  2. ELMO采用LSTM建立语言模型,GPT采用transformer
  3. GPT在fine-tune的时候,最终目标里加入了语言模型的训练目标最为辅助,提升了收敛速度以及更好的效果

优点是利用了transformer的中attention的优势,采用attention的方式更好对长距离依赖关系进行建模,缺点是不是双向模型。以上各自的优点综合后就得到了BERT,在之后进行讲解

你可能感兴趣的:(NLP)