NLP(二)文本生成 --VAE与GAN模型和迁移学习

VAE与GAN模型和迁移学习

1. Auto Encoder 自编码器

1.1 结构

text–encoder NN–latent vector–decoder NN–text

1.2 核心思想

将输入通过encoder NN编码,得到latent vector,再通过decoder NN,将vector对应text还原

1.3 损失函数

标准自编码器主要关注重建损失(reconstruction loss)
在这里插入图片描述

1.4 Denoising Auto Encoder(降噪自编码器)

基本思想: 把输入句子的一部分给“污染” (corrupt) 了,但是我们希望在经过编码和解码的过程之后,我们能够得到原来的正确的句子,加强 Auto Encoder 的 robustness。类似BERT 的 masking 就是一种“污染”的手段。
Example: 我爱[MASK]然语[MASK]处理 --> vector --> 我爱自然语言处理

2. Variational Auto Encoder (VAE)

2.1 核心思想

VAE变分自编码器可用于对先验数据分布进行建模。它包括两部分:编码器和解码器。编码器将数据分布的高级特征映射到数据的低级表征,低级表征叫作本征向量(latent vector),再通过解码器输出。通俗的说,VAE就是在Anto Encoder的基础上给latent vector添加限制条件,让其服从高斯分布。下图中z为latent vector,根据学到的分布参数进行sample
在这里插入图片描述

2.2 损失函数

在变分自编码器的情况中,我们希望本征向量遵循特定的分布,通常是单位高斯分布,使下列损失得到优化:
在这里插入图片描述
p(z′)~N(0,I) 中 I 指单位矩阵,q(z∣X) 是本征向量的分布

2.3 KL divergence(KL散度)

计算两个概率分布的差值
在这里插入图片描述

3. GAN(generative adversarial networks)

3.1 GAN结构与核心思想

GAN 是根据给定的先验分布生成数据的另一种方式,包括同时进行的两部分:判别器(Discriminator)和生成器(Generator)。判别器用于对「真」图像和「伪」图像进行分类,生成器从随机噪声中生成图像(随机噪声通常叫作本征向量或代码,该噪声通常从均匀分布(uniform distribution)或高斯分布中获取)

Example应用: 人脸识别,一个是通过人脸生成特征向量来鉴定身份,一个是通过特征向量来还原人脸,让这两个网络互相对抗,看最后是捏造人脸的网络可以成功蒙蔽鉴别网络,还是鉴别网络能够成功识破伪造的人脸。最终使得生成的内容具有多样性的同时,分类器也无法识别真假

3.2 训练 GAN 的难点

①从先验分布中对本征变量进行随机噪声采样。

缓解方法: 使用 VAE 对本征变量进行编码,学习数据的先验分布,通过学习的分布进行采样,而不是生成随机噪声

②文本是离散tokens的序列。
因为生成器(Generator,简称G)需要利用从判别器(Discriminator,简称D)得到的梯度进行训练,而G和D都需要完全可微,碰到有离散变量的时候就会有问题,当我们把argmax或者sampling得到的文字传给Discriminator打分的时候,我们无法用这个分数做back propagation对生成器做优化操作;另外,在GAN中我们通过对G的参数进行微小的改变,令其生成的数据更加“逼真”。若生成的数据是基于离散的tokens,D给出的信息很多时候都没有意义,当对tokens做微小的改变,在对应的dictionary space里面可能根本就没有相应的tokens

3.3 如何优化

(1)将普通的argmax转变成可导的Gumbel-softmax,此时可以同时优化Generator和Discriminator
(2) 使用Reinforcement Learning中的Policy Gradient来估算模型的gradient,并做优化,
根据当前的policy来sample steps;翻译任务中policy gradient直接优化BLEU

Policy: 当前执行的策略,在文本生成模型中,这个Policy一般就是指我们的decoder(LSTM)

  • Policy Gradient: 根据当前的policy执行任务,然后得到reward,并估算每个参数的gradient, SGD

(3)还有一些方法是,不做最终的文本采样,直接使用模型输出的在单词表上的输出分布,或者是使用LSTM中的一些hidden vector来传给Discriminator,并直接优化语言模型

(4) Teacher-Forcing(MLE)

在对抗性训练的时候,G不会直接接触到真实的目标序列,当G生成了质量很差的序列的时候(生成质量很好的序列其实相当困难),而D又训练得很好,G就会通过得到的Reward知道自己生成的序列很糟糕,但却又不知道怎么令自己生成更好的序列, 这样就会导致训练崩溃。所以通过对抗性训练更新G的参数之后,还通过传统的MLE就是用真实的序列来更新G的参数。类似于有一个“老师”来纠正G训练过程中出现的偏差,类似于一个regularizer。

4. 文本生成应用

4.1 GAN与VAE结合

论文:Autoencoding beyond pixels using a learned similarity metric
将VAE的decoder当做GAN的geneator接到GAN上,充分利用两者优势,学习数据先验分布,再采样,使得对抗学习更有效
在这里插入图片描述

4.2 Toward Controlled Generation of Text

模型包含几个部分,一个Generator可以基于若干个向量(z和c)生成句子,几个Encoder可以从句子生成z和c的分布,几个Discriminator用来判断模型编码出的向量©是否符合example的正确分类。这个模型的好处是,我们在某种程度上分离了句子的信息。例如如果向量c用来表示的是句子的情感正负,那么模型就具备了生成正面情感的句子和负面情感句子的能力
在这里插入图片描述
情感分类任务中,图中的z代表latent vec(不掺杂情感),c代表情感特征,z和c独立,并为全集

4.3 迁移学习

style transfer 其实也是controlled text generation的一种,只是它control的是文本的风格。文本风格有很多种,例如情感的正负面,文章是随意的还是严肃的,各个作家的文风等等

4.4 Data-to-Text Generation with Content Selection and Planning

  • Content selection: 选择什么数据需要进入到我们的文本之中
  • Sentence planning: 决定句子的结构
  • Surface realization: 把句子结构转化成具体的字符串
  • 8
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值