UniLM 模型详解

UniLM 模型详解

Unified Language Model Pre-training for Natural Language Understanding and Generation

UniLM是在微软研究院在BERT的基础上提出的预训练语言模型,被称为统一预训练语言模型。使用三种特殊的Mask的预训练目标,从而使得模型可以用于NLG,同时在NLU任务获得和BERT一样的效果

它可以完成单向、序列到序列和双向预测任务,可以说是结合了AR和AE两种语言模型的优点,UniLM在文本摘要、生成式问题回答等领域取得了SOTA的成绩

1. AR & AE

  • Aotoregressive Lanuage Modeling自回归语言模型:根据前面(或后面)出现的token来预测当前时刻的token,代表模型有ELMO、GTP等
    forward:p(x)=\prod_{t=1}^Tp(x_t|x_{<t})\\ backward:p(x)=\prod^1_{t=T}p(x_t|x_{>t})\tag{1}

    • 缺点:只能利用单向语义而不能同时利用上下文信息
    • 优点:对自然语言生成任务(NLG)友好,符合生成式任务的生成过程
  • Autoencoding Language Modeling自编码语言模型:通过上下文信息来预测当前被mask的token,代表有BERT、Word2Vec(CBOW)等
    p(x)=\prod_{x\in Mask}p(x|content)\tag{2}

    • 缺点:由于训练中采用了[MASK]标记,导致预训练与微调阶段不一致的问题,且对于生成式问题的支持能力较差
    • 优点:能够很好的编码上下文语义信息,在自然语言理解(NLU)相关的下游任务上表现突出

2. UniLM Motivation

模型框架如上图所示,在预训练阶段,UniLM模型通过三种不同目标函数的语言模型(包括:双向语言模型,单向语言模型和序列到序列语言模型),去共同学习一个Transformer网络;为了控制对将要预测的token可见到的上下文,使用了不同的self-attention mask来实现。即通过不同的掩码来控制预测单词的可见上下文词语数量,实现不同的模型表征,由下面四种任务进行预训练:

  • 单向语言模型(Unidirectional LM):
    • MASK完形填空任务,输入的是一个单独的文本【x_1,x_2,Mask,x_4】
    • 观测序列分为从左到右和从右向左两种,从左到右,即仅通过被掩蔽token的左侧所有本文来预测被掩蔽的token;从右到左,则是仅通过被掩蔽token的右侧所有本文来预测被掩蔽的token,如上图所示,使用上三角矩阵来作为掩码矩阵,阴影部分为-\infty,空白部分为0
  • 双向语言模型(Bidirectional LM):
    • MASK完形填空任务,输入的是一个文本对【SOS,x_1,x_2,Mask,x_4,EOS,x_5,MASK,x_7,EOS】
    • 与Bert模型一致,在预测被掩蔽token时,可以观察到所有的token,如上图所示,使用全0矩阵来作为掩码矩阵
  • 序列到序列语言模型(Seq2Seq LM):
    • MASK完形填空任务,输入的是一个文本对【SOS,x_1,x_2,Mask,x_4,EOS,x_5,MASK,x_7,EOS】
    • 如果被掩蔽token在第一个文本序列中,那么仅可以使用第一个文本序列中所有token,不能使用第二个文本序列的任何信息;如果被掩蔽token在第二个文本序列中,那么使用一个文本序列中所有token和第二个文本序列中被掩蔽token的左侧所有token预测被掩蔽token
    • 如上图所示,在训练的时候,一个序列由[SOS]S_1[EOS]S_2[EOS]组成,其中S1是source segments,S2是target segments。随机mask两个segment其中的词,其中如果masked是source segment的词的话,则它可以attend to所有的source segment的tokens,如果masked的是target segment,则模型只能attend to所有的source tokens以及target segment中当前词和该词左边的所有tokens,这样模型可以隐形地学习到一个双向的encoder和单向decoder(类似transformer)
  • NSP任务(Next Sentence Prediction):
    • 对于双向语言模型(Bidirectional LM),与Bert模型一样,也进行下一个句子预测。如果是第一段文本的下一段文本,则预测1;否则预测0

将文本输入到Transformer网络,计算出对应的输出向量,再通过softmax分类器预测【Mask】到底属于字典中的哪一个token。UniLM模型参数通过最小化预测token和标准token的交叉熵来优化。三种类型的完型填空任务可以完成不同的语言模型运用相同的程序程序训练

3. Backbone Network

模型输入X文本序列,在起始处添加[SOS]标记,结尾处添加[EOS]标记。[EOS]一方面可以作为NLU任务中的边界标识,另一方面还能在NLG任务中让模型学到何时终止解码过程。其输入表征方式与Bert的一样,包括token embeddingposition embeddingsegment embedding,同时segment embedding还可以作为模型采取何种训练方式(单向,双向,序列到序列)的一种标识

骨干网络由24层Transformer组成,输入向量\{x_i\}^{|x|}_{i=1}首先会被转换成\bf H_0=[x_1,...,x_{|x|}],然后使用L层Transformer\bf H^l=\text{Transformer}_l(\bf H^{l-1});l\in [1,L]抽象编码成\bf H_l=[h^l_1,...,h^l_{|x|}]的不同层次的上下文表示。在每个\text{Transformer}_l块中,使用多个self-attention heads来聚合前一层的输出向量。对于第l\text{Transformer}_l层,self-attention head \mathbf A_l的输出通过以下方式计算:
\mathbf Q=\mathbf H^{l-1}\mathbf W_l^Q, \mathbf K=\mathbf H^{l-1}\mathbf W_l^K, \mathbf V=\mathbf H^{l-1}\mathbf W_l^V\tag{3}

\mathbf M_{i,j}= \begin{cases} 0,\quad \ \ \ \ \ \text{allow\ to\ attend}\\ -\infty, \ \ \ \ \text{prevent\ from\ attending} \end{cases}\tag{4}

\mathbf A_l=\text{softmax}(\frac{\mathbf Q\mathbf K^T}{\sqrt{d_k}}+\mathbf M)\mathbf V_l\tag{5}

其中,前一层的输出\mathbf H^{l-1}\in \mathbb{R}^{|x|×d_h}分别使用参数矩阵\mathbf W_l^Q,\mathbf W_l^K,\mathbf W_l^V\in \mathbb{R}^{d_h×d_k}线性地投影到三元组Query,Key,Value中,并且根据掩码矩阵\mathbf M\in \mathbb{R}^{|x|×|x|}确定一对tokens是否可以相互attend

4. 训练策略

  • 网络设置:24层Transformer,1024个hidden size,16个attention heads
  • 参数大小:340M
  • 初始化:直接采用Bert-Large的参数初始化
  • 激活函数:GELU,与bert一样
  • dropout比例:0.1
  • 权重衰减因子:0.01
  • batch_size:330
  • 混合训练方式:对于一个batch,1/3时间采用双向语言模型的目标,1/3的时间采用Seq2Seq语言模型目标,最后1/3平均分配给两种单向学习的语言模型,也就是left-to-right和right-to-left方式各占1/6时间
  • MASK方式:总体比例15%,其中80%的情况下直接用[MASK]替代,10%的情况下随机选择一个词替代,最后10%的情况用真实值。还有就是80%的情况是每次只mask一个词,另外20%的情况是mask掉bi-gram或者tri-gram

5. 下游任务应用

  • NLU:

    • 在NLU任务中,微调UniLM作为一个双向Transformer的编码器,类似于BERT。以文本分类为例。使用编码向量[SOS]作为输入的起始,表示为h_{1}^{L},接着流入随机初始化的softmax分类器,W^{C} \in R^{d_{h} \times C}属于一个参数矩阵,并且C是分类的数量,通过更新预训练语言模型的参数和softmax分类器来最大化标签训练数据的概率
  • NLG:

    • 对于NLG任务,使用序列到序列的任务作为一个例子,S1和S2分别代表source segmentstarget segments,构造输入[SOS]S1[EOS]S2[EOS],模型微调的过程中通过随机掩盖一些目标序列,学习去预测MASK的token。训练目标是最大化给定文本掩盖标签的概率,其中[EOS]标记着目标序列的终止,在微调的过程中也可以被使用,模型可以学习使用[EOS]去终止目标序列生成的过程

6. 实验

6.1 文本摘要

生成一个简洁流畅的摘要,在输入中传达关键信息,这是一个生成任务,其中摘要不限于重用输入文本中的短语或句子。使用非匿名版本的CNN/DailyMail数据集Gigaword进行模型微调和评估。通过将文档(第一段)和摘要(第二段)连接起来作为输入,并根据预定义的最大长度截断,将UniLM微调为一个序列到序列模型

6.2 问答任务

回答一个指定段落的问题,有两种形式:第一种被称为抽取式问答(extractive QA),假设答案是文章中的一段文本;另一种称为生成性问答(generative QA),答案需要动态生成

  • 抽取式问答(extractive QA):

    • 抽取式问答(extractive QA)是一个NLU任务,需要预测文章中答案的开始和结束位置。微调预训练的UniLM作为任务的双向编码器。在斯坦福问答集(SQuAD)2.0CoQA上进行了实验
  • 生成性问答(generative QA):

    • 生成性问答(generative QA)是一个NLG任务。抽取方法只能预测输入文章的一段作为答案。在CoQA数据集(如上所述)上进行了实验
6.3 问题生成

指定一个输入段落和一个答案段,目标是生成一个要求答案的问题,是一个NLG任务,使用SQuAD 1.1数据集用于测试

6.4 对话生成

给出一个多轮对话历史和一个网络文档作为知识来源,系统需要生成一个既是符合对话的又是网络文档内容的反映的自然语言回答,是一个NLG任务,在DSTC7数据集上进行实验

6.5 GLUE Benchmark

在通用语言理解评估(GLUE Benchmark)上评估UniLM,GLUE是九种语言理解任务的集合,包括问答、语言可接受性、情感分析、文本相似性、释义检测和自然语言推理(NLI)

7. 总结

论文提出了一个统一的预训练模型UniLM,为多个共享参数的LM目标联合优化的。双向、单向和序列到序列LMs的统一使UniLM能够直接微调NLU和NLG任务的预训练。实验结果表明,UniLM在GLUE benchmark和两个问答数据集上都优于BERT。此外,UniLM在五个NLG数据集上的表现优于以前的最新模型:CNN/DailyMailGigaword文本摘要、SQuAD问题生成、CoQA生成问题回答和DSTC7基于对话生成,其优势总结如下:

  • 三种不同的训练目标,网络参数共享
  • 网络参数共享,使得模型避免了过拟合于某单一的语言模型,使得学习出来的模型更加具有普适性
  • 采用了Seq2Seq语言模型,使得其在能够完成NLU任务的同时,也能够完成NLG任务

https://www.jianshu.com/c/b14d4cb58c3b专栏名:《自然语言处理》欢迎投稿!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,716评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,558评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,431评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,127评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,511评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,692评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,915评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,664评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,412评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,616评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,105评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,424评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,098评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,096评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,869评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,748评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,641评论 2 271

推荐阅读更多精彩内容