Improving Language Understandingby Generative Pre-Training

1 摘要

目前大多数深度学习方法依靠大量的人工标注信息,这限制了深度学习在很多领域的应用。此外,即使在可获得相当大的监督语料情况下,以无监督学习的方式学到的表示也可以让性能显著的提升。到目前为止,最引人注目的证据是广泛使用预训练词嵌入来提高一系列NLP任务的性能。GPT全称Generative Pre-Training,是一种半监督学习方法,它致力于用大量无标注数据让模型学习“常识”,以缓解标注信息不足的问题。其具体方法是在针对有标签数据训练Fine-tune之前,用无标签数据预训练模型Pretrain,并保证两种训练具有同样的网络结构。
阅读该论文主要是为了更好的理解何凯明新发表的论文MAE。
论文地址:Improving Language Understandingby Generative Pre-Training

2 方法

GPT 采用两阶段过程,第一个阶段是利用语言模型进行预训练(无监督形式),第二阶段通过 Fine-tuning 的模式解决下游任务(监督模式下)。模型的结构如图1。
Improving Language Understandingby Generative Pre-Training_第1张图片

图1 (左)文章中使用的 Transformer 架构和训练目标。 (右)用于微调不同任务的输入转换。 将所有结构化输入转换为令牌序列,由预训练模型处理,然后是线性+softmax 层。

2.1 非监督预训练

在预训练Pretrain部分,用u表示每一个token(词),当设置窗口长度为k,预测句中的第i个词时,则使用第i个词之前的k个词,同时也根据超参数Θ,来预测第i个词最可能是什么。简言之,用前面的词预测后面的词。
在这里插入图片描述
具体方法是代入Transformer模型,下式中的模型由l组(组也可称为块block)隐藏层组成,最初输入隐藏层的数据是词编码U乘词嵌入参数We加上位置参数Wp;后面经过l个层处理。
Improving Language Understandingby Generative Pre-Training_第2张图片
h0 表示GPT 的输入,Wp 是单词位置的 Embedding,We 是单词的 Embedding。得到输入 h0 之后,需要将 h0 依次传入 GPT 的所有 Transformer Decoder 里,最终得到 ht。最后送到softmax得到 ht 再预测下个单词的概率。

用V表示词汇表大小,L表示最长的句子长度,dim 表示 Embedding 维度,则 Wp 是一个 L×dim 的矩阵,We 是一个V×dim 的矩阵。

2.2 监督微调

接下来是要对前一个阶段训练出来的模型参数进行微调,以适应当前的监督型任务。假设我们有带标签的数据集C,数据结构为(x1,x2,…,xm,y),然后输入(x1,x2,…,xm),经过我们的预训练模型在输入上的迭代之后,获得输出向量 h m l h_m^l hml ,然后经过线性层和softmax得到预测标签:

Wy 表示预测输出时的参数,微调时候需要最大化以下函数:
在这里插入图片描述
GPT 在微调的时候也考虑预训练的损失函数,所以最终需要优化的函数为:
在这里插入图片描述

实验

使用了如下图2的任务和数据集:
Improving Language Understandingby Generative Pre-Training_第3张图片

图2

与当前最先进的方法进行比较,在自然语言推理任务的实验结果如图3。 5x 表示 5 个模型的集合。 所有数据集都使用准确性作为评估指标。
Improving Language Understandingby Generative Pre-Training_第4张图片

图3

问答和常识推理的结果比较如图4。
Improving Language Understandingby Generative Pre-Training_第5张图片

图4

语义相似和分类的结果比较如图4。
Improving Language Understandingby Generative Pre-Training_第6张图片

图5

你可能感兴趣的:(自然语言处理,深度学习,机器学习)