文本生成是 NLP 中最重要且颇具挑战性的任务之一。近年来,预训练语言模型 (Pretrained Language Models ,下文简称 “PLM”) 的范式,极大地推动了该领域的发展。例如,我们曾介绍过 AI 在古诗生成上的突破《清华团队最新成果:可致特朗普能咏比特币,AI 写古诗 “更上一层楼”》。
最近,一项由中国人民大学团队完成的预印本论文 Pretrained Language Models for Text Generation: A Survey,概述了在用于文本生成的 PLM 主题中取得的主要进展,旨在为文本生成研究人员提供相关研究的综述与指导。
Transformer 与 PLM 的兴起
文本生成,旨在将输入数据(例如,序列和关键字)以人类语言模式生成合理且可读的文本。
PLM 的思路,则是首先在大规模语料库中预训练模型,然后在各种下游任务中对这些模型进行微调,以达到最先进的结果。
PLM 可以从语料库中编码大量语言知识,并促使生成语言的通用表示。因此,PLM 通常有利于下游任务,并且可以避免从头开始训练新模型。
此外,随着算力的增强和 Transformer 架构的出现,PLM 由浅入深,在许多任务中取得了出色的性能,例如 BERT 和 GPT。因此,研究人员提出了各种方法来解决基于 PLM 的文本生成任务。
文本生成的核心是生成一系列离散标记序列 y=〈y1, . . . , yj, . . . , yn〉,其中每个 yj 是从单词词汇表 V 中提取的。在大多数情况下,文本生成以输入数据为条件,例如属性、文本和结构化数据,记为 。形式上,文本生成任务可以描述为:
| |
| 无条件文本生成(Unconditional text generation) |
离散属性(Discrete attributes) | 主题到文本的生成(Topic-to-text generation) |
基于属性的文本生成(Attribute-based generation) |
| 数据到文本的生成(Data-to-text generatio) |
| |
|
| 机器翻译(Machine translation) |
|
|
PLM 使用大量未标记的文本数据进行预训练,并且可以在下游生成任务上进行微调。在大规模语料库上预训练的 PLM 将海量的语言和世界知识编码为大量参数,可以增强对语言的理解并提高生成质量。预训练的思想受到人类思维的启发,比如人类会转移和重用过去所学的旧知识,以理解新知识并处理各种新任务。受此启发,PLM 可以利用旧经验和知识成功地执行新任务。由于 Transformer 取得的巨大成就,几乎所有的 PLM 都采用了 Transformer 的骨干网络。对于文本生成任务,一些 PLM 使用遵循基本编码器 - 解码器框架的标准 Transformer 架构,而其他 PLM 使用仅解码器的 Transformer。从输入来看,文本生成可以分为三种主要输入,即非结构化输入、结构化输入和多媒体输入。PLM 将对这些输入数据进行建模。在 NLP 研究中,大多数研究侧重于对非结构化文本输入(例如,句子、段落和文档)进行建模。要生成令人满意的输出文本,需要具备出色语言理解能力,即超越输入文本中单个单词表面含义。在某些情况下,输入文本可能是由多个句子和段落组成的长文档。对于受句子或短段落约束的 PLM,它们不太能够准确地对文档中的长期依赖项进行建模。考虑到这一挑战,分层 BERT 被提出用来学习具有自注意力的句子之间的交互以进行文档编码。此外,为了捕获句间关系,DiscoBERT 在 BERT 之上堆叠图卷积网络 (GCN) 以对结构性话语图进行建模。通过直接对话语单元进行操作,DiscoBERT 保留了包含更多概念或上下文的能力,从而产生更简洁和信息量更大的输出文本。
该研究观察到大多数最新的 PLM 都是针对英文文本进行预训练的。然而,许多多语言生成任务(例如机器翻译)涉及多种语言,某些语言资源不足,这一挑战阻碍了单语 PLM 在多语文本生成任务中的广泛应用。因此,Conneau 等人提出学习跨语言模型(XLMs)以进行多语言理解。基于跨语言 PLM,文本生成模型即使在资源匮乏的语言中仍可获得有效的输入词嵌入。结构化数据(例如图形和表格)也是许多实际应用(例如天气报告生成)中文本生成的关键输入类型。然而,在现实世界的场景中,很难收集大量带有真实文本的标记结构化数据进行训练。由于在大规模语料库上进行了预训练,PLM 编码了大量的语言知识,并在许多任务中表现出出色的小样本能力。在将 PLM 应用于结构化数据时,一个主要挑战是如何将结构化数据输入到 PLM 中,PLM 最初是为序列文本设计的。为了适应 PLM 的顺序性质,Ribeiro 等人将输入知识图(KG)和抽象意义表示(AMR)图线性化为三元组序列,Li 等人引入了一个额外的图编码器来对输入 KG 进行编码,Gogo 采用基于模板的方法将输入表序列化为文本序列。例如,属性 - 值对 “name: jackreynolds” 将被序列化为句子 “name is jackreynolds”。然而,直接线性化会丢失原始数据的结构信息,这可能导致生成关于数据的不忠实原文本。因此,为了生成忠实文本,Gong 等人提出了一个辅助重建任务来恢复输入数据的结构信息,这可以增强建模结构信息的能力。通常,输出文本应尽可能多地保留结构化数据中的重要信息。因此,为了生成符合输入的高保真文本,采用指针生成器机制从输入知识数据中复制单词。通过将 PLM 以外部知识为基础,很可能赋予生成模型兼具丰富的知识和良好的泛化能力。除了上述文本数据之外,还进行了一些尝试将多媒体数据(例如图像、视频和语音)作为输入,例如图像、视频文本描述和语音识别等。VideoBERT 和 CBT 都对视频文本描述任务进行了预训练。然而,它们仅对基于 BERT 的编码器进行了预训练,以学习视觉和语言标记序列的双向联合分布。所以必须再训练一个单独的视频到文本解码器,但这往往会导致预训练 - 微调的差异。相比之下,Unified VLP 使用共享的多层 Trans-former 网络进行编码和解码。受 GPT 中生成预训练目标的启发,跨模态预训练模型(XGPT)被提出,以图像为输入,在预训练阶段使用图像标题任务作为基本生成任务。除了图像和视频,语音识别还需要人工转录的监督数据。因此,开发了许多无监督和半监督方法来集成 PLM 以进行弱监督学习。例如,还有团队提出了一种无监督的方法来预训练编码器 - 解码器模型,其中包含不成对的语音和书面文本。两个预训练阶段用于分别提取带有语音和书面文本的声学和语言信息,这对于下游的语音识别任务很有用。在不同的文本生成任务中,生成的文本应该满足几个关键属性,即相关性、忠于原文和顺序一致。根据语言学文献,在文本生成中,相关性是指输出文本中的主题与输入文本高度相关。一个代表性的例子是对话系统的任务,它需要生成的响应与输入对话历史相关。除了对话历史之外,还可以提供与响应类型相对应的条件作为外部输入,例如响应的主题和说话者的角色。生成的响应也应该与条件相关。同样,忠于原文也是文本生成的一个关键指标,它要求生成文本中的内容不应与输入文本中的事实相矛盾。有时,它进一步意味着生成的文本符合世界事实。一个代表性的例子是文本摘要任务,其目的是生成代表原始内容中最重要信息的忠实文本。在大量文本集合上进行预训练,PLM 可能有利于利用背景知识生成忠实的文本。另外,在 NLP 领域,顺序保持表示输入和输出文本中语义单元(词、短语等)的顺序是一致的。最有代表性的例子是机器翻译任务。从源语言翻译成目标语言时,保持源语言和目标语言的短语顺序一致,会在一定程度上保证翻译结果的准确性。对于使用 PLM 生成文本,一个关键因素是如何设计合适的微调策略。在这一部分,该研究从数据、任务和模型 3 大角度回顾了几种常用的微调策略。在将 PLMs 应用于文本生成任务尤其是在新领域的文本生成任务时,如何设计适合新领域特点的合适有效的微调策略是一个重要的考虑因素。小样本学习:通常采用的方法是使用预训练参数插入现有模块。然后该研究用几个、一个甚至没有研究任务的例子对它进行微调,分别是所谓的少样本、单样本和零样本。例如在多语言翻译中,一些低资源语言缺乏足够的平行语料库。XLM 提出学习跨语言模型,可以将在高资源语言中学到的知识用于低资源语言。使用第 4 节中提出的方法,小样本学习也可以应用于数据到文本的任务。领域转移:在微调目标任务之前,继续在具有预训练目标的特定数据上训练 PLM。掩码预测是一种广泛使用的方法,试图使用剩余的令牌来预测被掩码的令牌。领域转移中存在多种掩蔽方式的变体。除了新领域的特征外,在微调 PLM 时考虑特定生成任务中的语言连贯性和文本保真度等特殊问题也很有意义。增强连贯性:为了增强语言连贯性,一个重要的方法是在微调期间更好地建模语言上下文。通过对比学习微调的模型擅长区分句子对是否相似。通过这种方法,PLM 被迫理解两个句子之间的位置或语义关系,从而获得更好的表示。下一句预测(NSP)是判断两个输入句子是否为连续句段的常用方法,可应用于摘要和对话系统。去噪自动编码 (DAE) 将损坏的文本作为输入,旨在恢复原始文本。使用 DAE 微调的模型具有很强的理解整体句子和捕获更远距离相关性的能力。保真度:文本保真度是指生成的文本如何与原始输入信息保持一致,这是许多文本生成任务中需要考虑的一个重要方面。PLMs 中的通用结构无法在特定文本生成任务中保留文本保真度。对于表到文本生成任务,需要对表的结构信息进行编码。 | | |
| | BERT 充当文本编码器;用于文档建模的分层;以及用于多语言输入文本的跨语言 PLM。 |
| 将 KG 和 AMR 图线性化为三重序列;用于编码 KG 的图编码器;以及将表序列化为基于模板的文本序列。 |
| |
| | 微调对话系统中的 PLM 以生成更相关和上下文相关的响应;以及基于 BERT 推广到任何类型的输入条件。 |
| 使用多个 PLM 提高忠实度;从输入中检索相关部分并结合 PLM 的先验知识;以及通过主题建模损失在不同目标域中生成忠实文本。 |
| |
为了提高生成文本的质量,关键是根据特定任务的数据很好地训练 PLMs 的参数,以便 PLMs 可以捕获专门针对生成任务的语义特征。然而,如上所述,特定于任务的数据不足,因此在对有限数据进行微调时很可能会出现过拟合的情况。这一部分将介绍几种针对模型的微调方法。首先是使用固定的教师 GPT 来保存在另一个微调 GPT 中编码的知识。包括利用 BERT 模型(教师)作为监督来指导 Seq2Seq 模型(学生)以获得更好的生成性能。此外,还可以利用两个优化器分别更新 PLM 和初始模块的参数,以解决两个模块之间的差异。还有其他方法可以指导微调过程。例如,强化学习可用于通过不可微的度量直接指导模型,例如 ROUGE。本文概述了用于文本生成的预训练语言模型的最新进展。为了推进这一领域,将 PLM 应用于文本生成有几个有希望的未来方向。这个方向的必要性在于,预训练和下游生成任务之间仍然存在差异。因此,为文本生成设计合适的预训练范式仍十分必要。此外,在预训练期间将外部知识纳入 PLM 已被证明是有效的,研究如何为文本生成注入更多的相关知识是一个重要趋势。使用 PLM 生成可控文本是一个有趣的方向,但仍处于早期的阶段。控制生成文本的某些属性有许多有用的应用,例如在对话系统中对抑郁症患者产生积极响应。然而,PLM 通常在通用语料库中进行预训练,难以控制生成文本的多粒度属性(例如,情感、主题和连贯性)。同时,这些控制代码是预设的和粗粒度的。未来的工作可以探索多粒度控制并开发足够可控的 PLM。尽管具有大规模参数的 PLM 在文本生成方面取得了成功,但这些模型在资源受限的环境中部署具有挑战性。因此,研究如何以少量参数实现竞争性能是有意义的。预训练的直接目的是将 PLM 中学到的语言知识提炼到下游生成任务中。并且,微调是目前主要的传输方法。可以通过多种方式将知识从 PLM 转移到下游模型。如今,几乎所有用于文本生成的 PLM 都主要基于英语。这些 PLM 在处理非英语生成任务时会遇到挑战。因此,与语言无关的 PLM 值得研究,它需要捕获跨不同语言的通用语言和语义特征。目前,PLM 是在从网络爬取的大规模语料库上进行预训练的,没有进行细粒度过滤,可能会导致道德问题,例如生成有关用户的私人内容。因此,研究人员应尽最大努力防止滥用 PLM。此外,PLM 生成的文本可能存在偏见,这与训练数据在性别、种族和宗教维度上的偏见一致。因此,该研究应该干预 PLM 以防止此类偏差。https://arxiv.org/pdf/2105.10311v2.pdf本站qq群851320808,加入微信群请扫码: