自然语言处理知识图谱

UniLM 模型详解

2022-07-04  本文已影响0人  晓柒NLP与药物设计

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

2. UniLM Motivation

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

将文本输入到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. 训练策略

5. 下游任务应用

6. 实验

6.1 文本摘要

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

6.2 问答任务

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

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基于对话生成,其优势总结如下:

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

上一篇下一篇

猜你喜欢

热点阅读