论文信息
ACL2018 来自腾讯
提出背景
在神经机器翻译中,由于引入了循环神经网络和注意力机制,上下文中的每个词都可能影响模型的全局输出结果,类似于蝴蝶效应。
比如说,同声传译里面的同音异形词;文本中的拼写错误
输入的小的扰动会影响神经机器翻译的质量,在这篇文章中提出了利用对抗训练来提高NMT模型的robustness的方法。
具体方法
该方法的架构示意图如下图所示:
其工作过程为:给定一个输入句子 x,首先生成与其对应的扰动输入 x’,接着采用对抗训练,让编码器对于 x 和 x’ 生成相似的中间表示,同时要求解码器端输出相同的目标句子 y。这样能使得输入中的微小扰动不会导致目标输出产生较大差异。
对于翻译过程来说,有两个阶段:首先把输入x编码成隐藏状态HxH_xHx,然后从隐藏状态HxH_xHx中解码得到翻译y。
模型有两个目标:
(1)编码得到的Hx′H_{x'}Hx′和HxH_{x}Hx相近。
(2)给定Hx′H_{x'}Hx′,解码器可以输出robust翻译y。
训练的目标函数
J(θ)=∑<x,y>∈S(Ltrue(x,y;θenc,θdec)+α∑x′∈N(x)Linv(x,x′;θenc,θdec)+β∑x′∈N(x)Lnoisy(x,y;θenc,θdec))J(\theta)=\sum\limits_{<x,y>\in S}(L_{true}(x,y;\theta_{enc},\theta_{dec})+ \alpha \sum\limits_{x'\in N(x)}{L_{inv}(x,x';\theta_{enc},\theta_{dec}}) +\beta \sum\limits_{x'\in N(x)}{L_{noisy}(x,y;\theta_{enc},\theta_{dec}) })J(