「学术报告」中山大学吴郦军:神经机器翻译中的强化学习

2018年8月4月,由北京理工大学大数据创新学习中心与中国科学院人工智能联盟标准组联合主办的“2018深度强化学习:理论与应用”学术研讨会,学界与业界顶级专家济济一堂,共同分享深度强化学习领域的研究成果。

「学术报告」中山大学吴郦军:神经机器翻译中的强化学习

Reinforcement Learning for Neural Machine Translation

「学术报告」中山大学吴郦军:神经机器翻译中的强化学习

吴郦军 微软亚洲研究院和中山大学联合培养博士生

刚才的报告提到CycleGAN,其实是受到2016年我们在NIPS上发表的一篇Paper:Dual Learning for Machine Translation的启发,这在CycleGAN的原文中也有提到;刚才还有提到推敲的思想,这也是2017年我们在NIPS上发的文章:Deliberation Networks: SequenceGeneration Beyond One-Pass Decoding的思想,翻译过来就是推敲网络。今天报告的内容是强化学习与GAN的结合。

机器翻译是什么?有一Encoder网络和一个Decoder网络,这种网络可以有很多种选择,比如2015年很火的RNN、去年发布的CNN、Google推出的Transformer,基于self-attention网络秒杀了前面所有的结构。

我们这里介绍的Seq2SeqFramework就以最常用的RNN来建模,ContextVector可以用Attention计算得到。

「学术报告」中山大学吴郦军:神经机器翻译中的强化学习

机器翻译训练和测试会有Mismatch问题。Training过程就是最大化一个条件概率。在给定source端句子X的情况下,依赖t之前所有正确的词语Y<t,希望P(Yt|Y<t,X) 最大化。而Inference见不到整个target端句子Y,只有Source这句话。比如,我们把一句中文翻译成英文,需要用中文的句子把英文的词语一个一个地Translate出来。Yt’是当前这个时刻Translate的词语,依赖 X以及前面已经翻译出来的Y>t’这些词语。

「学术报告」中山大学吴郦军:神经机器翻译中的强化学习

这里大家可以看到一个Mismatch,训练过程中Y(相当于Label)是已知的,而翻译的inference过程,t时刻前面所有的Translate出来的词语Y<t’是Model翻译的,所以两者有Distribution不同的问题。另外,训练和测试过程评价目标不同,Training每个词都要有一个Label Yt,而Inference是用Blue Metric定义,简单地说就是去看一个词、两个词、三个词、四个词和句子的匹配程度,匹配越高分数越好。这是整个句子级别Sequence level的评价,而训练是Word Level的训练。

RL是一个很天然的好方法来解决上面的问题,为促使模型能够产生reward很高的句子,用模型生成一个句子Y’与正确的Target句子Y进行比较,给这个句子打分。实际上是给Action一个Reward,句子越好得到的Reward就越大,然后Maximize 这个Reward。

「学术报告」中山大学吴郦军:神经机器翻译中的强化学习

今天要讲的就是这两年的时间当中我做的三个工作:

刚才讲过,我们的做法是一句中文一句英文地Pair数据,也就是有一句中文同时有一句翻译好的英文。当我们只有其中一种语言数据,该怎么做呢?我们需要正确的Target句子Y,也就是Target端的Label已知,如果只用X的话,则没有Y,那就意味着没有Label,我们就不能得到R(Y’, Y),因此不能得到Reward,这是一个很自然的问题。在没有Label时,我们采用学习Reward Function的方法,对于没有正确Target句子Y,依然能够得到一个Reward作为奖励。

「学术报告」中山大学吴郦军:神经机器翻译中的强化学习

我们设计了一个Reward Network来学Reward Function:这个network是一个RNN-based Network,在Bilingual 的data X和Y上学,用到了X sample出来的Y‘,同时利用了attention机制。另外, Reward Function学习是动态的,整个RL后期阶段Model要Update Reward Function,在每一步都有一个immediate Reward,每个Yt都可以打分。

「学术报告」中山大学吴郦军:神经机器翻译中的强化学习

训练时,我们用MSE定义loss。有了Reward Function以后,我们就可以去Update SequenceModel,在Bilingual Data上直接和Y比较,得到BLEU的reward。MonolingualData上就用学出来的Reward Function得到reward。

「学术报告」中山大学吴郦军:神经机器翻译中的强化学习

我们在IWSLT2014De-En数据集上做了实验,最上面几行是MLE的结果。我们的结果比Bilingual上的RL效果更好,右边是学习曲线。

「学术报告」中山大学吴郦军:神经机器翻译中的强化学习

我们还有一个研究,用部分双语语料的X做MonolingualData,把其中Y正确的Target句子拿掉,用额外的双语语料加入原来的双语语料一起学习reward,然后比较两者performance的差距。实验表明,我们Predict出来的Reward能够得到23.9,与真实的Reward训练得到的结果相比只有0.8之差,说明我们的方法比较好。

「学术报告」中山大学吴郦军:神经机器翻译中的强化学习

第二个研究是Adversarial Neural Machine Translation。怎么理解通过GAN来做这项任务?虽然Translate出来了一句话,和Target相比可能只会有几个词不一样,但是两者的sentence level的BLEU score可能会相差很大,所以BLEU是非常Sensitive的。我们希望学习一个很好的Reward Function,非常Smooth和Dynamic的,所以借用GAN的思想。

「学术报告」中山大学吴郦军:神经机器翻译中的强化学习

我们的方法就是用Adversary Training。GAN中的Discriminator提供了一个Smooth并且Dynamic的Reward方法,可以利用Discriminator输出的概率值来做Reward。比如下面的这个翻译:微软亚洲研究院即将迎来二十周年的诞辰,很显然,翻译的结果中少了一个Asia,这个20应该是20th,下面的句子是好的,上面的句子是坏的。

「学术报告」中山大学吴郦军:神经机器翻译中的强化学习

我们用普通的NMT Model做Generator,随意sample一组X,Y的 BilingualData,用Generator Translate X得到Y‘,在Y和Y’之间做Classification得到Y’和Y的打分,然后Optimize D和G。

「学术报告」中山大学吴郦军:神经机器翻译中的强化学习

这里有一个问题,区分Y和Y’少了X的信息。如果把X的信息加进来显然会有助于区分翻译准确性问题。具体来说,把X和Y的embedding拼在一起,也就是X的每个词语与Y的每个词语的embedding直接Contact起来,得到3D的类似图像表达之后做分类,这样就可以Encode X信息和Encode Y信息,效果会更好。

「学术报告」中山大学吴郦军:神经机器翻译中的强化学习

Training Algorithm就是把Discriminate输出做Reward值Update我们的Generator。主要是用D进行打分,用D作为Reward,同时还是Smooth和Dynamic。去年NIPS上有一篇代表性文章,类似于IRL(Inverse Reinforcement Learning)方式,在Data中学出Reward Function,Policy以后产生更好的Data,然后UpdateReward Function。

第三个研究工作是关于RL在NMT上如何更好地work问题。RL包括很多Trick,我们并不知道怎样的方式最Work。另外,现在都是几十兆的Data,这需要Deep Model。怎么进行Effective Training?怎么才能Leverage?这也是我们需要做的事情。首先,一个Sample句子Y’,可以用Beam Search的方式来挑出当前这个model最好的一个翻译结果,也可以根据每一步的softmax层的概率输出multinomial的sample句子。这两种方式显然是不同,对应于RL来说就是Exploration和Exploitation的区别。直接挑出最大的词,利用了已有的信息;而根据概率来取词,则需一定的探索。另外,Reward可以用两种计算方式:一种是Deleted Reward,每一步Reward是零,直到最后一个词Sample完,整个句子Translate完之后打一个分;一种是Reward Shaping,每个Step都给一个Reward。

「学术报告」中山大学吴郦军:神经机器翻译中的强化学习

Update时PG有很强的不稳定性质,怎么减少梯度的Variance?这种不稳定性在NMT训练中是否非常敏感,也是我们研究的问题。我们采用Baseline RewardLearning方式,即学习一个Baseline Reward,可以是一两层MLP。最后一点就是刚才提到的Objective Combination,MLE和RL的两部分的Loss加起来帮助我们训练。另外,我们还考虑了Monolingual Data,这么多的单语数据能不能很好地Leverage?我们需要考虑不同的端点,只有X或者Y的Data怎么用起来?Source端也要考虑Exploration和Exploitation,因为Beam search能够保证结果比较好,根据当前最大的概率去调词语,把它当做Reference。而Training的instance还是要用Multinomial的Sample得到,两个之间有Gap才能促进训练。Target端的单语语料,我们直接采用Back Translation来得到一个source端的伪句子X’和单语句子Y一起作为pair参与到RL的训练中。

「学术报告」中山大学吴郦军:神经机器翻译中的强化学习

最后我们验证单语语料的情况,非常好的MLE训练上面RL同样是非常不错的一个结果。Multinomial的Sampling句子训练比较重要,另外Objective Combination也非常重要,能够稳定训练过程。而Variance Reduction和Reward Shaping可能不是很重要。另外如果能够很好的利用单语语料,那么单语语料也是能够促进RL的训练效果。

获取完整PPT,请后台回复:学术报告

供稿人:吴振中

「学术报告」中山大学吴郦军:神经机器翻译中的强化学习

精彩的学术报告背后,是一群优秀的学术人才。都说搞学术的人需要“超凡脱俗”,需要耐得住清贫寂寞,其实……芯君想说:完全不需要这样啊!比如,马上申请2018百度奖学金——是的,百度为每位具有AI才能的“潜力股”学术精英们提供了广阔的平台资源和发展空间,为其提供20万研究资金支持,帮助优秀学子全身心投入科研工作,心无旁骛地进行科学探索。

还等什么,你——未来的学术之星,赶快申请报名吧!

「学术报告」中山大学吴郦军:神经机器翻译中的强化学习

如需转载,请后台留言,遵守转载规范

相关推荐