机器翻译 - 自然语言处理与深度学习9

2016年九月份,Google发布了最新的机器翻译系统GNMT,该系统已经非常接近人类的翻译水平了。本节课将全面解读GNMT的架构。内容包括:(1)编码-解码器系统:Encoder-Decoder目前已经成为自然语言处理、图像分析等多种机器学习任务的主流框架。它使得完全自动化、端到端(End2End)的机器翻译系统成为了可能,省去了大量繁琐的中间处理环节和人工特征工程;(2)注意力机制:注意力机制(Attention mechanism)不仅可以大大提高机器翻译的准确度,而且具有非常广泛的用途,包括图像标注、视频标注、阅读理解等;(3)残差网络:残差网络(Residual network,简称ResNet)是2015年提出来的一种神经网络设计机制,通过实现跨层次的连边,转换训练目标为残差函数,就可以使得我们更加有效的让神经网络实现收敛,并大大提高深度神经网络的深度。本课详细讲解了每一种机制提出的背景和实际用途。

讲师:   李嫣然

机器翻译课堂笔记



一、背景

近年来,机器翻译有了长足的进步,这是自然语言处理与人工智能的一次重大飞跃。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单元计算概率向量。即对于目标语言单词表上的每一个单词的概率是多少。最后,在第三层,我们再根据这个计算得到的概率采样生成目标语言。


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


三、注意力机制

……


更多详情,请购买

讲师介绍
李嫣然

香港理工大学在读博士生,集智科学家,著名公众号:程序媛的日常 的运营者之一,人称小S。研究方向为自然语言处理中的语义表达和语言生成,致力于利用深度学习、认知科学等相关领域的方法和成果探究人类语言习得和语言表达的奥秘。