目录

自监督预训练算法核心原理

自监督预训练算法核心原理

自监督预训练算法核心原理

引言

在人工智能的浪潮中,预训练算法已经成为自然语言处理 (NLP) 领域不可或缺的基石。它们如同强大的引擎,驱动着机器理解和生成人类语言的能力。在上一章,我们概述了预训练算法的重要性及其发展历程。本章,我们将深入探讨自监督预训练算法的核心原理,揭开其背后的奥秘。

1. 自监督学习 (Self-Supervised Learning) 范式详解

自监督学习 (Self-Supervised Learning, SSL) 是近年来备受瞩目的一种机器学习范式。它巧妙地利用数据自身提供的内在结构作为监督信号,从而在无需人工标注的情况下训练模型。这种范式尤其适用于海量无标签数据的场景,极大地扩展了模型学习的边界。

核心思想

自监督学习的核心思想在于, 从无标签数据中构建“伪标签” ,然后利用这些伪标签训练模型。模型学习的目标不再是预测人工设定的标签,而是 预测数据自身被遮蔽或破坏的部分,或者学习数据不同部分之间的关联性。

范式详解

自监督学习通常遵循以下范式:

https://i-blog.csdnimg.cn/direct/eae5f17cb3a14682b8f2d290f98c6569.png

  1. 预任务 (Pretext Task) 设计 :这是自监督学习的关键步骤。预任务的设计需要巧妙地利用数据自身的特性,构建一个容易自动化标注,但又能够捕捉数据内在结构的任务。常见的预任务类型包括:

  2. 上下文预测:例如,预测句子中被遮蔽的词语 (Masked Language Modeling, MLM) 或预测下一个词语 (Causal Language Modeling, CLM)。

  3. 图像块预测:例如,预测图像中被遮蔽区域的内容,或者预测图像块之间的相对位置。

  4. 时序预测:例如,预测视频的下一帧,或者预测音频的下一个时间步。

  5. 对比学习:通过区分相似和不相似的数据对,学习数据的表示。

  6. 模型训练 : 使用预任务生成的伪标签,训练深度学习模型。模型在完成预任务的过程中,学习到通用的数据表示,这些表示能够捕捉数据中的重要特征和模式。

  7. 下游任务微调 (Fine-tuning) :将预训练好的模型迁移到下游的真实任务 (例如,文本分类、情感分析、目标检测等)。在下游任务中,通常只需要少量标注数据即可对模型进行微调,使其适应特定任务的需求。

自监督学习的优势

无需人工标注 :极大地降低了数据标注成本,能够利用海量的无标签数据。

学习通用表示 :预训练模型学习到的表示具有良好的泛化能力,能够迁移到各种下游任务。

提升模型性能 :在许多任务上,使用自监督预训练的模型能够显著提升性能,尤其是在标注数据稀缺的情况下。

2. Masked Language Modeling (MLM) 算法深度解析

Masked Language Modeling (MLM),中文译为掩码语言模型,是自监督学习中一种非常经典且有效的预训练任务。BERT (Bidirectional Encoder Representations from Transformers) 模型正是基于 MLM 算法而提出的,并取得了巨大的成功。

https://i-blog.csdnimg.cn/direct/5cdd8c68b07f482f872ff5f172f5ddf9.png

算法原理

MLM 的核心思想非常简洁:随机遮蔽输入文本中的一部分词语,然后让模型预测被遮蔽的词语。

具体步骤

  1. 掩码 (Masking): 对于输入的文本序列,随机选择一部分词语 (通常是 15% 左右),用特殊的 “[MASK]” 标记替换这些词语。
  2. 模型预测: 将带有 “[MASK]” 标记的文本输入到模型中 (例如,Transformer 编码器)。模型需要根据上下文信息,预测被 “[MASK]” 标记替换的原始词语。
  3. 损失函数: 使用交叉熵损失函数,衡量模型预测结果与真实被掩码词语之间的差异。模型训练的目标是最小化这个损失函数。

示例

原始句子: “The quick brown fox jumps over the lazy dog.”

掩码后的句子: “The quick brown [MASK] jumps over the lazy dog.”

MLM 任务: 模型需要预测 “[MASK]” 位置的词语是 “fox”。

MLM 的特点

  1. 双向上下文理解 :由于模型需要根据被掩码词语的左右两侧上下文信息进行预测,因此 MLM 能够学习到文本的双向上下文表示。这与传统的单向语言模型 (例如,CLM) 形成鲜明对比。
  2. 适用于编码器结构 :MLM 更适合用于训练编码器结构的模型 (例如,Transformer 编码器),因为编码器可以同时处理整个输入序列。
  3. BERT 的核心 :MLM 是 BERT 模型的核心预训练任务之一,BERT 通过 MLM 任务学习到了丰富的语言知识,并在各种 NLP 任务中取得了state-of-the-art 的结果。

3. Causal Language Modeling (CLM) 算法深度解析

Causal Language Modeling (CLM),中文译为 因果语言模型 ,也称为 自回归语言模型 。与 MLM 不同,CLM 是一种 单向 的语言模型,它在预测下一个词语时, 只能利用到当前词语之前的上下文信息 。GPT (Generative Pre-trained Transformer) 系列模型正是基于 CLM 算法而构建的。

算法原理

CLM 的核心思想是: 根据上文预测下一个词语 。 模型按照文本序列的顺序,逐词预测下一个可能出现的词语。

https://i-blog.csdnimg.cn/direct/45c334549c9f4b9887ed75ecc98b2856.png

具体步骤

  1. 序列输入 :将文本序列逐词输入到模型中 (例如,Transformer 解码器)。
  2. 单向预测 :模型在预测当前位置的词语时,只能利用到之前位置的词语信息,而不能看到之后位置的词语。这通过在模型结构中引入 Mask 机制来实现,防止模型“作弊”看到未来信息。
  3. 损失函数 :使用交叉熵损失函数,衡量模型预测的下一个词语概率分布与真实下一个词语之间的差异。模型训练的目标是最大化预测下一个词语的准确率。

示例

原始句子: “The quick brown fox jumps over the lazy dog.”

CLM 任务:

  1. 输入 “The”,预测 “quick”
  2. 输入 “The quick”,预测 “brown”
  3. 输入 “The quick brown”,预测 “fox”
  4. 输入 “The quick brown fox jumps over the lazy”,预测 “dog”

CLM 的特点

  1. 单向上下文理解 : CLM 只能学习到文本的单向上下文表示,即从左到右的依赖关系。
  2. 适用于解码器结构 : CLM 更适合用于训练解码器结构的模型 (例如,Transformer 解码器),因为解码器天然就是按照序列顺序逐词生成的。
  3. GPT 的核心 : CLM 是 GPT 模型的核心预训练任务,GPT 通过 CLM 任务学习到了强大的文本生成能力,并在文本生成、对话系统等领域表现出色。
  4. 生成能力 : CLM 由于其自回归的特性,天然适合用于文本生成任务。模型可以从一个起始词语开始,不断预测下一个词语,直到生成完整的文本序列。

4. Prefix Language Modeling (PLM) 与 Denoising Autoencoding (DAE) 算法

除了 MLM 和 CLM 之外,还有一些其他的自监督预训练算法,例如 Prefix Language Modeling (PLM) 和 Denoising Autoencoding (DAE)。

4.1 Prefix Language Modeling (PLM)

Prefix Language Modeling (PLM),中文译为 前缀语言模型 ,是一种 结合了 MLM 和 CLM 优点的预训练任务 。UniLM (Unified Language Model) 模型采用了 PLM 算法。

算法原理

PLM 的核心思想是: 将输入文本分为前缀 (prefix) 部分和补全 (completion) 部分 。 对于前缀部分,模型采用 双向编码 的方式进行处理;对于补全部分,模型采用 单向自回归 的方式进行生成。

https://i-blog.csdnimg.cn/direct/f8dd84f045e543a98eaeaa91363e87b9.png

具体步骤

  1. 文本分割 :将输入文本随机分割为前缀部分和补全部分。
  2. 前缀双向编码 :对于前缀部分,使用双向编码器 (例如,Transformer 编码器) 进行编码,学习前缀的双向上下文表示。
  3. 补全单向生成 :对于补全部分,使用单向解码器 (例如,Transformer 解码器) 进行生成,解码器在生成每个词语时,可以利用到前缀的双向上下文表示以及补全部分已生成的内容。
  4. 损失函数 :模型训练的目标是最大化补全部分文本序列的生成概率。

示例

原始句子 : “Summarize the article: Natural language processing is a subfield of artificial intelligence.”

分割 : 前缀: “Summarize the article: Natural language processing is a subfield of” 补全: “artificial intelligence.”

PLM 任务 : 模型需要根据前缀部分,自回归地生成补全部分 “artificial intelligence.”

PLM 的特点

  1. 兼顾编码和生成 : PLM 既可以学习到文本的双向上下文表示 (通过前缀部分的双向编码),又具备文本生成能力 (通过补全部分的单向生成)。
  2. 适用于多种任务 : PLM 预训练的模型可以应用于多种 NLP 任务,例如,自然语言理解 (NLU) 任务 (通过利用前缀部分的编码表示) 和自然语言生成 (NLG) 任务 (通过利用补全部分的生成能力)。
  3. UniLM 的核心 : PLM 是 UniLM 模型的核心预训练任务,UniLM 通过 PLM 任务实现了在 NLU 和 NLG 任务上的统一建模。

4.2 Denoising Autoencoding (DAE)

Denoising Autoencoding (DAE),中文译为 去噪自编码器 ,是一种 通用的自监督学习方法 ,不仅可以应用于文本,也可以应用于图像、音频等多种数据类型。T5 (Text-to-Text Transfer Transformer) 模型采用了 DAE 算法。

算法原理

DAE 的核心思想是: 对输入数据进行加噪处理,然后让模型学习恢复原始的干净数据 。 模型在去噪的过程中,学习到数据的鲁棒表示。

https://i-blog.csdnimg.cn/direct/baaf8ac0fbc7462e81f73663c00f4b86.png

具体步骤 (以文本为例):

  1. 数据加噪 :对于输入的文本序列,采用各种噪声操作进行破坏,例如:

  2. 随机掩码 (Masking) :类似于 MLM,随机遮蔽一部分词语。

  3. 词语删除 (Deletion) :随机删除一部分词语。

  4. 词语替换 (Replacement) :随机用其他词语替换一部分词语。

  5. 文本段乱序 (Permutation) :随机打乱文本段落的顺序。

  6. 模型重建 :将加噪后的文本输入到模型中 (例如,Transformer 编码器-解码器结构)。模型需要根据加噪后的文本,重建原始的干净文本。

  7. 损失函数 :使用交叉熵损失函数,衡量模型重建的文本与原始干净文本之间的差异。模型训练的目标是最小化这个损失函数。

https://i-blog.csdnimg.cn/direct/dd7813cfc2214d1d8be1a3dab9becaba.png

示例

原始句子 :“Natural language processing is a subfield of artificial intelligence.”

加噪后的句子 (随机掩码) :“Natural language processing is a [MASK] of artificial intelligence.”

DAE 任务 :模型需要根据加噪后的句子,重建原始句子 “Natural language processing is a subfield of artificial intelligence.”

DAE 的特点

  1. 通用性强 : DAE 可以应用于多种数据类型,只需要设计合适的噪声操作和重建目标即可。
  2. 鲁棒性学习 : DAE 迫使模型学习从噪声数据中恢复原始信息,从而增强模型的鲁棒性和泛化能力。
  3. T5 的核心 : DAE 是 T5 模型的核心预训练任务,T5 将各种 NLP 任务都统一建模为文本到文本的生成任务,并使用 DAE 进行预训练。

5 对比学习 (Contrastive Learning) 在文本表示学习中的应用

对比学习 (Contrastive Learning) 是近年来兴起的一种自监督学习方法,在图像、音频、文本等领域都取得了显著的成果。对比学习的核心思想是 通过区分相似和不相似的数据对,学习数据的表示。

https://i-blog.csdnimg.cn/direct/c8cd33c69e3c41b49497666513c54d24.png

算法原理

对比学习的目标是将相似的数据样本在表示空间中拉近,将不相似的数据样本在表示空间中推远。

具体步骤 (以文本表示学习为例)

  1. 正负样本构建 :对于每个样本 (锚点样本, anchor sample),构建正样本 (positive sample) 和负样本 (negative samples)。
    1. 正样本 :与锚点样本语义相似的样本。在文本表示学习中,通常可以使用数据增强技术 (例如,随机插入、删除、替换词语) 对锚点样本进行变换,生成正样本。
    2. 负样本 :与锚点样本语义不相似的样本。通常可以从同一批次 (batch) 的其他样本中选择负样本。
  2. 表示学习 :使用编码器 (例如,Transformer 编码器) 将锚点样本、正样本和负样本编码到表示空间中。
  3. 对比损失函数 :设计对比损失函数,例如 InfoNCE (Noise Contrastive Estimation) 损失函数。对比损失函数的目标是:
  4. 拉近正样本对 :使得锚点样本和正样本的表示在表示空间中尽可能接近。
  5. 推远负样本对 :使得锚点样本和负样本的表示在表示空间中尽可能远离。

示例 (SimCSE - Simple Contrastive Learning of Sentence Embeddings):

SimCSE 是一种简单的对比学习方法,用于学习句子表示。

  1. 正样本 :对于每个句子,使用 Dropout 机制进行两次编码,得到两个不同的句子表示,将这两个表示视为正样本对。
  2. 负样本 :同一批次 (batch) 中的其他句子作为负样本。
  3. 对比损失函数 :使用 InfoNCE 损失函数,训练模型拉近同一个句子的两个表示,推远不同句子的表示。

对比学习的特点

  1. 直接学习表示 : 对比学习直接学习数据的表示,而无需像 MLM 或 CLM 那样预测具体的词语。
  2. 有效性高 : 对比学习在文本表示学习任务中表现出色,能够学习到高质量的句子和文本表示。
  3. SimCSE 等模型的基石 : 对比学习是 SimCSE 等先进文本表示模型的核心技术。

总结

本章我们深入探讨了自监督预训练算法的核心原理,详细解析了自监督学习范式,以及 MLM、CLM、PLM、DAE 和对比学习等经典算法。这些算法各有特点,但都巧妙地利用无标签数据自身提供的监督信号,学习到了通用的数据表示,为后续的下游任务奠定了坚实的基础。在下一章,我们将继续深入探讨预训练模型的训练技巧和实践应用。

欢迎关注我的微信公众号 智语Bot ,与我互动交流,共同学习进步!

参考资料

BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding:

GPT-3: Language Models are Few-Shot Learners:

UniLM: Unified Language Model Pre-training for Natural Language Understanding and Generation:

Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer:

SimCSE: Simple Contrastive Learning of Sentence Embeddings: