UniLM:使用BERT实现序列到序列的预训练.
- paper:Unified Language Model Pre-training for Natural Language Understanding and Generation
- arXiv:link
自然语言处理中的大多数任务都可以表示为序列到序列Seq2Seq任务, 在Seq2Seq任务中通常使用编码器-解码器结构(如完整的Transformer),这是因为标准的自注意力机制对于输入是无序的,不适合于Seq2Seq任务。作者通过为注意力矩阵加上合适的mask,使得仅用Transformer的编码器(如BERT)也能够实现Seq2Seq任务。
通过为注意力矩阵施加不同形状的mask,可以实现不同的任务类型。
- 若不施加mask,则相当于自编码式的双向语言模型,对应标准的BERT;
- 若施加右上角的mask,则相当于自回归式的语言模型,对应GPT;
- 作者施加上图所示的mask,使得第一个句子的交互是双向的,第二个句子的交互是单向的,满足Seq2Seq任务的要求。
该思路没有额外约束。只要添加上述形状的mask,不需要修改模型架构,可以直接沿用BERT的预训练权重,收敛更快。