UniLM模型的详细说明

Uni?面向自然语言理解和生成的ed语言模型预训练

模型的框架如上图所示。在预训练阶段,UniLM模型通过三种目标函数不同的语言模型(包括双向语言模型、单向语言模型和序列到序列语言模型)学习一个变压器网络。为了控制要预测的令牌的可视上下文,使用不同的自我注意掩码来实现它。即通过不同的掩码控制预测词的可见上下文词的数量来实现不同的模型表示,并通过以下四个任务进行预训练:

将文本输入到Transformer网络中,计算相应的输出向量,然后通过softmax分类器预测掩码在字典中属于哪个token。通过最小化预测令牌和标准令牌的交叉熵来优化UniLM模型的参数。三种类型的完形填空任务可以完成不同的语言模型,使用相同的程序进行训练。

模型输入文本序列,开头加[SOS]标记,结尾加[EOS]标记。[EOS]一方面可以在NLU任务中作为边界标记,另一方面可以让模型学习在NLG任务中何时终止解码过程。它的输入表示与Bert相同,包括标记嵌入、位置嵌入和段嵌入。同时,片段嵌入也可以作为模型采用什么训练方法(单向,双向,序列对序列)的一个标识。

主干网络由24层变换器组成,输入向量首先被转换成,然后通过使用L层变换器被抽象编码成不同级别的上下文表示。在每个块中,使用多个自关注头来聚合前一层的输出向量。对于第层,自注意头的输出计算如下:

其中,前一层的输出分别利用参数矩阵线性投影成三元组Query,Key,Value,根据掩码矩阵判断一对令牌是否可以相互出席。

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

指定段落回答问题有两种形式:第一种叫做抽象QA,假设答案是文章中的一个段落;另一个叫生成式QA,答案需要动态生成。

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

给定多轮对话历史和作为知识源的网络文档,系统需要生成与对话一致并反映网络文档内容的自然语言答案。这是一个NLG任务,实验在DSTC7数据集上进行。

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

提出了一种统一的预训练模型UniLM,该模型针对多个LM目标共享参数进行联合优化。双向、单向和序列到序列LMs的统一使UniLM能够直接微调NLU和NLG任务的预训练。实验结果表明,在GLUE基准测试和两个问答数据集上,UniLM优于BERT。此外,UniLM在五个NLG数据集上的性能优于最新的模型:CNN/DailyMail和Gigaword文本摘要,SQuAD问题生成,CoQA问题答案生成和DSTC7基于对话的生成。其优点总结如下:

/c/b14d4cb58c3b栏目名称:自然语言处理欢迎投稿!!!