Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

高璇 路雪编译

图解神经机器翻译中的注意力机制

几十年来,统计机器翻译在翻译模型中一直占主导地位 [9],直到神经机器翻译(NMT)出现。NMT 是一种新兴的机器翻译方法,它试图构建和训练单个大型神经网络,该网络读取输入文本并输出译文 [1]。

NMT 的最初开拓性研究来自 Kalchbrenner 和 Blunsom (2013)、Sutskever 等人 (2014) 和 Cho. 等人 (2014b) 这三篇论文,其中我们较为熟悉的框架是 Sutskever 等人论文提出的序列到序列(seq2seq)学习。本文基于 seq2seq 框架阐述如何构建注意力。

图 0.1:seq2seq,输入序列长度为 4在 seq2seq 中,初步设想是让两个循环神经网络(RNN)构成编码器-解码器架构:编码器逐个读取输入词,获得固定维度的向量表示,然后另一个 RNN(解码器)基于这些输入逐个提取输出词。

图 0.2:seq2seq,输入序列长度为 64seq2seq 的问题在于,解码器从编码器接收的唯一信息是「最后一个编码器隐藏状态」(图 0.1 中的两个红色节点),这是一种类似于输入序列数字总结的向量表示。因此,对于较长的输入文本(图 0.2),我们如果仍希望解码器仅使用这一个向量表示(希望它「充分概括输入序列」)来输出译文,那这是不合理的。这可能导致灾难性遗忘。这段话有 100 个单词,你能立刻把它翻译成另一种语言吗?

如果我们做不到,那么也不应该对解码器这么苛刻。如果向解码器提供每个编码器时间步的向量表示,而不是只有一个向量表示,是不是可以得到更优质的翻译结果?

 引入注意力机制

图 0.3:引入注意力机制作为编码器和解码器之间的接口。这里,第一个解码器时间步是在给出第一个翻译单词之前从编码器接收的信息。

注意力是编码器和解码器之间的接口,它为解码器提供每个编码器隐藏状态的信息(图 0.3 中的红色隐藏状态除外)。通过此设置,模型能够有选择地侧重输入序列的有用部分,从而学习它们之间的 alignment。这有助于模型有效地处理输入长句 [9]。

alignment 定义:alignment 意为将原始文本片段与其对应的译文片段匹配。

图 0.4:法语单词「la」的 alignment 分布在输入序列中,但主要分布在这四个词上:『the』、『European』、『Economic』 和 『Area』。深紫色表示注意力得分更高。(图源:https://distill.pub/2016/augmented-rnns/#attentional-interfaces)

[2] 中有两种类型的注意力机制。使用所有编码器隐藏状态的注意力类型也称为全局注意力。而局部注意力仅使用编码器隐藏状态的子集。本文主要介绍全局注意力,因此本文中对「注意力」的任何引用都是指「全局注意力」。

本文阐述注意力机制时应用了动画形式,以便我们在不理解数学公式的情况下也能更好地理解它们。在案例中,作者将分享在过去 5 年中出现的 4 个 NMT 架构,也将对这篇文章中的一些概念做一些直观解释。

专业用户独享

本文为机器之心深度精选内容,专业认证后即可阅读全文
开启专业认证
入门神经机器翻译注意力机制
5
相关数据
权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

神经机器翻译技术

2013 年,Nal Kalchbrenner 和 Phil Blunsom 提出了一种用于机器翻译的新型端到端编码器-解码器结构 [4]。该模型可以使用卷积神经网络(CNN)将给定的一段源文本编码成一个连续的向量,然后再使用循环神经网络(RNN)作为解码器将该状态向量转换成目标语言。他们的研究成果可以说是神经机器翻译(NMT)的诞生;神经机器翻译是一种使用深度学习神经网络获取自然语言之间的映射关系的方法。NMT 的非线性映射不同于线性的 SMT 模型,而且是使用了连接编码器和解码器的状态向量来描述语义的等价关系。此外,RNN 应该还能得到无限长句子背后的信息,从而解决所谓的「长距离重新排序(long distance reordering)」问题。

注意力机制技术

我们可以粗略地把神经注意机制类比成一个可以专注于输入内容的某一子集(或特征)的神经网络. 注意力机制最早是由 DeepMind 为图像分类提出的,这让「神经网络在执行预测任务时可以更多关注输入中的相关部分,更少关注不相关的部分」。当解码器生成一个用于构成目标句子的词时,源句子中仅有少部分是相关的;因此,可以应用一个基于内容的注意力机制来根据源句子动态地生成一个(加权的)语境向量(context vector), 然后网络会根据这个语境向量而不是某个固定长度的向量来预测词。

机器翻译技术

机器翻译(MT)是利用机器的力量「自动将一种自然语言(源语言)的文本翻译成另一种语言(目标语言)」。机器翻译方法通常可分成三大类:基于规则的机器翻译(RBMT)、统计机器翻译(SMT)和神经机器翻译(NMT)。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

门控循环单元技术

门控循环单元(GRU)是循环神经网络(RNN)中的一种门控机制,与其他门控机制相似,其旨在解决标准RNN中的梯度消失/爆炸问题并同时保留序列的长期信息。GRU在许多诸如语音识别的序列任务上与LSTM同样出色,不过它的参数比LSTM少,仅包含一个重置门(reset gate)和一个更新门(update gate)。

统计机器翻译技术

随着统计学的发展,研究者开始将统计模型应用于机器翻译,这种方法是基于对双语文本语料库的分析来生成翻译结果。这种方法被称为统计机器翻译(SMT)

前馈神经网络技术

前馈神经网络(FNN)是人工智能领域中最早发明的简单人工神经网络类型。在它内部,参数从输入层经过隐含层向输出层单向传播。与递归神经网络不同,在它内部不会构成有向环。FNN由一个输入层、一个(浅层网络)或多个(深层网络,因此叫作深度学习)隐藏层,和一个输出层构成。每个层(除输出层以外)与下一层连接。这种连接是 FNN 架构的关键,具有两个主要特征:加权平均值和激活函数。

序列到序列技术

堆叠技术

堆叠泛化是一种用于最小化一个或多个泛化器的泛化误差率的方法。它通过推导泛化器相对于所提供的学习集的偏差来发挥其作用。这个推导的过程包括:在第二层中将第一层的原始泛化器对部分学习集的猜测进行泛化,以及尝试对学习集的剩余部分进行猜测,并且输出正确的结果。当与多个泛化器一起使用时,堆叠泛化可以被看作是一个交叉验证的复杂版本,利用比交叉验证更为复杂的策略来组合各个泛化器。当与单个泛化器一起使用时,堆叠泛化是一种用于估计(然后纠正)泛化器的错误的方法,该泛化器已经在特定学习集上进行了训练并被询问了特定问题。

推荐文章
暂无评论
暂无评论~