基于 transformer 的编码器-解码器模型是 表征学习模型架构 这两个领域多年研究成果的结晶。本文简要介绍了神经编码器-解码器模型的历史,更多背景知识,建议读者阅读由 Sebastion Ruder 撰写的这篇精彩 博文。此外,建议读者对 自注意力 (self-attention) 架构 有一个基本了解,可以阅读 Jay Alammar 的 这篇博文 复习一下原始 transformer 模型。

本文分 4 个部分:

  • 背景 - 简要回顾了神经编码器-解码器模型的历史,重点关注基于 RNN 的模型。

  • 编码器-解码器 - 阐述基于 transformer 的编码器-解码器模型,并阐述如何使用该模型进行推理。

  • 编码器 - 阐述模型的编码器部分。

  • 解码器 - 阐述模型的解码器部分。

每个部分都建立在前一部分的基础上,但也可以单独阅读。这篇分享是第二部分 编码器-解码器。如果你还没有看过 第一部分 背景,可以先读一读。

编码器-解码器

2017 年,Vaswani 等人引入了 transformer 架构,从而催生了 基于 transformer 的编码器-解码器模型。

与基于 RNN 的编码器-解码器模型类似,基于 transformer 的编码器-解码器模型由一个编码器和一个解码器组成,且其编码器和解码器均由 残差注意力模块 (residual attention blocks) 堆叠而成。基于 transformer 的编码器-解码器模型的关键创新在于: 残差注意力模块无需使用循环结构即可处理长度 可变的输入序列 。不依赖循环结构使得基于 transformer 的编码器-解码器可以高度并行化,这使得模型在现代硬件上的计算效率比基于 RNN 的编码器-解码器模型高出几个数量级。

回忆一下,要解决 序列到序列 问题,我们需要找到输入序列 到变长输出序列 的映射。我们看看如何使用基于 transformer 的编码器-解码器模型来找到这样的映射。

与基于 RNN 的编码器-解码器模型类似,基于 transformer 的编码器-解码器模型定义了在给定输入序列 条件下目标序列 的条件分布:

基于 transformer 的编码器部分将输入序列 编码为 隐含状态序列 ,即:

然后,基于 transformer 的解码器负责建模在给定隐含状态序列 的条件下目标向量序列 的概率分布:

根据贝叶斯法则,该序列分布可被分解为每个目标向量 在给定隐含状态 和其所有前驱目标向量 时的条件概率之积:

因此,在生成 时,基于 transformer 的解码器将隐含状态序列 及其所有前驱目标向量 映射到 logit 向量 。然后经由 softmax 运算对 logit 向量 进行处理,从而生成条件分布 。这个流程跟基于 RNN 的解码器是一样的。然而,与基于 RNN 的解码器不同的是,在这里,目标向量 的分布是 显式 (或直接) 地以其所有前驱目标向量 为条件的,稍后我们将详细介绍。此处第 0 个目标向量 仍表示为 向量。有了条件分布 ,我们就可以  自回归 生成输出了。至此,我们定义了可用于推理的从输入序列 到输出序列 的映射。

我们可视化一下使用 基于 transformer 的编码器-解码器模型 _自回归_地生成序列的完整过程。

上图中,绿色为基于 transformer 的编码器,红色为基于 transformer 的解码器。与上一节一样,我们展示了如何将表示为 ,,,,,, 的英语句子 “I want to buy a car” 翻译成表示为 ,,,,,, 的德语句子 “Ich will ein Auto kaufen”。

首先,编码器将完整的输入序列 = “I want to buy a car” (由浅绿色向量表示) 处理为上下文相关的编码序列 。这里上下文相关的意思是, 举个例子 , 的编码不仅取决于输入 = “buy”,还与所有其他词 “I”、“want”、“to”、“a”、“car” 及 “EOS” 相关,这些词即该词的 上下文

接下来,输入编码 与 BOS 向量 ( ) 被一起馈送到解码器。解码器将输入 和   变换为第一个 logit (图中以深红色显示),从而得到第一个目标向量 的条件分布:

然后,从该分布中采样出第一个目标向量 = (由灰色箭头表示),得到第一个输出后,我们会并将其继续馈送到解码器。现在,解码器开始以 = “BOS” 和   = “Ich” 为条件来定义第二个目标向量的条件分布 :

再采样一次,生成目标向量 = “will”。重复该自回归过程,直到第 6 步从条件分布中采样到 EOS:

这里有一点比较重要,我们仅在第一次前向传播时用编码器将 映射到 。从第二次前向传播开始,解码器可以直接使用之前算得的编码 。为清楚起见,下图画出了上例中第一次和第二次前向传播所需要做的操作。

可以看出,仅在步骤 时,我们才需要将 “I want to buy a car EOS” 编码为 。从 开始,解码器只是简单地复用了已生成的编码。

编码器-解码器 | 基于 Transformers 的编码器-解码器模型相关推荐

  1. 解码器 | 基于 Transformers 的编码器-解码器模型

    基于 transformer 的编码器-解码器模型是 表征学习 和 模型架构 这两个领域多年研究成果的结晶.本文简要介绍了神经编码器-解码器模型的历史,更多背景知识,建议读者阅读由 Sebastion ...

  2. 基于Transformers库的BERT模型:一个文本情感分类的实例解析

    简介 本文来讲述BERT应用的一个例子,采用预训练好的BERT模型来进行演示.BERT的库来源于Transformers,这是一个由PyTorch编写的库,其集成了多个NLP领域SOTA的模型,比如b ...

  3. 使用基于注意力的编码器-解码器实现医学图像描述

    来源:DeepHub IMBA 本文约8000字,建议阅读10+分钟 本文为你介绍使用计算机视觉和自然语言处理来为X 射线的图像生成文本描述. 什么是图像描述 图像描述是生成图像文本描述的过程.它使用 ...

  4. 机器翻译 MXNet(使用含注意力机制的编码器—解码器,即 Encoder编码器-Decoder解码器框架 + Attention注意力机制)

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) Encoder编码器-Decoder解码器框架 + Atten ...

  5. FactorVAE:基于变分自编码器的动态因子模型

    量化投资与机器学习微信公众号,是业内垂直于量化投资.对冲基金.Fintech.人工智能.大数据等领域的主流自媒体.公众号拥有来自公募.私募.券商.期货.银行.保险.高校等行业30W+关注者,荣获202 ...

  6. 基于变分自编码器的静息态fMRI数据的表征学习

    <本文同步发布于"脑之说"微信公众号,欢迎搜索关注~~> 静息状态功能性磁共振成像(rsfMRI)数据显示出复杂但结构化的模式.然而,在rsfMRI数据中,潜在的起源是 ...

  7. 最简单的基于FFmpeg的编码器-纯净版(不包含libavformat)

    ===================================================== 最简单的基于FFmpeg的视频编码器文章列表: 最简单的基于FFMPEG的视频编码器(YUV ...

  8. Xvid编码器流程(基于xvid1.1.0)

    调用Xvid编码器流程(基于xvid1.1.0) 编者按:本文为Xvid最新源代码V1.1.0版本的学习笔记,内 部资料,仅供学习参考,未经授权,不得转载 xvid有两种编码方式:single pas ...

  9. 光电编码器与计算机连接模块,计算机-谈述编码器基于增量光电编码器的车速制约器设计论文结论-优度********网...

    PI算法. 2.3 软件流程 该系统的软件部分主要由中断服务程序和主程序组成.图6给出了控制器的主程序流程图,主程序主要包括上电自检和对单片机进行初始化.PWM输出模块的初始化.启动定时器 .开中断. ...

最新文章

  1. python2(中文编码问题):UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1...
  2. Android性能优化典范第六季
  3. 推荐系统遇上深度学习(三十九)-推荐系统中召回策略演进!
  4. Mybatis动态sql语句的生成
  5. python中paramiko模块_如何使用python中paramiko模块?
  6. 一段用于地址清洗的代码
  7. 【项目经理之修炼(9)】《初级篇》谦虚也是可以修炼的
  8. 【脚本解析笔记】文件批量重命名
  9. 值得借鉴:耗时两个月的求职经历
  10. html简单歌词同步教程,HTML5实现歌词同步(示例代码)
  11. win10黑屏假死怎么解决
  12. 浅谈2023年Android开发技术趋势,什么值得学?
  13. 存储服务器设置和文件对拷,思科CNNA中文教程-第一章路由器配置和文件管理(上)...
  14. matlab:基于GUI的作图设计
  15. python七段电子管
  16. OS-Experiment for NUAA
  17. 2012年西安校园招聘会
  18. 精美古韵水墨中国风PPT模板
  19. 怎么关闭计算机用户账户控制面板,win7系统用户账户控制设置|win7关闭/取消用户账户控制的方法-系统城...
  20. win10linux子系统2018,Windows 10 October 2018 更新版本十大最强功能

热门文章

  1. Visual studio Code User Installer(用户安装程序)和System Installer(系统安装程式)的区别
  2. SN65HVD485EDR半双工收发器
  3. 数据结构课程设计——校园导游咨询系统
  4. win7下的内容搜索
  5. 深度长文:中国产业大迁移全景图
  6. openstack项目【day24】:KVM部署
  7. 编译原理陈火旺版第五章课后题答案
  8. 智能对话机器人设计全流程
  9. PostgreSQL11.17离线安装过程(X86+Ubuntu)
  10. 【摄影】关于景深的概念和算法!!!(转)