如何理解self attention中的QKV矩阵

疑问:三个矩阵的形状是一样的(embd_dim*embd_dim),作用也都是对输入句子的embedding做线性变换(tf.matmul(Q,input_value),tf.matmul(K,input_value),tf.matmul(V,input_value))。

那么,为什么需要三个矩阵QKV。

对于这个问题,在我第一次看了b站博主视频https://www.bilibili.com/video/BV1P4411F77q(强烈推荐)。就已经明白了。但是因为没有做相关笔记,也没有项目实践。所以,又忘记了,然后又看了一遍。吸取之前的教训,所以来这里做笔记了。

公式:

1.初始化三个矩阵Q,K,V(待学习参数)
2.计算embedding:query=embedding_x(input sentense)*Q,key= embedding_x(input sentense)*K,value=embedding_x(input sentense)*V
3.计算点积,每个词和每个词的相关性,其实就是attention加权求和的权重:
logits = tf.matmul(query, key, transpose_b=True) / math.sqrt(depth)
每一行代表的是当前词和句子的每个词的相关性(你品,你细细品,点积的含义)。
4.对权重做归一化,保证一行的权重和为1:alignment = tf.nn.softmax(logits, axis=-1)
5.对输入(input sentense)加权求和:attended = tf.matmul(alignment, value)。每一个词的embedding包含了这个句子所有词的信息。其实这就是transform相比于lstm和gru的优点。

总结:self attention 要做的事情,就是要将一句话的内容融合到每个词的向量表示中。如何融合=>通过加权。加权就要算权重。如何算这个权重=>向量的点击(Q和K的点积)。最后,通过计算好的权重加权,就完成啦。

思考:为什么需要用三个Q,K,V分别对embedding_x 做线性变换,再计算attention。

个人理解,为什么不共享一个线性变换的矩阵,而是用三个。从模型角度是增加模型的解释能力。从业务角度,分别计算的是搜索词和关键词及每个句子间的词向量。有一定差异。

(关于业务角度,个人理解不一定正确,欢迎讨论)

如何理解self attention中的QKV矩阵相关推荐

  1. 【CSS3】 理解CSS3 transform中的Matrix(矩阵)

    理解CSS3 transform中的Matrix(矩阵) by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu ...

  2. python—结巴分词的原理理解,Hmm中的转移概率矩阵和混淆矩阵。

    结巴分词的过程: jieba分词的python 代码 结巴分词的准备工作 开发者首先根据大量的人民日报训练了得到了字典库.和Hmm中的转移概率矩阵和混淆矩阵. 加载字典, 生成trie树 为什么要加载 ...

  3. 理解CSS3 transform中的Matrix(矩阵)

    一.哥,我被你吓住了 打架的时候会被块头大的吓住,学习的时候会被奇怪名字吓住(如"拉普拉斯不等式").这与情感化设计本质一致:界面设计好会让人觉得这个软件好用! 所以,当看到上面& ...

  4. 通俗易懂:Attention中的Q、K、V是什么?怎么得到Q、K、V?

    说一下Attention中的QKV是什么,再举点例子说明QKV怎么得到.还是结合例子明白的快. Attention中Q.K.V是什么? 首先Attention的任务是获取局部关注的信息.Attenti ...

  5. 如何理解神经网络优化中Momentem能够缓解hessian矩阵病态的问题

    如何理解神经网络优化中Momentem能够缓解hessian矩阵病态的问题? 1.首先介绍一下,矩阵的病态问题 矩阵病态主要是因为矩阵向量之间相关性太大,在二维上说就是矩阵向量之间的夹角太小,导致这两 ...

  6. Scipy sparse中关于CSC矩阵的自我理解

    官方文档可见:https://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.csc_matrix.html#scipy.spars ...

  7. excel中如何对矩阵得对角线进行求和_如何利用图卷积网络进行图形深度学习(第2部分)...

    图上的机器学习是一项艰巨的任务,由于高度复杂但信息量丰富,本文是关于如何利用图卷积网络(GCN)进行深度学习的系列文章中的第二篇.我将简要回顾一下上一篇文章: 图形卷积网络的高级介绍 具有谱图卷积的半 ...

  8. 【TensorFlow】TensorFlow从浅入深系列之十二 -- 教你深入理解卷积神经网络中的池化层

    本文是<TensorFlow从浅入深>系列之第12篇 TensorFlow从浅入深系列之一 -- 教你如何设置学习率(指数衰减法) TensorFlow从浅入深系列之二 -- 教你通过思维 ...

  9. 拉普拉斯算子属于卷积方法吗_二维图像中的Laplace算子和图论中的Laplacian矩阵...

    最近在阅读 如何理解 Graph Convolutional Network(GCN)?​www.zhihu.com 接触到了图论中的Laplacian矩阵,定义为 , 是Laplacian矩阵, 是 ...

最新文章

  1. Apache POI和EasyExcel 第七集:EasyExcel的基本操作,读取和写入Excel,一行足矣
  2. Java使用Jdbc操作MySql数据库(一)
  3. ueditor配置文件配置自动段落缩进_vimrc里各种配置的含义
  4. 2434: [Noi2011]阿狸的打字机
  5. html5编游戏好难,分享微信开发Html5轻游戏中的几个坑
  6. EXCEL怎么打20位以上的数字?
  7. 第五节: Quartz.Net五大构件之Trigger的四大触发类
  8. python可变参数函数二阶导数公式_python中函数的可变参数
  9. DBX到PDF转换器
  10. 光纤中的多种光学模式芯径_光纤光缆的21条基础知识
  11. easyui结合java,Spring+SpringMVC+MyBatis+easyUI整合基础篇(二)牛刀小试
  12. 网络文件系统访问与ftp服务
  13. 以图搜图:Python实现dHash算法
  14. JSK-373 加密【入门】
  15. 2018.8.2课堂笔记
  16. 不存在一笔画完一个正方体
  17. 第一次参加本校大学生创新创业训练项目答辩的反思与总结
  18. 《mysql从删库到跑路》下载
  19. 使用python Mayavi 绘制矢量场图
  20. RN导入高德地图定位的用法实例

热门文章

  1. 供水信息化运行管理平台 智慧供水管网信息化管理平台建设概述
  2. property=og:title 是什么意思?og:的用法又是什么呢?
  3. Python abs()函数
  4. python编程基础人邮版答案_《Python Web 编程》(人邮出版社)作业答案下载
  5. Python opencv PIL numpy base64互相转化
  6. qml虚拟键盘的实现
  7. android ppt 注释软件,安卓版WPS Office 5.5.2增强PPT悬浮备注框
  8. PHP操作期数,期号的常用方法
  9. 面向对象的特性——继承
  10. 利用matlab实现光波(电磁波)的仿真