(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. C# WebClient 的文件上传下载

    上传文件 string path = openFileDialog1.FileName; WebClient wc = new WebClient(); wc.Credentials = Creden ...

  2. mysql5.7备份

    一.备份准备&备份测试 1.备份目录准备 #mysql专用目录 mkdir /mysql #mysql备份目录 mkdir /mysql/backup #mysql备份脚本 mkdir /my ...

  3. BZOJ 2346: [Baltic 2011]Lamp Dijkstra

    不难发现如果一个边的方向改变,就一定不会改回来(这样肯定不是最短路). 所以就直接建双向边,边权为 $0$ 代表不改变,边权为 $1$ 代表改变,跑一个最短路即可. #include <bits ...

  4. more/less

    more less

  5. C#字符串和值转换 以及万能转换

    2.使用万能转换器进行不同类型转换 Convert.ToXxx(object value) int  iRet = Convert.ToInt32("201"); float fR ...

  6. Postman使用tv4进行JSON Schema结构验证和断言

    JSON Scheme简介 对于JSON格式的请求数据或者响应数据,在不同的数据和场景下往往会有一部分动态的值及字段.此时我们可以使用JSON Scheme Validator(JSON结构验证)来验 ...

  7. java虚拟机JVM

    Java Virtual Machine ,简称JVM; 它是运行所有Java程序的抽象计算机,是Java语言的运行环境,它是Java 最具吸引力的特性之一,JVM读取并处理编译过的与平台无关的字节码 ...

  8. 定义了char**p,为什么能用p[i][j]的形式?p又不是二维数组?

    char **p;p[i][j]相当于*(*(p+i)+j) https://www.zhihu.com/question/63717863

  9. easyExcel简介#

    摘自:https://www.cnblogs.com/54chensongxia/p/11990312.html easyExcel简介# Java领域解析.生成Excel比较有名的框架有Apache ...

  10. 怎样用linux命令知道系统是ubuntu还是redhat或者其它的系统?

    1.第一种方法:# lsb_release -aLSB Version:    :core-4.0-ia32:core-4.0-noarch:graphics-4.0-ia32:graphics-4. ...