MX Token 中文站

栏目分类
Aleph.im中文网你的位置:MX Token 中文站 > Aleph.im中文网 >

基于对抗学习的蒙汉神经机器翻译

发布日期:2025-01-04 15:11    点击次数:155

近年来提出的神经网络机器翻译(neural machine translation, NMT)得益于其模型结构, 相比统计机器翻译能够更好的建模长距离依赖关系. 但是自神经网络由Allen等人[1]和Chrisman等人[2]最初尝试机器翻译任务以来, 已经历了很长时间. 由于早期翻译性能较差以及受计算机硬件的限制, NMT方法多年来一直被忽视. 直到2000年以后, 随着DNN (deep neural network, 深度神经网络)等机器学习方法在自然处理领域的逐渐成熟, 以及并行计算能力随着GPU (graphics processing unit, 图形处理器)的广泛应用逐渐提高, 基于DNN的机器翻译方法重新受到研究人员的关注. 2013年, 基于DNN的机器翻译模型训练方法由Kalchbrenner等人[3]提出, 文中编码器(encoder)-解码器(decoder)架构展现出了巨大的应用潜力. 并在随后的几年, Sutskever等人[4]提出了一种以两个循环神经网络(recurrent neural network, RNN)构成的序列到序列(sequence-to-sequence, Seq2Seq)神经网络结构, 用来处理英语到法语的翻译问题, 以解决先前的DNN方法无法处理变长的输入序列、输出序列问题. Cho等人[5,6]提出GRU (gated recurrent unit, 门控循环单元)结构, 并将其应用于机器翻译领域之后取得了不错的效果, 但是他们在实验中发现随着输入句子长度的增加, 使用原始encoder-decoder结构建立的机器翻译模型性能会迅速下降. 为了解决这一问题, Bahdanau等人[7]首次将注意力机制(attention)用到NMT训练中, 作为对encoder-decoder模型的拓展. 每当带注意力机制的机器翻译模型在翻译一个单词的时候, 它会搜索源语言句子中与该单词最相关的上下文信息. 然后, 翻译模型根据与待翻译词最相关的上下文向量, 结合之前翻译出的所有目标语言单词来预测待翻译词对应的译文. 以此为基础, 2015年Luong等人[8]又提出了两种新的attention, 其中一种是始终关注整个源句子的全局(global)方式, 另一种是以节省计算量为目的, 关注部分源句子的局部(local)方式, 分别证明了提出的两种attention在机器翻译任务中的有效性. 虽然此时的NMT模型, 相比于传统统计翻译模型在翻译质量上已经取得了令人满意的成绩. 但是在神经机器翻译对词表的大小有限制, 随着词表的增大, 训练的复杂度以及解码的复杂度都会相应增大. 为此2015年Jean等人[9,10]提出了一种基于重要性采样的方法, 可以在不加大训练复杂度的情况下, 使用非常大的目标词表. 通过选择目标词表的一个较小的子集, 较大目标词表解码的效率也可以有效的提高, 并在WMT14和WMT15的英-德、英-法的任务上取得了最新的进展. 在之后的2016年, 许多研究人员[11-14]通过实验证明了神经机器翻译相比传统的统计机器翻译有更好的表现. 其中最突出的是Junczys等人[13]在超过30个语言对上, 将NMT和SMT进行对比以展现神经机器翻译的强大的性能, 结果显示NMT在27个任务上超过了SMT中性能最好的PBSMT. 从这之后, 谷歌翻译等[15]工业级在线机器翻译系统的翻译内核由NMT模型代替了原有的SMT模型, 该神经网络翻译模型通过在基于循环神经网络上改进的LSTM (long short term memory, 长短时记忆网络)结构[16]的层之间引入残差连接, 以解决深度模型梯度消失的问题, 并将模型编码器-解码器层数堆叠到了8层, 一定程度上缓解了传统机器翻译中的长距离依赖问题, 使得机器翻译的译文准确率得到进一步的提升. 在这之后, 来自Facebook的Gehring等人[17]提出了基于CNN (convolutional neural networks, 卷积神经网络)的编码器—解码器模型, 在机器翻译的译文准确度上超越了谷歌的LSTM机器翻译模型, 并大幅的提升了翻译模型的翻译速度. 尽管基于编码器-解码器的神经机器翻译模型的翻译质量已经有了显著的提高, 但对于低资源语言, 基于NMT模型生成的译文流畅度与准确度仍有优化空间. 为了缓解小语种之间因为平行语料库匮乏导致的机器翻译质量不高的问题, 2014年Goodfellow等人[18]首次提出了生成对抗网络(generative adversarial networks, GAN), 由于图像的连续性该网络首次被提出就是应用在了计算机视觉领域, 随着研究者对其不断地进行更深入的研究, 如今该网络已经成功的延伸到了其他领域, 一些研究[19,20]已经将对抗训练应用在了情感分析、自然语言处理(natural language processing, NLP)等任务中. 2015年Sennrich等人[21]提出了使用单语数据, 通过构造伪平行数据集的方式进行机器翻译模型的训练. 该方法有效的利用了大量的、容易获得的单语数据, 一定程度上缓解了因平行语料稀缺造成的机器翻译质量不高的问题. 2016年刘铁岩等人[22]将对偶学习机制应用在了机器翻译中, 该方法在训练机器翻译模型时, 使用单语数据结合双语数据进行翻译模型的训练, 在平行双语数据匮乏的情况下, 依然得到了较好的翻译模型. 以对偶学习为基础, Yi等人[23]提出了一种Dual-GAN算法用于跨领域图片到图片翻译, 实验表明, Dual-GAN比单个GAN在图像翻译中具有更大的性能优势. 随着使用单语数据训练机器翻译模型的技术逐渐成熟, 机器翻译的研究者们提出了更加大胆的想法. 2017年Wu等人[24]使用对抗训练的方法得到了Adversarial-NMT模型, 该模型是生成对抗网络在机器翻译领域中的首次应用. 该模型的训练有效的结合了生成对抗网络和深度强化学习系列技术, 在翻译质量上超越了现有神经机器翻译模型, 有效的缓解了因平行语料库匮乏及使用最大似然估计训练翻译模型而造成的机器翻译质量不高的问题. 在这基础上, 2018年Yang等人[25]进一步研究了条件序列生成对抗网络对神经机器翻译模型质量的影响, 其思想主要来自于Goodfellow提出的GAN. 即生成器生成难以与人类翻译的句子区分开的语句, 而鉴别器努力将机器生成的句子与人类翻译的句子区分开. 背后的动机是: 虽然无法全面的手动定义标准句子的数据分布, 但能够利用判别网络自动学习标准句子, 因此, 建立了条件序列生成对抗网络来联合训练两个子对抗模型. 同样验证了使用对抗学习进行机器翻译模型训练的方法可以有效的提高译文的自然性、充分性和准确性. 因此, 将对抗学习策略应用在平行语料资源较为匮乏的蒙汉机器翻译中以提升其翻译质量具有非常重要的研究价值. 本文从如何提高蒙汉机器翻译模型质量的角度出发, 将生成对抗网络应用在了蒙汉机器翻译中, 并通过将Dual-GAN算法应用于翻译模型训练过程中, 进一步优化基于对抗学习的蒙汉神经机器翻译模型, 最终有效的提高了蒙汉机器翻译模型的质量. 本文具体的研究内容如下. (1)基于GAN的蒙汉机器翻译 相比于统计机器翻译, 基于编码器-解码器的神经机器翻译模型的翻译效果显而易见, 然而, 端到端神经机器翻译仍然存在着众多问题, 其中之一就是, 在进行模型训练时都采用最大似然估计原理, 即模型可以为当前生成最佳的候选词, 但这从长远来看对整个句子的翻译并不是最佳翻译, 并且保证不了译文的自然性, 充分性以及准确性, 因此本文将生成对抗网络应用在了蒙汉机器翻译中, 研究生成对抗网络对蒙汉机器翻译模型质量的影响. 首先对生成对抗网络机器翻译模型进行重点阐述; 接着介绍可以作为生成对抗网络中生成器的神经机器翻译模型并通过实验来验证Transformer是作为生成器最佳的模型; 与此同时, 介绍可以作为生成对抗网络中鉴别器的神经网络模型并通过实验来验证CNN是作为鉴别器最佳的网络模型, 最后对生成对抗网络的训练原理及训练方法进行介绍, 通过实验验证对抗训练可以有效的提高蒙汉神经机器翻译模型的质量. (2)基于Dual-GAN的蒙汉机器翻译 目前, 小语种之间的机器翻译效果不理想, 最主要的原因之一就是平行语料库严重匮乏, 对偶学习策略就是在平行双语数据集匮乏的条件下, 能够利用单语数据很好的进行模型的训练并且得到质量较高的翻译模型, 因此, 本文在基于生成对抗网络的蒙汉机器翻译模型的基础上, 结合了对偶学习策略进一步蒙汉机器翻译模型. 首先在基于Transformer框架的基础上, 采用对偶学习的训练方法, 并通过实验验证对偶学习的有效性, 在此基础上, 通过结合对抗式训练和对偶学习策略来进一步提高蒙汉翻译模型的质量. 1 GAN模型的使用 本文将基于生成对抗网络的神经机器翻译模型简称为Adversarial-NMT, 其模型结构如图1所示. 图 1 对抗神经机器翻译模型结构 1.1 生成器模型 在生成对抗网络模型中, 生成器和鉴别器是相互对抗又相互协助的模型, 而单独来看, 生成器本身已经是一个完整的机器翻译模型, 只是该模型的性能比较差, 不能够像专家一样做到精准翻译, 可以类似于一个没有通过英语四级的学生, 可以是基于编码器-解码器模型, 也可以是带有注意力机制的编码器-解码器模型. 本文主要通过将带有注意力机制的编码器-解码器模型、编码器-解码器重构模型、基于Transformer的模型3种机器翻译模型分别作为生成对抗网络中的编码器, 通过实验获得这3种模型中质量最好的模型, 作为对抗训练中研究的主要模型. 首先, 将带有注意力机制的编码器-解码器模型作为生成器, 该模型结构简单, 计算复杂度比较小, 但存在一个很大的缺陷, 就是翻译句子时会有较多的过译和漏译现象. 之后, 将基于编码器-解码器重构模型作为生成器, 该模型可以有效的弥补传统的带有注意力机制的编码器-解码器模型的缺陷, 即缓解翻译中的过译和漏译现象, 因此将该模型作为第2种生成器. 本文在原传统编码器-解码器架构基础上加入了重构器, 其模型的架构如图2所示. 图 2 编码器-解码器重构模型 观察图2可以发现, 带有注意力机制的编码器-解码器模型作为了该模型的一个组成部分, 在此模型中, 编码器采用了双向LSTM网络. 首先, 源语言句子经过基于注意力机制的编码器-解码器架构中的编码器会得到隐藏状态 $ \overrightarrow {{h_i}} $ , 然后通过反向LSTM计算出输入语言的后向隐藏状态 $ \overleftarrow {{h_i}} $ , 接着通过连接 $ \overrightarrow {{h_i}} $ 和 $ \overleftarrow {{h_i}} $ 得到整体的隐藏状态 $ {h_i} $ , 最后通过非线性变换 $ q $ 将输入序列的隐藏状态转化为上下文向量 $ {c_i} $ , 该框架中的解码器通常使用单向LSTM网络来实现, i时刻的条件概率如式(1)所示: $ p(y_i |y_{i - 1} ,y_{i - 2} ,\cdots,y_1 ,{{X}}) = g(s_i ,y_{i - 1} ,c_i ) $ (1) 此时, 源语言句子已经翻译成了目标语言句子, 但由于在解码过程中对解码器没有添加约束, 所以会导致有些词被解码器解了码, 而有一些词没有解码, 使翻译结果与真实的翻译产生了差异. 因此, 本文通过添加重构器, 再将目标语言翻译成源语言句子, 以一种自我约束的方式较少翻译过程中过多翻译和漏译的现象. 其中, j时刻重构器重构出源语言句子中词的条件概率如式(2)所示: $ R({{X}}|s) = \prod\limits_{j = 1}^J {R({x_j}|x < j,s)} = \prod\limits_{j = 1}^J {{g_r}(x_{i - 1} ,{\hat h }_j ,{\hat c }_j )} $ (2) 其中, $ {\hat c _j} $ 表示反上下文向量, 计算方法如式(3)所示: $ {{\hat c_j}} = \sum\limits_i^I {{\hat \alpha {}_{ji}} } {s_j} $ (3) 其中, 重构器中隐藏状态的计算如式(4)所示: $ {\hat h _j} = {f_r}({x_{j - 1}},{\hat h _{j - 1}},{\hat c _j}) $ (4) 最后将基于Transformer的机器翻译模型作为第3种生成器, 该模型完全基于注意力机制, 模型中没有任何循环神经网络、卷积神经网络这样的网络结构. 1.2 鉴别器模型 鉴别器是生成对抗网络中起监督作用的网络, 用源语言句子、生成器生成的目标语言句子以及人工翻译的目标语言句子进行训练后, 就可以区分出哪些句子是生成器翻译的, 哪些句子是人工翻译的, 在本文中也就是给蒙古语比较差的学生翻译的蒙古语句子进行打分, 可以使用循环神经网络、卷积神经网络等, 本文使用卷积神经网络作为鉴别器. 在分类器中将CNN网络作为特征提取是因为CNN网络在提取图像特征时具有平移不变性, 可以很好地捕捉到图像的空间特征, 这也让CNN在处理图像问题时拥有强大的特征表达能力, 卷积神经网络的结构图如图3所示. 图 3 卷积神经网络 由图3可得, 卷积神经网络结构主要由卷积层和池化层两部分组成, 卷积层主要负责对特征图做卷积操作, 池化层主要对特征图像做池化操作. 原始特征图输入CNN网络后经过不断地卷积和池化处理可以将简单浅层特征不断地抽象为高级深度特征. 这些高级特征可以用于复杂的模式识别任务, 例如图像分类、语音识别等. 当CNN作为鉴别器时, 基于CNN的鉴别器的图形说明如图4所示. 由于生成器生成的句子的长度本身是可变的, 因此首先需要通过填充将输入的句子转换为固定长度T的序列, T是预先设定好的输入句子序列的最大长度. 给定源语言句子 ${x_1}, \cdots ,{x_T}$ 和目标语言句子 $ y_1 ,\cdots, $ $ y_T $ , 我们建立源矩阵 ${X_{1:T}}$ 和目标矩阵 ${Y_{1:T}}$ , 计算分别为式(5)和式(6)所示: $ {X_{1:T}} = {x_1};{x_2}; \cdots ;{x_T} $ (5) $ {Y_{1:T}} = {y_1};{y_2}; \cdots ;{y_T} $ (6) 其中, $ {x_i},{y_i} \in R^k $ 是k维单词嵌入, 分号为连接运算符. 对于源矩阵 ${X_{1:T}}$ , 使用卷积核 $ {w_j} \in {R^{l \times k}} $ , 窗口大小为l个词的卷积运算产生一系列特征图, 运算如式(7): $ {c_{ij}}{\text{ = }}\rho (BN(w_j \otimes X_{i:i + l - 1} + b)) $ (7) 其中, $ \otimes $ 运算符为按元素产生和, b为偏置, $\rho $ 为非线性激活函数ReLU. BP表示批标准化. 为了得到最终的特征, 在特征图中进行核为 $ {w_j} $ 的最大池化操作, 如式(8)所示: $ \widetilde {{c_j}}{\text{ = }}\max \{ {c_{{j_1}}}, \cdots ,{c_{{j_{T - 1 + 1}}}}\} $ (8) 分别使用不同大小的卷积核和变化的窗口获取不同的特征, 最终通过连接形成源语言句子的向量表示 ${c_x}$ , 同样的方法通过目标矩阵 ${Y_{1:T}}$ 计算出目标语言句子的向量表示 $ c_y $ , 最后, 给定源语言句子, 目标语言句子为真实句子的概率计算如式(9)所示: $ p = \delta ({V[c}_x ;c_y ]) $ (9) 图 4 基于CNN的鉴别器 2 对抗训练 2.1 对抗训练过程 以什么样的顺序进行对抗训练是一个非常关键的问题, 假如先训练生成器, 那么生成器生成的数据就稍微接近真实的数据一点, 而此时鉴别器性能特别差, 根本不认识什么是真实数据, 此时很有可能给出错误的判别, 而生成器就会根据一个错误的反馈去优化自己的模型, 这样生成器的性能只会越来越差. 因此, 生成对抗网络模型的训练过程如图5所示. 图5中有4幅子图, 均有粗虚线, 细虚线和实线, 分别代表: 真实数据的分布、判别器的衡量标准以及生成器生成的数据的分布情况. 图5(a)为模型经过预训练后的状态, 也就是对抗训练的初始状态, 此时鉴别器没有统一的衡量标准, 线条波动比较大, 生成器生成的数据与真实数据分布差距比较大. 接下来模型的训练步骤如下. 图 5 GAN模型的训练过程 (1)首先训练鉴别器模型, 使鉴别器有一个比较稳定的衡量标准. (2)经过对鉴别器的训练, 此时鉴别器已经有了比较稳定的标准, 如图5(b)所示, 接下来对生成器进行训练, 经过训练的生成器生成的数据与真实数据的差距变小了, 如图5(c)所示. (3)步骤(1)和步骤(2)循环进行, 直到鉴别器认为生成器生成的数据与真实的数据非常相似, 然后停止训练, 如图5(d)所示, 此时鉴别器的衡量标准非常稳定, 生成器生成的数据与真实的数据非常相似. 2.2 对抗训练算法 生成对抗网络模型结构比较简单, 但如何进行参数训练却是一个难题. 在训练生成对抗网络时, 不能通过反向求导的方式把误差信号从鉴别器直接传递到生成器上, 原因是, 句子不像图像, 其本身就是离散的. 因此, 本文在进行完生成器和鉴别器模型的预训练之后通过策略梯度算法进行对抗训练, 保证在训练过程中生成器模型和鉴别器模型的参数都能够得到很好的优化. 使用生成器模型G和鉴别器模型D表示法, 得到模型的最终训练目标如式(10)所示: $ \begin{split} \mathop {\min }\limits_G \mathop {\max }\limits_D V(D,G) =& E_{(x,y)\sim P_{\rm {data}(x,y)} } [\log D(x,y)] \\ & + E_{x\sim P_{{\rm {data}}(x),} y'\sim G( \cdot |x)} [\log (1 - D(x,y')] \\ =& \iint\limits_{x,y} {P_{\rm{data}}(x,y)\log (D(x,y))}dxdy \\ & + \iint\limits_{x,{y'}} {G({y'}|x)[\log (1 - D(x,{y'}))]dxd{y'}} \\ \end{split} $ (10) 其中, $ V(D,G) $ 表示生成器模型G和鉴别器D的损失函数,E表示期望, $P_{\rm{data}}(x,y)$ 表示将平行语料库中的源语言句子x和目标语言句子y输入到鉴别器D中, 鉴别器认为其为人工翻译的概率, $ G(y',x) $ 表示将平行语料库中的源语言句子x和由G生成的目标语言句子y输入到鉴别器中, 鉴别器认为其为人工翻译的概率. 翻译模型G的目标是尽力生成质量较高的目标语言句子y去欺骗鉴别器D, 而鉴别器的目标是成功区分出生成器翻译的句子和真实的句子. 由式(9)可知, 训练D的方法非常简单, 即一直向D提供来自真实的语言对 $ (x,y) $ 和采样翻译对 $ (x,y') $ , 可以将 $ (x,y) $ 称为积极数据, $ (x,y') $ 称为消极数据. 然而, 当训练NMT模型G时, 设计训练过程就比较复杂了, 因为由G产生的 $y'$ 是离散的, 使得D到G的误差信号很难直接反向传播, 致使 $ V(D,G) $ 不可微G的模型参数 $ {\Theta _G} $ . 为了解决这个问题, 本文使用了强化学习中的蒙特卡罗策略梯度下降算法来优化模型G. 需要注意的是, 在固定源语言句子和D下, 训练G的目的是尽量减小式(11)所示的损失值: $ L = E_{y'\sim G( \cdot |x)} \log (1 - D(x,y')) $ (11) 其中, L相对于 $ \Theta _G $ 的梯度计算如式(12)所示: $ \begin{split} {\nabla _{\Theta _G }}L& = {\nabla _{\Theta _G }}E_{y'\sim G( \cdot |x)} \log (1 - D(x,y')) \\ &= E_{y'\sim G( \cdot |x)} [\log (1 - D(x,y')){\nabla _{\Theta _G }}\log G(y'|x)] \\ \end{split} $ (12) 其中, 来自 $ G( \cdot |x) $ 的样本 $y'$ 用于近似上述梯度, 式(11)可以化简为式(13): $ {\nabla _{{\Theta _G}}} \approx {\hat \nabla _{{\Theta _G}}}{\text{ = }}\log (1 - D(x,y')){\nabla _{{\Theta _G}}}\log G(y'|x) $ (13) 其中, $ {\nabla _{{\Theta _G}}}\log G\left( {\left. {y'} \right|x} \right) $ 是用神经机器翻译网络指定的梯度, 这个近似梯度用来更新 ${\Theta _G}$ , 如式(14)所示: $ {\Theta _G} \approx {\Theta _G} - \alpha {\hat \nabla _{{\Theta _G}}} $ (14) 其中, $ \alpha $ 表示学习率. 在上述式(11)–式(13)中, NMT模型 $ G( \cdot |x) $ 是面对源语言句子x的条件策略, 而鉴别器D提供的 $ - \log (1 - D(x,y')) $ 充当奖励的蒙特卡罗估算. $ y' $ 成功欺骗鉴别器D的可能性越大, 即 $ D(x,y') $ 越大, NMT模型获得的奖励越大, 并且“伪”训练数据 $ (x,y') $ 相应的也会更多, 有助于提高策略 $ G( \cdot |x) $ . 2.3 基于生成对抗网络的蒙汉神经机器翻译生成器 本文使用3种神经机器翻译模型预训练生成器, 分别为Google-NMT、在编码器-解码器结构中加入重构器的Reconstructor-NMT以及谷歌提出的Transformer架构, 实验数据使用内蒙古工业大学人工智能与模式识别实验室提供的515000句对蒙汉平行语料, 其中10000句作为验证集, 5 000句作为测试集, 对训练所得到的模型在测试集上的BLEU值进行统计, 结果如表1. 表 1 生成器实验结果对比 由表1可知, 当使用相同的数据集时, 相比于Google-NMT模型, Reconstructor-NMT模型在测试集上的BLEU值有一定的提升, 而Transformer模型的BLEU值远远高于前两个模型. 因此, 后续对抗训练中, 使用50万句的蒙汉训练集来训练Transformer框架作为生成器. 2.4 基于生成对抗网络的蒙汉神经机器翻译鉴别器 本文使用上述训练结果最好的基于Transformer框架训练的生成器, 使用50万句蒙汉平行语料和50万句由生成器生成的伪平行语料, 分别结合卷积神经网络、长短时记忆网络作为鉴别器进行对抗训练, 之后对训练得到的蒙汉神经机器翻译模型在测试集上的BLEU值进行了评估, 结果如图6所示. 观察图6可知, 当LSTM作为鉴别器时, 经过对抗训练后的Transformer翻译模型在测试集上的BLEU值均随着训练的进行出现大幅度下降, 而使用CNN作为鉴别器时, Transformer翻译模型在测试集上的BLEU值总体呈上升状态. 实验结果证明CNN相比LSTM更适合作为基于对抗学习的蒙汉神经翻译模型的鉴别器. 图 6 不同网络作为鉴别器时翻译模型BLEU值的变化趋势 当鉴别器使用CNN时, 本文进一步分别对3种生成器经过对抗训练之后的蒙汉翻译模型在测试集上的BLEU值进行了统计, 针对不同的模型类型, 统计结果如表2所示. 表 2 对抗训练前后BLEU值的对比 由表2可以看出, 无论哪个网络作为生成器, 经过对抗训练之后的模型在测试集上的BLEU值总是优于对抗训练之前的模型, 且使用Transformer作为生成器时, 得到的最终的翻译模型在测试集上的BLEU值最高. 3 对偶生成对抗网络(Dual-GAN) 生成对抗网络可以有效的提高传统机器翻译模型中存在的翻译不自然, 不充分等的现象, 然而对于属于小语种的蒙古语, 其和汉语之间的平行语料非常匮乏, 且基于生成对抗网络的蒙汉机器翻译算法严重依赖平行语料库的规模. 对偶学习在训练机器翻译模型时, 使用单语数据结合双语数据的模式, 在平行双语数据匮乏的情况下, 依然能够得到较好的翻译模型, 因此本章使用Dual-GAN算法, 在使用GAN的条件下加入对偶学习策略来进一步提高蒙汉机器翻译模型的质量, 最终实现基于Dual-GAN的蒙汉机器翻译系统. 3.1 传统对偶学习 谈到对偶学习, 可以从一个翻译游戏开始讲起, 这个游戏中有两个玩家分别为x和y, 如图7所示. 图 7 对偶学习原理图 左边为x, 只会讲蒙古文, 右边为y, 只会讲中文, 他们希望提高他们两个人之间的蒙汉和汉蒙机器翻译模型, 给定一个蒙古文句子 ${{a}}$ , x首先通过蒙汉机器翻译模型将其翻译为中文句子b, 然后把这个中文句子发送给y, 因为没有标注, 所以y并不清楚正确的翻译是什么, 但是因为y懂中文, 所以能够判别这个句子b是不是符合中文语法, 是不是符合中文的语言模型, 这些信息对y判别蒙汉机器翻译模型的好坏有很大的帮助, 判断完之后, y会把中文句子b通过汉蒙机器翻译模型翻译成蒙古文句子 ${{a}}'$ , 并发送给x, x通过对比 $ {{a}} $ 和 $ {{a}}' $ 的相似度就可以知道蒙汉机器翻译模型和汉蒙机器翻译模型的好坏. 因此本文通过这样的一个对偶游戏, 使用无标注的数据来提高蒙汉神经机器翻译模型的质量. 3.2 对偶学习机器翻译算法 语言A的单语集合用 ${D_A}$ 表示, 语言B的单语集合用 ${D_B}$ 表示, 其中, ${D_A}$ 和 ${D_B}$ 并不需要相互平行, 可以是完全不平行, 假如目前我们已经有可以将A语言翻译成B语言的模型, 也有将B语言翻译成A语言的模型, 只是这两个模型比较弱, 接下来我们的目标是, 使用单语数据来提高这两个比较弱的翻译模型的准确率. 假设 ${D_A}$ 包含 ${N_A}$ 个句子, ${D_B}$ 包含 ${N_B}$ 个句子, $ P( \cdot |s;\Theta _{AB} ) $ 和 $ P( \cdot |s;\Theta _{BA} ) $ 分别表示A到B的翻译模型和B到A的翻译模型, 其中, ${\Theta _{AB}}$ 和 ${\Theta _{BA}}$ 分别是这两个翻译模型中的参数. 假设我们已经有了两个已经训练好的语言模型 $ L{M_A}( \cdot ) $ 和 $ L{M_B}( \cdot ) $ , 输入一个句子给语言模型, 会输出一个真值, 这个值用来表示这个句子是否为一个自然、正确的句子, 只是来判断一个句子的语法是否正确、句子是否通顺, 并不用来翻译句子. 这两个语言模型可以分别用数据集 ${D_A}$ 和 ${D_B}$ 来训练. 对于数据集 ${D_A}$ 中以句子 $ s $ 开头的游戏, 用 ${s_{\rm{mid}}}$ 表示翻译的中间输出, 此中间步骤具有立即奖励 ${r_1} = $ $ {LM}_B ({s_{\rm{mid}}})$ , 该奖励指输出句子在语言B中的自然程度. 在给定翻译的中间输出 ${s_{\rm{mid}}}$ 的条件下, 使用从 ${s_{\rm{mid}}}$ 中恢复的 $ s $ 的对数概率作为通信的奖励, 用数学语言表示为 $r_2 = \log P(s|{s_{\rm{mid}}};{\Theta _{BA}})$ . 简单的采用LM奖励和通信奖励的线性组合作为总奖励, 例如: $ r = \alpha r_1 + (1 - \alpha )r_2 $ , 其中 $ \alpha $ 是一个超参数. 因为游戏的奖励可以看作是 $ s $ 、 ${s_{\rm{mid}}}$ 和翻译模型中参数 ${\Theta _{AB}}$ 与 ${\Theta _{BA}}$ 的函数, 可以通过策略梯度方法优化翻译模型中的参数以实现奖励的最大化. 本文首先根据翻译模型 $ P( \cdot |s;\Theta _{AB} ) $ 采样, 然后根据参数 ${\Theta _{AB}}$ 和 ${\Theta _{BA}}$ 计算期望奖励 $ E[r] $ 的梯度, 计算方法如式(15)和式(16)所示. $ \nabla _{{\Theta _{BA}}} E[r] = E[(1 - \alpha )\nabla _{{\Theta _{BA}}} \log P(s|{s_{\rm{mid}}};{\Theta _{BA}})] $ (15) $ \nabla _{{\Theta _{AB}}} E[r] = E[r\nabla _{{\Theta _{AB}}} \log P({s_{\rm{mid}}}|s;{\Theta _{AB}})] $ (16) 3.3 基于Dual-GAN的蒙汉神经机器翻译 本节实验使用与第2节同样的50万句对蒙汉平行数据集, 同时加入20万句蒙语单语语料以及20万句汉语单语语料用于对本文对抗模型进行对偶训练. 本文将对抗训练所得模型作为本节实验的基线模型, 通过对比单独使用对抗学习策略、单独使用对偶学习策略以及结合对偶和对抗学习策略3种方法训练所得的蒙古语到汉语的翻译模型翻译的汉语句子的BLEU值, 从而验证Dual-GAN算法的有效性, 其中, 翻译模型均使用Transformer进行训练, 表3展示了上述3种模型在相同测试集上的BLEU值, 其中, 其中, GAN表示单独使用生成对抗网络所得模型在测试集上的BLEU值, Dual表示在Transformer的基础上只使用对偶学习策略训练所得的模型在测试集上的BLEU值, Dual-GAN表示使用对偶学习策略训练生成对抗网络所得模型在测试集上的BLEU值. 表 3 3种模型BLEU值的对比 观察表3中的BLEU值可以发现, 基于对偶学习的蒙汉翻译模型(Dual)所对应的BLEU值比基于对抗学习的蒙汉翻译模型(GAN)对应的BLEU值明显要高, 可见加入一定的蒙汉单语语料进行对偶训练对蒙汉机器翻译模型的质量具有积极的作用. 使用对偶策略训练生成对抗网络所得蒙汉翻译模型(Dual-GAN)的BLEU值最高, 证明对偶学习可以提高基于GAN的蒙汉机器翻译模型的质量. 表4展示了分别通过上述3种翻译模型(GAN、Dual、Dual-GAN)将蒙古语翻译成汉语句子的效果. 表 4 3种模型的翻译效果对比 由表4可得, 3种模型翻译所得的汉语句子均已经能够表达句子的基本含义, 但最后一种模型翻译得到的汉语句子更加自然、准确. 综上所述, Dual-GAN算法可以在一定程度上提高蒙汉神经机器翻译模型的翻译质量. 4 结论 本文从如何提高蒙汉机器翻译模型质量的角度出发, 研究基于对抗学习方法提高蒙汉神经机器翻译模型的质量. 本文首先通过将不同神经机器翻译框架(Google-NMT, Reconstructor-NMT, Transformer模型)作为生成器, 选择出了Transformer是更适合生成器的框架. 之后分别将LSTM 与CNN作为鉴别器, 以实验的方式验证了只有CNN做鉴别器时, 对抗训练可以有效的提高蒙汉机器翻译模型的质量, 且通过对比实验结果, 发现在CNN做鉴别器的条件下, 无论生成器用Google-NMT、Reconstructor-NMT还是Transformer框架, 经对抗训练后模型的BLEU值总是高于原模型的BLEU值, 证明了基于对抗方法训练蒙汉神经机器翻译模型的有效性. 最后, 本文将Dual-GAN算法引入蒙汉神经机器翻译模型的训练中, 以进一步优化蒙汉神经机器翻译模型质量. 实验结果表明, 使用Dual-GAN算法得到的蒙汉机器翻译模型译文BLEU值, 相比仅使用GAN或对偶学习得到翻译模型译文BLEU值有一定的提升, 且译文的质量也有明显提升. 综上, 本文通过研究性能更强的对抗学习框架训练蒙汉翻译模型, 并结合对偶训练方法对翻译模型进行优化, 有效的提高了蒙汉机器翻译模型的质量. 由于训练生成对抗网络需要比较多的计算资源以及存储空间, 对硬件资源要求比较高. 因此, 本文接下来的工作可以从进一步简化以及优化模型的角度出发, 研究出更加高效的蒙汉机器翻译算法.

Powered by MX Token 中文站 @2013-2022 RSS地图 HTML地图

Copyright Powered by站群系统 © 2013-2024