机器翻译

本课程将全面解读Google最新发布的机器翻译系统GNMT,包括编码-解码器系统、注意力机制、残差网络(课时:105 分钟)

自然语言处理 深度学习 机器翻译 注意力机制 残差网络 编码解码器

讲师:   李嫣然


课程背景

近年来,机器翻译有了长足的进步,这是自然语言处理与人工智能的一次重大飞跃。Google的神经翻译机器(Google Neural Machine Translation,简称GNMT)在很多语言上的翻译表现已经接近了人类翻译的水平。本次课程就是介绍Google的GNMT的主要原理和相关技术。

课程目的

学完本课程,你能做到

  • 了解机器翻译的历史与基本原理

  • 熟悉流行的编码-解码框架

  • 熟悉机器翻译中常用的注意力机制、残差网络

  • 了解能够提升翻译效果的特殊的辅助机制

课程详情

在本讲解中,我们从如下方面介绍了机器翻译技术:

  • 机器翻译的技术背景与最新进展

  • 编码-解码框架

  • 注意力机制

  • 残差网络

  • 特殊的辅助机制

  • 机器翻译的最新进展


课程笔记:


机器翻译课堂笔记


  • 作者:Jake


一、背景

近年来,机器翻译有了长足的进步,这是自然语言处理与人工智能的一次重大飞跃。Google的神经翻译机器(Google Neural Machine Translation,简称GNMT)在很多语言上的翻译表现已经接近了人类翻译的水平。本次课程就是介绍Google的GNMT的主要原理和相关技术。


所谓的机器翻译可以看作是如下这张图:


blob.png

我们的翻译机器就是其中带有问号的黑箱,它的作用就是能够将一个语言的序列(如Economic growth has slowed down in recent years)转化成目标语言序列(如La croissance economique sest ralentie ces dernieres annees)。其中翻译机器在正式工作之前可以利用已有的语料库(Corpora)来进行学习和训练。


所谓的神经网络机器翻译就是利用神经网络来实现上述的黑箱翻译机器。基于神经网络的很多技术都是从Bengio的那篇开创性论文(一种神经网络的语言模型)衍生出来的。它的架构如下图所示:


blob.png

其中,我们用一个神经网络替换了上图中的黑箱。在神经网络中存在着大量的链接权重,这些权重就是我们要通过数据训练、学习的参数。训练好的神经网络可以将输入的源语言转换为输出的目标语言。我们要让神经网络学习的目标就是要能准确的翻译。这里的准确是指机器生成的语句是比较符合我们人类的说话习惯的。这里的log p(f|e)就是指给定源语言后机器所产生的语言f的概率,我们希望这个概率对于实际的数据来说越大越好,这就是所谓的语言模型。


基于神经网络的机器翻译模型的一个最大的优点就在于它不需要我们用复杂的特征工程去设计其过程中的环节,也就是所谓的End2End(端到端)的模型。这种模型设计还可以避免中间环节的误差累计。


最近几年神经机器翻译的准确度就一直在提高,尤其是到2016年Google的GNMT的大突破。GNMT主要涉及的技术包括:


  • 编码解码框架(2014年中期提出)

  • 注意力机制(2014年末提出)

  • 外存(2015年新星)

  • 残差网络(2015年新星)

  • 其它辅助手段(2016年新技术)


我们这节课主要介绍前面的四项基本技术,它们都代表着深度学习人工智能技术的最前沿。最后一个辅助手段是属于一种锦上添花的技术。


二、编码-解码框架

blob.png

编码-解码框架如上图所示其中<EOS> - W的左侧为编码器,它的右侧为解码器。A,B,C,<EOS>表示的源语言的输入序列,X,Y,Z,<EOS>表示的是翻译机器给出的目标语言输出序列。<EOS>表示的是一句话的终结符。W为编码器对输入的语言序列A,B,C,<EOS>的编码向量。图中的每一个框表示的是一个时刻展开的RNN(Recurrent Neural Network或者LSTM)神经网络。


这种编码-解码结构模拟了人类大脑翻译的过程,就是先将听到的语言存储在脑子里,然后再根据脑子中的理解给出目标语言的输出。在这里,W向量就模拟了大脑中存储的读取源语言对应的向量。


这种架构还将语言理解和语言模型联合到了一起,最终实现了端到端的机器翻译。另外,这种编码-译码结构还极其具有灵活性,它可以应用到图像标注、视频、词语等任务中。另外,这种架构还可以很好地结合外部语料,具有很好的可扩展性。


编码器


blob.png

这张图展示了编码器的详细架构。在这里从下到上有三个层,第一层是词向量嵌入,它可以根据输入的单词向量通过查找编码表得到压缩维度的单词表征向量(第二层),之后输入给第三层,这是RNN递归单元的状态。


解码器

blob.png

接下来,在让我们看解码端。在这里最底层紫色的节点表示由编码端计算出来的隐含层节点状态,它就相当于是对输入的源语言的编码向量。之后,我们将这个信息输入给解码器的RNN单元,之后到第二层,解码器会根据RNN单元计算概率向量。即对于目标语言单词表上的每一个单词的概率是多少。最后,在第三层,我们再根据这个计算得到的概率采样生成目标语言。


然而,当我们回顾整个编码-解码过程就会发现,机器翻译的本质就是先将源语言的句子编码成一个向量,然后再将这个向量映射为目标语言,然而这种编码是将句子压缩成向量,显然会损失很多信息。于是,我们便需要引入新的机制来解决这个问题。


三、注意力机制


更多详情,请购买课程查看……