Self-attention计算方法

2023-11-16

在这里插入图片描述

三个矩阵

首先,Inputs为x1~x4,是一个sequence,每一个Input先通过一个Embedding,乘上一个Matrix得到(a1,a4),然后放入self-attention
在self-attention当中,每一个Input都分别乘上3个不同的Matrix产生3个不同的Vector,分别命名为q,k,v
在这里插入图片描述
q代表query,to match others,每一个Input都乘上一个Matrix Wq,就得到q1~q4,叫做query
k代表key,to be matched计算同上
v就是要被抽取出来的information,计算同上
在这里插入图片描述
现在,每一个a都有qkv3个不同的Vector,接下来,拿每一个query q,去对每一个key k去做attention
attention简单来说就是输入2个向量,out一个分数 先看q1,对k1做attention,得到α1,1
在这里插入图片描述
同理得到α1,2,α1,3,α1,4,至此得到了q1对k1,2,3,4的attention,d为q与k的Dimension(维度),因为q与k做点乘,所以维度越大,算出来的值越大。
前面说过attention是输入2个Vector,输出1个out分值,不能让分值随向量维度的增大而增大,softmax之后会导致梯度消失,所以要先进行一个缩放。
也可以尝试用其他的attention,不一定要用Dot-Product Attention
在这里插入图片描述
接下来将得到的α1,11,4通过一个softmax层得到 α ^ \hat α α^
在这里插入图片描述
然后拿 α ^ \hat α α^去和每一个v相乘,得到的Vector加起来,就得到了一个Vector,这个Vector就是b1
self-attention输入是一个sequence,输出也是一个sequence,现在得到了输出的seq的第一个Vector b1,此时可以知道,产生b1的时候,已经看到了a1~a4的词序
如果产生b1的时候不想考虑整个句子的词序,只想考虑local的information,只需要让 α ^ \hat α α^234产生出来的值变为0,就可以只考虑local的information
而如果要考虑最远的x4产生的影响,只需要让 α ^ \hat α α^4有值就可以了
在这里插入图片描述
刚刚算出来了b1,在同时也可以算b2,b3,b4
在这里插入图片描述
现在得到b1~b4,且他们可以平行的被计算出来,可以被加速。在这里插入图片描述

平行化

那么self-attention是怎么做平行化的?
刚刚讲
a1乘上一个Wq得到q1
a2乘上一个Wq得到q2
所以可以把a1到a4拼起来变成一个Matrix,用I表示,用I乘上Wq就可以得到Q,Q中每一个col(q)代表一个query
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

同理得到KV
在这里插入图片描述

刚刚讲到,用q1,对每一个做attention,其实就是做Dot-Product,省略了 d \sqrt d d 更简洁一点,这里将k1转置,得到α1,1 ,同理得到α1,2,α1,3,α1,4,其实都是q1与不同的k做Dot-Product,所以可以将所有的k集合在一起,将所有的k当做一个Matrix 的row(行),这个Matrix 乘上q1得到的结果就是一个向量即α1,11,4
所以 α 1 , 1 α_{1,1} α1,1~ α 1 , 4 α_{1,4} α1,4的计算是可以平行的
在这里插入图片描述
q 2 q_2 q2也是一样的
在这里插入图片描述
同理可得 q 3 q_3 q3 q 4 q_4 q4
在这里插入图片描述
所以计算出整个attention的过程,就等于是我们得到的K做一个转置直接乘上Q就得到attention A,Input为4,A为4x4,如果Input为N,则A为NxN,接下来做softmax得到 A ^ \hat A A^
在这里插入图片描述
b的计算同上
在这里插入图片描述
V和 A ^ \hat A A^相乘就得到了O
在这里插入图片描述

整体流程Attention(Q,K,V)=softmax( Q K T d k {QK^T\over \sqrt {d_k}} dk QKT)V

在这里插入图片描述

Multi-headed

作用,如同卷积网络中的多个filter一样
在这里插入图片描述
原文给出的是8个head
在这里插入图片描述

举例2个head的计算方法:

要做 q i , 1 q^{i,1} qi,1与别的词做attention,要先与 k i , 1 k^{i,1} ki,1 k j , 1 k^{j,1} kj,1做Dot-Product最后计算出 b i , 1 b^{i,1} bi,1

在这里插入图片描述

q i , 2 q^{i,2} qi,2也是一样,最后得到 b i , 2 b^{i,2} bi,2

在这里插入图片描述

然后做个降维得到 b i b^i bi
在这里插入图片描述

Multi-head总体架构

Q,K,V都是有多个(默认8个),最终通过一个全连接层合为一个特征。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Self-attention计算方法 的相关文章

  • huggingface使用(一):AutoTokenizer(通用)、BertTokenizer(基于Bert)

    一 AutoTokenizer BertTokenizer的区别 AutoTokenizer是通用封装 xff0c 根据载入预训练模型来自适应 auto tokenizer span class token operator 61 span
  • BERT :Pre-training of Deep Bidirectional Transformers for Language Understanding论文阅读笔记(NAACL 2019)

    目录 原文翻译 BERT 用于语言理解的深度双向Transformer预训练 原文链接 https aclanthology org N19 1423 pdf 摘要 1 引言 2 相关工作 2 1 基于特征的方法 2 2 微调方法 2 3
  • 【个人记录】bert初步学习

    目的 背景 使用医疗方面的bert模型 进行实体识别和医患匹配 参考 如何快速使用BERT 知乎 zhihu com tensorflow版本与python版本不相容的问题 fltenwall的博客 CSDN博客 中文医疗预训练模型 MC
  • 读书笔记:多Transformer的双向编码器表示法(Bert)-1

    多Transformer的双向编码器表示法 Bidirectional Encoder Representations from Transformers 即Bert 本笔记主要是对谷歌Bert架构的入门学习 介绍Transformer架构
  • 【自然语言处理】GPT 系列讲解

    有任何的书写错误 排版错误 概念错误等 希望大家包含指正 在阅读本篇之前建议先学习 自然语言处理 Seq2Seq 讲解 自然语言处理 Attention 讲解 自然语言处理 ELMo 讲解 自然语言处理 Transformer 讲解 GPT
  • bert第三篇:tokenizer

    文章目录 tokenizer基本含义 bert里涉及的tokenizer BasicTokenzer wordpiecetokenizer FullTokenzier PretrainTokenizer 关系图 实操 如何训练 训练自己中文
  • 使用Transformers离线模型(以bert模型为例)

    首先需要安装transformers pip install transformers 以bert base uncased为例 进入网站 https huggingface co bert base uncased tree main 可
  • bert模型蒸馏实战

    由于bert模型参数很大 在用到生产环境中推理效率难以满足要求 因此经常需要将模型进行压缩 常用的模型压缩的方法有剪枝 蒸馏和量化等方法 比较容易实现的方法为知识蒸馏 下面便介绍如何将bert模型进行蒸馏 一 知识蒸馏原理 模型蒸馏的目的是
  • 一文读懂BERT(原理篇)

    一文读懂BERT 原理篇 2018年的10月11日 Google发布的论文 Pre training of Deep Bidirectional Transformers for Language Understanding 成功在 11
  • 论文学习(一)——MWP-BERT: Numeracy-Augmented Pre-training for Math WordProblem Solving

    记录一下自己的第一篇论文学习 摘要 数学应用题 MWP 的求解面临着数字表示学习的困境 为了避免数字表示的问题 并且减少可行解的搜索空间 现有求解MWP的工作通常用符号占位符代替实数 以便专注于逻辑推理 然而 不同于常见的符号推理任务 如程
  • 【自然语言处理】BERT 讲解

    有任何的书写错误 排版错误 概念错误等 希望大家包含指正 在阅读本篇之前建议先学习 自然语言处理 Seq2Seq 讲解 自然语言处理 Attention 讲解 自然语言处理 ELMo 讲解 自然语言处理 Transformer 讲解 BER
  • Bert模型做多标签文本分类

    Bert模型做多标签文本分类 参考链接 BERT模型的详细介绍 图解BERT模型 从零开始构建BERT 强推 李宏毅2021春机器学习课程 我们现在来说 怎么把Bert应用到多标签文本分类的问题上 注意 本文的重点是Bert的应用 对多标签
  • tensorflow-1.14 版本更新

    使用TensorFlow训练文本筛选 错误提示 AttributeError module tensorflow python platform flags has no attribute mark flag as required 由于
  • NLP之BERT和GPT

    NLP之BERT和GPT杂谈 我们介绍了好几种获取句子表征的方法 然而值得注意的是 我们并不是只对如何获取更好的句子表征感兴趣 在评估他们各自模型性能的时候所采取的方法 回过头去进行梳理 发现 无论是稍早些的 InferSent 还是 20
  • 【论文阅读】BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

    论文阅读 BERT Pre training of Deep Bidirectional Transformers for Language Understanding 前言 BERT 是 Google 于 2018 年提出的 NLP 预训
  • 【BERT类预训练模型整理】

    BERT类预训练模型整理 1 BERT的相关内容 1 1 BERT的预训练技术 1 1 1 掩码机制 1 1 2 NSP Next Sentence Prediction 1 2 BERT模型的局限性 2 RoBERTa的相关内容 2 1
  • 关于Bert被质疑利用“虚假统计性提示”的ACL论文

    曾经狂扫11项记录的谷歌NLP模型BERT 近日遭到了网友的质疑 该模型在一些基准测试中的成功仅仅是因为利用了数据集中的虚假统计线索 如若不然 还没有随机的结果好 这项研究已经在Reddit得到了广泛的讨论 引用自 新智元 真的不想那么标题
  • BERT、BART、T5 等法学硕士的比较分析

    探索语言模型 介绍 在这篇博文中 我将讨论 BERT BART 和 T5 等大型语言模型 到 2020 年 法学硕士领域取得的重大进展包括这些模型的开发 BERT和T5是Google开发的 BART是Meta开发的 我将根据这些型号的发布日
  • [Python人工智能] 三十三.Bert模型 (2)keras-bert库构建Bert模型实现文本分类

    从本专栏开始 作者正式研究Python深度学习 神经网络及人工智能相关知识 前一篇文章开启了新的内容 Bert 首先介绍Keras bert库安装及基础用法 这将为后续文本分类 命名实体识别提供帮助 这篇文章将通过keras bert库构建
  • 使用tensorflow2.15.0版跑bert模型遇到的问题记录

    背景 使用官方的bert模型 https github com google research bert gt https github com google research bert 作文本分类时 运行 run classifier p

随机推荐

  • SCI 美国《科学引文索引》(Science Citation Index, 简称 SCI )

    科学引文索引 编辑锁定同义词SCI 科学引文索引 一般指科学引文索引 美国 科学引文索引 Science Citation Index 简称 SCI 于1957 年由 美国科学信息研究所 Institute for Scientific I
  • 当学生的两门课成绩分别为X,Y,按下面要求分类输出学生的成绩评定。 (C语言)

    要求 1 如果两门都大于等于90 则输出优秀 2 如果两门都大于等于80 则输出良好 3 如果两门都大于等于60 则输出合格 4 如果有一门不合格 则输出不合格 5 如果两门都不合格 则输出很差 分析 假设成绩的范围是0 100 所以要先判
  • 史上最全的最通俗易懂的-jmeter调试错误全集

    一 前言 在使用jmeter做接口测试的过程中大家是不是经常会遇到很多问题 但是无从下手 不知道从哪里开始找起 对于初学者而言这是一个非常头痛的事情 这里结合笔者的经验 总结出以下方法 二 通过查看运行日志调试问题 写好脚本后 可以先试着运
  • 原码、反码、补码的讲解

    本文主要介绍原码 反码 补码的计算方法以及意义 阅读此文需要知道十进制与二进制的转换法则 需要的可看此文 待补充 一 原码 反码 补码存在的意义 首先要知道的是 1 整型的数据在内存中都以补码的形式进行存储 目的是便于进行运算等操作 2 正
  • 网页连接数据库,一个简单的登入界面以及实现登入功能

    基于V 的ASP NET MVC 4 web 网站程序开发 接着上篇继续 上篇地址为https blog csdn net weixin 42534390 article details 86576537 我们首先要有一个认知 就是ASP
  • 反思自己问题分享

    学习上出现的问题 一直在学习却忘了放慢脚步 导致学的太快 不扎实 JavaSE浅部知识确实很简单 如果去深度刨析里面更深一层知识后会花很长时间 现在我们掌握的 SE 知识点只能算是会用 学过后没有过多去实践 找各种借口翻篇 如 观看学习视频
  • 计算广告读书笔记

    计算广告 广告主 媒体 用户 用户画像 ROI 进化 合约广告 多个合约在线分配问题 gt 竞价广告 交易终端TD 广告网络ADN gt 实时竞价RTB 广告交易平台ADX 需求方平台DSP 品牌广告 效果广告 点击率CTR 点击价值 到达
  • livecd简介

    LiveOS image Fedora Project Wiki Fedora Workstation Live iso mount EFI image isolinux LiveOS squashfs img mount LiveOS r
  • 三种常用的朴素贝叶斯实现算法——高斯朴素贝叶斯、伯努利朴素贝叶斯、多项式朴素贝叶斯

    在sklearn中 提供了若干种朴素贝叶斯的实现算法 不同的朴素贝叶斯算法 主要是对P xi y 的分布假设不同 进而采用不同的参数估计方式 我们能够发现 朴素贝叶斯算法 主要就是计算P xi y 一旦P xi y 确定 最终属于每个类别的
  • 入门解决迷宫问题和算法DFS(递归+回溯)(C语言)

    代码中用for语句代用了下面的4个if语句 include
  • c 语言 多实例测试

    题目描述 求n个整数的和 输入 输入第一行是一个整数T 表示有T组测试实例 每组输入包括两行 第一行一个数n表示接下来会有n个整数 第二行空格隔开的n个数 输出 对于每组输入 在一行输出n个数的和 保证和不会超出int类型的范围 样例输入
  • Vue项目中的富文本插件表格、字号相关问题

    vue quill editor字号自定义 在近日开发项目过程中需要用到富文本 不过样式和工具栏需要按照需求来自定义 我首先想到的是用vue quill editor 不过vue quill editor的字号是以large small这类
  • FileInputFormat详解

    转载 http blog csdn net hellozpc article details 45771933 https my oschina net leejun2005 blog 133424 1 概述 我们在设置MapReduce输
  • ThinkPhp5.1快速创建模块

    快速生成模块 生成一个test模块的指令如下 gt php think build module test 表示自动生成test模块 自动生成的模块目录包含了config controller model和view目录以及common ph
  • 【内存泄漏】- 4. 使用python的gc+pyrasite模块检测python内存泄漏

    Python内存泄漏测试 1 Python内存泄漏处理机制 为了解决内存泄漏的问题 Python2 0的版本开始引入 引用计数 并基于引用计数实现了自动垃圾收集 后来为了解决循环引用导致内存泄漏的问题 又引入 标记 清除 分代回收 机制 P
  • Java实现图片上传

    使用 IDEA 软件 实现文件上传 结合JSP form表单及Servlet 实现文件上传 一 JSP界面 HTML界面 配置 实现文件上传需要配置form表单 基本设置 其中固定两个值是 提交方式只能为post enctype是固定的
  • 瑞萨电子TPS-1教学-第一讲TPS-1 PROFINET Demo Board概述 视频

    瑞萨电子TPS 1教学 第一讲TPS 1 PROFINET Demo Board概述 Renesas
  • 【深度好文】企业数字化转型的核心要素及能力架构分析

    数字化转型究竟是什么 首先我们还是摘录下百度词条上对数字化转型的一个简单说明如下 数字化转型是建立在数字化转换和数字化升级基础上 进一步触及公司核心业务 以新建一种商业模式为目标的高层次转型 数字化转型是开发数字化技术及支持能力以新建一个富
  • 72. Edit Distance

    Given two words word1 and word2 find the minimum number of steps required to convert word1 to word2 each operation is co
  • Self-attention计算方法

    三个矩阵 首先 Inputs为x1 x4 是一个sequence 每一个Input先通过一个Embedding 乘上一个Matrix得到 a1 a4 然后放入self attention 在self attention当中 每一个Input