Transformer论文精读

news2024/11/28 1:55:03

Transformer:Attention is all you need

Abstract:

在主流的序列转录模型(sequence transduction models:给一个序列,生成另一个序列),主要依赖循环或者卷积神经网络,一般是用encoder和decoder的架构。表现最好的模型通常在encoder和decoder之间加入一个注意力机制。

我们提出的一个简单的架构,Transformer,仅仅依赖注意力机制,没有用循环或者卷积神经网络。

在机器翻译任务上表现很好

Introduction:

Background:(相关工作)

1.如何使用卷积神经网络替换掉循环神经网络,这样做可以减少时序计算。但卷积神经网络对比较长的序列难以建模。如果对于跨度很长的序列,需要很多卷积层。但如果使用注意力机制,只用一层就可以。但卷积的好处是可以有多个输出通道,一个通道可以识别不同的模式。所以提出了多头注意力机制。

2.自注意力机制

3.memory network

Model Architecture

img

大多数神经序列转录模型都是一个encoder-decoder架构,这个encoder将一个输入(x1,…,xn)映射为Z=(z1,…,zn)。其中x1是一个词,z1是其对应的向量。编码器的输出(z1,…,zn)会作为解码器的输入。解码器的输出为一个长为m的序列(y1,…,ym)【例如输入10个英文单词,但对应的中文可能只有5个词】

解码器是一个自回归架构,过去时刻的输出又是当前时刻的输入。例如:预测y1,需要输入Z,预测y2,需要输入Z和y1。且输出是一个词一个词。

Encoder

编码器由六个一致的层堆叠形成,每层有两个子层,第一个是多头注意力机制,第二层是一个简单的MLP(positionwise fully connected feed-forward network)。在两个子层间有残差连接。最后是一个layer normalization。每个子层的输出为:LayerNorm(x+Sublayer(x))

在这里插入图片描述

因为残差连接输入和输出的维度要求是一样的,所以这里规定所有层的输出维度为512,包括embedding和两个子层。所以在Encoder中只有两个参数,层数N和维度d。

batch norm(对特征归一化):将一个小批量二维矩阵的数据,每一列转换为均值为0,方差为1的数据。做法是,将该特征列数据:

(每个数据 - 该列均值 / 该列方差)

layer norm(对样本归一化): 将一个小批量二维矩阵的数据,每一行转换为均值为0,方差为1的数据。

layer norm的好处是计算均值和方差较为稳定。因为每个样本的长度这里是不固定的,在batch norm中会很不稳定。

在这里插入图片描述

Decoder

解码器的基本结构和编码器类似,也是6个层堆叠形成,不同的是,每个子层有三部分组成。且每个子层间有残差连接,最后是一个layer normalization。解码器的第一个层是一个mask(掩码),其作用是确保预测t时刻的输出时,输入数据均来自t时刻之前。

Attention

主要是一个注意力函数,其作用是将一个query和一系列key-value对映射为一个output。所有这些query、key、value、output都是向量。output是value的一个加权和,所以output的维度和value是一样的。每个value对应的权重是由其key和query的相似度计算得来。不同注意力机制的权值计算方式不同。

Scaled Dot-Product Attention

1.queries和keys都是维度为 d k d_k dk的向量。values维度为 d v d_v dv

2.用query和所有key做点乘

3.分别除以 d k \sqrt{d_k} dk

4.用softmax转换为概率

实际运算时,会以矩阵的方式执行

在这里插入图片描述

有两种通用的注意力机制,分别是additive attention和dot-product(multiplicative)attention。Dot-product attention和这里的是一致的,除了加入了除以 d k \sqrt{d_k} dk 原因在于,当query和key的向量维度较小时,乘积结果一般不会过大或者过小,因此softmax的结果也不会集中在0或者1附近。但维度较大时,乘积结果过大或者过小,softmax后会靠近1或0,在这些区域,梯度较小。

additive attention的权值计算采用单隐藏层的前馈神经网络。两种机制的复杂度相似,但后者在时间和空间上效率更高。

在这里插入图片描述

Mask:因为注意力机制会看到所有时刻的信息,但在预测时刻t的输出时,只需要t时刻之前的信息。所以mask将 Q K d k \frac{QK}{\sqrt{d_k}} dk QK的t时刻之后的值全部变为一个非常小的负数,这样在Softmax后,这些位置的权值就为0。

Multi-Head Attention
for i in h:
	先将V、K、Q映射到低维 #每次映射都会学到不一样的方法,在投影后的空间中可以匹配不同模式
	head_i = attention(V、K、Q)  #将投影后的V、K、Q输入Attention
Concat(head_1,...,head_h) W^O #将每个头的结果concat,并将最后的结果再次投影到低维空间 
	

Position-wise Feed-Forward Networks

简单说就是一个单隐藏层的MLP,Position-wise指的是,这个MLP是针对每个词来做,每个词上都有一个MLP。

在这里插入图片描述

其中x作为encoder的输出,是一个词的向量,本文中长512,W1会将其映射到2048,W2又映射为512

Embedding and Softmax

embedding模型出现三次,分别在encoder和decoder以及softmax前的Linear层。且这三处模型拥有相同的权值,并且乘了 d m o d e l \sqrt{d_{model}} dmodel ,为了和后面的Positional Encoding在量级上匹配。

因为对于维度较大向量,归一化后,每个位置的值都比较小,而后续需要和Position 向量相加,后者范围在(-1,1),需要保证两者数量级一致。

Positional Encoding

因为输入的是一个序列,但Attention本身是不会涵盖时序信息的,本质是对输入向量的一个加权和,意味着如果将输入词打乱,得到的结果均相同。

这里的做法是,对每个词在句子中的位置,生成一个和Embedding同维度的向量,来表示位置信息。

在这里插入图片描述

最后将embedding和位置向量相加

Why self-attention

在这里插入图片描述

比较的第一列是每层模型的复杂度,第二列是每个操作需要等待前面的多长时间,越小越好,第三列是每个信息从一个数据点走到另一个数据点要多远,越小越好。

自注意力的矩阵相乘的时间复杂度 O ( n 2 d ) O(n^2d) O(n2d)。因为矩阵乘法,所以操作等待时间很短,而且Attention的输出是由输入的加权和组成,所以可以获取来自任意位置的信息。

最后的受限的自注意力,是指query只跟最近的r个邻居算相似度

Training Data and Batching(实验)

在WMT 2014英语-德语数据集,包含450万个句子对。将英语和德语的词根一起作为一个词典,包含37000个token,这样可以在 encoder和decoder中贡献权重。

2.再将三者送入之前

Conclusion

第一个仅仅依赖注意力机制的序列转录模型,用多头注意力(multi-headed self-attention)取代了在encoder-decoder架构中被通常使用的循环层。

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

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

相关文章

【遗传算法】【机器学习】【Python】常见交叉方法(二)、多点交叉和均匀交叉

往期遗传算法文章见: 【遗传算法】【机器学习】【Python】常见交叉方法(一)、单点交叉和两点交叉 一、遗传算法流程图 交叉过程即存在于上图的”交叉“(crossover)步骤中。 二、多点交叉 多点交叉的原理就是&#x…

RISCV中CLINT和PLIC解析

中断这个东西理论上属于CPU核心的东西。一般来说并不需要重新设计。实际的实现中是比较繁琐的,此处只介绍原理。ARM基本上会用NVIC(Nested Vectored Interrupt Controller) 的东西,RISC-V目前实现了一个比较简单的东西(有人称之为简洁高效&am…

算法 | hbut期末复习笔记

贪心选择策略:所求问题的整体最优解可以通过一系列局部最优的选择(贪心选择)得到 最优子结构:问题的最优解包括了其子问题的最优解 回溯法:具有限界函数的深度优先搜索法 回溯法的解空间:子集树&排列…

【计网复习】应用层总结(不含HTTP和错题重点解析)

应用层总结(不含HTTP和错题重点解析) 应用层简介 应用层的主要功能常见的应用层协议小林对于应用层通常的解释 网络应用模型 客户端-服务器模型(Client-Server Model, C/S) 特点优点缺点应用场景 对等网络模型(Peer-to…

【QT5.14.2】编译MQTT库example的时候报No such file or directory

【QT5.14.2】编译MQTT库example的时候报No such file or directory 前几天导师让跑一下MQTT库,用的5.14.2版本的QT,于是就上网搜了一个教程:https://www.bilibili.com/video/BV1dH4y1e7hG/?spm_id_from333.337.search-card.all.click&v…

TCP/IP协议介绍——三次握手四次挥手

TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议…

如何在隔离环境中设置 LocalAI 以实现 GPU 驱动的文本嵌入

作者:来自 Elastic Valeriy Khakhutskyy 你是否想在 Elasticsearch 向量数据库之上构建 RAG 应用程序?你是否需要对大量数据使用语义搜索?你是否需要在隔离环境中本地运行?本文将向你展示如何操作。 Elasticsearch 提供了多种方法…

每日一题——Python实现PAT甲级1077 Kuchiguse(举一反三+思想解读+逐步优化)

一个认为一切根源都是“自己不够强”的INTJ 个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 我的写法 代码点评 时间复杂度分析 空间复杂度分析 总结 我要更强 方案1&#x…

Postman 打开错误的解决方法

错误如下: PostMan的文件都是放在用户文件下,所以在Local和Roaming文件夹下查看,并删除所有PostMan相关文件夹。 我电脑上的路径在 C:\Users\Administrator\AppData\Local 和 C:\Users\Administrator\AppData\Roaming【Administrator为系…

APP单页分发源码下载安卓苹果自动识别apk描述文件免签自动安装

下载地址:APP单页分发源码下载安卓苹果自动识别apk描述文件免签自动安装

Vue学习笔记_Day02

文章目录 1,指令修饰符2,样式控制3,v-model进阶4,计算属性5,监视器6,生命周期 1,指令修饰符 跟在指令后面,具有特殊的功能。 事件修饰符: .enter:只有enter…

2024-6-9 石群电路-27

2024-6-9,星期日,12:49,天气:晴,心情:晴。Hello,大家,我回来啦,昨天断更了一天,是为什么捏,是因为,我通过毕业答辩啦!&…

Golang | Leetcode Golang题解之第133题克隆图

题目: 题解: func cloneGraph(node *Node) *Node {if node nil {return node}visited : map[*Node]*Node{}// 将题目给定的节点添加到队列queue : []*Node{node}// 克隆第一个节点并存储到哈希表中visited[node] &Node{node.Val, []*Node{}}// 广…

SpringBoot+Vue影城管理系统(前后端分离)

技术栈 JavaSpringBootMavenMySQLMyBatisVueShiroElement-UI 角色对应功能 用户管理员 功能截图

2024050702-重学 Java 设计模式《实战状态模式》

重学 Java 设计模式:实战状态模式「模拟系统营销活动,状态流程审核发布上线场景」 一、前言 写好代码三个关键点 如果把写代码想象成家里的软装,你肯定会想到家里需要有一个非常不错格局最好是南北通透的,买回来的家具最好是品…

如何在手机上恢复误删除的视频?

说到移动设备上的视频恢复,我们仍将揭开4种解决方案供您使用。希望它们对您的案件有所帮助。 众所周知,我们移动设备上的视频应用程序将创建一个缓存文件夹,以在它们永远消失之前临时存储已删除的项目。因此,有许多iPhone / Andr…

Thermal-BST自动化工具在Flotherm建模中的应用与优势

引言 随着科技的不断发展,电子领域的需求也越来越广泛和多样化。然而,PCB板及其上的器件建模问题一直是电子工程师在设计过程中面临的重要挑战之一。软件中原有的PCB建模工具,转换出来的模型复杂,影响后期的网格划分,…

SpringBoot+Vue学生宿舍管理系统(前后端分离)

技术栈 JavaSpringBootMavenMySQLMyBatisVueShiroElement-UI 角色对应功能 学生宿管员管理员 功能截图

你好GPT-4o——对GPT-4o发布的思考与看法

你好GPT-4o 前言 2024年5月13日,OpenAI官网发布了他们的新一代自然语言处理交互系统——GPT-4o。这是OpenAI继GPT4之后又一个新的旗舰模型。 GPT-4o(“o”代表“omni”)是迈向更自然的人机交互的一步——它接受文本、音频、图像和视频的任意…

linuxDNS域名解析

文章目录 DNS 是域名系统的简称正向解析反向解析主从服务器解析bond网卡 DNS 是域名系统的简称 域名和IP地址之间的映射关系 互联网中,IP地址是通信的唯一标识,逻辑地址 访问网站 域名解析的目的就是为了实现,访问域名就等于访问IP地址 …