GPT : Improving Language Understanding by Generative Pre-Training

参考论文:Improving Language Understanding by Generative Pre-Training

论文链接:https://s3-us-west-2.amazonaws.com/openai-assets/research-covers/language-unsupervised/language_understanding_paper.pdf

这篇论文是基于文本分类的这篇论文上进行改进,这篇论文所提出的方法称之为GPT

前言

在之前的博客中讲过预训练的好处,并且预训练可以以多种方式参与到后续的下游任务中,这里就不再赘述。在这篇论文中,探索出了一种对自然语言理解任务的半监督方法,融合了无监督的预训练(pre-training)和有监督的微调(fine-tuning)过程。本文提出了一种通用表示,能够在范围广泛的任务中稍加修改、适应就能快速进行transfer.整个过程分成两个阶段。

阶段一:在无标签的海量数据中训练语言模型,学习神经网络模型的参数。

阶段二:应用阶段一训练完成模型参数用相关标签数据训练target task。

文本分类这篇论文采用了3层的单向LSTM,无attention,带有少量dropout 参数,而本文的模型结构采用了Transformer,在多个任务中,比如机器翻译, 文档生成和句法分析都表现更好。选择这个模型相对与rnn网络能更好地解决长依赖的问题,在跨多样任务迁移模型时能够高效适用。在迁移过程中,这篇论文基于traversal-style将结构化文本处理为单一连续词条序列,这样的处理使得fine-tune对pre-trained model做小改动就可以兼容多种不同任务。

并且经实验验证,本文所采用的方法在12种nlp任务中有9种任务的效果都有显著提高。

框架

Unsupervised pre-training

给定无标签语料,我们采用标准语言模型去极大化下式:

k是基于语境窗口的大小,条件概率P表示在参数下采用神经网络建模的可能性。训练参数可以通过梯度下降获得。

在本文的实验中,我们采用了多层的Transformer decoder来建立语言模型,模型采用多头自注意力

 

 是上下文窗口的token 序列,n是层的个数,We是词项量矩阵,Wp是位置嵌入矩阵。

Supervised fine-tuning

基于公式1训练的模型,本文将训练获得的参数应用于有监督的目标任务。假定有带标签的数据集C,包含的每个实例是词序列,如,带有标签y,首先作为输入通过已经预训练好的pre-trained model获得最终transformer block's activation ,然后输入带有Wy的线性输出层来预测y

 在处理输入序列时,可以针对不同任务进行拼接来进行fine-tuning, 如下图:

GPT : Improving Language Understanding by Generative Pre-Training_第1张图片

从上图可以看出,对于不同的任务有不同的处理方式。

实验

GPT : Improving Language Understanding by Generative Pre-Training_第2张图片

GPT : Improving Language Understanding by Generative Pre-Training_第3张图片

 

GPT : Improving Language Understanding by Generative Pre-Training_第4张图片

有效因子分析 

GPT : Improving Language Understanding by Generative Pre-Training_第5张图片

我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=1kwv48wjolc3j

你可能感兴趣的:(论文阅读)