Improving Language Understanding by Generative Pre-Training阅读笔记

文章目录

  • 概述
  • Framwork
    • 1. 无监督预训练
    • 2.有监督的fine-tuning
  • 实验
    • 实验设置
      • 无监督预训练
      • 模型规格
      • Fine-tuning细节
      • 实验结果

概述

要说最近NLP最显著的成果, 自然是几乎无人不知, 无人不晓的Bert.
但其实在Bert出现几个月之前, OpenAI在《Improving Language Understanding by Generative Pre-Training》就提出一个很相似的模型GPT, 取得非常不错的效果, 只可惜没得到太多关注.

模型的目标是学习一个通用的表示,能够在大量任务上进行应用。这篇论文的亮点主要在于,他们利用了Transformer网络代替了LSTM作为语言模型来更好的捕获长距离语言结构。然后在进行具体任务有监督微调时使用了语言模型作为附属任务训练目标。最后在12个NLP数据集上进行了实验,9个任务获得了SOTA。

Framwork

Improving Language Understanding by Generative Pre-Training阅读笔记_第1张图片
模型训练分为两个阶段:

  • 第一阶段在大规模语料上训练语言模型
  • 第二阶段为fine-tuing阶段. 利用标注数据进行监督训练

1. 无监督预训练

语言模型极大似然函数为:
在这里插入图片描述
其中, k表示上下文窗口大小.

GPT利用多层Transformer的解码器部分作为语言模型.
Improving Language Understanding by Generative Pre-Training阅读笔记_第2张图片

2.有监督的fine-tuning

做有监督的分类任务来进行fine-tuning
在这里插入图片描述
h l h_l hl表示语言模型最后一层transformer块的输出.

极大似然函数如下,
在这里插入图片描述
最终的优化目标函数为
在这里插入图片描述

实验

实验设置

实验数据集
Improving Language Understanding by Generative Pre-Training阅读笔记_第3张图片

无监督预训练

首先是语言模型预训练阶段.
这一阶段作者利用BookCorpus数据集进行无监督的预训练, 这个数据集包含超过7000本未出版的书籍.

最终语言模型的token level perplexity达到18.4.

模型规格

  • 语言模型采用12层的transformer decoder(768 dimensional states and 12
    attention heads).
  • position-wise前馈网络部分设置为3072维.
  • 优化方法采用Adam, 同时设置最大学习率为 2.5 e − 4 2.5e^{-4} 2.5e4
  • epoch: 100
  • batch size: 64
  • 每个输入包含512个token
  • L2正则: 0.01
  • 激活函数: GELU
  • 用fifty和spaCy库对语料进行预处理

Fine-tuning细节

  • fine-tuning阶段加上0.1的dropout
  • learning rate: 6.25 e − 5 6.25e-5 6.25e5
  • batch size: 32
  • epoch: 只需要3个epoch
  • 0.2% warmup

实验结果

四个任务

  • Natural Language Inference
    Improving Language Understanding by Generative Pre-Training阅读笔记_第4张图片
  • Question answering and commonsense reasoning
    Improving Language Understanding by Generative Pre-Training阅读笔记_第5张图片
  • Semantic Similarity
  • Classification
    Improving Language Understanding by Generative Pre-Training阅读笔记_第6张图片

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