聊一聊扩散模型在NLP领域应用

DayNightStudy

共 10798字,需浏览 22分钟

 ·

2024-07-23 07:00

扩散模型应用于NLP领域应用

    作者:StormBlafe
原文地址:https://zhuanlan.zhihu.com/p/706445533

来由

文本生成的任务核心在于依据给定的数据,创造出媲美人工撰写的流畅文本,这一领域在当今的实际应用中展现出蓬勃的活力与广泛的适用性。深度学习领域的翘楚——循环神经网络(RNN)与转换器(Transformer),以其卓越的序列处理能力,已然成为驾驭文本生成任务的中流砥柱。而近期,预训练语言模型(PLMs)的崛起,更是为文本生成的质量提升带来了质的飞跃。通过在海量语料上的预训练,这些模型能够高效地迁移到具体任务上,利用先前习得的知识优化任务表现,实现快速且精准的微调。

传统的文本生成策略多采用自回归(AR)模式,即逐一生成输出序列中的每个元素,确保序列内元素间的连贯性与依存关系。尽管这种方法能有效保证生成文本的逻辑性和一致性,但其在处理长文本时的计算复杂度和时间消耗不容小觑。鉴于此,非自回归(NAR)生成策略应运而生,其创新之处在于能够并行处理所有输出元素的生成,显著减少了推理过程中的延迟,为文本生成技术的高效与实时应用开辟了新的路径。


尽管非自回归模型在加速文本生成流程上表现出色,但相较于自回归模型,其在生成精确度上往往略逊一筹。这一局限性主要归咎于其并行生成机制,该机制在捕捉序列中token间细微而复杂的相互作用时存在天然短板。为弥合这一性能鸿沟,研究者们将目光转向了在图像生成领域大放异彩的扩散模型,并将其巧妙地融入非自回归文本生成的框架之中。

扩散模型的核心思想在于,通过一系列去噪步骤,逐步将无序的随机噪声转化为结构化的数据样本。当应用于非自回归文本生成场景下,这一模型能够基于初始输入,迭代式地优化中间生成结果,不仅有效应对了复杂约束条件下的文本生成挑战,还能产出品质卓越的最终文本。更值得一提的是,借助恰当的采样加速技术,扩散模型成功实现了对推理效率与生成文本质量的双重优化,为非自回归文本生成技术的实用性与效能性提供了有力保障,使其在追求速度与精度的平衡点上迈出了坚实一步。

在见证了扩散模型如何在图像合成与音频生成等领域绽放光彩后,自然语言处理(NLP)领域的研究者们萌生了将这一模型迁移至文本生成任务的想法。然而,文本数据本质上的离散特性与图像数据的连续分布形成了鲜明对比,这为直接套用扩散模型带来了不小的挑战。面对这一难题,学者们提出了两大策略以求破解:

首先,一种流行的做法是通过嵌入层这一桥梁,将原本离散的文本信息转换为连续向量表示,从而让扩散模型得以在一个熟悉的连续空间内运作,进而处理文本生成任务。这种方法使得模型能够在高维空间中捕捉词与词之间的语义关联,为生成连贯且有意义的文本奠定了基础。

其次,考虑到保留文本固有的离散性质的重要性,另一派研究者选择直面挑战,致力于将扩散模型的理论框架扩展至能直接处理离散数据的版本。这种策略不仅避免了连续表示可能带来的信息损失,还确保了生成文本的自然流畅与语法正确性,为NLP领域的扩散模型应用开辟了一条新路径。

两种方案各具特色,前者通过降维映射实现了模型的灵活应用,后者则坚守文本的本真形态,力图在保持语言特性的前提下提升生成效果。无论哪一种方法,都在推动着扩散模型在NLP领域的不断探索与创新。

在文本生成领域,扩散模型的运用借鉴了图像生成中的两种核心扩散机制——连续扩散与离散扩散。连续扩散模型在操作时,于一个连续的潜变量空间(latent space)中执行扩散流程,这种设置允许模型在生成过程中进行平滑的过渡和细腻的调整。相反,离散扩散模型则直接在文本的符号级别(token level)上实施扩散过程,保持了语言数据的离散性和固有结构。

然而,鉴于文本数据本质上的离散属性以及其深层语义的复杂性,要将扩散模型无缝应用到非自回归的文本生成场景中绝非易事。非自回归方法试图打破逐字生成的传统框架,转而追求一次性生成完整文本序列的高效途径,但这一转变对模型提出了更高的要求,特别是要处理好词汇选择与语境关联的微妙平衡。

为应对这一挑战,当前的研究工作在扩散模型的原有架构上进行了多项创新,旨在提升其在文本生成任务中的表现力和实用性。具体而言,这些革新举措主要聚焦于以下几个方面:

  1. 训练目标的精调:为了使扩散模型更加贴合文本生成的特性,研究者对模型的训练目标进行了细致的调整。通过引入或优化损失函数,确保模型在学习过程中能更准确地捕捉文本的统计规律和语义连贯性,进而生成自然流畅且含义丰富的文本内容。

  2. 量身定做的噪声计划(Noise Schedule):噪声计划是扩散模型的关键环节,决定着模型如何逐步向输入添加噪声并最终将其去除,以恢复原始信号。考虑到文本的独特性,研究者开发了专为文本数据设计的噪声调度策略,这种策略能够更精细地控制噪声的添加与去除过程,保证在生成文本时既能保留信息的完整性,又能兼顾语义的准确性。

  3. 预训练语言模型的整合:利用预训练语言模型(如BERT、GPT系列)在语言理解与生成上的卓越能力,研究者尝试将这些模型与扩散模型进行深度融合。通过在扩散模型的训练和生成阶段嵌入预训练模型的预测结果,能够显著增强扩散模型的语言表达能力和语境适应性,从而产出质量更高、更符合人类语言习惯的生成文本。

总而言之,尽管将扩散模型应用于非自回归文本生成面临一系列技术难题,但通过上述策略的不断探索与实践,研究者正在逐步克服这些障碍,推动该领域向着更加成熟和实用的方向迈进。

文本扩散模型

文本扩散模型基于输入数据逐渐将一个随机噪声复原为期望的文本。开始时的噪声可以是离散(如[MASK] tokens)或连续(随机高斯噪声)的,分别对应离散和连续的文本扩散模型。去噪过程依赖于一个参数化去噪网络,大多基于transformer架构。在训练阶段,去噪网络基于设定好的noise schedule,目标函数和conditioning strategy恢复被打乱的中间结果。在推理阶段,去噪网络从一个随机噪声 开始,逐步将其去噪为目标文本。值得注意的是,文本扩散模型在推理阶段的每一步中都用NAR的方式并行预测隐变量。

针对文本数据的扩散模型

由于文本数据的离散特质,将扩散模型应用于非自回归文本生成并非易事。具体来说,离散的token不能直接被连续的噪声打乱,因此我们需要对经典的扩散模型做出改进以让其适用于文本数据。最近文本扩散模型领域的进展。已有工作可分为两派,一派在离散的token层面进行扩散,另一派在token的隐表示层面进行连续扩散。


扩散过程中的关键设计


去噪网络及其相关设置(例如noise schedule, 目标函数以及conditioning strategy)是文本扩散模型的核心组成部分,对生成质量有重要影响。

1、去噪网络

去噪网络在逆向过程中从中间生成结果中移除噪声。和使用U-Net的视觉扩散模型不同,文本扩散模型通常采用transformer作为去噪网络,从而更好地捕获token之间的依赖关系。

  • Transformer

近年来,transformer成为了自然语言处理领域的主流架构。Transformer是一个由多个transformer层组成的encoder-decoder网络,每个transformer层都包含数个前馈网络和多头自注意力函数 :其中 是输入序列,并被不同的权重矩阵分别映射为 , , , 表示向量维度。由于transformer在文本生成领域的强劲表现,大多数文本扩散模型将transformer的encoder或整体用作去噪网络。一些工作进一步使用了基于transformer的预训练语言模型,如BERT或RoBERTa。

2、Noise Schedule

Noise schedule 是噪声规模和时间步之间的函数,控制了去噪网络的不同输入数据的出现频率。在训练阶段,原始文本被噪声 打乱,其中 是随机采样的时间步。Noise schedule影响着恢复目标文本的去噪过程,从而对生成质量有重要影响。一些已有方法沿用视觉任务中的常用noise schedule,另一些则针对文本数据的离散特征设计了新的noise schedule。

  • Linear Schedule

DDPM提出了linear schedule, 在 到 的范围内线性变化。这样的noise schedule使得噪声规模在刚开始时相对较小,去噪网络可以更容易恢复数据,而随着噪声规模的逐渐增加原始数据最终会被完全打乱为噪声。Difformer[8]和LD4LG[9]在文本扩散模型中也使用了相同的noise schedule。

  • Cosine Schedule

[10]中提出linear schedule中噪声规模的增长速度过快,使得最后一部分的隐变量都几乎被完全打乱。因此他们提出了cosine schedule,其定义 , 其中 。Cosine schedule放缓了噪声规模的增长速度,也被SED[11]和SSD-LM用于文本生成。

  • Mutual Information Schedule

D3PM为离散扩散过程设计了mutual information schedule,对原始数据和隐变量之间的互信息进行线性插值。对于包括吸收状态的离散扩散模型,该schedule会退化为 。

  • Sqrt Schedule

Diffusion-LM观察到经过打乱后,单词在embedding空间中的最近邻往往保持不变,并将这种现象归因为传统的noise schedule的初始噪声规模过小,不足以打乱文本数据。因此作者提出了sqrt schedule,其定义 ,噪声的初始规模更大并且增长速度更快,同时增长速度也会随时间逐渐下降避免过度打乱数据。Diffuseq[12]也使用了该noise schedule。

  • Spindle Schedule

非自回归生成中的easy-first policy认为常见的单词应该较早被生成出来以作为后续更少见的单词生成时的上下文。因此DiffusionBERT[13]提出了spindle schedule,对于包含信息量更多的单词赋予更高被打乱的概率。从而较少见的单词会在前向过程的开始阶段被替换为[MASK]并在去噪阶段的结尾被恢复。

  • Adaptive Schedule

SeqDiffuSeq[14]认为预测 的难度应该随时间步的增加而线性增长。为此,作者设计了adaptive schedule,其从一个已有noise schedule中学习噪声规模和loss之间的关系,之后在训练过程中根据得到的loss更新噪声规模。

3、目标函数

作为另一个关键部分,去噪网络的目标函数也需要改进以适应文本生成任务。例如原来通过 参数化的loss可能不是预测word embedding任务的最优选择,而连续文本扩散模型中新增的额外embedding和rounding步骤同样需要额外的loss项。进一步的重参数化也可以简化loss的形式。

  • parameterized Loss

如公式(5)所述,经典扩散模型的训练目标可被简化为预测后验分布 的均值 。而Diffusion-LM发现该训练目标可能导致模型对 的预测不能收敛到任何word embedding上。作者认为这是因为以预测 为目标的去噪网络缺少对 的约束信息。因此作者提出用 参数化训练目标,该目标可写作

其中 是去噪网络。这样,去噪网络在不同时间步的预测目标被统一为原始输入 。这种loss形式也被后续文本扩散模型的工作广泛采用。

  • Auxiliary Loss

由于连续文本扩散模型在推理阶段需要将embedding映射为word token,Diffusion-LM在目标函数中引入了一项新的loss 来更好地学习映射关系,其中 是词表上的softmax分布。该训练目标共同训练了扩散过程和embedding过程,但可能学习到一个简单解,即学习到的embedding彼此之间距离都很近,构成一个各向同性的embedding空间。另外,由于 是在 的基础上添加了少量噪声得到的,因此对 的预测较为容易,从而不能对模型的训练提供足够的指导信息。因此,Difformer提出用 来替代 ,其中 表示模型对 的预测。和 之间的距离较远,使得该loss可以对embedding产生足够的约束。

  • Surrogate Loss

RDM[15]提出对离散扩散模型的去噪过程进行重参数化。作者引入了一个step-wise rounting indicator ,其中 选择被打乱的token进行还原, 选择经过去噪的token进行打乱。经过这种参数化后,这样RDM的训练目标可以被替代为一个多分类的交叉熵loss。

4、Conditioning Strategy

通过设定不同的条件 ,文本生成任务可以被进一步分类为unconditional generation,attribute-to-text generation (如属性控制),text-to-text generation (如机器翻译)。已有的文本扩散模型设计了不同的conditioning strategies将不同的条件 和去噪网络相结合。本章中我们将讨论这些conditioning strategies。

  • Unconditional Generation

当 为空时,任务变为无条件文本生成,文本扩散模型通过逆向过程不受约束地将随机噪声转变为文本序列。SED和DiffusionBERT遵循这种任务设置来评测文本扩散模型的基本生成能力。

  • Attribute-to-text Generation

当 被设置为主题或情感等属性,任务变为attribute-to-text generation。Classifier-guidance是处理这类任务的经典方法,其使用一个训练好的属性分类器在生成过程中提供梯度信息作为指导。Diffusion-LM关注细粒度的控制条件,例如语义内容或语法结构。和plug-and-play方法类似,Diffusion-LM没有直接将条件整合进去噪网络,而是利用额外的分类器在推理阶段指导生成结果。和分类器引导的视觉扩散模型[16]类似,Diffusion-LM在推理阶段会利用分类器的梯度信息更新中间结果,(3)中的逆向过程被修改为:其中 是分类器提供的梯度, 是控制梯度大小的参数。

Classifier-free是另一种处理该任务的方法,通常显式地将条件整合进去噪网络中。LD4LG使用类别embedding作为条件,通过cross-attention机制和隐变量被整合到去噪网络中。相似地,SED在训练过程中也将条件映射为embedding,但通过self-conditioning机制将其和隐变量结合。

  • Text-to-text Generation

当 被设置为文本序列或文章时,任务变为text-to-text generation,例如机器翻译和文本摘要。这类任务相较于attribute-to-text任务普遍更具挑战性,因为他们难以被简单的属性分类器控制。因此classifier-gudiance方法不再适用。Diffuseq提出了partially noising策略将条件文本整合进连续的扩散过程中。具体而言,去噪网络的输入是目标文本和条件文本的拼接。在前向过程中,拼接起来的序列被部分打乱,噪声只添加到目标文本的部分,而条件文本保持不变。逆向过程从条件文本和随机噪声的拼接开始,整个过程中条件文本依旧保持不变,随机噪声被逐渐还原。Difformer和SeqDiffuSeq将完整的transformer作为去噪网络。Encoder负责生成条件文本的embedding表示,Decoder将被打乱的文本的embedding和条件文本的embedding通过cross-attention结合,进而预测打乱前的文本。

5、预训练语言模型的使用

由于预训练语言模型(PLMs)在文本生成任务上的出色表现,我们可以将它们整合到文本扩散模型中以提高生成质量。本章中我们将介绍这方面的已有工作。

  • PLMs as Denoising Networks

离散文本扩散模型的去噪网络尝试还原被[MASK]打乱的文本序列,而这一目标和已有PLMs的预训练任务非常类似,例如BERT中的Masked Language Model。因此离散文本扩散模型和PLMs的结合有很好的前景。DiffusionBERT使用预训练好的BERT作为去噪网络。不过原始的去噪网络在预测时会依赖时间步信息,而PLMs在预训练时没有遇到过这类信息。因此DiffusionBERT引入了time-agnostic decoding,在预测时不显式地提供时间步信息,而是让模型自己根据被打乱的token数量自行推测。连续文本扩散模型也可以使用PLMs, SSD-LM使用了一个预训练好的RoBERTa作为去噪网络来加快收敛速度。

  • Diffusion on PLM’s Latent Space

Latent diffusion models[17]在预训练好的图像编码器的隐空间中进行扩散过程,并在文本指导图像生成的任务上取得了较好效果。相似的方法也被用于文本扩散模型中。LD4LG在预训练好的BART的隐空间中训练文本扩散模型。在训练阶段,BART的encoder将文本转换为embedding,之后沿用连续扩散过程将其打乱并复原。在推理阶段,去噪网络从随机噪声中恢复embedding,之后通过BART的decoder将其解码为文本。LatentOps使用一个预训练好的GPT-2将ODE sampler采样的隐变量映射回离散的文本。Difformer用预训练好的BERT的embedding进行初始化。

  • Revising Pre-training Tasks of PLMs

尽管PLMs可以提供高效初始化文本扩散模型并加快收敛,但由于二者训练目标上的不一致,PLMs的隐空间可能并不适合扩散模型。因此一些工作重新设计了预训练任务并提出了基于文本扩散模型的预训练模型。GENIE[18]设计了新的预训练任务continuous paragraph denoising (CPD) 并重新预训练了一个文本扩散模型。给定一个document ,CPD 从中选择一个段落 并用[MASK]进行替换得到 ,之后将其送入encoder,将结果作为上下文表示。之后 通过扩散过程被打乱,并和此前得到的上下文表示一起送入去噪网络预测扩散过程中添加的噪声。

6、针对文本数据的优化

在上述方法之外,已有工作还提出了许多别的技巧用于提升文本扩散模型的生成质量,它们中有一些为文本数据的独有特征而设计,另一些借鉴了其他领域扩散模型使用的方法。本章我们将介绍这些方法。

  • Clamping Trick

推理阶段中,在将去噪网络的预测结果用于下一步预测之前,Diffusion-LM将预测结果替换为和它距离最近的word embedding。这使得预测结果集中在词表中的单词周围,降低了rounding过程的loss。但是这种做法需要计算所有word embedding和预测结果之间的距离,因此在推理阶段的每一步都使用这种方法会非常耗时。因此GENIE只在推理阶段的最后一步使用该方法。

  • Self-conditioning

在标准扩散模型的逆向过程中,去噪网络基于当前的隐变量 和 做出预测。Analog Bits[19]提出可以将上一步对 的预测 也作为去噪网络的输入。然而在训练过程中,我们无法像在推理过程中自然的得到上一个时间步的预测结果。因此Analog Bits用 作为对 的近似,并将其用到50%需要进行self-conditioning的训练数据上,对于剩下的训练数据 被设为0。实验表明self-conditioning可以显著提升生成质量,并也被用于文本扩散模型中。LD4LG引入了一个cross-attention层来实现self-conditioning。在训练阶段,该层根据当前样本是否需要self-conditioning,分别结合一个 的映射或者一个可学习的embedding 。

  • Semi-NAR Generation

SSD-LM引入了半非自回归的生成策略,迭代地生成一个大小为B的token block,每次生成的输入都是之前生成的block和一个随机噪声的拼接。新生成的block也会和此前的block拼接起来作为新的context。上述生成过程会重复至生成的文本达到想要的长度。这样的生成策略弥补了文本扩散模型的非自回归生成方式中缺少依赖的问题。

  • Additional Normalization

Difformer观察到少见的token往往比常见的token拥有更大的范数,但已有的文本扩散模型对不同token添加的噪声规模是相同的。因此少见的token需要更多的扩散步骤才能被完全打乱。因此Difformer引入了一个layer normalization模块将word embedding的大小约束到相同的水平。

  • Timestep Sampling

在训练过程中,大多数已有工作随机采样时间步并用对应的噪声来打乱原始数据。不过[10]中提出均匀采样时间步会导致训练loss中出现噪声,并提出了重要性采样:这种采样方式对loss较大的时间步分配较高的权重,能够稳定训练过程。

结论和展望

本文概述了最近文本扩散模型领域的研究进展。我们总结了离散和连续的文本扩散模型,并讨论了扩散过程中的关键设计。我们还总结了预训练语言模型在文本扩散模型中的使用并介绍了其他针对文本数据的优化技巧。为了进一步促进该领域的发展,我们总结了以下几点文本扩散模型的未来发展方向。

Customized Noise Schedules

已有的文本扩散模型中的noise schedule大部分源自图像生成任务,在前向和去噪过程中平等对待所有的token。因此它们会忽视token在重要性和出现频率上的差异,导致对关键词或罕见词的生成不够准确等问题。DiffusionBERT中的spindle schedule对信息量更高的单词赋予了更高的权重并带来了明显的性能提升。针对文本数据并且任务相关的noise schedule需要进一步的研究。

Efficient and Effective Way to Use PLMs

尽管已有工作已经成功将PLMs应用于文本扩散模型,它们仍然难以超越原始PLMs的微调结果。原因在于这些PLMs在预训练时主要遵循sequence-to-sequence或自回归的方式,而没有考虑到扩散过程。这同样引出了另一个问题,即已有工作往往需要更多的训练步数才能将PLMs和扩散过程较好地结合。因此,如何将PLMs高效地和扩散模型相结合并且有效地在扩散过程中利用它们学习到的知识值得进一步探索。

Unified Multimodal Diffusion Models

扩散模型在文本生成图像任务上取得了显著进展,一些工作也探索了它们在image captioning等图像生成文本任务上的应用。实际上,这两类工作往往使用了相似的扩散机制和设置,只是在数据格式上有所不同。因此,如果能统一文本和图像数据的建模方式,扩散模型有希望统一图像生成文本以及文本生成图像任务的语义空间,从而成为一个统一的多模态生成模型。

Alignment with Human Values

虽然扩散模型拥有富有多样性的生成能力,它们也可能生成违背人类价值观的内容,例如种族或性别偏见。如果结合了PLMs,该问题可能会更加严重,因为已有的PLMs是在从互联网上收集的大规模语料上进行预训练的,其可能包含敏感的个人信息或带有冒犯性的句子。考虑到文本扩散模型对中间结果强大的控制能力,如何避免文本扩散模型生成上述负面内容或对生成结果进行去毒值得关注。


浏览 50
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报