Transformer:Attention is All You Need

news2024/11/28 20:40:30

【Transformer论文逐段精读【论文精读】】 https://www.bilibili.com/video/BV1pu411o7BE/?share_source=copy_web&vd_source=30e93e9c70e5a43ae75d42916063bc3b

论文地址:[1706.03762] Attention Is All You Need (arxiv.org)

Transformer第一个完全依靠自我注意来计算输入和输出表示的transduction model,不用序列对齐的rnn和CNN,实现高度并行化。

Trasformer并行:先用注意力机制获取序列全局信息(对所有value加权和),然后再在每一个position进行MLP语义转换

RNN串行:某时刻的输出依赖于当前时刻的输入以及上一时刻的输出,无法看到全局信息

1 Introduction

RNN,特别是LSTM(GRU)被确立为sequence建模和transduction(语言模型、机器翻译)的最先进方法。RNN有顺序计算的基本约束,这种固有顺序性质排除了训练示例中的并行化。

在多种任务中,注意力机制成为序列建模和转导模型的一个组成部分,允许在不考虑它们在输入或输出序列中的距离的情况下建模依赖关系[2,19]。然而,除了少数情况外,这种注意机制都是与循环网络结合使用的。

本文提出Transformer,避免RNN,完全依赖注意力机制绘制输入和输出之间全局依赖关系,它允许明显更高的并行化

2 Background

一些模型使用CNN作为基本构建块,为所有输入输出位置并行计算隐藏表示,减少顺序计算,但关联来自两个任意输入或输出位置的信号所需的操作数量随着位置之间的距离而增长(因为卷积操作每次都看一小个窗口,之后再把所有窗口拼起来),在Transformer中,这被减少为一个常数数量的操作。考虑到CNN可以多输出通道,可以看到不同方面的信息,我们用Multi-Head Attention来达到同样的效果。

Transformer第一个完全依靠自我注意来计算输入和输出表示的transduction model,不用序列对齐的rnn和CNN。

3 Model Architecture

Encoder将符号表示的输入序列(x1,x2,…xn)映射到连续表示序列(z1,z2,…zn),Decoder生成输出序列(y1,…,ym)时,是一次一个元素输出的,在每一步中,模型都是自回归,在生成下一步时,将先前生成的符号作为额外的输入。

Transformer遵循Encoder—Decoder结构,为编码器和解码器使用了堆叠的自关注层和按点完全连接层。

3.1 Encoder and Decoder Stacks

Encoder

Encoder由6个相同层的堆栈组成,每一层有两个子层。一个multi-head self Attention,另一个是简单的、按位置完全链接的前馈网络每个子层使用一个ResNet,并进行layernorm。每个子层的输出是LayerNorm(x+sublayer(x))。layernorm是每一个样本自己归一化(BN是对一个batch里所有样本的某一特征进行归一化)

Decoder

也是6层相同层的堆栈组成,也resnet和归一化。解码器还插入第三个子层,该子层对编码器堆栈的输出执行多头注意,修改了解码器堆栈中的自关注子层,以防止位置关注后续位置。这种掩蔽,结合输出嵌入被一个位置抵消的事实,确保对位置i的预测只能依赖于小于i位置的已知输出。这是因为解码器是一个自回归,每一个时刻的输出依赖于前一个时刻输出,但是Transformer可以看到所有序列,因此需要遮盖一下后续的位置。(遮盖的原因是在测试集中,我们是无法看到某时刻之后的信息的,因此和测试集保持一致)

3.2 Attention

Attention function将query和一组key value对映射到输出,q,k,v都是向量,输出是按value的加权和计算的,给每个value的权重是query与相应的key计算的。

3.2.1 Scaled Dot-Product Attention

将QK点积再缩放,然后经过sotmax计算权重,对v加权求和。缩放因为防止Q K点积值太大,落入softmax梯度小的地方。

3.2.2 Multi-Head Attention

与使用d_model的k,q,v执行单一的注意力函数不同,有益的做法将k,q,v线性投影到d_k,d_k,d_v是有益的,在每一个线性投影上,并行执行Attention function,产生d_v输出值,被concat再次投影,产生最终值。

3.2.3 Applications of Attention in our Model

Encoder中的self-attention层,所有k,v,q来自同一个地方,都是编码器前一层的输出,编码器中的每个位置都可以处理编码器前一层中的所有位置。

编码器-解码器注意”层中,查询来自前一个解码器层,记忆键和值来自编码器的输出。这使得解码器中的每个位置都可以覆盖输入序列中的所有位置。这模拟了序列到序列模型中典型的编码器-解码器注意机制。

解码器中的自注意层允许解码器中的每个位置关注解码器中直到并包括该位置的所有位置。我们需要防止信息在解码器中向左流动,以保持自回归特性。通过屏蔽(设置为−∞)softmax输入(那么经过softmax后权重值设为0)中对应非法连接的所有值来实现缩放点积注意。

3.3 Position-wise Feed-Forward Networks

每一个子层中的FNN都是相同的结构,两层线性转换加一个Relu激活函数,对每一个position(词)单独做相同的FNN,但每一层的参数是不同的。

3.4 Embeddings and Softmax

与其它sequence transduction模型类似,我们使用学习嵌入将输入token和输出token转换为维度为d_model的向量。使用常用的线性变换和softmax函数将解码器输出转换为预测的下一个token的概率。在模型中,在两个embedding层之间共享相同的权重矩阵和pre-softmax线性变换。

3.5 Positional Encoding

因为模型中不包含RNN和CNN,为了使模型利用sequence序列的顺序,必须注入一些关于tokens的相对或绝对位置的信息。将“位置编码”添加到编码器和解码器堆栈底部的输入嵌入中。位置编码与嵌入具有相同的维数d_model,因此两者可以直接相加。

本文使用不同频率的正弦和余弦函数,其中pos是position,i是dimension。即每一个维度的位置编码对应一个正弦波。我们选择这个函数,因为它让模型很容易地根据相对位置计算,比如,对任何固定偏移k,P_Epos + k 可以表示为P_Epos的线性函数。同时也可以允许模型外推到比训练期间遇到的序列长度更长的序列。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

0-1背包问题(二维数组压缩为一维数组)

0-1背包不懂的,可以看这篇 https://donglin.blog.csdn.net/article/details/129412502 一维dp数组 对于背包问题其实状态都是可以压缩的。 在使用二维数组的时候,递推公式:dp[i][j] max(dp[i - 1][j], dp[i - 1][j - weight[i]] value[i]…

leetcode 875. Koko Eating Bananas(koko吃香蕉)

piles数组里面是每堆香蕉里面有多少个香蕉, 现在有h小时可以吃香蕉,每小时只能吃一个堆, 定义每小时能吃k个香蕉,k > piles[i], 那么第 i 堆一次吃完,否则下一小时继续吃。 问k为多少时可以在h小时内把香蕉吃完。 …

Ubantu docker学习笔记(一) docker安装

文章目录一、安装准备工作二、安装docker三、问题四、docker镜像配置五、docker常见命令1.新建启动容器2.列出当前所有正在运行的容器3.退出容器4.启动已停止运行的容器5.重启容器6.停止容器7.强制停止容器 (还在运行的)8.删除已停止的容器重要的后台守护…

只做笔记有必要买apple pencil吗?苹果笔的代替笔推荐

如果仅仅使用IPAD来进行打游戏和看剧的话,未免有些浪费。ipad的作用还是挺大的,可以用来做学习笔记,也可以用来做绘画,也可以用来做一些重要的内容。很多人都会认为,苹果的电容笔很好用,但是价格上要比一般…

交流电机驱动器中的隔离电压感应

汽车和工业终端设备,如电机驱动器、串式逆变器和机载充电器,在高电压下运行,不能安全地与人直接互动。隔离电压测量通过保护人类免受高压电路执行一个功能的影响,有助于优化操作和确保使用的安全性。 设计用于高性能,隔…

Jquery项目中使用vue.js

大家在工作的情况中,可能会遇到之前的老项目采用jq书写,或者修改或者新增功能在jq中,原始jq的项目,代码可维护性很差,一个页面几千行jq,可维护性很差,工作量巨大,所以这个时候大家可以引入vue.js。 第一步:引入vue.js…

Proj-9.0.0源码编译(Windows)

源码下载:下载地址官网教程:官网教程使用osgeo4w在线安装,时间较长且到后面会报错,尝试多次无法安装成功,只能切换源代码编译安装,官网教程如下:(补充一下对vcpkg的简单介绍&#xf…

音质好的运动蓝牙耳机有哪些、最好的运动蓝牙耳机推荐清单

而作为一名运动爱好者,我非常喜欢在运动时听音乐,简直不要太轻松!不过在换了多款蓝牙耳机之后,我终于找到了几款非常适合运动的耳机,戴着它们运动,不仅不会出现不适感,还能享受清晰动听音乐&…

executor行为相关Spark sql参数源码分析

0、前言 参数名和默认值spark.default.parallelismDefault number of partitions in RDDsspark.executor.cores1 in YARN mode 一般默认值spark.files.maxPartitionBytes134217728(128M)spark.files.openCostInBytes4194304 (4 MiB)spark.hadoop.mapreduce.fileoutputcommitte…

snap使用interface:content的基础例子

snap做包还在学习阶段,官网文档可查看:The content interface | Snapcraft documentation该例子由publiser和consumer两部分组成,一个提供一个只读的数据区,一个来进行读取其中的信息,这样就完成了content的交互。publ…

华为机试题:HJ90 合法IP(python)

文章目录(1)题目描述(2)Python3实现(3)知识点详解1、input():获取控制台(任意形式)的输入。输出均为字符串类型。1.1、input() 与 list(input()) 的区别、及其相互转换方…

ICASSP 2023论文模型开源|语音分离Mossformer

人类能在复杂的多人说话环境中轻易地分离干扰声音,选择性聆听感兴趣的主讲人说话。但这对机器却不容易,如何构建一个能够媲美人类听觉系统的自动化系统颇具挑战性。 本文将详细解读ICASSP2023本届会议收录的单通道语音分离模型Mossformer论文&#xff0…

EXCEL职业版本(3)

Excel职业版本(3) 公式与函数 运算符 算数运算符 关系运算符 地址的引用 相对引用:你变它就变,如影随形 A2:A5 绝对引用:以不变应万变 $A$2 混合引用:识时务者为俊杰,根据时…

tkinter实现悬浮文字

悬浮文字效果如下图:不可点击,不可选中,任务栏不显示图标,文字背景完全透明。 实现方法: root.wm_overrideredirect(True) wm_overrideredirect方法,在Windows平台下,这个函数的作用&#xff…

项目规模估算如何精准 4大注意事项

项目报价,需要首先进行项目规模估算,如何估算更精准,6大注意事项。 1、项目范围规划 在项目估算前,需要对项目范围进行规划,这包括所有活动以及开发可交付产品所需的流程。范围规划是前提,它明确定义了项目…

操作系统内核与安全分析课程笔记【1】链表、汇编与makefile

文章目录链表循环双向链表哈希链表其他链表汇编内联汇编扩展内联汇编makefile链表 链表是linux内核中关键的数据结构。在第二次课中,重点介绍了循环双向链表和哈希链表。这两种链表都在传统的双向链表的基础之上进行了针对效率的优化。(ps:这部分可以通…

smp_init过程解析

当你看到这样的log,会不会很慌张?竟然由CPU没有启动成功,除了什么故障?本文将结合我遇到的一个问题,将启动过程中bringup secondary cpu的过程分析一下。smp_init代码如下:602 void __init smp_init(void) …

合肥工业大学密码学课设-RSA

✅作者简介:CSDN内容合伙人、信息安全专业在校大学生🏆 🔥系列专栏 :课设-密码学课设-RSA 📃新人博主 :欢迎点赞收藏关注,会回访! 💬舞台再大,你不上台&#…

牛客刷题第一弹

1.异常处理 都是Throwable的子类: ①.Exception(异常):是程序本身可以处理的异常。 ②.Error(错误): 是程序无法处理的错误。这些错误表示故障发生于虚拟机自身、或者发生在虚拟机试图执行应用时,一般不需…

百丽时尚×优维科技×道客战略启动「云原生一体化项目」

3月7日,由百丽时尚集团(以下简称:百丽时尚)联合优维科技、道客共同举办的「云原生一体化项目启动会」在深圳百丽国际大厦圆满落幕,项目合作三方齐聚一堂,就云原生一体化建设战略方案达成合作共识&#xff0…