简单理解Transformer注意力机制
这篇文章是对《动手深度学习》注意力机制部分的简单理解。
生物学中的注意力
生物学上的注意力有两种,一种是无意识的,零一种是有意识的。如下图1,由于红色的杯子比较突出,因此注意力不由自主指向了它。如下图2,由于有意识的线索是想要读书,即使红色杯子比较突出,注意力依旧指向了书籍。

图一

图二
卷积层、全连接层、池化层就好像无意识的注意力,总是指向突出的特征;注意力机制有区别于此,它包含了有意识的注意力。
在注意力的背景下,有意识线索(想读书)被称为Query,无意识线索(杯子、书等)被称为Key,感官的输入(视觉接收到的无意识线索)称为Value,我们的目标是,通过有意识线索(Query)的引导,将注意力放到权重较大的输入(Value)上。
点积注意力


为什么相似度能衡量权重大小?直观来讲,我们在预测一个结果时,通过尽可能的了解与我们相似的人或事情,便对结果有了大致把握。想读书和书的相似度要比和水杯的高,因此注意力引导在书本而不是水杯。
至于为什么除以根号d?可以参考下面的解释。

图三

最后将得到的权重矩阵B与输入V点积,其结果为n×v维的矩阵,即每个查询通过权重矩阵B对输入V进行加权平均,得到预测的结果。这种加权平均,可以看作一种对输入信息的过滤或者是对输入信息的聚合。对,同池化层的作用,注意力机制可以看作一种带有意识线索的、有权重的池化层,它不会像最大池化层只留下明显的特征,也不会像平均池化层一视同仁的处理,而是根据查询,有轻重的保留特征。
目前为止,经过感性与理性的认识,应该大致清楚QKV各含义,李沐老师在视频里将了另一个更直观的例子帮助理解。
假设有一个人想要了解自己到新公司的薪资(Query), 他可以先了解在公司中其它人的情况(Key),其中与他具有相似技术、学历等特征的人权重当然比较大,反之则会小,那么通过对这些人的薪资(Value)做加权平均,可以估计得到我们想要(Query)的薪资(Value)。
点积自注意力
一般来说,Query,Key,Value 可以不相同,即使Key和Value相同是容易理解的。比如,上面的例子,Value仅指薪资,或者Value与key相同,薪资作为Key的一个属性,这都不妨碍得到想要的结果。但在Transformer的自注意力中,QKV均相同,Query是输入的tokens,Value也是输入的tokens,计算相似度矩阵也是在输入的tokens之间。因此,注意力计算的结果使得每个token融合了其它tokens的信息,实现全局信息交互,当然更多的是自己的信息。
多头自注意力

普遍认为的是,多头意味着有多组自注意力,多组QKV参数,多组参数学习token不同的特征部分,使得学习具有多样性,从而均衡一组QKV可能产生的偏差,当然多头自注意力也使得每组参数空间变小。
也有工作[2]认为,多层单头和多头都可以学习到不同子空间特征,但是多头训练更具有稳定性。如24层16头transformer(BERT-large)和384层单头transformer的总注意头数相同,模型尺寸大致相同,但是多头自注意力使得网络层数更浅,有利于训练。
参考
注意力机制 — 动手学深度学习 2.0.0 documentation (d2l.ai)
[2106.09650] Multi-head or Single-head? An Empirical Comparison for Transformer Training (arxiv.org)
简单理解注意力机制 - 知乎 (zhihu.com)
推荐文章
《Attention is All You Need》浅读(简介+代码) - 科学空间|Scientific Spaces (kexue.fm)
相关文章:
简单理解Transformer注意力机制
这篇文章是对《动手深度学习》注意力机制部分的简单理解。 生物学中的注意力 生物学上的注意力有两种,一种是无意识的,零一种是有意识的。如下图1,由于红色的杯子比较突出,因此注意力不由自主指向了它。如下图2,由于…...
Vue3面试题:20道含答案和代码示例的练习题
Vue3中响应式数据的实现原理是什么? 答:Vue3中使用Proxy对象来实现响应式数据。当数据发生变化时,Proxy会自动触发更新。 const state {count: 0 }const reactiveState new Proxy(state, {set(target, key, value) {target[key] valueco…...
Oracle数据库创建用户
文章目录 1 查看当前连接的容器2 查看pdb下库的信息3 将连接改到XEPDB1下,并查看当前连接4 创建表空间5 创建用户6 用户赋权7 删除表空间、用户7.1 删除表空间7.2 删除用户 8 CDB与PDB的概念 1 查看当前连接的容器 SQL> show con_name;CON_NAME ---------------…...
互联网摸鱼日报(2023-04-30)
互联网摸鱼日报(2023-04-30) InfoQ 热门话题 被ChatGPT带火的大模型,如何实际在各行业落地? Service Mesh的未来在于网络 百度 Prometheus 大规模业务监控实战 软件技术栈商品化:应用优先的云服务如何改变游戏规则…...
第二章--第一节--什么是语言生成
一、什么是语言生成 1.1. 说明语言生成的概念及重要性 语言生成是指使用计算机程序来生成符合人类自然语言规范的文本的过程。它是自然语言处理(NLP)领域中的一个重要分支,涉及到语言学、计算机科学和人工智能等领域的交叉应用。语言生成技术可以被广泛地应用于自动问答系…...
HTML <!--...--> 标签
实例 HTML 注释: <!--这是一段注释。注释不会在浏览器中显示。--><p>这是一段普通的段落。</p>浏览器支持 元素ChromeIEFirefoxSafariOpera<!--...-->YesYesYesYesYes 所有浏览器都支持注释标签。 定义和用法 注释标签用于在源代码中…...
TinyML:使用 ChatGPT 和合成数据进行婴儿哭声检测
故事 TinyML 是机器学习的一个领域,专注于将人工智能的力量带给低功耗设备。该技术对于需要实时处理的应用程序特别有用。在机器学习领域,目前在定位和收集数据集方面存在挑战。然而,使用合成数据可以以一种既具有成本效益又具有适应性的方式训练 ML 模型,从而消除了对大量…...
JavaScript中的Concurrency并发:异步操作下的汉堡制作示例
这篇文章想讲一下JavaScript中同步与异步操作在一个简单的示例中的应用。我们将以制作汉堡为例,展示如何使用同步方法、回调函数(callbacks)和Promise与async/await来实现该过程。 Let’s imagine we’re trying to make a burger: 1. Get …...
微信小程序开发一个多少钱
小程序开发是当前比较流行的一项技术服务,能够为企业和个人带来巨大的商业价值和社会价值,但是小程序开发费用也是潜在的成本之一。在选择小程序开发服务时,了解开发费用如何计算、影响价格的因素以及如何降低成本等方面的知识,可…...
Python基础入门(2)—— 什么是控制语句、列表、元组和序列?
文章目录 01 | 🚄控制语句02 | 🚅列表03 | 🚈元组04 | 🚝序列05 | 🚞习题 A bold attempt is half success. 勇敢的尝试是成功的一半。 前面学习了Python的基本原则、变量、字符串、运算符和数据类型等知识,…...
计算机专业大一的一些学习规划建议!
大家好,我是小北。 五一嗖的一下就过啦~ 对于还在上学的同学五一一过基本上意味着这学期过半了,很多大一、大二的同学会有专业分流、转专业等事情。 尤其是大二的时候,你会发现身边有些同学都加入各种实验室了,有忙着打ACM、学生…...
万万没想到在生产环境翻车了,之前以为很熟悉 CountDownLatch
前言 需求背景 具体实现 解决方案 总结 前言 之前我们分享了CountDownLatch的使用。这是一个用来控制并发流程的同步工具,主要作用是为了等待多个线程同时完成任务后,在进行主线程任务。然而,在生产环境中,我们万万没想到会…...
Springboot整合Jasypt实战
Springboot整合Jasypt实战 引入依赖 <dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>3.0.5</version> </dependency>配置jasypt # 配置jasypt相关信息…...
计算机网络笔记:DNS域名解析过程
基本概念 DNS是域名系统(Domain Name System)的缩写,也是TCP/IP网络中的一个协议。在Internet上域名与IP地址之间是一一对应的,域名虽然便于人们记忆,但计算机之间只能互相认识IP地址,域名和IP地址之间的转…...
C语言函数大全-- s 开头的函数(4)
C语言函数大全 本篇介绍C语言函数大全-- s 开头的函数(4) 1. strdup 1.1 函数说明 函数声明函数功能char * strdup(const char *s);用于将一个以 NULL 结尾的字符串复制到新分配的内存空间中 注意: strdup() 函数返回指向新分配的内存空间…...
Linux常见指令 (2)
Linux常见指令 ⑵ 补充man描述:用法:例子 echo描述:用法:例子 echo 字符串例子 echo 字符串 > 文件例子 追加重定向(>>)例子 输出重定向(>)来创建文件 && (>)来清空文件 cat描述:用法:例子 cat && cat 文件补充:例子 cat 文件 && cat &…...
shell脚本4
字符串变量 格式介绍:单引号 varabc 双引号 var"abc" 不使用引号 varabc 区别:单引号,原样输出,不会解析里面的变量 双引号,会解析变量,并且可以使用子双引号,需要转…...
递归思路讲解
最近刷到了树这一模块的算法题,树相关的算法题几乎都是用递归来实现的,但递归的思路却有点抽象,每次遇到递归,都是通过递归来深度或广度地遍历树,但对于递归遍历树的遍历路线,却有点抽象难懂,不…...
基于R语言APSIM模型高级应用及批量模拟
目录 专题一 APSIM模型应用与R语言数据清洗 专题二 APSIM气象文件准备与R语言融合应用 专题三 APSIM模型的物候发育和光合生产模块 专题四 APSIM物质分配与产量模拟 专题五 APSIM土壤水平衡模块 专题六 APSIM土壤碳、氮平衡模块 专题七 APSIM农田管理模块与情景模拟 专…...
Hyperf中的其它事项
Hyperf中的其它事项 关于 Hyperf 其它的内容我们就不多说了,毕竟框架这东西用得多了自然也就熟悉了。最重要的是——我的水平还不足以去深入地分析这个框架! 好吧,其它的功能大家可以去官方文档详细了解,毕竟国人自己做的框架&a…...
通过 Taotoken 的 Token Plan 套餐在 Ubuntu 长期项目中实现预算可控
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过 Taotoken 的 Token Plan 套餐在 Ubuntu 长期项目中实现预算可控 在长期运行的 AI 辅助项目中,成本的可预测性和可…...
Windows下CLion配置NDK的CMake项目,为什么你的Android.toolchain.cmake总报错?一篇讲清所有参数
Windows下CLion配置NDK的CMake项目:破解android.toolchain.cmake报错全指南 当你第一次在CLion中尝试配置NDK的CMake项目时,那个看似简单的android.toolchain.cmake文件可能成了噩梦的开始。明明按照教程一步步操作,却在编译时遭遇各种莫名其…...
系统设计:布隆过滤器
原文:towardsdatascience.com/system-design-bloom-filter-a2e19dcd4810 https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/350b777cef6f9090c441e88a64b5066c.png 简介 哈希表是最广为人知和使用的几种数据结构之一。通过明智…...
如何为Python项目配置Taotoken的OpenAI兼容API并快速调用大模型
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 如何为Python项目配置Taotoken的OpenAI兼容API并快速调用大模型 对于希望快速集成大模型能力的Python开发者而言,Taoto…...
网盘直链下载助手终极指南:三步解锁八大网盘高速下载
网盘直链下载助手终极指南:三步解锁八大网盘高速下载 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云…...
2026届最火的六大降AI率网站实测分析
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 现在,主流的降AIGC工具,大多运用同义词替换、句式重组、插入语法噪声…...
企业内如何通过Taotoken实现API密钥的统一管理与审计
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 企业内如何通过Taotoken实现API密钥的统一管理与审计 在将大模型能力引入企业内部的实践中,如何安全、有序地管理API密…...
如何免费快速下载番茄小说:番茄小说下载器的完整使用指南
如何免费快速下载番茄小说:番茄小说下载器的完整使用指南 【免费下载链接】fanqienovel-downloader 下载番茄小说 项目地址: https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader 你是否曾经遇到过这样的情况:在地铁上信号不好无法追更&am…...
如何快速上手res-downloader:3个技巧解决网络资源下载难题
如何快速上手res-downloader:3个技巧解决网络资源下载难题 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 你是否…...
LaTeX-PPT:3分钟解锁PowerPoint专业公式编辑的终极指南
LaTeX-PPT:3分钟解锁PowerPoint专业公式编辑的终极指南 【免费下载链接】latex-ppt Use LaTeX in PowerPoint 项目地址: https://gitcode.com/gh_mirrors/la/latex-ppt 还在为PowerPoint中编辑复杂数学公式而烦恼吗?LaTeX-PPT这款开源插件彻底改变…...
