赞
踩
UniLM论文全名为Unified Language Model Pre-training for Natural Language Understanding and Generation,译为自然语言理解与生成的统一预训练语言模型。
本文提出了采用BERT的模型,使用三种特殊的Mask的预训练目标,从而使得模型可以用于NLG,同时在NLU任务获得和BERT一样的效果。 模型使用了三种语言模型的任务:
目前,预训练的语言模型(Language model )已经大幅地提高了各种自然语言处理任务的水平。它一般使用大量文本数据,通过上下文来预测单词,从而学习到文本上下文的文本表示,并且可以进行微调以适应后续任务。不同类型的预训练语言模型一般采用不同的预测任务和训练目标,如表1所示。ELMo模型学习两个单向语言模型(unidirectional LM):前向语言模型从左到右读取文本进行编码,后向语言模型从右到左读取文本进行编码。GPT模型使用Transformer编码解码器从左到右的一逐字地预测文本序列。BERT模型使用一个双向Transformer编码器通过被掩字上下文来预测该掩蔽字。
尽管BERT模型已经显著地提高了大量自然语言理解任务的效果,但是由于它的双向性使得它很难应用于自然语言生成任务。
因此,作者提出了一个新的统一预训练语言模型(UniLM),既可以应用于自然语言理解(NLU)任务,又可以应用于自然语言生成(NLG)任务。UniLM模型的框架与BERT一致,是由一个多层Transformer网络构成,但训练方式不同,它是通过联合训练三种不同目标函数的无监督语言得到,如表2所示。
为了使三种不同的目标函数运用到同一种模型框架中,作者设计了三类完型填空任务,像BERT模型一样,去预测被掩的token(这是该篇论文的核心)。下面将详细进行介绍,如何设计这三类完型填空任务的。
模型框架如图1所示,在预训练阶段,UniLM模型通过三种不同目标函数的语言模型(包括:双向语言模型,单向语言模型和序列到序列语言模型),去共同优化同一个Transformer网络;为了控制对将要预测的token可见到的上下文,作者使用了不同的self-attention mask来实现。换句话说,就是通过不同的掩码来控制预测单词的可见上下文词语数量,实现不同的模型表征。
x 1 x 2 [ M A S K ] x 4 x_1x_2\ [MASK]\ x_4 x1x2 [MASK] x4 对于MASK的预测,只能使用token1和token2以及自己位置能够被使用,使用的就是一个对角矩阵的。同理从右到左的LM也类似。
对于双向的LM,只对padding进行mask。
在训练的时候,一个序列由 [SOS]S_1[EOS]S_2[EOS]
组成,其中S1是source segments,S2是target segments。随机mask两个segment其中的词,其中:
这样的话,模型可以隐形地学习到一个双向的encoder和单向decoder。(类似transformer)
对于NLU的任务,就和BERT一样进行finetune。
对于NLG的任务,S1:source segment, S2: target segment, 则输入为“[SOS] S1 [EOS] S2 [EOS]”. 我们和预训练的时候一样也是随机mask一些span,目标是在给定的context下最大化我们的mask的token的概率。值得注意的是[EOS], which marks the end of the target sequence,也是可以被masked,因为这样可以让模型学习到什么时候生成[EOS]这样可以标志文本生成的结束。
abstractive summarization
question generation
generative question answering
dialog response generation) 使用了label smooth和 beam search
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。