ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

生物序列智能分析平台blog(24)

2021-12-23 12:04:01  阅读:169  来源: 互联网

标签:24 判别 生成器 生成 blog GAN 序列 文本 向量


2021SC@SDUSC

GAN4NLP

这篇博客介绍GAN在NLP领域的应用,GAN在图像领域的优异表现让NLP领域的专家们跃跃欲试,但直接将用于图像的GAN模型用于文本生成问题上结果总是不能让人满意。今天给大家介绍几种用于文本生成的GAN模型,看它们是如何克服面对的困难与挑战。

什么是GAN

生成对抗网络(GAN)包含两个部分:一个是生成器(generator),一个是判别模型(discriminator)。生成器的任务是生成看起来逼真与原始数据相似的样本。判别器的任务是判断生成模型生成的样本是真实的还是伪造的。换句话说,生成器要生成能骗过判别器的实例,而判别器要从真假混合的样本中揪出由生成器生成的伪造样本。生成器和判别器的训练过程是一个对抗博弈的过程,最后博弈的结果是在最理想的状态下,生成器可以生成足以“以假乱真”的样本。
在这里插入图片描述
图1. GAN的基本结构

GAN在文本生成中遇到的困境

传统的GAN只适用于连续型数据的生成,对于离散型数据效果不佳。文本数据不同于图像数据,文本数据是典型的离散型数据。图像数据在计算机中被表示为矩阵,矩阵中的数值可微分并且直接反映出图像本身的属性,从图像矩阵到图像不需要采样;而文本数据在计算机中表示为one-hot编码的向量,这个向量中有n项是0,只有一项是1,这一项代表词库中某个词,我们在神经网络中操作时,最后得到的都是一个某个词向量每个维度的概率分布而非标准的one-hot编码的向量,只能将这个输出结果过渡到one-hot向量再从词库中查找对应的词,这个操作被称为采样。

神经网络的优化方法大多是基于梯度的,GAN在面对离散型数据时,判别器无法把梯度反向传播给生成器——判别器得到的是生成器采样后的结果,在判别器参数微调后,可能输出优化了一点点但还不足以改变采样的结果,例如生成器网络的最后结果为[0.1,0.1,0.8]经过采样输出的one-hot词向量为[0,0,1],而参数微调后生成器网络最后的结果变为了[0.1,0.2,0.7]经过采样输出的one-hot词向量依旧为[0,0,1],生成器便会再一次将相同答案输入给判别器,这样判别器给出的评价就会毫无意义,生成器的训练也会失去方向。

为了解决GAN在面对离散型数据无法将梯度反向传播给生成器的问题,人们提出了三种方案:1.判别器直接获取生成器的输出;2.使用Gumbel-softmax代替softmax;3.通过强化学习来绕过采样带来的问题。其中第一种方法虽然可以绕过采样操作,避免采样带来的梯度无法反传的问题,但生成的数据与真实数据差距太大,判别器可以很轻易地分辨出生成的数据与真实的数据,因为此时生成的数据是离散的向量,而真实数据是one-hot向量,判别器可以很容易分辨两者的差异,此时GAN是难以训练的。

几种用于文本生成的GAN模型

1.SeqGAN

SeqGAN的核心思想是将GAN与强化学习的Policy Gradient算法结合到一起,出发点是意识到了标准的GAN在处理离散数据时会遇到的困难:生成器难以梯度更新,判别器难以评估非完整序列。对于生成器难以梯度更新问题,作者把整个GAN看作一个强化学习系统,用Policy Gradient算法更新Generator的参数;对于判别器难以评估非完整序列问题,作者借鉴了蒙特卡洛树搜索的思想,对任意时刻的非完整序列都可以进行评估。
在这里插入图片描述
图2. SeqGAN结构

SeqGAN结构如图2所示,已经存在的红色圆点称为现在的状态(state),要生成的下一个红色圆点称作动作(action),因为D需要对一个完整的序列评分,所以就是用MCTS(蒙特卡洛树搜索)将每一个动作的各种可能性补全,D对这些完整的序列产生reward,回传给G,通过增强学习更新G。这样就是用Reinforcement learning的方式,训练出一个可以产生下一个最优的action的生成网络。

2.LeakGAN

基于GAN生成文本的方法大多数场景是生成短文本,对于长文本来说还是存在很多挑战。先前的GAN中判别器的标量指导信号是稀疏的,只有在完整生成文本后才可用,缺少生成过程中的文本结构的中间信息。当生成的文本样本长度很长时效果不好。LeakGAN通过泄露判别器提取的特征作为引导信号,指导生成器更好地生成长文本。同时,借助分层强化学习从判别器向生成器提供更丰富的信息。
在这里插入图片描述
图3. LeakGAN结构

LeakGAN主要是把高层判别器特征信息泄露到Manager模块,Manager模块是LSTM网络,充当中间媒介,形成具有指导意义的行为目标输出,而底层生成器输入词向量,通过Worker模块,得到行为向量,结合目标输出采样得到下个词的输出向量。所谓Leak,就是把判别器的特征信息泄露到生成器中,指导生成器生成,打破了传统对抗模型。

3.RelGAN

RelGAN由三个主要组件组成:基于关系记忆的生成器、Gumbel-Softmax用于离散数据上训练GAN、鉴别器中嵌入多个表示为生成器提供更多信息。在样品质量和多样性方面,RelGAN相比于其他GAN模型具有一定优势。并且,RelGAN可以通过单个可调参数控制样本质量和多样性之间的权衡。
在这里插入图片描述
图4. RelGAN生成器中的注意力机制

t时刻的记忆单元Mt和矩阵Wq相乘得到Q矩阵,Mt与t时刻的输入的词向量xt拼接后分别于WK、Wv相乘得到K矩阵和V矩阵,Q矩阵和K矩阵的转置相乘后经过sofmax函数得到注意力权重,再将注意力全中与V矩阵相乘得到更新后的记忆单元。
在这里插入图片描述
图5. RelGAN判别器

判别器结构如图5所示,为了从多方面捕获输入特征,词向量通过多个词向量表示层输入CNN网络,这样子就输出多个判别器损失,综合多个方面的判别器损失,得到最终的损失输出,这样子,可以从多个方面综合评估词向量的差异,提供多样性和更加丰富的信息指导判别器的训练。

参考链接:
https://arxiv.org/abs/1609.05473
https://arxiv.org/abs/1709.08624v2
https://arxiv.org/abs/1908.07269

标签:24,判别,生成器,生成,blog,GAN,序列,文本,向量
来源: https://blog.csdn.net/qq_49215659/article/details/122094367

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有