《Attention is all you need》通俗解读,彻底理解版:注意力机制的运算

news2024/11/19 4:39:06

这是《Attention Is All You Need》通俗解读的第3篇,前文见这里:

《Attention is all you need》通俗解读,彻底理解版:part1

《Attention is all you need》通俗解读,彻底理解版:part2

最近为了撰写这部分内容,将论文又重新通读了一遍,也查阅了一些相关的资料,每阅读一遍资料都有新的收获。

发现Transformer架构的设计思想是真的牛,尤其是当你尝试用数学的思想来解释该架构时。

但是限于目前本人的数学功底还不够扎实(数学是一个非常严谨的学科),预计在未来会恶补一些数学知识,然后再尝试用通俗的数学知识来解析Transformer 架构的思想。

本篇将继续沿着前面几篇解读论文的思路,来解读一下论文中的第3.2.1章节,对应的内容是模型结构的“注意力”部分。

1. 注意力机制

这一部分作者主要将 Transformer 架构中的注意力机制进行了讲述,先看下第一段原文。

An attention function can be described as mapping a query and a set of key-value pairs to an output, where the query, keys, values, and output are all vectors. The output is computed as a weighted sum of the values, where the weight assigned to each value is computed by a compatibility function of the query with the corresponding key。

第一段作者简要介绍了注意力机制是什么。

事实上我在之前写了很多文章来介绍注意力机制,你可以参考小报童专栏以及之后的文章来详细了解。如何理解AI模型的“注意力”?

按照论文中这段的描述,注意力机制可以将 query 和 key-value 对映射到输出上,这里的 query、key、value和输出都是向量。

解释一下这句话:首先模型处理的都是向量,这个向量可以理解为是某个单词(token)的词嵌入表示,关于为什么要将单词token化以及为什么要使用词嵌入表示,在小报童专栏中都有非常详细的介绍,所以你应该可以理解为什么模型处理的都是向量了。

另外,将其映射到输出是什么意思呢?结合下一句来看:输出是由 value 的加权和得到的,而加权里面的权重,则是通过计算 query 和 key 的相似度得到,在你理解了上面的细节之后,对于第一段你应该会理解的非常透彻。

事实上,计算query 和 key 之间的相似度可以有非常多的“相似函数”完成,不同的函数计算的结果肯定不一样,但是作用是相似的。

在3.2.1节,作者介绍了他们使用的计算相似度的函数,以及利用该函数完成注意力的计算。

We call our particular attention "Scaled Dot-Product Attention" (Figure 2). The input consists of queries and keys of dimension dk, and values of dimension dv. We compute the dot products of the query with all keys, divide each by √dk, and apply a softmax function to obtain the weights on the values.

作者把Transformer 中使用的注意力叫做“Scaled Dot-Product Attention”,翻译过来就是“带缩放”的点乘注意力。

点乘很好理解,实际上就是内积运算。在学数学的内积运算时,你可能还记得,两个向量的内积代表了两个向量的相似程度。内积越大,说明两个向量越相似,如果两个向量正交(二维平面垂直)则说明两个向量相关性为零。

图片

那么“带缩放“是什么意思呢?其实很简单,作者在原本点乘运算的基础上,除以了根号下dk,然后将除之后的结果,输入给softmax(查看 softmax 的原理解析)计算权重。至于为什么要除以根号下dk,这里先放一放,后面再介绍(你可以暂时先简单理解为对计算出来的注意力分数进行缩放即可)。

有几个概念进行下澄清:Q和K的转置直接相乘,结果是两者的相似度,当然你可以可以把它叫做两者的注意力分数,然后将结果除以 √dk 后经过softmax运算,得到的是归一化后的注意力分数,此时的注意力分数便是权重,和V矩阵进行相乘。

下面用一个示意图来表示注意力机制的计算过程。

图片

首先,在实际运算时,不论是为了计算的高效,还是为了模型处理数据的方便,总之,都是以矩阵的形式来进行运算。

对于Q,K,V三个向量来说,其矩阵形式则是将多个 token 的词向量在二维平面进行了堆叠展开。

以Q矩阵为例(上图最左下角的矩阵),n 代表 n 个token,dk代表了每个token的词嵌入向量的维度,在论文中dk 取值为512。你可以理解为对于每一个单词token,在这高达 512个维度的词嵌入空间中,存在512特征来表示一个词的语义。

比如可以把cat 表示为[会跑,会爬树,动物,四只腿,两只眼睛,..., 其他AI模型可以识别但人类可能无法理解的可以描述猫的特征]。总之,用512个特征就可以非常充分的描述cat这个单词的语义。

根据公式,首先计算 Q 和 K 的转置的矩阵运算,得到一个 n x m 的矩阵。按照矩阵计算相似度的含义,得到的 n x m 的矩阵中的每一个值,代表了 Q 中的第 i 个 token 与 K 中的第 j 个token 的相似程度,然后经过 softmax 计算得到归一化后的相似分数,这个分数就作为权重和 V 矩阵相乘。

当一个权重矩阵和一个值矩阵相乘时,实际上就是对值矩阵以对应的权重系数进行特征提取和融合的过程。这一点在矩阵乘法的本质中有详细的介绍。

因此,相似度分数经过softmax归一化之后得到的权重,和V矩阵相乘,实际上就是对 V 矩阵的特征进行提取。

V矩阵中的特征是什么呢,其实也是每个token的描述特征,就类似于上文描述cat那样。对其中感兴趣的特征进行提取和融合,不感兴趣的特征可能置为0或直接丢弃,得到的结果就是从V矩阵中提取和融合之后的特征。

这就是注意力机制(或者叫做带缩放的点乘注意力机制)的计算过程。

看到这你可能还不能完全理解这个计算过程在真实世界中的含义,因为整个过程涉及的步骤是各种矩阵乘法,因此需要对矩阵乘法有非常深刻的理解才可以更好的了解这部分的真实含义,并且原始论文也没有针对为什么这么做给出过多的解释。

要更加深入的理解这部分内容,需要不断探究每一步运算的本质和动机,这部分是整个Transformer 架构的核心内容,后面我会一步步将上述计算过程的每一次矩阵运算进行拆解,以期望可以完全理解该架构的设计思路。

至于看完本节内容,你只需要理解上述的文字部分和“注意力机制”的大体计算过程就可以了。

更多细节请持续关注后续的文章,在将注意力机制的运算有了非常深刻的理解之后,多头注意力以及其他的算法都会变得相对简单。



我的技术专栏已经有几百位朋友加入了。

如果你也希望了解AI技术,学习AI视觉或者大语言模型,戳下面的链接加入吧,这可能是你学习路上非常重要的一次点击呀

CV视觉入门第三版(细化版)完成

我的Transformer专栏努力更新中

最后,送一句话给大家:生活不止眼前,还有诗和远方,共勉~

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

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

相关文章

1688商家数据采集软件使用方法|阿里1688商家信息采集软件

大镜山阿里1688商家数据采集使用方法 打开如下图的窗口,输入采集的关键词,再点“开始采集”和“获取手机”即可。 等待采集完成即可! 点”导出“,即可把采集结果导出。 如果需要按1688网站过滤条件过滤数据后采集的话&#xff…

通义千问接入进阶:流式、文件、图片、上下文

通义千问接入SSE 接入流式对话、上下文对话、图片对话、文件对话 上篇文章有很多小伙伴再问:开启了流式(SSE)如何以API的形式返回数据呢? 这篇文章就来给大家解惑。 实现过程 如何生成key和模型类型请翻找之前的文章&#xf…

远程控制电脑的4个方法,不受地域限制,探索未来办公的无限可能

在数字化浪潮席卷全球的今天,远程控制电脑已不再是科幻电影里的情节,而是我们触手可及的现实,是现代科技所赋予的真实能力。远程控制电脑进行办公已成为越来越多人的选择,不仅让生活更加便捷,还在一定程度上提高了工作…

java连接AD(Microsoft Active Directory)模拟用户登录认证

文章目录 一、背景二、页面效果三、代码LdapLoginRequest请求实体类Response返回结果MsgADTest测试类补充说明代码 四、认证结果认证成功认证失败 本人其他相关文章链接 一、背景 亲测可用,之前搜索了很多博客,啥样的都有,就是不介绍报错以及配置用处&a…

洗地机品牌哪个最好用?硬核推荐五大实力爆款洗地机

在这个忙碌的时代,家就是我们放松的港湾,但要保持它的清洁与舒适常常很不容易。每天拖着疲惫的身体回家,还要面对地板上那些难缠的灰尘、污渍,真是非常让人头疼。不过,洗地机的出现就像是给家务清洁装上了智能引擎&…

14270-02G 同轴连接器

型号简介 14270-02G是Southwest Microwave的2.4 mm 同轴连接器。这款连接器连接器采用不锈钢、铍铜合金、黄铜合金和 ULTEM 1000 等高质量材料,可能具有更好的耐腐蚀性、导电性和机械强度。金镀层可以提供更低的接触电阻和更好的耐腐蚀性。 型号特点 电缆的中心导体…

NSSCTF-Web题目23(RCE-空格绕过)

目录 [SWPUCTF 2022 新生赛]webdog1__start 1、题目 2、知识点 3、思路 [FSCTF 2023]webshell是啥捏 4、题目 5、知识点 6、思路 [SWPUCTF 2022 新生赛]webdog1__start 1、题目 2、知识点 RCE、空格绕过,嵌套eval 3、思路 出现这个页面,没有其…

Linux系统部署MongoDB开源文档型数据库并实现无公网IP远程访问

文章目录 前言1. 安装Docker2. 使用Docker拉取MongoDB镜像3. 创建并启动MongoDB容器4. 本地连接测试5. 公网远程访问本地MongoDB容器5.1 内网穿透工具安装5.2 创建远程连接公网地址5.3 使用固定TCP地址远程访问 💡 推荐 前些天发现了一个巨牛的人工智能学习网站&am…

ggrcs包4.0版本发布—重新对密度图宽度进行了设计

目前本人写的ggrcs包新的4.0版本已经在CRAN上线,目前支持逻辑回归(logistic回归)、cox回归和多元线性回归。 需要的可以使用代码安装 install.packages("ggrcs")如果原来安装了旧版本,重新在安装一次就可以升级到新版…

Android --- Service

出自于此,写得很清楚。关于Android Service真正的完全详解,你需要知道的一切_android service-CSDN博客 出自【zejian的博客】 什么是Service? Service(服务)是一个一种可以在后台执行长时间运行操作而没有用户界面的应用组件。 服务可由其他应用组件…

AI技术在招聘行业的应用

大模型AI技术在招聘行业的应用正变得越来越广泛,以下是一些关键领域的应用实例。大模型AI技术在招聘行业的应用不仅提高了效率和精确度,还帮助企业在竞争激烈的人才市场中获得优势。随着技术的不断发展,预计AI将在招聘领域扮演更加重要的角色…

grpc-go客户端接口添加

【1】 proto相关文件同服务端,如已经生成,可以直接使用服务端的文件(包) 【2】新建一个目录“WHG_CLIENT”,目录下新建一个main.go文件 package mainimport ("context""log""grpc-go-maste…

小程序新版获取用户头像、昵称调整方案

目录 前言调整背景调整说明低版本兼容处理参考代码WXMLWXSSJS补充及优化图像上传Java版图像上传接口.Net版图像上传接口前言 调整背景 由于 PC/macOS 平台「头像昵称填写能力」存在兼容性问题,对于来自低于2.27.1版本的访问,小程序通过 wx.getUserProfile 接口将正常返回用户…

23.【C语言】循环结构之while

接第11篇 格式:while (表达式)//加括号代表如果表达式为真,执行循环 { } 根据需要,可以在代码块中加break;提前跳出循环(永久终止) 而continue;是跳出本次循环,进入while循环的判断部分,决定是…

c++ 设计模式 的课本范例(下)

(19) 桥接模式 Bridge,不是采用类继承,而是采用类组合,一个类的数据成员是类对象,来扩展类的功能。源码如下: class OS // 操作系统负责绘图 { public:virtual ~OS() {}virtual void draw(cha…

C++ thread线程库

thread库 std::thread 是 C 标准库中的一个类,用于管理和控制单个执行线程。线程允许程序并行执行多个函数,从而提高性能和响应速度。std::thread 类提供了一种便捷的方式来创建和操作线程。 1、用途 并行执行任务: 通过 std::thread&…

守护家庭的安全卫士:家用可燃气体探测器

在这个追求智能与安全并重的时代,每一个细微之处的防护都显得尤为重要,尤其是在我们最为依赖的家庭空间里。当谈及家居安全,燃气安全无疑占据着至关重要的位置。据统计,每年因燃气管老化、连接处松动等问题引发燃气泄漏的事故不在…

外泌体相关基因肝癌临床模型预测——2-3分纯生信文章复现——4.预后相关外泌体基因确定单因素cox回归(2)

内容如下: 1.外泌体和肝癌TCGA数据下载 2.数据格式整理 3.差异表达基因筛选 4.预后相关外泌体基因确定 5.拷贝数变异及突变图谱 6.外泌体基因功能注释 7.LASSO回归筛选外泌体预后模型 8.预后模型验证 9.预后模型鲁棒性分析 10.独立预后因素分析及与临床的…

STM32-HAL-FATFS(文件系统)(没做完,stm32f103zet6(有大佬的可以在评论区说一下次板子为什么挂载失败了))

1STM32Cube配置 1-1配置时钟 1-2配置调试端口 1-3配置uart 1-4配置SDIO(注意参数)(其中他的初始化的异常函数给注释,SD卡文件写了) 配置了还要打开中断和DMA可在我的其他文章中看一样的 1-5配置FatFs (只改了图选中…

Unity 资源 之 Sweet Cakes Icon套装,110个高品质蛋糕图标分享

Sweet Cakes Icon 套装 - 为 Unity 开发者带来甜蜜惊喜 前言资源包内容领取兑换码 前言 亲爱的 Unity 开发者们,今天要向你们介绍一款令人心动的图标套装 - Sweet Cakes Icon。 Sweet Cakes Icon 套装包含了超过 110 种高品质的蛋糕和纸杯蛋糕图标,这无…