iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Transformer中的Q/K/V理解
  • 904
分享到

Transformer中的Q/K/V理解

transformer深度学习人工智能Poweredby金山文档 2023-10-25 12:10:19 904人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

输入句子序列:我爱吃酸菜鱼 上图为输入矩阵,每个token的维度为768维,则矩阵维度为Lx768。 第一步:通过乘以线性变化矩阵(维度为768x768),得到矩阵Q,K,V(维度为Lx76

输入句子序列:我爱吃酸菜鱼

上图为输入矩阵,每个token的维度为768维,则矩阵维度为Lx768。

第一步:通过乘以线性变化矩阵(维度为768x768),得到矩阵Q,K,V(维度为Lx768):

上图为线性变换后得到的矩阵Q,K,V,维度为Lx768,和输入矩阵相比维度未发生变化。

为什么叫 注意力网络
因为可以看到 Q/K/V都是通过同一句话的输入算出来的。

第二步:将矩阵Q与相乘:

*向量点积可以表征向量间的相似程度或关联程度

首先用Q的第一行,即“我”字的768特征和K中“我”字的768维特征点乘求和,得到输出(0,0)位置的数值,这个数值就代表了“我想吃酸菜鱼”中“我”字对“我”字的注意力权重,然后显而易见输出的第一行就是“我”字对“我想吃酸菜鱼”里面每个字的注意力权重。整个结果自然就是“我想吃酸菜鱼”里面每个字对其它字(包括自己)的注意力权重(就是一个数值)~以此得到注意力权重矩阵(LxL)。

第三步:对注意力权重矩阵进行处理,除以,并通过softmax函数转化:

这个dim就是768,至于为什么要除以这个数值?主要是为了缩小点积范围,确保softmax梯度稳定性。然后就是为什么要softmax,一种解释是为了保证注意力权重的非负性,同时增加非线性。

第四步:注意力权重矩阵与矩阵V相乘:

首先是“我”这个字对“我想吃酸菜鱼”这句话里面每个字的注意力权重,和V中“我想吃酸菜鱼”里面每个字的第一维特征进行相乘再求和,这个过程其实就相当于用每个字的权重对每个字的特征进行加权求和,然后再用“我”这个字对“我想吃酸菜鱼”这句话里面每个字的注意力权重和V中“我想吃酸菜鱼”里面每个字的第二维特征进行相乘再求和,依次类推~最终也就得到了Lx768维的结果矩阵,和输入保持一致~

K和V中,如果同时替换任意两个字的位置,对最终的结果是不会有影响的。也就是说注意力机制是没有位置信息的,不像CNN/RNN/LSTM。这也是为什么要引入position embedding的原因。

可以将V看作一个token序列,序列中的每个token在一开始都是互相独立的,信息量有限。而想要让每个token包含更多的信息,一个办法就是让每个token去融合该序列中其他token的信息。融合方式中,最差的方法是取平均(mean pool),会有大量实际不相关的信息被融入; 更好的方式是按照该token和其他token的相关度加权求和。

那么问题来了,怎么看V中每一个token和其他token的相关度,并将相关度量化成权重数值(用于最终的加权求和)?

这个时候,Q和K来了,Q是询问的token(对应到V中的某个token),K是被询问的token序列,Q问K,你的哪个token跟我最像?Q挨个问一遍K中的token,每个token和Q比较后(点积)得到一个和Q的相似程度,组成一个相似度序列。

相似度序列归一化后变成一个和为1序列,可以看成是一个权重。

参考:https://www.zhihu.com/people/zui-tian-20-46/answers

参考:https://www.zhihu.com/question/298810062/answer/1829118404

来源地址:https://blog.csdn.net/fzz97_/article/details/128920353

--结束END--

本文标题: Transformer中的Q/K/V理解

本文链接: https://www.lsjlt.com/news/442396.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Transformer中的Q/K/V理解
    输入句子序列:我爱吃酸菜鱼 上图为输入矩阵,每个token的维度为768维,则矩阵维度为Lx768。 第一步:通过乘以线性变化矩阵(维度为768x768),得到矩阵Q,K,V(维度为Lx76...
    99+
    2023-10-25
    transformer 深度学习 人工智能 Powered by 金山文档
  • 带你理解vue中的v-bind
    目录一、v-bind关键源码分析1、v-bind化的属性统一存储在哪里:attrsMap与attrsList2、解析HTML,解析出属性集合attrs,在start回调中返回 3、在...
    99+
    2024-04-02
  • 如何理解VUE v-for中的key
    今天就跟大家聊聊有关如何理解VUE v-for中的key,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。不在v-for的标签中加入key时。<!DOCTYPE ...
    99+
    2023-06-21
  • vue中的v-show,v-if,v-bind的使用示例详解
    目录vue第四课:v-show,v-if,v-bind的使用1,v-show指令2,v-if指令3,v-bind指令vue第四课:v-show,v-if,v-bind的使用 1,v-...
    99+
    2023-05-14
    vue v-show vue v-if vue v-bind
  • VUE v-for中的:key详解
    不在v-for的标签中加入key时。 <!DOCTYPE html> <html lang="en"> <head> <meta c...
    99+
    2024-04-02
  • 怎么理解Vue的v-bind属性
    这篇文章主要讲解了“怎么理解Vue的v-bind属性”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么理解Vue的v-bind属性”吧!首先,来学习下常用的...
    99+
    2024-04-02
  • vue v-for中key的原理详析
    目录前言key是什么逻辑设置key与不设置key 的区别设置key值一定能提高diff效率吗?原理分析最后前言 最近在面试的时候,面试官问我说v-for的key值是用来做什么的,我说...
    99+
    2024-04-02
  • vue中v-model和响应式的实现原理解析
    目录v-model响应式实现v-model 首先要了解v-model就是vue帮我们封装的语法糖,真正实现靠的还是:v-bind:绑定响应式数据 触发 input 事件 并传递数据 ...
    99+
    2024-04-02
  • vue3中v-model的用法详解
    目录绑定单个属性基础绑定computed 绑定🚀 v-model 绑定多个属性🚩 绑定对象修饰符总结绑定单个属性 基础绑定 以 自定义组件 CustomInput...
    99+
    2023-05-17
    Vue3的v-model Vue v-model
  • python数组中的 k-diff 数对例题解析
    目录一、题目描述二、思路分析方法一:构建哈希表方法二:双指针三、总结一、题目描述 题目内容: 题目示例: 题目解析: 1 <= nums.length <= 104-...
    99+
    2024-04-02
  • Vue深入理解之v-for中key的真正作用
    目录前言第一种: key 采用 index第二种:key 采用唯一 ID总结前言 大家应该都知道, v-for 中 key 最常用的绑定方式有两种: 第一种用 index第二种用 唯...
    99+
    2024-04-02
  • Vue中v-model指令的原理分析
    小编给大家分享一下Vue中v-model指令的原理分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!vue的v-model是一个...
    99+
    2024-04-02
  • vue v-for中key的原理是什么
    这篇文章主要介绍“vue v-for中key的原理是什么”,在日常操作中,相信很多人在vue v-for中key的原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue ...
    99+
    2023-06-30
  • 详解vue中v-for的key唯一性
    目录1. DOM Diff2. 为同一层的相同类型的元素添加 key 属性3. key 不能是 index 下标值1. DOM Diff 要想真正了解 key 属性的存在意义,还真得...
    99+
    2024-04-02
  • 详解vue中v-for和v-if一起使用的替代方法template
    目录版本目标效果说明解决方法核心代码片段Car.vuevue中v-for和v-if一起使用的替代方法template 版本 vue 2.9.6element-ui: 2.15.6 目...
    99+
    2024-04-02
  • Vue 中v-model的完整用法及原理
    目录一、 v-model的基本使用二、 v-model的原理三、 v-model结合radio类型使用四、 v-model结合复选框类型使用五、 v-model结合select六、 ...
    99+
    2022-11-13
    Vue v-model用法 Vue v-model
  • vue中v-model的实现原理是什么
    这篇文章主要介绍vue中v-model的实现原理是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!v-model的实现原理是什么?为什么要使用VueVue是一款友好的、多用途且高性...
    99+
    2024-04-02
  • 怎么深入了解vue中的v-model
    这篇文章给大家介绍怎么深入了解vue中的v-model,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。首先,要明白我们学习v-model的作用是什么一个组件上的 v-model 默认会利用名为 value 的 prop ...
    99+
    2023-06-26
  • 八个Vue中常用的v指令详解
    目录Vue中常用的8种v指令1 v-text 指令2 v-html 指令3 v-on 指令案例:计数器4 v-show 指令5 v-if 指令6 v-bind 指令7 v-for 指...
    99+
    2024-04-02
  • 如何理解Oracle11g和12c的v$pwfile_user视图及区别
    本篇文章给大家分享的是有关如何理解Oracle11g和12c的v$pwfile_user视图及区别,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作