分享
UNILM-2.0
输入“/”快速插入内容
UNILM-2.0
2024年7月9日创建
•
论文:UNILMv2: Pseudo-Masked Language Models for Unified Language Model Pre-Training
•
地址:
https://arxiv.org/abs/2002.12804
•
源码:
https://github.com/microsoft/unilm
刷 arxiv 看到了之前比较喜欢的一个工作 UNILM 的续集,这不得提高优先级先来品品(虽然还有一大堆 TODO)。关于 UNILM 1.0 在之前的文章中已经有介绍了,见
站在BERT肩膀上的NLP新秀们(PART II)
,这种做到 NLU 和 NLG 简洁统一的框架真的是非常赞!
目前 NLP 预训练模型主要采取两大类预训练目标来进行语言模型训练:Auto-encoding(如BERT等)和 Auto-regressive(如 GPT/XLNEet 等)。如下图,简单来说 Auto-encoding 就是类似 BERT 那样的通过 [MASK] 标记来获取前向和后向的信息;而 Auto-regressive 呢就是自左向右或者自右向左地对文本进行语言建模,它的好处是对生成任务有天然的优势,缺点呢就是只能得到单向的信息不能同时利用上下文的信息。
而本文使用的
Partially Auto-Regressive
则可以认为是对
Auto-regressive
的扩展,将 token 级别扩展到了span 级别,并且不限制方向性。
模型预训练
UNILM 2.0 的模型框架没有什么好说的,骨架网络就是 Transformer,跟主流的都差不多,论文的亮点在于预训练目标。在一个统一的 BERT 式的网络基础上,设计了两种预训练目标,**自编码**和**部分自回归**,分别对应双向语言模型和 seq2seq 语言模型, 然后进行联合训练:
自编码
上图中左半部分,自编码(Auto Encoding,AE)就像 BERT 一样,利用已知的上下文信息来单独地计算被 MASK掉的 token 的概率。
其中,
为被 mask 词集合,$x_{\backslash M}$ 表示除去 mask 词集的其他词*,*
则表示被 mask 词, D 表示训练语料集合。
部分自回归
上图中右半部分,部分自回归(Partially AutoRegressive,PAR )在每一步因式分解的时候可以选择预测单个token 或多个 tokens(为连续的 span),当所有步均选择预测一个 token 时,则会变为自回归模式。
其中,
表示第 i 步需要预测的 token*,*
表示还没有预测出的词(每一步都不一样)。所以部分自回归预训练损失可以表示为:
其中,
是分解的期望,但是在预训练中只随机采用一种分解
关于Mask的策略
对于输入,随机采样 15% 作为 mask 集合,这其中 40% 的概率 mask 掉长度为 2 到 6 的 n-gram 连续 span,60% 的概率 mask 单独一个 token。