2020.9.25论文笔记
四篇与可控文本生成相关的论文
ELECTRA: PRE-TRAINING TEXT ENCODERS AS DISCRIMINATORS RATHER THAN GENERATORS
本文认为 MLM 只从 15% 的 token 中学习,计算效率太低。因此提出了 replaced token detection 任务,训练判别器从所有 token中学习,提出了ELECTRA(Efficiently Learning an Encoder that Classifies Token Replacements Accurately)
首先mask 15%的词,再通过生成器将mask的词重新生成,生成器包含encoder层和softmax层,在此生成器只encode mask掉的词
判别器对所有词进行判断是否被替换
此模型与GAN的最大不同在于生成器使用最大似然来训练,而不是通过对抗性训练来欺骗判别器,同时模型不会向生成器反向传播判别器的损失,预训练后丢弃生成器并在下游任务上微调判别器。
POINTER: Constrained Text Generation via Insertion-based Generative Pre-training
本文提出一种新的基于插入的非自回归预训练方法,POINTER(PrOgressive INsertion-based TransformER)
使用动态规划方法从原句中逐渐剔除单词,构造训练数据
在每两词间预测插入词或[NOI]
推理时假若所有词并行同时生成,可能出现重复词且易失去词间的相关性,于是提出Inner-Layer Beam Search (ILBS),维护B个最佳句子,每轮先选出B个候选词,对每句从左至右预测,时间复杂度
O
(
T
B
2
)
O(TB^2)
O(TB2)。
PLUG AND PLAY LANGUAGE MODELS: A SIMPLE APPROACH TO CONTROLLED TEXT GENERATION
本文提出一个即插即用(Plug and Play)的用于可控文本生成的模型,可应用在现有大部分语言模型上
PPLM由一个语言模型
p
(
x
)
p(x)
p(x)和一个属性模型
p
(
a
∣
x
)
p(a|x)
p(a∣x)组成。语言模型负责建模整个生成的句子,而属性模型负责生成想要属性的句子。流程分为三步:第一步,前传,基于LM的隐藏层得到概率分布;第二步,后传,使用属性模型的梯度更新LM的隐藏层;第三步,重算,重新计算得到新的概率分布
在生成期望属性的同时,也还要保证句子的流畅,可用控制KL散度或Post-norm Geometric Mean Fusion的方法。
如何计算属性模型
p
(
a
∣
x
)
p(a|x)
p(a∣x),我们有两种选择:BoW模型和判别模型。其中BoW模型计算词袋中每个词概率的和
实际应用的例子
CoCon: A Self-Supervised Approach for Controlled Text Generation
提出Content-Conditioner,可插入在各种语言模型的encoder和decoder间,用于可控文本生成
CoCon是一个单层Transformer Block,输入有引导文本x和控制文本c,分别计算K、V后拼接起来,与引导文本的Q进行self-attention的计算。
假定任何一个句子
x
x
x可以分为两部分
x
=
[
p
,
q
]
x=[p,q]
x=[p,q],主要有三种自监督学习的方法:
Self Reconstruction Loss,即令
c
=
q
c=q
c=q
Null Content Loss,
c
c
c为空,模型退化问普通语言模型
Cycle Reconstruction Loss,利用两段文本循环监督
再加入Adversarial Loss让生成的文本接近真实的文本
于是总的优化目标为
实际应用的例子