(1)用对抗性的源实例攻击翻译模型;

(2)使用对抗性目标输入来保护翻译模型,提高其对对抗性源输入的鲁棒性。

生成对抗输入:基于梯度 (平均损失)  ->  AdvGen

我们的工作处理由白盒NMT模型联合生成的扰动样本  ->  知道受攻击模型的参数

ADVGEN包括encoding, decoding:

(1)通过生成对训练损失敏感的对抗性源输入来攻击NMT模型;

(2)用对抗性目标输入对NMT模型进行了防御,目的是降低相应对抗性源输入的预测误差。

贡献:

1. 研究了一种用于生成反例的白盒方法。我们的方法是一种基于梯度的方法,以平移损失为指导。

2. 我们提出了一种新的方法来提高具有双重对抗输入的NMT的鲁棒性。编码器中的对抗性输入旨在攻击NMT模型,而解码器中的对抗性输入能够防御预测中的错误

3.我们的方法在两个常见的转换基准上实现了对以前最先进的Transformer模型的显著改进。

包括Transformer在内的最先进的模型相比,提高了2.8和1.6的BLEU点。这个结果证实了我们的模型在干净的基准数据集上提高了泛化性能。进一步的噪声文本实验验证了该方法提高鲁棒性的能力。我们还进行消融研究,以进一步了解我们的方法的哪些部分最重要。

背景


解码器生成的y:

对抗样本:

方法

ATTACK

我们的目标是学习健壮的NMT模型,可以克服输入句中的小扰动。即使是一个单词的变化也可以被感知。NMT是一个序列生成模型,其中每个输出字都有对之前所有预测的限制。因此,一个问题是如何为NMT设计有意义的操作。

 

sim  相似度计算函数(向量的余弦距离);gxi 梯度;Vx源语言词典

Plm 双向语言模型;Q xi x  句子x中i-th词的似然函数;Vxi top_n  < Vx

Dpos是位置{1,...,|x|}上的一个分布(抽取的对抗词)。

对于源函数,我们使用简单的均匀分布U。根据约束R,我们希望输出句与输入句之间不要有太大的偏离,从而只根据超参数改变其组成词的一小部分:

DEFENSE

z是decoder的input

Qtrg是选择目标词候选集Vz的可能性。为了计算它,我们将NMT模型预测与语言模型相结合:

Mij 是attention的分数 目的是找最相似的词 后面那个是指示函数 不相等的时候=1

训练

对x’ 和 z'  调用ADVGEN两次。在更新参数时,我们没有将梯度反向传播到AdvGen上,只是起到了数据生成器的作用。在我们的实现中,与标准的Transformer模型相比,该函数最多产生20%的时间开销。

计算了S上的鲁棒性损失:

最后的训练目标中的L:

:源和目标双向语言模型的参数

 &  分别share word embeddings

实验

我们对汉英和英德翻译任务进行了实验。汉英训练集来自最不发达国家语料库,包含120万对句子。我们使用NIST 2006数据集作为模型选择和超参数调优的验证集,并使用NIST 2002、2003、2004、2005、2008作为测试集。在英德翻译任务中,我们使用了由450万对句子组成的WMT 14语料库。验证集是newstest2013,测试集是newstest2014。

在这两个翻译任务中,我们合并了源和目标训练集,并使用字节对编码(BPE) (Sennrich et al., 2016c)通过子单词单元编码单词。构建了一个包含32K个子单词的英德共享词汇库,创建了包含60K个操作的汉英共享BPE代码,归纳出包含46K个中文子单词和30000个英文子单词的两个单词。我们报告了英语-德语的区分大小写标记的蓝色分数和汉语-的区分大小写标记的蓝色分数英语(Papineni et al., 2002)。为了进行公平的比较,我们没有对多个检查点进行平均(Vaswani et al., 2017),并且只在单一收敛模型上报告结果。

实验用的是双向Transformer模型 + a linaer layer to combine + a softmax layer to make predictions.

通过grid search来调整在验证集参数

我们将并行语料库的单个部分作为单语数据,在不引入额外数据的情况下训练双向语言模型。我们方法中的模型参数是从零开始训练的,除了语言模型中的参数是由在并行语料库的单个部分上预先训练的模型初始化的。在鲁棒性训练过程中,对语言模型的参数进行了更新。

主要结果

手动添加noisy data:

手动选出clean 样本的结果:

防御方法:curriculum  learning?

论文阅读 | Robust Neural Machine Translation with Doubly Adversarial Inputs的更多相关文章

  1. 对Neural Machine Translation by Jointly Learning to Align and Translate论文的详解

    读论文 Neural Machine Translation by Jointly Learning to Align and Translate 这个论文是在NLP中第一个使用attention机制 ...

  2. 神经机器翻译 - NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE

    论文:NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE 综述 背景及问题 背景: 翻译: 翻译模型学习条件分布 ...

  3. 课程五(Sequence Models),第三周(Sequence models & Attention mechanism) —— 1.Programming assignments:Neural Machine Translation with Attention

    Neural Machine Translation Welcome to your first programming assignment for this week! You will buil ...

  4. Effective Approaches to Attention-based Neural Machine Translation(Global和Local attention)

    这篇论文主要是提出了Global attention 和 Local attention 这个论文有一个译文,不过我没细看 Effective Approaches to Attention-base ...

  5. 【转载 | 翻译】Visualizing A Neural Machine Translation Model(神经机器翻译模型NMT的可视化)

    转载并翻译Jay Alammar的一篇博文:Visualizing A Neural Machine Translation Model (Mechanics of Seq2seq Models Wi ...

  6. On Using Very Large Target Vocabulary for Neural Machine Translation Candidate Sampling Sampled Softmax

    [softmax分类器的加速器] https://www.tensorflow.org/api_docs/python/tf/nn/sampled_softmax_loss This is a fas ...

  7. Sequence Models Week 3 Neural Machine Translation

    Neural Machine Translation Welcome to your first programming assignment for this week! You will buil ...

  8. [笔记] encoder-decoder NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE

    原文地址 :[1409.0473] Neural Machine Translation by Jointly Learning to Align and Translate (arxiv.org) ...

  9. 【论文阅读】Diverse Image-to-Image Translation via Disentangled Representations(ECCV2018 oral)

    目录 相关链接 方法亮点 相关工作 方法细节 实验结果 总结与收获 参考文献 相关链接: 论文:https://arxiv.org/abs/1808.00948 代码:https://github.c ...

随机推荐

  1. Educational Codeforces Round 33 (Rated for Div. 2) A题

    A. Chess For Three Alex, Bob and Carl will soon participate in a team chess tournament. Since they a ...

  2. which/whereis

    which 查找二进制命令,按环境变量PATH路径查找 whereis 查找二进制命令,按环境变量PATH路径查找 查询命令的安装路径,配置文件路径

  3. vue-quill-editor的用法

    1. main.js引入vue-quill-editor import VueQuillEditor from 'vue-quill-editor' import 'quill/dist/quill. ...

  4. 小米oj 有多少个等差数列(动态规划)

     有多少个等差数列? 序号:#20难度:困难时间限制:500ms内存限制:10M 描述 等差数列是常见数列的一种,如果一个数列从第二项起,每一项与它的前一项的差等于同一个常数,这个数列就叫做等差数列, ...

  5. python利用pybind11调用PCL点云库

    2019年7月9日14:31:13 完成了一个简单的小例子,python生成点云数据,利用pybind11传给PCL显示. ubuntu 16.04 + Anaconda3  python3.6 + ...

  6. Python基础之基本数据类型的总结

    基本数据类型的总结 1. 按照存储空间的占用分(从低到高) 数字 字符串 集合:无序,即无序存索引相关信息 元组:有序,需要存索引相关信息,不可变 列表:有序,需要存索引相关信息,可变,需要处理数据的 ...

  7. Ioc容器与laravel服务容器初探

    一.Ioc容器 某天,小J心血来潮,决定建造一艘星舰,这艘星舰要搭载"与众不同最时尚,开火肯定棒"的电磁炮.于是他写了一个星舰类: class ElectromagneticGun ...

  8. Linux网络编程五、套接字超时

    1.accept超时 accept等待并接受连接请求的过程是阻塞的,可以通过IO转接来设置等待一定的时长,如果超时没有连接,就让这个函数返回,让当前进程/线程处理别的任务. 例: // 最大的文件描述 ...

  9. 子类中执行父类的方法(引出super()与mro列表)

    1. 我们先想一下在python中如果子类方法中想执行父类的方法,有什么方式?大概有三种: Parent.__init__(self, name) # 通过父类的名字,指定调用父类的方法 super( ...

  10. Activity中使用PagerAdapter实现切换代码

    主活动 public class ViewPagerManager extends AppCompatActivity { private ViewPager viewPager; @Override ...