简单粗暴的GPT2
- 基本原理:自回归语言模型(参考Transformer decoder及Language model);
- 理念:自回归生成的形式可以适用于大部分任务,只需要把输入输出拼接起来,就可以让模型自行学会应该生成什么东西,这里可以理解为把很多任务的输入输出形式统一为自回归生成,比如阅读理解的Pointer networks、分类、生成的SeqSeq等,同时另一部分任务还是可以使用Transformer本身的形式,比如各种序列标注。这种理念跟Berts其实是殊途同归的;
- 训练:Teacher force的训练形式,与传统语言模型的任务一致,只是不需要N-Gram窗口了;
- 概率计算:在原论文中有列出GPT2在机器阅读理解上的一些实例,其中对每个生成的答案都有给出概率,这个概率计算方式推测就是语言模型的概率,把这个概率作为答案的概率其实有点容易引起混乱,因为既然引入了预训练,这个概率多少也包含了类似流畅度那样的考虑;
限定主题的生成
软生成
研究的重点大致上是把主题的context融入到decoder中,个人感觉这个方向进展应该比较慢。
CoCon: A Self-Supervised Approach for Controlled Text Generation
Unsupervised Text Generation by Learning from Search
硬生成
必须包含给定的主题,例如关键词列表。
POINTER: Constrained Progressive Text Generation via Insertion-based Generative Pre-training
- 基本原理:给定关键词序列,模型输出生成序列,表示在每个关键词之间需要插入什么,然后迭代直至生成完整的句子;
- 思考:这个算是一种让人眼前一亮的想法,在不改动特征提取模型结构的前提下实现一种新的生成式的结构,是否把结合语言模型作为判别结构,变成GAN的套路?
- 训练数据:由于生成结构是在两两Token之间插入新Token,因此输入输出是相同长度的句子对,且每一批的数据长度是上一批的两倍。训练数据的生成逻辑是,先插入比较重要的词,如名词、动词等,再插入定语、状语等,所以引入了不同的词语权重先验,如TfIdf、POS等;
使用GAN
GANs for Sequences of Discrete Elements with the Gumbel-softmax Distribution
- 动机:从模型上论述GAN对离散数据的不足,提出了Gumbel-Softmax,使用LSTM作为生成器和判别器的Backbone;
Generating Text via Adversarial Training
Adversarial Feature Matching for Text Generation
SeqGAN: Sequence Generative Adversarial Nets with Policy Gradient
MaskGAN: Better Text Generation via Filling in the ____
Long Text Generation via Adversarial Training with Leaked Information