论文引介 | NMT with Conditional Sequence Generative Adversarial Nets

article/2025/8/26 16:24:34

 文章原名:Improving Neural Machine Translation with Conditional Sequence Generative Adversarial Nets

  作者:Zhen Yang, Wei Chen, Feng Wang and Bo Xu

  单位:Institute of Automation, Chinese Academy of Sciences

  译者:韩旭

  链接:

  1

  导读

  这篇文章的主要工作在于应用了对抗训练(adversarial training)的思路来解决神经机器翻译(Neural Machine Translation)的问题。在此之前实际上在NLP的任务上,已经有不少关于GAN的尝试,不过任务相对受限,效果也不是十分理想,调试的细节也没有很详实的说明。这篇工作在模型上与最近其他在NLP上GAN的尝试很类似,仍旧就是将整体任务划分到两个子系统上,一个是生成器(generative model),利用seq2seq式的模型以源语言的句子作为输入,输出对应的目标语言的翻译;另一个则是一个判别器(discriminator),用以区分源语言和目标语言是否是翻译正确的,判别手段同样是将目标语言和源语言的句子向量化之后输入到一个二分类器中(或者一个0~1的概率判别器)。我们在之前的Jiwei Li的Adversarial Learning for Neural Dialogue Generation中已经介绍过这样的训练方式的意义所在,其主要的意义还是用来解决人为量化标准导致的训练偏差,用一种接近图论测试的方式来介入训练。虽然模型上并没有过多的创新,但本篇工作对于GAN的实验细节有不少交待并且从实验结果上看也有了不少的提升,并且更为重要的是在一个十分传统的NLP领域上使用了GAN,在一定程度上进一步验证了使用增强学习实现GAN反馈的可行性。

  2

  模型

  Generativemodel & Discriminative model

  本文的生成器G采用了一个传统的基于attention机制的NMT模型(https://github.com/nyu-dl/dl4mt-tutorial),在此不作过多赘述。而在判别器D部分,本文采用了CNN和RNN两套不同的网络系统来进行,将源语言和目标语言的句子分别向量化之后通过一个logistic函数来得到一致概率。

  PolicyGradient Training

  和之前一样,本文同样采用了增强学习来进行D到G的反馈,同样是采用policygradient来进行增强学习的训练,其优化目标为:

  

  在模型中,state为源语言以及已生成的部分目标语言语句,决策为目标语句的下一个生成词。其中R是针对生成结果的反馈函数,而G则是生成的概率分布。policy gradient整体的优化目标其实就是希望回报高的决策其概率越高,换言之就是翻译越准的决策在概率分布上的概率越大。

  R的定义也非常明确,如果是最终状态的话那么直接可以得到源语言和目标语言语句的接近程度。而对于中间状态的评估和之前一样,采取了Monte Carlo,通过随机生成的最终语句评价均值来衡量,具体展开如下:

  

  

  而整个增强学习的求导如下:

  

  Professor Forcing

  在以往的工作中,D效果非常好而G的效果非常糟糕会带来训练效果的下降。试想一下一个G所有产生的答案都被D驳回了,在这段时间内G的所有反馈都是负反馈,G就会迷失从而不知道向什么方向优化会得到正反馈,所以理想的情况下G和D是交替训练上升的。在控制D和G训练节奏的同时,这篇工作中同样采用了强制学习来解决问题,这个在之前的很多工作中都有过介绍了。

  Training strategies

  G的预处理需要将模型在之前的训练数据上达到一个最好效果时再加入到GAN中进行进一步训练而不是直接就是一个几乎没有性能的生成器。在此之后利用G生成一批数据和标注数据一起来给D进行预训练。所有的预训练使用Adam,而在之后的GAN的训练则使用RMSProp 来进行梯度反馈。更多的细节可以详细阅读论文获得。

  3

  实验

  从汇报的实验结果来看,效果还是比较明显的,和基本的baseline相比有不小的提升。

  

  4

  总结

  这篇工作的最大亮点在于对比较传统的机器翻译任务进行了GAN的尝试,并且取得了不错的效果,尽管在模型上和以往在NLP上使用的GAN相比没有太多的变化。而针对实验的调试细节和参数也比较详细,和之前公布的一些开源代码结合,可以对之后在NLP中使用GAN提供了便利。而且和过去的论文结合起来看,使用增强学习,尤其是Policy Gradient Training+ Professor Forcing的GAN实现套路得到了相当的验证,未来其他的一些生成任务也可以在这个框架上进行尝试。


http://chatgpt.dhexx.cn/article/0An5HZLL.shtml

相关文章

NMT对抗训练的三部曲

来自:天宏NLP 进NLP群—>加入NLP交流群 本文主要介绍NMT模型鲁棒性的相关改进工作,介绍一下对抗训练的三部曲,一作皆是ChengYong,分别中了2018,2019和2020的ACL。 第一项工作为 Towards Robust Neural Machine Tran…

手把手教你用fairseq训练一个NMT机器翻译系统

以构建英-中NMT为例,在linux上运行,fairseq版本为0.8.0 环境准备 Requirements: fairseq:pytorch包,包括许多网络结构,https://github.com/pytorch/fairseqmosesdecoder:机器翻译的标准数据处…

00_NMT网络管理的模块控制

目录 NMT服务 NMT错误控制 NMT 节点守护 HeartBeat Message 心跳报文 NMT Boot-up 在can网络中,只有主站可以发送控制信息,来控制从站,从站不需要发送对网络控制消息的响应消息。 网络管理系统负责初始化、启动及停止网络及网络中的设备…

Canopen协议 (1):网络状态管理(NMT)

工控应用中,常常会遇到一些设备:电机或者其他传感器需要通过Can 这个硬件接口来通信,而且往往通信协议都是走的都是Canopen协议。自己当初搞的时候对协议也是云里雾里,为了大家不走歪路,早日走上人生巅峰,这…

canopen学习总结(一)——NMT网络管理

[1] NMT网络管理 [1-1]概念: NMT到底是啥? 答:简单理解就是由一台主机来管理从机,主机可以控制从机的状态。 那么机器到底有哪些状态呢? 答:看下面这图,总共就这些状态 [1-2]命令&#xff1…

NMT

1)刚开始时,在RNN的基础上引入attention,即将两者结合应用,完整解释并附上完整code。详见下链接: 基于RNNAttention的机器翻译 2)接着,Facebook在CNN的基础上引入attention,参见论…

Neural Machine Translation(NMT)技术概述

在神经网络语言模型处理NLP领域,我做的研究一直都和文本分类相关,其实还有很多其他的应用领域,比方说:语言翻译、词性标注、命名实体识别等。感觉还是有必要了解一下如何用神经网络语言模型对这些应用进行建模的。因此&#xff0c…

NMT with Attention

1.数据准备 termcolor.colered 对输出进行染色,凸显。colored(f"tokenize(hello): ", green) from termcolor import colored import random import numpy as npimport trax from trax import layers as tl from trax.fastmath import numpy as fastnp …

CANopen通信之NMT通信

在介绍NMT通信机制之前,先介绍一下NMT这个通信对象的定义。在以下部分中COB-ID使用的是 CANopen 预定义连接集中已定义的缺省标志符。 1) NMT 模块控制( NMT Module Control) 只有 NMT-Master 节点能够传送 NMT Module Control 报文。 所有从…

NMT:神经网络机器翻译

前言 SMT是在神经网络之前最主流的翻译模式,统计机器翻译;NMT则是基于神经网络的翻译模式,也是当前效果最好的翻译模式。现在基于几篇paper来梳理下神经网络下的翻译模型。 NMT based RNN 1) First End-to-End RNN Trial   2014年&…

神经机器翻译(Neural machine translation, NMT)学习笔记

神经机器翻译(Neural machine translation, NMT)是最近提出的机器翻译方法。与传统的统计机器翻译不同,NMT的目标是建立一个单一的神经网络,可以共同调整以最大化翻译性能。最近提出的用于神经机器翻译的模型经常属于编码器-解码器…

Java本机内存跟踪NMT实战详解

JVM通常会额外分配内存。这些额外的分配,会导致java程序占用的内存,超出-Xmx的限制。让我们使用NMT查看内存的使用情况 NMT 是什么 NMT 是一种 Java Hotspot VM 功能,用于跟踪 HotSpot VM 的内部内存使用情况。您可以使用该jcmd实用程序访问…

fastText模型

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 目标一、fastText的模型架构1. N-gram的理解1.1 bag of word 2. fastTex模型中层次化的softmax2.1 哈夫曼树和哈夫曼编码2.1.1 哈夫曼树的定义2.1.2 哈夫曼树的相关…

fastText Python 教程

诸神缄默不语-个人CSDN博文目录 fastText Python官方GitHub文件夹网址:fastText/python at main facebookresearch/fastText 本文介绍fastText Python包的基本教程,包括安装方式和简单的使用方式。 我看gensim也有对fasttext算法的支持(ht…

玩转Fasttext

Fasttext是Facebook AI Research最近推出的文本分类和词训练工具,其源码已经托管在Github上。Fasttext最大的特点是模型简单,只有一层的隐层以及输出层,因此训练速度非常快,在普通的CPU上可以实现分钟级别的训练,比深度…

FastText详解

词向量对比word2vec https://zhuanlan.zhihu.com/p/75391062 0、实战经验 word2vec vs fastText区别? 思想:将整篇文档的词及n-gram向量叠加平均得到文档向量,然后使用文档向量做softmax多分类。 word2vec vs fastText区别? …

FastText原理

一、简介 fasttext是facebook开源的一个词向量与文本分类工具,在2016年开源,典型应用场景是“带监督的文本分类问题”。提供简单而高效的文本分类和表征学习的方法,性能比肩深度学习而且速度更快。 fastText结合了自然语言处理和机器学习中最…

Fasttext

Fasttext Paper Fasttext特点 模型简单,只有一层的隐层以及输出层,因此训练速度非常快不需要训练词向量,Fasttext自己会训练两个优化:Hierarchical Softmax、N-gram Fasttext模型架构 fastText模型架构和word2vec中的CBOW很相…

[NLP]文本分类之fastText详解

Word2vec, Fasttext, Glove, Elmo, Bert, Flair pre-train Word Embedding 一、fastText简介 fastText是一个快速文本分类算法,与基于神经网络的分类算法相比有两大优点: 1、fastText在保持高精度的情况下加快了训练速度和测试速度 2、fastText不需要预…

FastText:高效的文本分类工具

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…