自注意力机制理解

当理解自注意力机制时,可以想象一个句子级别的文本输入作为示例。假设我们有以下句子:“The cat is eating fish”。现在我们将这个句子转换成词嵌入向量序列:

(给定有值的只是示例,方便理解,以下都是这样)

X = {x_1, x_2, x_3, x_4, x_5}

X=\begin{bmatrix} 2.1 &1.5 &0.7 \\ -0.3 &0.9 &1.6 \\ 1.8 & 0.4 &-1.1 \\ 0.5 &-0.2 &1.3 \\ -0.6 &0.8 &0.2 \end{bmatrix}

其中:

  • x_1表示“The” 对应词向量为[2.1,1.5,0.7]
  • x_2表示“cat” 对应词向量为[-0.3,0.9,1.6]
  • x_3表示“is” 对应词向量为[1.8,0.4,-1.1]
  • x_4表示“eating” 对应词向量为[0.5,-0.2,1.3]
  • x_5表示“fish”对应词向量为[-0.6,0.8,0.2]
  • 每个x_i都是一个词嵌入向量。

接下来,我们将使用自注意力机制来为每个词生成上下文表示。首先,我们需要计算每个词的查询向量(Query)、键向量(Key)和数值向量(Value)

对于每个x_i

q_i = x_iW^Q

k_i = x_iW^K

v_i = x_iW^V

W^Q = \begin{bmatrix} 0.4 & 0.1 \\ -0.2 & 0.3 \\ 1.0 & -0.5 \\ \end{bmatrix}       W^K = \begin{bmatrix} 0.7 & 0.2 \\ -0.1 & 0.8 \\ 0.9 & -0.4 \\ \end{bmatrix}       W^V = \begin{bmatrix} -0.3 & 0.6 \\ 0.5 & 0.1 \\ -0.7 & 0.9 \\ \end{bmatrix}

然后,我们计算注意力分数(Attention Scores),这个分数表示第i个词向量和其他词向量间的相关性的分数:

\text{Attention Score}(q, k_i) = softmax(\frac{q \cdot k_i}{\sqrt{d}})

求解示例如下,比如求"The"的注意力分数

q = X \cdot W^Q \\= \begin{bmatrix} 2.1 & 1.5 & 0.7 \\ -0.3 & 0.9 & 1.6 \\ 1.8 & 0.4 & -1.1 \\ 0.5 & -0.2 & 1.3 \\ -0.6 & 0.8 & 0.2 \\ \end{bmatrix} \cdot \begin{bmatrix} 0.4 & 0.1 \\ -0.2 & 0.3 \\1.0 & -0.5 \end{bmatrix} = \begin{bmatrix} 1.24 & 0.31 \\ 1.3 &-0.56\\ -0.46&0.85\\ 1.54&-0.66\\ -0.2&0.08 \end{bmatrix}

k_1 = X[1] \cdot W^K = \begin{bmatrix} 2.1 & 1.5 & 0.7 \end{bmatrix} \cdot \begin{bmatrix} 0.7 & 0.2 \\ -0.1 & 0.8 \\ 0.9 & -0.4 \end{bmatrix} = \begin{bmatrix} 1.95 & 1.34 \end{bmatrix}

v_1 = X[1] \cdot W^V = \begin{bmatrix} 2.1 & 1.5 & 0.7 \end{bmatrix} \cdot \begin{bmatrix} -0.3 & 0.6 \\0.5 & 0.1 \\ -0.7 & 0.9 \end{bmatrix} = \begin{bmatrix} -0.37& 2.04 \end{bmatrix}

同样的方式计算其他词的Q,K,V,

v_2 =[-0.58,1.35],v_3=[0.43,0.13]\\v_4=[-1.16,1.45],v_5=[0.44,-0.1]

接着计算注意力分数(Attention Scores)

[\alpha_{11}, \alpha_{12}, \alpha_{13}, \alpha_{14}, \alpha_{15}]\\ =\text{softmax}\left(\frac{q \cdot k_1}{\sqrt{2}}\right) \\ = \text{softmax}([2.8334,1.4198,0.6324,1.7298,-0.2604]) \\ = [0.4652,0.1712,0.0981,0.2131,0.0521]

利用这些注意力权重来对数值向量(v_j)进行加权求和,从而得到输出表示y_i

y_i = \sum_{j=1}^{n} \alpha_{ij}v_j

y_1 = \sum_{j=1}^{5} \alpha_{1j}v_j = \alpha_{11}\cdot v_1 + \alpha_{12} \cdot v_2 + \ldots + \alpha_{15} \cdot v_5 \\ = 0.4652\cdot{v_1}+0.1712\cdot{v_2}+0.0981\cdot{v_3}+0.2131\cdot{v_4}+0.0521\cdot{v_5}\\ =[-0.4536,1.4969]

这样,我们就可以通过自注意力机制动态地为每个词生成其上下文表示,使得模型能够更好地理解整个句子的语义结构。这种方法允许模型同时关注句子中不同位置的词,并根据它们之间的关系来计算每个词的表示,从而更好地捕捉句子的语义信息。

这里就是把"The"的原始词向量[2.1,1.5,0.7],通过自注意力机制结合其他词向量和QKV转换成结合了上下文信息的向量表示[-0.5228,1.5181]

最后附图:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

clion2020 中文版安装

一 程序安装 安装包地址: 链接:https://pan.baidu.com/s/1EJsmgmZcCQHoKDECkxmeaw?pwd1111 提取码:1111

C++构造函数和析构函数

构造函数和析构函数的由来 手机有出厂设置,在不用这个手机的时候我们也会清理这个手机的隐私内容。C面向对象的思想来源于生活, 每个对象也应该有初始设置 和 对象销毁前要清理个人隐私数据。 类的构造函数对应于手机的初始化。 类的析构函数对应于手机…

【开源】基于Vue.js的音乐偏好度推荐系统的设计和实现

项目编号: S 012 ,文末获取源码。 \color{red}{项目编号:S012,文末获取源码。} 项目编号:S012,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、系统设计2.1 功能模块设计2.1.1 音乐档案模块2.1…

PHP 中传值与传引用的区别,什么时候传值什么时候传引用?

传值:当使用传值的方式时,函数或方法会创建原始变量的一个副本,并将该副本传递给函数或方法。在函数或方法内部,对副本的任何修改都不会影响到原始变量。当函数或方法执行完毕后,副本被销毁,不再使用。 传引…

【入门篇】1.5 redis 客户端Jedis和Lettuce对比详解

文章目录 0. 前言1. Lettuce 与Jedis 对比2.详解2.1 线程安全2.2 阻塞/非阻塞2.3 集群支持2.4 PUB/SUB模型2.5 二进制协议 3. 参考资料 0. 前言 对于Java开发者来说,Jedis和Lettuce是两种非常常见的Redis客户端,他们可以帮助开发者更容易地在Java应用中…

多媒体ffmpeg学习教程

多媒体ffmpeg 目前比较流行的音视频文件为:MP4 flv m3u8 ffmpeg ffmpeg ffplay ffprobe ffserverffmpeg -i INPUT -vf "split [main][tmp]; [tmp] cropiw:ih/2:0:0, vflip [flip];[main][flip] overlay0:H/2" OUTPUTffmpeg -i 2022.mp4 -vcodec mpeg4 -b:…

YOLO目标检测——无人机检测数据集下载分享【含对应voc、coco和yolo三种格式标签】

实际项目应用:无人机识别数据集说明:无人机检测数据集,真实场景的高质量图片数据,数据场景丰富标签说明:使用lableimg标注软件标注,标注框质量高,含voc(xml)、coco(json)和yolo(txt)三种格式标签…

软件安利——火绒安全

近年来,以优化、驱动、管理为目标所打造的软件屡见不鲜,大同小异的电脑管家相继走入了公众的视野。然而,在这日益急功近利的社会氛围驱动之下,真正坚持初心、优先考虑用户体验的电脑管家逐渐湮没在了浪潮之中。无论是鲁大师&#…

2023年【P气瓶充装】报名考试及P气瓶充装复审考试

题库来源:安全生产模拟考试一点通公众号小程序 2023年P气瓶充装报名考试为正在备考P气瓶充装操作证的学员准备的理论考试专题,每个月更新的P气瓶充装复审考试祝您顺利通过P气瓶充装考试。 1、【多选题】充装过程中出现充气头漏气的主要原因为&#xff1…

python 对图像进行聚类分析

import cv2 import numpy as np from sklearn.cluster import KMeans import time# 中文路径读取 def cv_imread(filePath, cv2_falgcv2.COLOR_BGR2RGB): cv_img cv2.imdecode(np.fromfile(filePath, dtypenp.uint8), cv2_falg) return cv_img# 自定义装饰器计算时间 def…

C++知识点总结(6):高精度乘法

一、高精度数 低精度数 1. 输入两个数字 char a_str[1005] {}; long long b; cin >> a_str >> b; 2. 将高精度数转换为整型 int a[1005] {}; int len_a strlen(a_str); for (int i 0; i < len_a-1; i) {a[len_a-i-1] a_str[i] - 48; } 3. 计算 int …

2.3 调用智谱 API

调用智谱 API 1 申请调用权限2 调用智谱 AI API3 使用 LangChain 调用智谱 AI参考&#xff1a; 智谱 AI 是由清华大学计算机系技术成果转化而来的公司&#xff0c;致力于打造新一代认知智能通用模型。公司合作研发了双语千亿级超大规模预训练模型 GLM-130B&#xff0c;并构建了…

【Python】Loguru模块更简洁的日志记录库

Loguru: 更优雅的日志记录解决方案&#xff01; loguru 是一个Python 简易且强大的第三方日志记录库&#xff0c;该库旨在通过添加一系列有用的功能来解决标准记录器的注意事项&#xff0c;从而减少 Python 日志记录的痛苦。 使用自带自带的 logging 模块的话&#xff0c;则需要…

机器学习笔记 - 使用 PyTorch 的多任务学习和 HydraNet

一、HydraNet简述 特斯拉使用了一个模型可以解决他们正在处理的每一项可能的任务。 例如:物体检测、道路曲线估计、深度估计、3D重建、视频分析、物体追踪、ETC等等。 以下是在 NVIDIA GPU 上以 3 种不同配置运行的 2 个计算机视觉模型的基准测试。 在第一个配置中,我…

柯桥会计培训|中级会计职称,考过中级,可以从事哪些工作?

拿下中级会计证书后&#xff0c;可以从事哪些工作呢&#xff1f;一起来看看吧~ 财务经理 财务经理可以说是会计人梦寐以求的岗位&#xff0c;上可以和老板畅聊公司财务情况&#xff0c;下可以管理整个财务部。但是在财务管理水平日益成为企业核心竞争力的今天&#xff0c;企业…

软件工程--软件过程学习笔记

本篇内容是对学校软件工程课堂内容的记录总结&#xff0c;部分也来源于网上查找的资料 软件过程基础 软件过程是指在软件开发过程中&#xff0c;经过一系列有序的步骤和活动&#xff0c;从问题定义到最终软件产品交付和维护的全过程。这个过程旨在确保软件项目能够按时、按预…

AWS EC2、阿里云ECS、腾讯云CVM初步对比

作为国内外的头部云厂商&#xff0c;AWS、阿里云、腾讯云都有着相似功能的云产品&#xff0c;而作为云上最基础的资源就是云服务器——一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。其管理方式比物理服务器更简单高效。用户无需提前购买硬件&#xff0c;即可迅速创建…

QtCreator开发环境的安装和配置

QtCreator开发环境的安装和配置 介绍下载与安装环境介绍示例新建工程示例程序 帮助模式Qt Designer(设计师)Qt Linguist(预言家)结论 介绍 Qt Creator是一个跨平台、完整的集成开发环境&#xff08;IDE&#xff09;&#xff0c;专门用于Qt开发。它包含了完整的编辑器、调试器和…

电子电器架构 —— 车载网关边缘节点总线转换

电子电器架构 —— 车载网关边缘节点路由转发策略 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 PS:小细节,本文字数3000+,详细描述了网关在车载框架中的具体性能设置。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 没有人关注你。也无…

【C/C++笔试练习】继承和派生的概念、虚函数的概念、派生类的析构函数、纯虚函数的概念、动态编译、多态的实现、参数解析、跳石板

文章目录 C/C笔试练习选择部分&#xff08;1&#xff09;继承和派生的概念&#xff08;2&#xff09;程序分析&#xff08;3&#xff09;虚函数的概念&#xff08;4&#xff09;派生类的析构函数&#xff08;5&#xff09;纯虚函数的概念&#xff08;6&#xff09;动态编译&…