Transformer论文阅读

Transformer论文阅读

    • 摘要
    • 结论
    • 1 Introduction (导言)
    • 2 Background
    • 3 Model Architecture
      • 3.1 Encoder and Decoder Stacks
        • Encoder
        • Layer Norm
        • Decoder
      • 3.2 Attention
        • 3.2.1 Scaled Dot-Product Attention
        • 3.2.2 Scaled Dot-Product Attention
        • 3.2.3 Applications of Attention in our Model
      • 3.3 Position-wise Feed-Forward Networks
      • 3.4 Embeddings and Softmax
      • 3.5 Positional Encoding
    • 4 Why Self-Attention
    • 5 Training

摘要

​ 主流序列转录模型使用rnn或cnn,使用encoder和decoder,在好的模型中通常也会使用注意力机制。本文提出一个简单的架构,仅仅依赖注意力机制,并行度更好,训练更快。在机器翻译上结果很好。

结论

1.本文提出的Transformer是第一个纯注意力机制的序列转录模型,使用multi-head self-attention替代了之前的r循环层RNN结构。

2.在机器翻译上,比其他架构都要快,效果较好。

3.使用在其他数据领域上,文本以外的数据。

1 Introduction (导言)

1.RNN、CNN以及encoder-decoder架构

2.RNN特点缺点:对第t个词会计算隐藏状态ht,由前一个词的ht-1和当前词t决定。

  • 时序一步步计算,难以并行
  • 历史信息一步步向后传续,时序信息较长时,容易遗忘

3.attentionj机制在rnn上的应用。

4.提出新的架构transformer

2 Background

如何使用CNN 替换RNN减少时序计算,对长序列难以兼容;CNN计算通过较小的窗口,长距离需要交多卷积层。但卷积优点多通道机制,可以识别不同的模式。提出多头注意力机制multi-head self-attention,模拟CNN多通道输出的效果。

3 Model Architecture

1.encoder-decoder

编码器:input为(x1,…xn),输出为z=(z1,…zn)的向量

解码器:拿到encoder输出,生成长为m的序列(y1,…ym),词一个个生成,自回归auto-regressive的方式来输出的,过去时刻的输出也会作为当前时刻的输入。

2.Transformer是一个encoder-decoder的架构,主要组成是self-attention和point-wise fully connected layer,结构如下:

在这里插入图片描述

3.1 Encoder and Decoder Stacks

Encoder

1.Encoder由N=6个一模一样的层组成;

2.每个层包含2个子层:①multi-head self-attention layer,②position-wise fully connected feed-forward network (就是个MLP);

3.每个子层,使用residual connection和layer norm来处理,子层的输出都可以表示为:LayerNorm(x + Sublayer(x))

为了方便残差连接,所有的层都使用d=512作为输出维度。

Encoder就俩超参数:N和d。这种设计直接影响了后面各种基于Transformer的模型设计,比如BERT,GPT等等,都主要调节这两个参数。

Layer Norm
  • Batch Norm

在这里插入图片描述

  • Layer Norm
    在这里插入图片描述

因为序列的长度会变化,如果使用batch norm的话,可能导致均值方差波动很大,从而影响效果,而layer norm则是逐个样本去进行的,就不会受影响。

Decoder

1.跟Encoder一样由N=6个一模一样的层构成;

2.每个层包含3个子层,比Encoder中多了一个multi-head attention layer;

3.为了防止Decoder在处理时之后输入,使用了一个mask的注意力机制。保证在t时间不会看到t时间以后输入。

3.2 Attention

将query和一些key-value对映射成一个输出的函数。

output是value的加权和,output D=value D

value的权重,value对应的key和查询的query的相似度计算而来。
在这里插入图片描述

3.2.1 Scaled Dot-Product Attention

queries 和 keys维度相等都是dk。value和output维度为dv。query和每个key做内积再除以根号dk ,在利用softmax得到一个权重。

在这里插入图片描述

常用两种注意力机制:

additive attention加性注意力机制,处理query和key代码不等长情况;

dot-product Attention点积注意力机制

与dot-product Attention区别和原因:

多了一个scale项

1.当dk不是很大,影响较小

2.当dk较大时,内积的值的范围就会变得很大,值较大的差距也会拉大,做出的softmax加靠近语义,其他值更加靠近0。值更加向两端靠拢,此时梯度较小。

在这里插入图片描述

在计算权重输出时,不要用到后面的值。加入mask,对于Qt和Kt之后计算的值,赋值为非常大的负数,在softmax时会变为0。

3.2.2 Scaled Dot-Product Attention

整个query、key、value投影到一个低维度 ,投影h次,再做h次注意力机制,每个输出contact 再投影回来得到最终输出。

在这里插入图片描述

投影到低维w,h次机会学习不同投影的方法,使得在投影进去的度量空间中能匹配不同模式需要的相似函数。类型与CNN多个输出通道。

3.2.3 Applications of Attention in our Model

三种使用情况

1.encoder,key、query、value是同一个。自注意力机制。

2.decoder, 自注意力机制+mask

3.decoder, 多头注意力机制,key 、value来自encoder输出,query是解码器下一个attention输入

3.3 Position-wise Feed-Forward Networks

对每个position(词)都分开、独立地处理。

在这里插入图片描述

attention:把整个序列信息抓取做aggregation。因此,投影做mlp中,只需要对每个点独立做就可以了。
在这里插入图片描述

Transformer是通过attention来全局地聚合序列的信息,通过MLP进行语义空间的转换;
RNN把上一时刻的信息传入下一时刻的单元,通过MLP进行语义空间转换。二者本质区别在于如何使用序列的信息。

3.4 Embeddings and Softmax

embedding:任何一个词,学习成一个向量d来表示

三个embedding:对input和output的token进行embedding,以及在softmax前面的Linear transformation中使用embedding

三个embedding使用相同的权重。

embedding都乘上了,

1.embedding学习时将每个向量的L2 norm,权重值归一化

2.维度越大的向量归一化后其单个值越小

3.时序信息是递增的整数

乘以根号d后放大,让embedding的数值范围position embedding的数值范围在一个scale
d m o d e l \sqrt{d_{model}} dmodel

3.5 Positional Encoding

attention没有序列信息,输入加入时序信息

周期不同的sin和cos函数来计算得到每个position的Embedding:
P E ( p o s , 2 i ) = s i n ( p o s / 1000 0 2 i / d m o d e l ) PE(pos,2i)=sin(pos/10000^{2i/d_{model}}) PE(pos,2i)=sin(pos/100002i/dmodel)

P E ( p o s , 2 i + 1 ) = c o s ( p o s / 1000 0 2 i / d m o d e l ) PE(pos,2i+1)=cos(pos/10000^{2i/d_{model}}) PE(pos,2i+1)=cos(pos/100002i/dmodel)

position encoding跟embedding相加,输入到模型中。

4 Why Self-Attention

1.计算复杂度

2.顺序的计算

3.两点传递信息的最大距离

在这里插入图片描述

5 Training

1.数据:英语-德语WMT2014,bpe,英语-法语

2.硬件:8个P100 GPU

3.优化器:adam.β1 = 0.9, β2 = 0.98 and = 10-9. lr 根据模型宽度的-0.5次方,warmup
在这里插入图片描述

4.正则化:

(1)Residual dropout:对每个子层的输出上进入残差和layer norm之前使用dropout;embedding层、positional encodings层使用dropout,Pdrop=0.1

(2)Label Smoothing :value ls = 0.1

下表展示了不同的模型结构超参数的性能差别:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/503173.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SAP Fiori开发中的JavaScript基础知识9 - 代码注释,严格模式,JSON

1 背景 本文将介绍JavaScript编程中的三个小知识点:也即代码注释,严格模式,JSON文件。 2 代码注释 JavaScript的代码注释方式如下: // Single line comment/* Multi line comment */3 严格模式 JavaScript的"strict mod…

【Flume】尚硅谷学习笔记

实时监控目录下多个新文件 本案例是将虚拟机本地文件进行实时监控,并将上传的数据实时上传到HDFS中。 TAILDIR SOURCE【实现多目录监控、断点续传】 监视指定的文件,一旦检测到附加到每个文件的新行,就几乎实时地跟踪它们。如果正在写入新行…

前端学习<二>CSS基础——10-CSS3选择器详解

CSS3介绍 CSS3在CSS2基础上,增强或新增了许多特性, 弥补了CSS2的众多不足之处,使得Web开发变得更为高效和便捷。 CSS3的现状 浏览器支持程度不够好,有些需要添加私有前缀 移动端支持优于PC端 不断改进中 应用相对广泛 ### …

网络性能提升10%,ZStack Edge 云原生超融合基于第四代英特尔®至强®可扩展处理器解决方案发布

随着业务模式的逐渐转变、业务架构逐渐变得复杂,同时容器技术的兴起和逐渐成熟,使得Kubernetes、微服务等新潮技术逐步应用于业务应用系统上。 为了充分释放性能、为业务系统提供更高效的运行环境,ZStack Edge 云原生超融合采用了第四代英特尔…

第十四届蓝桥杯javaA组 阶乘的和

这个题我做的时候已经看出来,最小的m一定是最小的Ai,然后如果想让想让m1那么只能让最小的Ai的数量是m1的倍数因为比如说mAmin 1 那么想让m!是 Ai阶乘和的倍数只有 nAmin!%m!0 然后我就不知道如何就m等于Amin2的情况了…

Spring 自定义注解 为 BeanDefinition 添加 qualifier 信息 从而约束自动装配范围

为什么写这篇文章 Spring 支持类型注入,并且可以通过Qualifier 或者Mate 调整类型注入的范围。但是通过自定义注解结合现有的 Qualifier 使用起来有种种困难。 将 Qualifier 融合在自定义注解中,在使用 AliasFor 遇到问题仅仅检查注解中的一部分内容是否…

2024年北京通信展|北京国际信息通信展览会|北京PT展

2024年北京通信展|北京国际信息通信展览会|北京PT展 2024年中国国际信息通信展览会(PTEXPO),是由工业和信息化部主办的ICT行业盛会,自1990年创办以来,已成功举办31届,是反映信息通信行业发展最新成果的重要…

最小质因数 == 最大质因数,不等式秒了!

起因: 在洛谷做题遇到了这道题~ 一看咿呀,又是道数学题~ 首先我们要了解一下,什么是质数? 我记得好像有年高考题的前几题好像考了这玩意来着,质数的概念好像在小学学过,上了初中后基本都没有用过了~ 质数就…

error lsof 0.1 does not meet the minimal requirement

很多小伙伴在linux虚拟机中采用Centos 7镜像安装TitanIDE时,会报错如下信息 error lsof 0.1 does not meet the minimal requirement 这是因为lsof依赖版本较低,只需要在命令行输入 sudo yum install lsof 按下回车以后,命令行会弹出提示命令…

C语言例1-7:以下程序段中执行循环的次数是

代码如下&#xff1a; x-2; do { xx*x; } while(!x); 执行循环次数是&#xff1a;1 先执行后判断 代码如下&#xff1a; #include<stdio.h> int main(void) {int x;x-2;do{ xx*x; printf("\n");printf("x %d\n",x);}while(!x);return 0; } 结果…

Linux - 第三节

改变用户类型 su 仅单纯的进行身份变化 依旧处于普通用户里面 su - 进行重新登录更改身份 退出用exit / ctrld su 用户名 改成成其他身份 对一条命令进行提权 sudo command r:可读 w:可写 x:可执行 -:对应的权限位置&#xff0c;没有权限 去掉所有权限 chmod u…

2024 ccfcsp认证打卡【汇总】

202312-1 仓库规划 202312-2 因子化简 202312-3 树上搜索 202309-1 坐标变换&#xff08;其一&#xff09; 202309-2 坐标变换&#xff08;其二&#xff09; 202305-1 重复局面 202305-2 矩阵运算 202303-1 田地丈量 202303-2 垦田计划 202212-1 现值计算 202212-2 训练计划 20…

Redis实战篇-利用逻辑过期解决缓存击穿问题

实战篇Redis 3.0 、利用逻辑过期解决缓存击穿问题 需求&#xff1a;修改根据id查询商铺的业务&#xff0c;基于逻辑过期方式来解决缓存击穿问题 思路分析&#xff1a;当用户开始查询redis时&#xff0c;判断是否命中&#xff0c;如果没有命中则直接返回空数据&#xff0c;不…

打工人神器! Raccoon 代码小浣熊

继这三个之后&#xff0c;今天又来了一个 [ Raccoon代码小浣熊 ] 核心精要与产品特点 全面支持多种编程语言和IDE&#xff1a;「代码小浣熊」支持超过90种主流编程语言&#xff0c;包括但不限于Python、Java、JavaScript、C、Go和SQL等。同时&#xff0c;它集成了市面上主流的…

基于jsp+mysql+Spring+hibernate+的SSH在线学习交流论坛平台

基于jspmysqlSpringhibernate的SSH在线学习交流论坛平台 博主介绍&#xff1a;多年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言 文末…

Unreal的Quixel Bridge下载速度过慢、下载失败

从Quixel Bridge下载MetaHuman模型&#xff0c;速度非常慢&#xff0c;而且经常下载失败&#xff0c;从头下载。 可以从Quixel Bridge的右上角我的图标->Support->Show Logs打开日志目录 downloaded-assets目录下为下载的资源 bridge-plugin.log文件记录了下载URL和下载…

java(1)之环境部署

1、下载安装包 直接百度java 点击这个就可以&#xff0c;进去之后下载&#xff0c;根据自身情况&#xff0c;window就下Windows版本的记得下那个jdk别下别的&#xff08;用不了&#xff09;&#xff0c;然后下一个编译器可以是idea可以是eclipse都可以 2、环境搭建 分为两步…

如何确保实物档案的安全

确保实物档案的安全有以下几个关键点&#xff1a; 1. 建立完善的安全措施&#xff1a;为实物档案建立专门的存储区域&#xff0c;控制进出口&#xff0c;限制访问权限&#xff0c;并使用安全锁和监控设备等物理安保措施。 2. 规范档案管理制度&#xff1a;建立档案管理制度&…

算法学习——LeetCode力扣动态规划篇10

算法学习——LeetCode力扣动态规划篇10 583. 两个字符串的删除操作 583. 两个字符串的删除操作 - 力扣&#xff08;LeetCode&#xff09; 描述 给定两个单词 word1 和 word2 &#xff0c;返回使得 word1 和 word2 相同所需的最小步数。 每步 可以删除任意一个字符串中的一个…

使用 golang 以及 Gin 框架,将上传的图片在不保存至本地的情况下添加水印,并上传至阿里云 OSS

正如标题所述&#xff0c;使用golang对上传图片添加水印&#xff0c;以及将图片上传到阿里云OSS&#xff0c;网上一搜索&#xff0c;便有你想要的结果了&#xff0c;可是&#xff0c;他们却先将上传图片添加水印后保存在本地&#xff0c;而后再将添加了水印的图片上传到阿里云O…