由浅到深 : Self-Attention (自注意力机制)

news/2024/7/19 12:00:52 标签: transformer, self attention

Self-Attention

看到下面的第一个saw是动词,第二个saw是名词。
在这里插入图片描述
因为第一个saw和第二个saw在形式上没有任何差别。如果任务是进行词性的判断,把上面的词直接输入给神经网络,那么它肯定不能够正确分析。
在这里插入图片描述
想要正确分析词性,那么该怎么办呢?
一个解决方式就是让这个词考虑其上下文信息。可以设置一个window,考虑上下文的n个词,n是可以自己指定的。

在这里插入图片描述
如果有一个任务,不是一个短的window就可以解决的,而是考虑整个序列才行,那该怎么办呢?
很直接的想法就是把window开大一点,可以包含整个序列。这样就会有一个问题,输入给model的序列会有长有短,这样就需要统计整个训练资料,找出最长的一个序列,然后将window长度设置为该序列的长度。这样就会有一个致命的缺点:FC(full connected) 的参数会很大,这样不仅运算量很大,而且容易overfitting。

有没有更好的方法考虑输入的整个序列呢?
当前是今天的重点 Self-attention
self-attention会记录整个序列的信息,你输入几个vector,它就会输出几个vector。比如下图输入输入和输出了4个vector。

那么输出的4个vector有什么特点呢?
每个self-attention后输出的vector都是考虑了整个序列后才得到的。
输出的向量经过FC层后会进行相应的判断。
在这里插入图片描述
self attention是怎么考虑整个序列的呢?
下面的图可以看出,每个b向量都考虑了a1-a4向量。
在这里插入图片描述


输出的向量 b是怎么计算的呢?

根据a1找出与其相关的其他向量,每一个向量与a1关联的程度用一个数值α来表示。
在这里插入图片描述
怎么计算两个向量之间的关联性呢,也就是如何计算的α?
以下就是常见的计算α两种方式。例如左边的:输入向量分别乘上Wq和Wk 矩阵,得到q和k两个向量。然后再将q和k向量进行点乘得到α
,在这里插入图片描述
分别计算a1与a2、a3和a4的关联性。
在这里插入图片描述

q1一般也会跟自己计算关联性
在这里插入图片描述

计算出a1和每个向量的关联性之后,会做一个softmax得到α’。然后会根据得到的α’,得出哪些向量跟a1是最有关联的。接着会根据关联性来抽取重要的信息 。
在这里插入图片描述
怎么抽取重要的信息呢?
把输入的每个向量都乘上一个Wv得到新的向量,也就是下图的v1-v4。然后再将v1和v4都去乘上对应的α’,然后将他们加起来,就能得到考虑全局信息的b向量了。
如果某一个向量得到的分数越高,比如a1和a2的关联性很强也就是a’1,2的值很大,那么得到的b1的值就可能比较接近于v2。也就是哪个向量的attention的分数越大,那么这个向量的v就会dominate抽出来的结果。
在这里插入图片描述


后续会计算 q2与k1,k2,k3,k4、q3与k1,k2,k3,k4、q4与k1,k2,k3,k4的计算结果
在这里插入图片描述


从矩阵角度进行分析
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Wq, Wk, Wv是通过training data找出来的

在这里插入图片描述

参考自:李宏毅


http://www.niftyadmin.cn/n/5115106.html

相关文章

.net MVC 拦截器

1、在App_Start文件夹添加类LoginInterceptor ,代码如下: using Jayrock.Json.Conversion; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; using System.Web; using System.Web.Helpers; usi…

京东平台销量销额数据查询:2023年9月京东空调行业品牌销售排行榜!

鲸参谋监测的京东平台9月份空调市场销售数据已出炉! 鲸参谋数据显示,今年9月份,京东平台大家电品类——空调的整体销售呈现下滑。从数据来看,9月空调的月销量将近60万,环比下滑约59%,同比下滑约6%&#xff…

mysql之通过表名来搜索库名

1、经常遇到查日志时候知道表名,但是不知道在哪个库下面,可以通过此sql语句查询。 SELECT * FROM information_schema.TABLES WHERE table_name tb_xxxxxx;

Maven3.9.2 bug IDEA指定配置文件不生效

Maven3.9.2 bug IDEA指定配置文件不生效 描述 运行新项目需要配置指定的settings.xml文件,一直报错找不到依赖,查看maven日志是从maven中心仓库找的依赖,自然找不到。 解决过程 清理idea缓存,仍然报错 删除/${username}/.m2/…

力扣:134. 加油站(Python3)

题目: 在一条环路上有 n 个加油站,其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车,从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发,开始时油箱为空。 给定两个整数数组…

第五章Maven依赖的特性-进阶篇

文章目录 第一节 重新认识MavenMaven 的完整功能项目管理功能的具体体现 POM 的四个层次超级 POM父 POM有效 POM概念查看有效 POM 小结 属性的声明与引用help 插件的各个目标使用 help:evaluate 查看属性值通过 Maven 访问系统属性Java 系统属性一览使用 Maven 访问系统属性 访…

基于YOLOv5[n/s/m/l/x]全系列参数模型开发构建小麦麦穗智能化精准检测识别计数系统

在前文中我们已经开发实践了小麦颗粒和小麦麦穗的检测,感兴趣可以自行移步阅读即可: 《基于YOLOv5[n/s/m/l/x]全系列参数模型开发构建小麦麦穗颗粒智能化精准检测识别计数系统》 《基于轻量级yolov5nCBAM开发构建全球小麦麦穗智能检测计数系统》 在上…

【开题报告】基于SpringBoot的非文化遗产宣传平台的设计与实现

1.研究背景与意义 非文化遗产是指人类的非物质文化遗产,包括口头传统和表演艺术、社会实践、庆典、习俗、知识与实践有关的技能、母语传统与表达方式以及自然与宇宙知识等等。作为国家独特的文化资源,非文化遗产具有丰富的历史、民俗和艺术价值。然而&a…