【论文阅读笔记1】:Pre-trained Language Models for Text Generation: A Survey

前言

博客得主要目的是记录自己的学习收获,排版、行文都会比较随意,内容也主要以自己能理解的方式描述,还希望各位看客见谅。

本文为中国人民大学发表在IJCAI2021上的预训练语言模型文本生成综述论文。我目前的想法是重点关注文章的结构,再具体补充其中的内容。

论文链接:https://arxiv.org/abs/2105.10311


目录

前言

​编辑

引言

一、INTRODUCTION

二、PRELIMINARY

2.1 文本生成

2.2 预训练模型

2.3 基于预训练的文本生成方法

三、ENCODING INPUT REPRESENTATIONS

3.1 非结构化输入

3.1.1 段落级表示学习

3.1.2 文章级表示学习

3.1.3 多语言表示学习

3.2 结构化输入

3.3 多模态输入

四、DESIGNING PLMS FOR TEXT GENERATION

4.1 标准结构

4.1.1 Masked Language Models

4.1.2 Causal Language Models

4.1.3 Prefix Language Models

4.1.4 Encoder-Decoder Language Models

4.2 结构改进方法

4.2.1 扩展输入embedding

4.2.2 改进注意力机制

五、 OPTIMIZING PLMS FOR TEXT GENERATION


【论文阅读笔记1】:Pre-trained Language Models for Text Generation: A Survey_第1张图片

引言

一、INTRODUCTION

p1:文本生成的简单介绍——文本生成的目标是生成通顺可读的自然语言。文本生成技巧可以广泛应用于对话系统、机器翻译和摘要生成任务中。

p2-p4:文本生成的研究历史

  • p2:基于统计的方法——>面临 data sparsity的问题,需要smoothing
  • p3:基于深度学习的方法——>从seq2seq到attention和copy机制——>面临数据不够多,容易过拟合的问题
  • p4:基于PLM的方法——>好,所以我们关注

p5:本文与其他文本生成综述论文的区别——大部分综述是以任务的视角去描述文本综述的,如对话生成,摘要生成等。本文将更多从文本生成本身这个角度阐述。

p6:文章结构阐述


二、PRELIMINARY

2.1 文本生成

介绍了文本生成的定义。y=f_{\mathcal{M}}(x, \mathbb{P}),通过输入x的不同对文本生成进行分类。

2.2 预训练模型

2.3 基于预训练的文本生成方法

本文认为,如果希望利用预训练语言模型实现文本生成,需要重点考虑三个问题,这三个问题分别从输入数据模型结构优化方法的角度进行阐述。这三个问题分别是:

  • How to encode the input into a representation preserving the input semantics that can be fused into the PLM ? 
  • How to design an effective PLM M to serve as the generation function f_{\mathcal{M}} and adapt to various text generation tasks? 
  • How to optimize the text generation function (i.e., PLMs) f_{\mathcal{M}} given the reference text and ensure that the generated text satisfies special text properties \mathbb{P}?

三、ENCODING INPUT REPRESENTATIONS

通过三种不同的输入:非结构化输入、结构化输入和多模态输入描述预训练模型输入数据的问题

【论文阅读笔记1】:Pre-trained Language Models for Text Generation: A Survey_第2张图片

3.1 非结构化输入

3.1.1 段落级表示学习

目的是同时学习到低级别的word meaning和高级别的topic sematics。主要通过hierarchy-based或者graph-based方法学习段落表示。

  • hierarchy-based:对于一个包含多语句的段落输入,如多轮对话,直接的进行拼接难以捕捉语句之间的语义联系。因此,使用hierarchical编码器学习输入段落。
  • graph-based:一个长段一般会包含一些冗余的、重复的信息。如果能把关键的语义信息提取出来,去除冗余信息可以很好地捕捉段落语义。相比于序列,图可以更好地表示这层关系。

3.1.2 文章级表示学习

输入是包含多个段的文章。

  • 对句子间的关系进行建模。
  • 保留重点语义信息,去冗余信息。
  • 提高表示学习的效率

3.1.3 多语言表示学习

分为Cross-lingual(两种语言)和Multi-lingual(多语言)注:不知道为什么写这一段,不应该放在3.3吗。

3.2 结构化输入

结构化输入是我比较关注的。结构化输入目前面临以下三个挑战。注:这三个点基本跟TableGPT里总结的是一样的,在我看来主要就是两点:一是plm是序列输入训练的,所以有语义鸿沟;二是需要保留结构信息。

  1. There exists a semantic gap between structured data and PLMs, since PLMs are typically pre-trained on natural language texts;
  2. It is non-trivial to encode the structural information in the input data;
  3. It requires to maintain fidelity of the generated text with respect to the input.

之后文章根据各点都撰写了解决方式,有重复,我这里总结为以下几点:

  1. 把结构化输入转化为序列化输入:通过模板的方式或者直接添加结构信息。
  2. 对齐结构化输入和序列化输入的表示:例如最小化结构化输入gnn和plm encoder的语义距离。
  3. 增加结构化encoder模块
  4. 使用copy机制

3.3 多模态输入

本人的研究方向不涉及这个,不总结了...


四、DESIGNING PLMS FOR TEXT GENERATION

4.1 标准结构

现有的机构包含单独使用transformer的编码器或者解码器,或者使用基于transformer的编码器-解码器结构,文章将这种标准结构分为四个变体:masked LMs, causal LMs, prefix LMs和seperate encoder-decoder结构。

4.1.1 Masked Language Models

类似transformer的编码器,如BERT。然而,这类模型由于与训练任务和文本生成之间的差异性,一般不适用于文本生成任务。一般作为文本生成的编码器存在。

4.1.2 Causal Language Models

类似transformer的解码器,如GPT系列。这类模型的缺点在于忽视了输入端的双向信息,而且不适用于seq2seq式的生成任务。

4.1.3 Prefix Language Models

输入双向,自回归式输出的单个Transformer。UniLM是第一个PrefixLM模型。然而与encoder-decoder相比,还是encoder-decoder的效果好一些。

4.1.4 Encoder-Decoder Language Models

标准的transformer架构

4.2 结构改进方法

有些工作是通过改进transoformer的结构去提高文本生成效果的。这种改进主要可以分为两类:

4.2.1 扩展输入embedding

文章主要标注了两种方法,一种是对position embedding进行改进,比如从绝对位置编码到相对位置编码,甚至表示句子和句子间的位置编码。第二种是增加辅助embedding,例如在多模态下增加语音embedding等。

4.2.2 改进注意力机制

1、为了适应长文本输入和降低复杂度没引入sparse attention。2、由于使用多个编码器,对cross attention进行改进。


五、 OPTIMIZING PLMS FOR TEXT GENERATION

主要分为三种方式介绍优化方法:fine-tuning, prompt-tuning, 和 property-tuning

5.1 Fine-Tuning 

5.1.1 Vanilla Fine-Tuning

最正常的微调方法。主要问题是在小数据集上容易过拟合。

5.1.2 Intermediate Fine-Tuning

采用一个足够大的中间数据集帮助微调。主要分为:

  • 1、不同领域的相同任务数据集。
  • 2、相同领域的不同任务数据集。

5.1.3 Multi-Task Fine-Tuning

这种多任务微调方式可以增强PLM的鲁棒性和对大量有标签数据的依赖。主要分为:

  • Pure Multi-Task Fine-Tuning:采用与主文本生成任务相同,但是领域不同的方法(主要是数据集)。
  • Hybrid Multi-Task Fine-Tuning:采用与主文本生成任务不同的方法

5.1.4 Parameter-Efficient Fine-Tuning

上述方法耗时,因此介绍这类微调方法

  • Adapter-based:在每一层添加two feed-forward layers 和 a non-linear layer作为adapter,然后只微调adapter。
  • Freezing-based:只微调PLM的部分参数
  • Distillation-based:把PLM中的知识蒸馏到小模型中,然后训练小模型。

5.2 Prompt-Tuning

这部分介绍的就是最近比较火的提示学习在文本生成方向上的应用。简而言之,提示学习就是将文本生成下游任务形式化为和预训练任务相似的language model任务。

5.2.2 Discrete Prompts

5.2.3 Continuous Prompts

5.3 Property-Tuning

对于不同的文本生成任务,在微调PLM的时候我们需要考虑不同的属性(property)。这一小章主要针对三个在文本生成中的重要属性。

5.3.1 Relevance

输出文本中传达的主题语义应该与与输入文本高度相关。

5.3.2 Faithfulness

指生成的内容应符合输入文本的语义,生成的文本符合事实。

5.3.3 Order-Preservation

输入和输出文本中语义单元(单词、短语等)的顺序是一致的。对于摘要生成和机器翻译等任务很重要。


6 CHALLENGES AND SOLUTIONS

总结如下表所示:

【论文阅读笔记1】:Pre-trained Language Models for Text Generation: A Survey_第3张图片


 7 EVALUATION AND RESOURCES

7.1 评估指标

7.1.1 N-Gram Overlap 指标

包含BLEU,ROUGE,METEOR,ChrF++(用于机器翻译)

7.1.2 多样性指标

包含Distinct

7.1.3 语义相似度指标

包含BERTScore

7.1.4 概率相关指标

包含PPL(感觉就是直接通过loss计算的)

7.2 Resources

【论文阅读笔记1】:Pre-trained Language Models for Text Generation: A Survey_第4张图片

Benchmark有GLUE


8 APPLICATION

这里就不详细写了,主要分为机器翻译,摘要生成,对话系统和其他。也可以看出对于文本生成来说,机器翻译和摘要生成是最火的应用方向。


9 CONCLUSION AND FUTURE DIRECTIONS

除了对上述内容的总结外,文章提到了一些他们发现的问题和方向。

  • 1、可控的生成
  • 2、探索更多的优化方法
  • 3、其他语言的PLM
  • 4、生成文本的伦理道德问题

你可能感兴趣的:(论文阅读笔记,语言模型,人工智能,自然语言处理)