Leveraging Pre-trained Checkpoints for Sequence Generation Tasks

《Leveraging Pre-trained Checkpoints for Sequence Generation Tasks》(BertGeneration)2020 TACL

摘要

  • 开发了一个基于Transformer的seq2seq模型,该模型可以使用公开的BERT、GPT-2和RoBERTa的checkpoints,以这些checkpoints初始化本文的模型——编码器和解码器
  • 实验表明,本文模型在机器翻译、文本摘要、句子拆分和句子融合方面的实验结果是state-of-art

介绍

  • 很少有人使用预训练模型来初始化seq2seq模型——有人认为BERT的预训练目标导致其不适合用于文本解码任务,但预训练模型在多大程度上有利于seq2seq模型的warmup,这一点尚未由具体研究

  • 本文旨在为以下问题提供一个答案:对于热启动序列生成模型,利用公开的预训练模型的最佳方式是什么?例如,使用BERT的checkpoints初始化编码器,用GPT-2初始化解码器

    what is the best way to leverage publicly available pre-trained checkpoints for warm-starting sequence generation models?

  • 本文将BERT、GPT和RoBERTa预先训练的checkpoints结合起来,初始化Transformer模型

  • 结果表明,预训练的编码器是序列生成任务的重要组成部分,并且序列生成任务通常受益于编码器和解码器之间的权重共享

  • 代码:https://github.com/google-research/google-research/tree/master/bertseq2seq.

模型和checkpoints

  • BERT是为了NLU任务的文本表示编码而开发的,而GPT-2是为语言建模而开发的

  • 本文使用的seq2seq架构,编码器和解码器都由Transformer层组成

    • 编码器使用BERT(这与传统的Transformers不一样,BERT使用GELU激活函数)
    • 解码器的实现和BERT的实现相同,但是自注意力机制只会关注左边的上下文(使用了attention mask把右边的文本掩盖住),并且添加了编码器-解码器注意力机制
    image-20220114170337758
  • BERT Checkpoints:

    • 使用WordPiece分词
    • 使用bert-base-uncased、bert-base-cased、BERT-Base Multilingual Cased作为checkpoints
  • GPT-2 Checkpoints

    • 使用SentencePieces分词
    • GPT-2有1024个位置的位置嵌入,但仅使用前512个(为了和BERT匹配起来)
  • Roberta Checkpoints

    • 词汇的处理和GPT-2的句子分词兼容

      As the conceptual differences between BERT and RoBERTa are minor, we might use BERT as a hypernym to address both pretraining methods in this paper.

模型组合

  • RND2RND:Transformer的encoder-decoder架构,但权重均随机初始化
  • BERT2RND:BERT初始化的编码器与随机初始化的解码器配对。编码器和解码器共享从checkpoint初始化的嵌入矩阵
  • RND2BERT:随机初始化的编码器与BERT初始化的解码器配对。为了实现自回归解码,将BERT的双向自注意机制屏蔽为只看左边的上下文
  • BERT2BERT:BERT初始化解码器和BERT初始化编码器配对;唯一随机初始化的变量是编-解码器的注意力
  • BERTSHARE:类似于BERT2BERT,但编码器和解码器之间的参数是共享的
  • ROBERTASHARE:与BERTSHARE相同,但是共享编码器和解码器使用公共Roberta的checkpoints初始化
  • GPT:纯解码器架构。将输入视为语言模型的条件前缀
  • RND2GPT:随机初始化的编码器与GPT-2解码器配对。用GPT-2的checkpoints来预热解码器和嵌入矩阵
  • BERT2GPT:使用BERT的字典作为输入,使用GPT-2的字典作为输出
  • ROBERTA2GPT:类似BERT2GPT,但用RoBERTa来初始化编码器

实验和结果

  • 句子融合:将多个句子组合成一个连贯的句子

    image-20220114172055790
  • 句子拆分:与句子融合任务相反,需要将一个句子拆分为多个句子来表达

    image-20220114172158444
  • 机器翻译

    image-20220114172314177