VAE for 文本生成

该博客详细介绍了VAE(变分自编码器)的工作原理,并重点阐述了其在文本生成领域的应用,包括如何通过随机层结构提取语义丰富的编码,以及如何利用多级解码器捕捉长文本的长期结构。
摘要由CSDN通过智能技术生成

VAE详解:https://spaces.ac.cn/archives/5253

      变分自编码器(Variational auto-encoder,VAE)是一类重要的生成模型(generative model),它于2013年由Diederik P.Kingma和Max Welling提出[1]。2016年Carl Doersch写了一篇VAEs的tutorial[2],对VAEs做了更详细的介绍,比文献[1]更易懂。
      VAE的总体目标和GAN基本一致,都是希望通过构建一个从隐变量Z生成目标数据X的模型,他们假设Z服从某种常见分布(比如正态分布),然后训练一个模型X=g(Z),这个模型能够将原来的概率分布映射到训练集的概率分布,这样我们就通过这边模型生成与符合训练数据概率分布的新的数据了。
         
与自编码对比:
      自编码通过编码器将输入x进行编码成z,然后通过解码器将z解码成x`,使得x`与x一样。缺陷:1.需要有原始输入,是有监督的;2.生成的结果是使得x`与原始输入一样,不能泛化生成多样的结果。3.主要用于获取输入的隐藏表示。
     变分自编码结构与自编码类似,也是由编码器和解码器构成,不同的是在编码的目标是生成一个概率分布 q(z|x)代替确定性z来重建输入,强制模型将输入映射到空间的区域而不是单个点,。在这种情况下,实现良好重构误差的最直接方法是预测非常潜在的概率分布,有效地对应于潜在空间中的单个点(Raiko等人2014)。引入 KL divergence 让后验 q(z|x) 接近先验 p(z).
 

VAE在文本生成领域的应用:

  
  实质:以自编码框架为基础,通过分层编码和解码的方式将词与句子信息综合考虑。如下图,虚线部分为attention
          
 
【  Generating Sentences from a Continuous Space】-第20届计算自然语言学习大会 2016
 
     作者为了弥补传统的 RNNLM 结构缺少的一些全局特征(其实可以理解为想要 sentence representation)。其实抛开 generative model,之前也有一些比较成功的 non-generative 的方法,比如 sequence autoencoders[1],skip-thought[2] 和 paragraph vector[3]。但随着 VAE 的加入,generative model 也开始在文本上有更多 的可能性。

      Loss 的组成还是和 V
  • 12
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 数据集准备 首先,需要准备一个用于训练的对话数据集。这个数据集应该包含一些对话文本,其中每个文本都是一句话。可以使用公开的对话数据集,例如Cornell Movie Dialogs Corpus,或者自己构建一个对话数据集。 2. 数据预处理 对于对话生成,可以使用seq2seq模型,但是为了避免生成重复的对话,我们可以使用VAE模型。对于VAE模型,需要将对话文本转换为向量表示。 可以使用词向量模型(如Word2Vec或GloVe)将每个单词表示为向量,然后将整个对话文本表示为所有单词向量的平均值或加权平均值。另外,可以使用tf-idf方法将文本表示为词频-逆文档频率向量。 3. 建立VAE模型 VAE模型包括两个部分:编码器和解码器。编码器将输入文本转换为潜在向量,而解码器将潜在向量转换为输出文本。可以使用深度神经网络作为编码器和解码器。 4. 训练VAE模型 训练VAE模型的目标是最小化重构误差和KL散度。重构误差是解码器输出与原始输入之间的误差,可以使用均方误差(MSE)或交叉熵(CE)作为损失函数。KL散度用于度量潜在向量分布与标准正态分布之间的差异,可以使用KL散度作为正则化项。 5. 生成对话 使用训练好的VAE模型生成对话的过程如下: - 从标准正态分布中抽取一个随机向量z。 - 使用解码器将z转换为对话文本。 - 可以使用beam search或贪心算法选择最佳的生成对话文本。 6. 评估生成对话 为了评估生成对话的质量,可以使用人类评估或自动评估方法。自动评估方法可以使用BLEU、ROUGE、METEOR等指标。另外,可以使用人类评估来评估生成对话的流畅性、相关性和多样性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值