写点什么

深度学习进阶篇 - 国内预训练模型 [5]:ERINE、ERNIE 3.0、ERNIE- 的设计思路、模型结构、应用场景等详解

  • 2023-05-28
    浙江
  • 本文字数:6682 字

    阅读完需:约 22 分钟

深度学习进阶篇-国内预训练模型[5]:ERINE、ERNIE 3.0、ERNIE-的设计思路、模型结构、应用场景等详解

深度学习进阶篇-国内预训练模型[5]:ERINE、ERNIE 3.0、ERNIE-的设计思路、模型结构、应用场景等详解

后预训练模型时代

1.ERINE

1.1 ERINE 简介

ERINE是百度发布一个预训练模型,它通过引入三种级别的 Knowledge Masking 帮助模型学习语言知识,在多项任务上超越了 BERT。在模型结构方面,它采用了 Transformer 的 Encoder 部分作为模型主干进行训练,如 图 1 (图片来自网络)所示。



图 1 Transformer 的 Encoder 部分


关于 ERNIE 网络结构(Transformer Encoder)的工作原理,这里不再展开讨论。接下来,我们将聚焦在 ERNIE 本身的主要改进点进行讨论,即三个层级的 Knowledge Masking 策略。这三种策略都是应用在 ERNIE 预训练过程中的预训练任务,期望通过这三种级别的任务帮助 ERNIE 学到更多的语言知识。

1.2 Knowledge Masking Task

训练语料中蕴含着大量的语言知识,例如词法,句法,语义信息,如何让模型有效地学习这些复杂的语言知识是一件有挑战的事情。BERT 使用了 MLM(masked language-model)和 NSP(Next Sentence Prediction)两个预训练任务来进行训练,这两个任务可能并不足以让 BERT 学到那么多复杂的语言知识,特别是后来多个研究人士提到 NSP 任务是比较简单的任务,它实际的作用不是很大。




说明:


masked language-model(MLM)是指在训练的时候随即从输入预料上 mask 掉一些单词,然后通过的上下文预测这些单词,该任务非常像我们在中学时期经常做的完形填空。 Next Sentence Prediction(NSP)的任务是判断连个句子是否是具有前后顺承关系的两句话。




考虑到这一点,ERNIE 提出了 Knowledge Masking 的策略,其包含三个级别:ERNIE 将 Knowledge 分成了三个类别:token级别(Basic-Level)短语级别(Phrase-Level)实体级别(Entity-Level)。通过对这三个级别的对象进行 Masking,提高模型对字词、短语的知识理解。


图 2 展示了这三个级别的 Masking 策略和 BERT Masking 的对比,显然,Basic-Level Masking 同 BERT 的 Masking 一样,随机地对某些单词(如 written)进行 Masking,在预训练过程中,让模型去预测这些被 Mask 后的单词;Phrase-Level Masking 是对语句中的短语进行 masking,如 a series of;Entity-Level Masking 是对语句中的实体词进行 Masking,如人名 J. K. Rowling。



图 2 ERNIE 和 BERT 的 Masking 策略对比


除了上边的 Knowledge Masking 外,ERNIE 还采用多个异源语料帮助模型训练,例如对话数据,新闻数据,百科数据等等。通过这些改进以保证模型在字词、语句和语义方面更深入地学习到语言知识。当 ERINE 通过这些预训练任务学习之后,就会变成一个更懂语言知识的预训练模型,接下来,就可以应用 ERINE 在不同的下游任务进行微调,提高下游任务的效果。例如,文本分类任务。


异源语料 :来自不同源头的数据,比如百度贴吧,百度新闻,维基百科等等

2.ERNIE 3.0: Large-scale Knowledge Enhanced Pre-training for Language Understanding and Generation

2.1. ERNIE 3.0 的设计思路

自回归模型(Autoregressive Model, AR),通过估计一串文本序列的生成概率分布进行建模。一般而言,AR 模型通过要么从前到后计算文本序列概率,要么从后向前计算文本序列概率,但不论哪种方式的建模,都是单向的。即在预测一个单词的时候无法同时看到该单词位置两边的信息。假设给定的文本序列,其从左到右的序列生成概率为:



自编码模型(Autoencoding Model, AE), 通过从破坏的输入文本序列中重建原始数据进行建模。例如 BERT 通过预测【mask】位置的词重建原始序列。它的优点在于在预测单词的时候能够同时捕获该单词位置前后双向的信息;它的缺点是预训练过程中采用了 mask 单词的策略,然而微调阶段并没有,因此导致了预训练阶段和微调阶段的的 GAP,另外在训练过程中,对不同 mask 单词的预测是相互独立的。假设序列中被 mask 的词为,未被 mask 的词为,则其相应的计算概率为:



一般而言,自回归模型在文本生成任务上表现更好,自编码模型在语言理解任务上表现更好。ERNIE 3.0 借鉴此想法,在如下方面进行了改进:


  1. ERNIE 3.0 同时结合了将自回归和自编码网络,从而模型在文本生成和语言理解任务表现均很好。

  2. ERNiE 3.0 在预训练阶段中引入了知识图谱数据。

2.2. ERNIE 3.0 的模型结构


图 1 ERNIE 3.0 模型结构

2.2.1 ERNIE 3.0 的网络结构

延续 ERNIE 2.0 的语言学习思路,ERNIE 3.0 同样期望通过设置多种预任务的方式辅助模型学习语言的各方面知识,比如词法、句法、和语义信息。这些预训练任务包括自然语言生成、自然语言理解和关系抽取等范畴。ERNIE 3.0 期望能够在这三种任务模式(task paradigm)中均能获得比较好的效果,因此提出了一个通用的多模式预训练框架,这就是 ERNIE 3.0,如图 1 所示。


ERNIE 3.0 认为不同的任务模式依赖的自然语言的底层特征是相同的,比如词法和句法信息,然而不同的任务模式需要的上层具体的特征是不同的。自然语言理解的任务往往倾向于学习语义连贯性,然而自然语义生成任务却期望能够看见更长的上下文信息。


因此,ERNIE 3.0 设计了上下两层网络结构:Universal Representation Module 和 Task-specific Representation Module。其中各个模式的任务共享 Universal Representation Module,期望其能够捕获一些通用的基础特征; Task-specific Representation Module 将去具体适配不同模式的任务(生成和理解),去抽取不同的特征。


前边提到,自回归模型在文本生成任务上表现更好,自编码模型在语言理解任务上表现更好。因此,ERNIE 3.0 在上层使用了两个网络,一个用于聚焦自然语言理解,一个用于聚焦自然语言生成任务。这样做主要有两个好处:


  1. 不同任务适配更合适的网络,能够提高模型在相应任务上的表现。

  2. 在 fune-tuning 阶段,可以固定 Universal Representation Module,只微调 Task-specific Representation Module 参数,提高训练效率。

2.2.2 Universal Representation Module

此部分使用 Transformer-XL 作为骨干网络,Transformer-XL 允许模型使用记忆循环机制建模更长的文本序列依赖。在实验中,Universal Representation Module 设置了比较多的层数和参数,用以加强捕获期望的词法和句法底层语言特征能力。


这里需要注意的一点是,记忆循环机制只有在自然语言生成任务上会使用。

2.2.3 Task-specific Representation Module

此部分同样使用了 Transformer-XL 作为骨干网络,Task-specific Representation Module 将用于根据不同模式的任务去学习 task-specific 的高层语义特征。


在 ERNIE 3.0 的设置中,Universal Representation Module 采用了 Base 版的 Transformer-XL,其层数会比 Universal Representation Module 少。


另外,ERNIE 3.0 采用了两种任务模式的 Representation Module,一个是 NLU-specific Representation Module,另一个是 NLG-specific Representation Module,其中前者是一个双向编码网络,后者是个单向编码网络。

2.3. 不同类型的预训练任务

2.3.1 Word-aware Pre-training Task

  • Knowledge Masked Language Modeling


Knowledge Masking 策略包含三个级别:token级别(Basic-Level)短语级别(Phrase-Level)实体级别(Entity-Level)。通过对这三个级别的对象进行 Masking,提高模型对字词、短语的知识理解。


图 2 展示了这三个级别的 Masking 策略和 BERT Masking 的对比,显然,Basic-Level Masking 同 BERT 的 Masking 一样,随机地对某些单词(如 written)进行 Masking,在预训练过程中,让模型去预测这些被 Mask 后的单词;Phrase-Level Masking 是对语句中的短语进行 masking,如 a series of;Entity-Level Masking 是对语句中的实体词进行 Masking,如人名 J. K. Rowling。



图 2 ERNIE 和 BERT 的 Masking 策略对比


  • Document Language Modeling


ERNIE 3.0 选择使用传统的语言模型作为预训练任务,期望减小模型的语言困惑度。同时采用了 ERNIE-Doc 中提出的记忆循环机制,以建模更长的序列依赖。

2.3.2 Structure-aware Pre-training Tasks

  • Sentence Reordering Task


将给定的文档依次划分为 1-m 段,然后打乱这些段,让模型对这些段进行排序,是个 k 分类问题,这能够帮助模型学习语句之间的关系。


将文档划分为 2 段,那么排列组合后将有 个可能;将文档划分为 3 段,那么排列组合后将有 3! 个可能;依次类推,将文档划分为 n 段,那么排列组合后将有 n! 个可能。因此 ERNIE 将这个任务建模成了一个 k 分类问题,这里


  • Sentence Distance Task


预测两个句子之间的距离,是个 3 分类任务。对应的 Label 依次是 0、1 和 2。其中 0 代表两个句子在同一篇文章中,并且他们是相邻的;1 代表两个句子在同一篇文章中,但他们不是相邻的;2 代表两个句子不在同一篇文章中。

2.3.3 Knowledge-aware Pre-training Tasks

为了向预训练模型中引入知识,ERNIE 3.0 尝试在预训练阶段引入了 universal knowledge-text prediction(UKTP)任务,如图 3 所示。


给定一个三元组<head, relation, tail>和一个句子,ERNIE 3.0 会 mask 掉三元组中的实体关系 relation,或者句子中的单词 word,然后让模型去预测这些内容。当预测实体关系的时候,模型不仅需要考虑三元组中 head 和 tail 实体信息,同时也需要根据句子的上下文信息来决定 head 和 tail 的关系,从而帮助模型来理解知识。


这个操作基于远程监督的假设:如果一个句子中同时出现 head 和 tail 两个实体,则这个句子能够表达这两个实体的关系。


另外,当预测句子中的单词 word 时,模型不仅需要考虑句子中的上下文信息,同时还可以参考三元组<head, relation, tail>的实体关系。



图 3 universal knowledge-text prediction


  • 相关资料


  1. ERNIE 3.0: LARGE-SCALE KNOWLEDGE ENHANCED PRE-TRAINING FOR LANGUAGE UNDERSTANDING AND GENERATION

  2. ERNIE-DOC: A Retrospective Long-Document Modeling Transformer

3.ERNIE-Gram: Pre-training with Explicitly N-Gram Masked language Modeling for Natural Language Understanding

3.1. ERNIE-Gram 简介

在经典预训练模型 BERT 中,主要是通过 Masked Language Modeling(MLM)预训练任务学习语言知识。在 BERT 中 MLM 会随机 Masking 一些位置的 token,然后让模型去预测这些 token。这些 Masking 的 token 在中文中便是,在英文中便是 sub-word,这样的预测也许不能让模型获取更加直观的语言知识,所以后续又出现了一些模型,比如 ERNIE, SpanBERT 等,其从 Masking 单个字转变成了 Masking 一系列连续的 token,例如 Masking 实体词,Masking 短语等,即从细粒度的 Masking 转向粗粒度的 Masking。


ERNIE-Gram 指出一种观点:这种连续的粗粒度 Masking 策略会忽略信息内部的相互依赖以及不同信息之间的关联。因此,基于这种想法进行改进,提出了一种显式建模 n-gram 词的方法,即直接去预测一个 n-gram 词,而不是预测一系列连续的 token,从而保证 n-gram 词的语义完整性。


另外,ERNIE-Gram 在预训练阶段借鉴 ELECTRA 想法,通过引入一个生成器来显式地对不同 n-gram 词进行建模。具体来讲,其应用生成器模型去采样合理的 n-gram 词,并用这些词去 mask 原始的语句,然后让模型去预测这些位置原始的单词。同时还使用了 RTD 预训练任务,来识别每个 token 是否是生成的。

3.2. ERNIE 和 N-Gram 的融入方式

上边我们提到了,不同于连续多个 token 的预测,ERNIE-GRAM 采用了一种显式的 n-gram 方式进行建模,在本节我们将展开讨论 ERNIE 和显式的 n-gram 融合建模的方式。ERNIE-Gram 主要提出了两种融合方式:Explictly N-gram MLM 和 Comprehensive N-gram Prediction。


在正式介绍之前,我们先回顾一下经典的连续 token 的建模方式:Contiguously MLM,然后再正式介绍以上 ERNIE-Gram 提出的两种方式。

3.2.1 Contiguously MLM

给定一串序列 和 n-gram 起始边界序列(starting boundaries)​,根据​进行如下约定:


  • :由转换成的 n-gram 序列。

  • ​:从起始边界​​​中随机选择 15%的准备 Masking 的 index,组成​​

  • :由​​选择出的相应的 token 集

  • z_{\text{\}M}: 表示将​​进行 Masking 后的序列


图 1 展示了一个 Contiguously MLM 的例子,给定的序列为​​​​, 起始边界序列为​​​, 假设从起始边界序列​​的随机选择的索引为​​​, 则


  • ​​




Contiguously MLM 可通过如下方式进行优化:



图 1 contiguously MLM


在讨论完连续的 token Masking 策略之后,下面我们将继续讨论 ERNIE-Gram 中提出的两种显式 n-gram 的建模方式。

3.2.2 Explicitly N-gram Masked Language Modeling

在连续 token 预测中, 需要预测多次,每次预测一个 token,直到完成这一段连续 token 的所有预测,才表示完成了一个实体词或者短语。不同于连续 token 预测, 显式的 N-gram 预测直接去预测一个 n-gram 词,即站在一种粗粒度的角度上进行预测。


如图 2 为所示,假设为显式的 n-gram 序列,为随机选择的 Masking token, 则 Masking 后的完整序列为


Explicitly N-gram Masked Language Modeling 可通过如下方式进行优化:



图 2 Explicitly N-gram MLM

3.2.3 Comprehensive N-gram Prediction

通过以上讨论可知,Contiguously MLM 是从细粒度角度进行预测连续 token, Explicitly N-gram MLM 是从粗粒度角度进行预测 n-gram token, 而本节介绍的 Comprehensive N-gram 是一种融合细粒度和粗粒度的预测方式,其将更加全面地进行建模。其优化的目标函数为以上两种方式的融合,这里需要注意这两种方式是基于统一的上下文\bar{z}_{\text{\}M}进行预测:


$$\begin{split} -\text{log} ; p_{\theta}(y_M, z_M|\bar{z}{\text{\}M}) = -\sum{y \in y_M} \text{log} ; p_{\theta}(y|\bar{z}{\text{\}M})-\sum{z \in z_M} \sum_{x \in z} \text{log}; p_{\theta}(x|\bar{z}_{\text{\}M}) \end{split}$$


图 3a 展示了细粒度和粗粒度预测的详细融合方式,其将细粒度的预测位置直接拼接到了序列的末尾,图中以虚线分割。其中虚线以左是 Explictly N-gram 的粗粒度预测,虚线以右是 Contiguously MLM 的细粒度预测。以​​位置为例,由于其包含两个 token,所以细粒度预测需要预测 2 次(论文中这两个位置使用了​​和​​​这两个不同的 token 进行 Masking)。


此时,整个文本序列为:​​​​, 为了在 Self-Attention 时不造成信息的混乱,ERNIE-Gram 约定:


  • 虚线以左的 Explicitly N-gram MLM 粗粒度预测,即在预测​时,只能看见虚线以左的 token。

  • 虚线以后的 Contiguously MLM 细粒度预测,即在预测​​时,只能看见自己以及虚线以左的 token。


图 3b 展示了其计算时的 Attention 矩阵,其中红色点表示相互能够看见,在 Self-Attention 计算时,相互的信息需要融入。



图 3 Comprehensive N-gram Prediction

3.3. 使用生成器显式建模 N-gram Relation

为了更加显式地建模不同 n-gram 之间的关系,在预训练阶段,ERNIE-Gram 借鉴了 Electra 的思路,使用一个生成器去生成一个位置的 n-gram 词,并且用这个 n-gram 词去 mask 该位置的 n-gram token。


如图 4 所示,Transformer Encoder ​​​​​便是生成器,图 4b 展示了使用生成的 n-gram token 去 mask 原始句子 token 的一个样例,ERNIE-Gram 根据数据 Masking 位置的词分布采样了 public official 和 completely 去替换了原始语句词,即


  • 原始语句:the prime minister proposed nothing less than a overhaul of the tax system.

  • Masking 语句:the public official proposed completely a overhaul of the tax system.


然后将 Masking 语句传入 Transformer Encoder ​中进行训练。



图 4 Enhanced N-gram Relation Modeling


假设表示生成的 n-gram 项, \bar{z}^{'}_{\text{\}M} = {x_1, y_2^{'}, x_4, y_4^{'},x_6}表示用生成 n-gram 项 Masking 后的序列,则联合的预训练目标函数为:


$$\begin{split} -\text{log} ; p_{\theta^{'}}(y_M|\bar{z}{\text{\}M ^{'}} ) - \text{log}; p{\theta}(y_M, z_M|\bar{z}_{\text{\}M ^{'}} ) \end{split}$$


另外,ERNIE-Gram 融入了 the replaced token detection (RTD)任务,用于识别这些 token 是否是被生成器替换的 token。假设\hat{z}^{'}_{\text{\}M } = {x_1, y_2, x_4, y_4,x_6}​为真实目标 n-gram 词替换后的序列,则 RTD 的目标函数为:



发布于: 刚刚阅读数: 4
用户头像

本博客将不定期更新关于NLP等领域相关知识 2022-01-06 加入

本博客将不定期更新关于机器学习、强化学习、数据挖掘以及NLP等领域相关知识,以及分享自己学习到的知识技能,感谢大家关注!

评论

发布
暂无评论
深度学习进阶篇-国内预训练模型[5]:ERINE、ERNIE 3.0、ERNIE-的设计思路、模型结构、应用场景等详解_人工智能_汀丶人工智能_InfoQ写作社区