摘要:在本任务中为,即历史对话决策为,即下一步的对话。则是一个使得训练稳定的平衡项。判别器只告诉机器对或错,却不告知哪部分对和哪部分错,这对训练带来了很大隐患。实验实验的结果以及部分可以一定程度上体现对抗训练的模型起到了预期的效果。
1、导读
这篇文章的主要工作在于应用了对抗训练(adversarial training)的思路来解决开放式对话生成(open-domain dialogue generation)这样一个无监督的问题。其主体思想就是将整体任务划分到两个子系统上,一个是生成器(generative model),利用seq2seq式的模型以上文的句子作为输入,输出对应的对话语句;另一个则是一个判别器(discriminator),用以区分在前文条件下当前的问答是否是和人类行为接近,这里可以近似地看作是一个二分类分类器。两者结合的工作机理也很直观,生成器不断根据前文生成答句,判别器则不断用生成器的生成作为负例,原文的标准回答作为正例来强化分类。在两者训练的过程中,生成器需要不断改良答案来欺骗生成器,判别器则需要不断提高自身的判别能力从而区分机造和人造答案直至最后两者收敛达到某种均衡。以往的模型受限于训练目标以及训练方式,其生成的结果往往是迟钝笼统的甚至都很简短(如果可以的话,所有的对话我都可以回答“呵呵”,很明显这样的回答是不符合常识的)。所以这样一种博弈式的训练方式来取代以往相对简单固定的概率似然来优化这样一种无监督的开放任务显然是很有意义的想法。不过这样的方法遇到困难也很明显,GAN和NLP一直八字不合,很难很好的融合。和之前的工作SeqGAN类似,这篇工作也采取了增强学习来规避GAN在NLP中使用的难点,并作出了更多的尝试。
2、模型
Generative model & Discriminativemodel:
生成器G就是一个seq2seq模型,输入是历史对话x,通过RNN来对语义进行向量表示再逐一生成回答的每个词,从而形成回答y,由于该种模型已经有很大的人群认知,就不过多赘述。判别器D是一个输入为历史对话x和回答y二元组的一个二分类器,使用了hierarchicalencoder,其中机造回答组合为负例Q−({x,y}),人造回答组合为正例Q+({x, y})。
Policy Gradient Training:
文中模型采用了policy gradient的方法(增强学习的方式之一)来进行增强学习的训练,其优化目标为:
优化目标的导数可化为:
Q是判别器D的结果,换句话说判别器的鉴定结果可以看作是增强学习中的reward,policy gradient整体的优化目标其实就是希望回报高的决策其概率越高。在本任务中state为x,即历史对话;决策为y,即下一步的对话。x生成y的概率等于逐词生成的概率,如(2)所示,这里也可以很好的和seq2seq的工作机理对应上。b({x,y})则是一个使得训练稳定的平衡项。
Reward for EveryGeneration Step (REGS) :
在本任务中增强学习的一个很大的问题在于我们的估价都是针对一整个回答的,判别器只会给出一个近似于对或者不对的反馈。这样的模式存在一个很大的问题是,即使是很多被判断为有问题的句子,其中有很大一部分语言成分是有效的,如文中的例子“what’s yourname”,人类回答“I am John”,机器回答“I don’t know”。判别器会给出“I don’t know”是有问题的,但无法给出I是对的而后面的don’t know是错的,事实上机器没有回答he/she/you/they而是I本质上是需要一个肯定的正反馈的。判别器只告诉机器对或错,却不告知哪部分对和哪部分错,这对训练带来了很大隐患。所以文中采用了两种方式,第一种是Monte Carlo,第二种则是使用局部序列来评估。第一种和之前的一些增强学习引入的工作类似就不做赘述,我们主要关注第二种方法。
主要思想就是将二式变为三式,通俗点讲就是把序列评分拆开来算,这样就能算到前缀的评分,做到局部评价的反馈。为了防止训练过拟合,每次只是从正例和负例的子序列中随机选取一个来训练。不过有一丝遗憾的是,这个方法快速也符合常识但会使得判别器变弱,实际效果不如Monte Carlo准确。
Teacher Forcing :
在以往的工作中,D效果非常好而G的效果非常糟糕会带来训练效果的下降。试想一下一个G所有产生的答案都被D驳回了,在这段时间内G的所有反馈都是负反馈,G就会迷失从而不知道向什么方向优化会得到正反馈,所以理想的情况下G和D是交替训练上升的。在控制D和G训练节奏的同时,这篇工作中又采用了一种类似强制学习的方式来尝试解决这个问题。每次在正常的增加学习后会让生成器强行生成正确答案并从D得到正向的反馈,从而每次都能有一个正向优化方向的指示。这样的行为类似于学校老师强行灌输知识,也很类似于之前的professor-forcing算法。所以到此整体的模型结构为:
训练频率的设定在图中的解释中有提到。无论是GAN还是RL都是出了名的难训,Training Details大家还是看源码和论文仔细体会吧,在此也就不铺开了。
3、实验
实验的结果以及部分case study可以一定程度上体现对抗训练的模型起到了预期的效果。
4、总结
虽然在手法上和之前的SeqGAN类似,采用了增强学习的方法来在NLP任务上进行对抗训练,并且提出了一些新的针对于NLP本身特征的方法改进,尽管还存在很大问题需要解决,但也算是不错的尝试。引入对抗训练这样的方式可以解决以往模型,尤其是无监督生成式任务模型的许多问题,但受限于技术细节,现在的模型还处于探索阶段,模型繁冗复杂,训练过程需要掺入大量工程实现手法,方法无法在相似任务上灵活转移。作者在这篇工作的结论里也提到了自己的模型在其他任务诸如machine translation和summarization效果并不是很好,并给出了自己认为可能的一些解释。这些都需要我们进一步的去探索挖掘文本本身特有的性质来改造发展模型,并进一步尝试。
欢迎加入本站公开兴趣群商业智能与数据分析群
兴趣范围包括各种让数据产生价值的办法,实际应用案例分享与讨论,分析工具,ETL工具,数据仓库,数据挖掘工具,报表系统等全方位知识
QQ群:81035754
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/4495.html
摘要:直接把应用到领域主要是生成序列,有两方面的问题最开始是设计用于生成连续数据,但是自然语言处理中我们要用来生成离散的序列。如图,针对第一个问题,首先是将的输出作为,然后用来训练。 我来答一答自然语言处理方面GAN的应用。直接把GAN应用到NLP领域(主要是生成序列),有两方面的问题:1. GAN最开始是设计用于生成连续数据,但是自然语言处理中我们要用来生成离散tokens的序列。因为生成器(G...
摘要:许多的顶尖研究人员都会积极的在现场回答问题。虽然有许多主题的常见问题页面比如,这是一个机器学习的,但是这些都是非常不全面的,或者不够精致。在这篇文章中,我试图做一个更加全面的有关机器学习和问题的。 作者:chen_h微信号 & QQ:862251340微信公众号:coderpai简书地址:http://www.jianshu.com/p/ac18... showImg(https:/...
摘要:在这里汇总了一个现在和经常使用的论文,所有文章都链接到了上面。如果你对感兴趣,可以访问这个专题。作者微信号简书地址是一个专注于算法实战的平台,从基础的算法到人工智能算法都有设计。加入实战微信群,实战群,算法微信群,算法群。 作者:chen_h微信号 & QQ:862251340微信公众号:coderpai简书地址:https://www.jianshu.com/p/b7f... sh...
摘要:作者微信号微信公众号简书地址我把这篇文章分为四个部分机器学习,,和数学。在这篇文章中,我把每个主题的教程数量都是控制在五到六个,这些精选出来的教程都是非常重要的。每一个链接都会链接到别的链接,从而导致很多新的教程。 作者:chen_h微信号 & QQ:862251340微信公众号:coderpai简书地址:http://www.jianshu.com/p/2be3... showIm...
阅读 1992·2021-11-24 10:45
阅读 1849·2021-10-09 09:43
阅读 1291·2021-09-22 15:38
阅读 1218·2021-08-18 10:19
阅读 2836·2019-08-30 15:55
阅读 3056·2019-08-30 12:45
阅读 2960·2019-08-30 11:25
阅读 356·2019-08-29 11:30