0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如此强大的机器翻译架构内部的运行机制究竟是怎样的?

DPVg_AI_era 来源:lq 2019-01-26 09:36 次阅读

近年来,神经机器翻译的突飞猛进让越来越多的人类翻译感到压力山大,瑟瑟发抖,那么如此强大的机器翻译架构内部的运行机制究竟是怎样的?本文用一系列动图带你看个明白。

过去几十年来,统计机器翻译一直是占据主导地位的机器翻译模型[9],直到神经机器翻译(NMT)诞生。神经机器翻译(NMT)是近几年来新兴的机器翻译模式,该模式试图构建和训练能够读取输入文本,并输出翻译结果的单个大型神经网络

NMT的最初来自Kalchbrenner和Blunsom(2013)等人的提议。今天更为人所知的框架是从Sutskever等人提出的seq2seq框架。本文就将重点介绍seq2seq框架以及如何构建基于seq2seq框架的注意力机制。

总体来说,注意力层的部署可以分为4步(其实是5步)

第0步:准备隐藏状态。

首先准备第一个解码器隐藏状态(红色)和所有可用的编码器隐藏状态(绿色)。在我们的例子中有4个编码器隐藏状态和当前解码器隐藏状态。

步骤1:获取每个编码器隐藏状态的分数

通过评分函数(也称为比对评分函数或比对模型)获得评分(标量)。在该示例中,得分函数是解码器和编码器隐藏状态之间的点积。

步骤2:通过softmax图层运行所有分数。

我们将得分放到softmax函数层,使softmax处理后的得分(标量)之和为1。这些得分代表注意力的分布。

步骤3:将每个编码器隐藏状态乘以其softmax得分。

通过将每个编码器隐藏状态与其对应的softmax得分(标量)相乘,获得对齐向量或注释向量。这就是对齐的机制。

步骤4:总结对齐向量。

对齐向量的总结可以生成上下文向量。上下文向量反映的是前一步的对齐向量的聚合信息

步骤5:将上下文向量送到解码器。

具体传送方式取决于翻译系统的架构设计。我们将在下文示例中看到不同的架构如何利用解码器的上下文向量。

下面来看看几种seq2seq模型的运行机制,为便于理解,我们采用比较直观的描述(对于每种模型,均以德-英翻译为例)。

seq2seq

翻译会从头至尾把德语文本阅读一遍,读完开始逐词翻译成英语,如果句子过长,他可能会忘了文章开始时都读过哪些内容。

一个简单的seq2seq模型就是这样了,至于面向注意力层的逐级计算,是下面要讲的seq2seq+注意力模型,下面是这个模型的直观表述。

seq2seq+ 注意力

翻译一遍阅读德文文本,一边从头至尾地记录关键词,然后开始翻译成英语。每翻译一个德语词汇,都要用一次记下来的关键词。

该机制下会为每个单词分配一个得分,根据分数高低投入不同的注意力。然后根据Softmax函数处理过的分数,使用编码器隐藏状态的加权和来聚合编码器隐藏状态,获得上下文向量。注意力层的实现可以分为4个步骤。

注意力机制的运行究竟是怎样的?

答案是:反向传播,没想到吧。反向传播将尽一切努力确保产出成果接近实际情况。通过改变RNN中的权重和得分函数(如果有的话)来实现这一目标。这些权重将影响编码器隐藏状态和解码器隐藏状态,进而影响注意力得分。

带双向编码器的seq2seq+注意力

这一机制相当于有两名翻译。翻译A一边阅读德语文本,一边记录关键词。翻译B(比A更高级的翻译,可以从后往前倒着阅读然后进行翻译)也在逐词阅读同样的德语文本,同时记下关键词。

这两个翻译会定期讨论到目前为止阅读的每一个词。一旦阅读完毕,翻译B会负责根据讨论结果和选择的综合关键词,将德语的句子逐字翻译成英语。

翻译A就是前向RNN,翻译B就是后向RNN。

采用双层堆叠编码器的seq2seq+注意力

翻译A一边阅读德语文本,一边记录关键词。翻译B(比A更高级的翻译,可以从后往前倒着阅读然后进行翻译)也在逐词阅读同样的德语文本,同时记下关键词。注意,初级翻译A必须把阅读到的每个单词向翻译B报告。阅读完成后,两位翻译都会根据他们所选择的综合关键词,逐字逐句地将句子翻译成英语。

谷歌的神经机器翻译:带8个堆叠编码器的seq2seq(+双向+剩余连接)+注意力

相当于翻译A、B、...到H一共8位翻译,从下到上排成一列。每位翻译都阅读相同的德语文本。每阅读一个单词,翻译A会与翻译B分享发现,翻译B对发现内容进行改进,并与翻译C分享,以此类推重复这个过程,直到翻译H为止。此外,在阅读德语文本时,翻译H会根据自己的知识和收到的信息记录下相关的关键词。

在每个翻译都阅读过英文文本之后,命令翻译A开始翻译第一个单词。首先,翻译A试图回忆起,然后他与译者B分享他的答案,译者B改进答案并与译者C分享,以此类推重复这一过程,直到翻译H。然后,翻译H根据记录的关键词写出第一个翻译。重复这个过程,直到翻译完成为止。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编码器
    +关注

    关注

    41

    文章

    3360

    浏览量

    131481
  • 神经网络
    +关注

    关注

    42

    文章

    4572

    浏览量

    98720
  • 机器翻译
    +关注

    关注

    0

    文章

    138

    浏览量

    14793

原文标题:五张动图,看清神经机器翻译里的Attention!

文章出处:【微信号:AI_era,微信公众号:新智元】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    机器翻译三大核心技术原理 | AI知识科普

    翻译新时代;2015年,蒙特利尔大学引入Attention机制,神经机器翻译达到实用阶段;2016年,谷歌GNMT发布,讯飞上线NMT系统,神经翻译开始大规模应用。03
    发表于 07-06 10:30

    机器翻译三大核心技术原理 | AI知识科普 2

    了额外的机制——注意力机制,来帮助我们进行调序。下面我们用一张示意图来看一下,基于RNN的神经机器翻译的流程:首先我们通过分词得到输入源语言词序列,接下来每个词都用一个词向量进行表示,得到相应的词向量序列
    发表于 07-06 10:46

    图解:IGBT究竟是什么?

    图解:IGBT究竟是什么? IGBT究竟是什么?
    发表于 08-10 08:01

    神经机器翻译的方法有哪些?

    目前,神经机器翻译(NMT)已经成为在学术界和工业界最先进的机器翻译方法。最初的这种基于编码器-解码器架构机器翻译系统都针对单个语言对进行翻译
    发表于 11-23 12:14

    S参数究竟是什么?

    S参数究竟是什么?起决定性作用的S参数将S参数扩展到多端口器件和差分器件
    发表于 03-01 11:46

    我们仿真DDR究竟是仿真什么

    我们仿真DDR究竟是仿真什么?
    发表于 03-04 07:32

    电感饱和究竟是什么

    电感饱和究竟是什么
    发表于 03-11 08:13

    真正软件定义无线电究竟是怎样的?

    真正软件定义无线电究竟是怎样的?
    发表于 05-14 06:47

    分贝究竟是什么?如何去理解它?

    分贝究竟是什么?如何去理解它?
    发表于 05-31 07:05

    一文读懂eMMC究竟是啥?

    eMMC究竟是啥?eMMC长什么样?eMMC用在哪?主要是干嘛用的?eMMC究竟是如何工作的呢?
    发表于 06-18 06:04

    spec究竟是什么?有谁可以分享一下吗

    spec究竟是什么?哪位同行可以帮忙分享下DFI 5.0的spec?
    发表于 06-21 07:16

    增量式编码器倍频技术的M法究竟是怎样测速的

    增量式编码器输出的脉冲波形信号形式常见的有哪几种?增量式编码器倍频技术的M法究竟是怎样测速的?
    发表于 11-09 07:08

    暴风电视拆机图解 内部结构究竟是怎样

    继乐视、小米之后,国内另一家互联网公司--暴风影音也发布了旗下的智能电视产品,而且同样是分体式设计。而今天我们就来看看爱玩客带来的暴风电视的内部结构究竟是怎样的。
    的头像 发表于 09-04 14:32 3w次阅读

    S参数究竟是什么?

    S参数究竟是什么?
    发表于 11-01 08:24 2次下载
    S参数<b class='flag-5'>究竟是</b>什么?

    半导体内部电荷运动的机制究竟是什么呢?

    半导体内部电荷运动的机制究竟是什么呢? 半导体材料的内部电荷运动机制是半导体物理学和固体物理学的重要研究领域之一。在这篇文章中,我们将详细、
    的头像 发表于 11-30 11:28 342次阅读