【论文笔记】UniLM - Unified Language Model Pre-training for Natural Language Understanding and Generation

摘要

UniLM由微软研究院在bert的基础上开发的新型预训练模型,可在自然语言理解和生成任务上进行微调,模型采用了三个任务进行预训练:单向、双向、sequence to sequence预测。采用共享的Transformer网络和特殊的attention掩码机制,结合了AR和AE语言模型的优点,在抽象摘要、生成式问题回答语言生成数据集的抽样领域取得了最优秀的成绩。

1. 介绍

AR: Aotoregressive Lanuage Modeling,又叫自回归语言模型。它指的是,依据前面(或后面)出现的tokens来预测当前时刻的token,代表模型有ELMO、GPT等。

img

AE:Autoencoding Language Modeling,又叫自编码语言。通过上下文信息来预测当前被mask的token,代表有BERT ,Word2Vec(CBOW)。

img

AR 语言模型:

  • 缺点:它只能利用单向语义而不能同时利用上下文信息。 ELMO 通过双向都做AR 模型,然后进行拼接,但从结果来看,效果并不是太好。
  • 优点: 对自然语言生成任务(NLG)友好,天然符合生成式任务的生成过程。这也是为什么 GPT 能够编故事的原因。

AE 语言模型:

  • 缺点: 由于训练中采用了 [MASK] 标记,导致预训练与微调阶段不一致的问题。 此外对于生成式问题, AE 模型也显得捉襟见肘,这也是目前 BERT 为数不多实现大的突破的领域。

  • 优点: 能够很好的编码上下文语义信息, 在自然语言理解(NLU)相关的下游任务上表现突出。

语言模型详解

  1. ELMo 学习两个单向的语言模型,一个前向语言模型,从左到右读取文本,一个后向语言模型,从右向左读文本,encode文本信息。

  2. GPT 采用从左向右的Transformer来逐词预测文本。

  3. Bert 使用双向Transformer encoder,将左右的文本信息都融合起来,预测masked word。Bert在大量的自然语言理解任务上表现很优越,但双向的结构使得它很难在自然语言生成的任务上应用。

词向量经典模型:从word2vec、glove、ELMo到BERT_xiayto的博客-CSDN ...
  1. UniLM 是一个多层的Transformer网络,在大量文本上进行了联合预训练,针对三种无监督语言模型目标进行优化。单向LM、双向LM、sequence to sequence LM。
image-20200722200845834
image-20200722200430548
  • UniLM与Bert对比:

    相同点:可以通过fine-tune来适应各种下游任务

    不同点:Bert主要用于NLU任务。UniLM通过不同的self-attention masks机制,能够为不同的语言模型来生成不同的文本信息,从而应用于NLU和NLG任务。

  • UniLM的三个优点:

    1. 不同的LM模型使用共享的参数和架构,减轻训练和构造多个LM模型的需求

    2)由于UniLM的共享参数在不同的LM目标中进行了联合优化,所以学习到的文本表征具有更高的普适性,减缓了单个LM模型的过拟合问题。

    3)在NLU任务的应用外,UniLM能够作为sequence to sequence模型使用,从而应用于NLG任务中,比如抽象摘要,问答生成。

2. 预训练

预训练过程为:给定输入序列x=x_1,...,x_{|x|},UniLM为每一个token训练出一个融合上下文信息的向量表征,即词向量。

UniLM通过三个无监督语言模型目标优化共享的Transformer network,LM目标分别为:单向LM,双向LM,sequence-to-sequence LM。UniLM通过特殊的self-attention机制来控制在训练过程中考虑的文本信息,这种self-attention机制通过mask来决定计算每个token
的向量表征时应该考虑的context是哪些。

在双向LM模型中,没有任何mask,因为上下文信息都会被融入token中。在从左向右的单向LM模型中,矩阵上半三角会被mask掉,因为token只考虑左边的文本信息。在seq-to-seq模型中,句子s1的矩阵部分没有mask,s1因为s1融合上下文信息,句子s2矩阵的右上三角有mask,因为s2融合了s1的信息和左边的文本信息。

当UniLM预训练完成以后,便可通过fine-tuning来应用到下游任务中。

image-20200722200845834

2.1. 输入表征

模型输入x为单词序列,在单向LM中为文本片段,在双向LM和seq-to-seq LM中为一对文本片段。

我们在输入的开头加上开始符号[SOS],每个片段的结尾加上结束符[EOS],在NLU任务中,结束符用于标志句子的边界信息,在NLG任务重,结束符还可以让学到何时终止解码步骤。

输入的表征和Bert一致,每个token的向量表征为相应的token embedding,position embedding,sgment embedding的加和。但UniLM在优化不同的LM模型时,segment embedding会有所变化。

image-20200722211324258
  • Token Embeddings 词的向量表示

    token embedding 层是要将各个词转换成固定维度的向量。在BERT中,每个词会被转换成768维的向量表示。

  • Segment Embeddings 辅助BERT区别句子对中的两个句子的向量表示

    BERT 能够处理对输入句子对的分类任务。这类任务就像判断两个文本是否是语义相似的。句子对中的两个句子被简单的拼接在一起后送入到模型中。那BERT如何去区分一个句子对中的两个句子呢?答案就是segment embeddings.

    Segment Embeddings 层只有两种向量表示。前一个向量是把EA赋给第一个句子中的各个token, 后一个向量是把EB赋给第二个句子中的各个token。如果输入仅仅只有一个句子,那么它的segment embedding就是全EA。

  • Position Embeddings 让BERT学习到输入的顺序属性

    加入位置信息,能让模型理解相同单词在不同句子中不同位置的信息,学习到不同的向量表示。

    实现过程中,Bert处理512个token的输入,词向量维度为768,position embedding是(512,768)的lookup表,序列的每个位置的position embedding对应表中相应的行。

    因此,如果有这样两个句子“Hello world” 和“Hi there”, “Hello” 和“Hi”会由完全相同的position embeddings,因为他们都是句子的第一个词。同理,“world” 和“there”也会有相同的position embedding。

2.2. 骨干网络:多层Transformer

模型输入向量:\{X_i\}_{i=1}^{|x|}, 首先被包装为H^0=[x_1,...,x_{|x|}], 然后通过L层的transformer,在不同层融合上下文信息,每个Transformer块使用多头注意力融合上一层输出的向量,编码为H^l=[h_1^l,...,h_{|x|}^l],H^l = Tranformer_l(H^{l-1}),l\in[1,L],

image-20200723102851540

上一层的输出H^{l-1}\in R^{|x|\times d_h}通过三个参数矩阵W\in R^{d_h\times d_k}被线性的投影为queries,keys和values。

掩码矩阵M决定一对token在attention中是否会考虑对方。

文章使用不同的掩码矩阵M来控制生成一个token的表征时需要考虑的上下文信息。

2.3 预训练目标

  1. 完形填空:对于三个LM模型都进行完形填空任务,模型在与训练过程中随机选取输入中的token,将他们替换成特殊字符[MASK],将这些[MASK]字符的输出向量放入softmax分类器中来预测字符的值。UniLM的参数通过最小化原始tokens和预测tokens的交叉熵损失函数来优化。
  2. 下一句预测:针对双向LM模型进行下一句预测任务,操作和bert一致。目的是让模型理解两个句子之间的联系。训练的输入是句子A和B,B有一半的几率是A的下一句,输入这两个句子,模型预测B是不是A的下一句。预训练的时候可以达到97-98%的准确度。

2.4 预训练设置

整体的训练目标为各LM模型训练目标的总和。在每个训练批次中,1/3使用双向LM目标,1/3使用seq-to-seq LM目标,自左向右和自右向左的单向LM目标都为1/6。

UniLM的模型构架和Bert Large版本一样,激活函数和GPT一样用gelu。此外,本模型采用24层transformer,隐层节点为1024,注意力头数16,包含360M参数。

UniLM使用Bert Large进行初始化,再在英语wikipedia和BookCorpus上进行预训练。词典大小为28,996,输入句子的最大长度为512。

输入token被mask掉的概率为15%,其中10%用随机token替换,10%保持用原始token,80%用[mask]替换。此外,80%情况下mask一个token,20%情况下mask bigram或trigram。

2.5 在下游NLU和NLG任务中微调

  • NLU任务

    使用双向tranformer encoder进行微调,文本分类任务中,使用[sos]的输出向量,标为h_1^L,输入到随机初始化的softmax分类器中,分类概率为softmax(h_1^LW^C)W^C\in R^{d_h \times C}是参数矩阵,C是类别数目。

  • NLG任务

    使用seq-to-seq模型,微调过程和预训练中使用self-attention masks相同。S1为源序列,S2为目标序列,输入为“[sos] s1 [eos] s2 [eso]”,模型通过随机在s2中mask一定比例的token,学习去还原这些token。训练目标为在给定上下文的时候最大化masked tokens的概率。在生成的过程中,若预测出了[eos]则代表生成结束。

实验

  • 抽象摘要

    image-20200723143437231
  • 问答

    image-20200723143447925
  • 问题生成、回复生成

    image-20200723143502064

参考文献:paper阅读:UniLM(Unified Language Model Pre-training for Natural Language Understanding and Generation)

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