一、概述

《Attention Is All You Need》是一篇关于注意力机制里程碑的文章,从2017年发表至今2020年7月已经获得了上万的引用。该文的两大亮点一是提出了一个几乎仅依靠注意力来完成机器翻译的模型Transformer,推动了NLP的发展,另外一个亮点是改进了点积注意力(Dot-Product Attention),加入了一个缩放因子,提出了可伸缩点积注意力(Scaled Dot-Product Attention)。本人在阅读了《Attention Is All You Need》和《Illustrate the Trasformer》两篇文章后,发现文中对点积注意力的解释都不够具体,让很多读者难以理解。Q(一组query集合组成的矩阵),K(一组key集合组成的矩阵),V(一组value集合组成的矩阵)具体含义是什么,如何去理解。本人在经过思考以后,有一些自己的想法和见解在此提出,希望能对有相同困惑的同学一些帮助,如果有理解不对的地方,也希望大家在评论区提出指正共同探讨。

二、向量相关性

为了对点积注意力机制有一个比较好的理解,首先需要理解如何度量两个向量之间的相关性。由线性代数相关的知识我们可以知道,对于相同维度的两个向量,可以通过点积的方法来获得其相关性。

上图中的两个向量,点积就是对应位置相乘再相加,所得结果为0,可以说这两个向量是线性无关的,也就是垂直的。如果点积不为0,则是相关的,如下图点积结果为3。

三、点积注意力

在论文中作者提到的注意力公式如下图:

作者并未明确说明Q,K,V的具体含义。在论文中提到了self-attention和Encoder-Decoder Attention两种注意力层,笔者认为在这两种注意力机制中,Q,K,V代表的内容各不相同。

1、自注意力机制中的Q,K,V

自注意力机制即自己注意自己,在论文给出的机器翻译例子中,即是寻找一句话中各个单词之间的关系。我这里先说结论:在自注意力机制中,Q=K

在上图中,就是寻找it_这个单词与本句话中其他单词的联系。上图中我们把左边的内容记作k1,k2…k14(每一个都是词向量),右边的内容记作q1,q2…q14。这些向量是对应单词的词向量表示(可以理解为该向量就是这个单词的特征),所以,根据我们上面提到的向量之间的相关性度量方法,我们可以用q10(即右边的it_)与左边的k1(The_)作点积,得出单词The_与it_的相关性。即The_与it_的相关性为q10·k1。

为了度量animal_与it_的关系,可以使用q10与k2作点积,以此类推……

为了得出it_与整句话中所有词之间的相关性,q10要和k1到k14分别做点积,这一过程可以通过矩阵进行表示。我们把k1到k14按照行排列进行组合成为一个矩阵K,则K就是整个句子中各个单词的特征向量的拼接

所以,为了寻找it_(q10)与整句话(K)之间的联系,需要将q10与KT做点积,所得结果如下为一个向量,记录的是it_与整句话各个单词之间的相关性:

上面只找了q10(It_)一个单词和整句话的关系,我们需要找出这句话中所有单词分别和整句话的关系,于是,我们把q1,q2…q14也组成一个大的矩阵Q,用于表示整句话。Q与KT相乘,得出的下图中灰色的矩阵,即是一句话中的每个单词两两之间的相互关系。

实际上,在自注意力机制中,q与k,Q与K都是对应的同一个单词或者同一个句子,因此有qi=ki,Q=K,
Q与KT相乘的结果,经过缩放因子与softmax函数之后,对应的就是各个词之间的相互关联程度,最后再与自身V相乘,就是送入下一层的加权后的结果。

2、编解码注意力机制(Encoder-Decoder Attention)中的Q,K,V

在Transformer的解码器中有一个层为Encoder-Decoder Attention,其用到的注意力机制也是Dot-product Attention。不过,这里的Q,K,V的内容和self-attention不同。在解码器中,我们希望找到的是从一种语言到另一种语言对应的翻译关系,所以,在Encoder-Decoder Attention中,K是需要被翻译的语言经过Encoders之后的词向量表示Q是目标语言的所有单词的特征向量对应的矩阵(假设目标语言有5000个单词参加训练,那么矩阵Q就有5000行),此时Q与KT作点乘运算,可以计算出每个源单词翻译到目标单词对应的权重。最后再经过softmax和与目标单词的V矩阵作加权求和,经过一个分类器就能翻译出每一个源单词对应的目标单词。由于计算过程与self-attention一致,只是Q和K所代表的含义不同,这里不再赘述。

参考文献

https://arxiv.org/abs/1706.03762
https://jalammar.github.io/illustrated-transformer/

《Attention Is All You Need》注意力机制公式中Q,K,V的理解相关推荐

  1. 神经网络 注意力机制 Q K V 理解

    注意力机制 公式 为了简单假定       Q矩阵 K矩阵一样 Q                                                   K转置              ...

  2. 【自然语言处理(NLP)】基于注意力机制的中-英机器翻译

    [自然语言处理(NLP)]基于注意力机制的中-英机器翻译 作者简介:在校大学生一枚,华为云享专家,阿里云专家博主,腾云先锋(TDP)成员,云曦智划项目总负责人,全国高等学校计算机教学与产业实践资源建设 ...

  3. 深度学习attention机制中的Q,K,V分别是从哪来的?

    提问:找了各种资料,也读了论文原文,都是详细介绍了怎么把Q,K,V通过什么样的运算得到输出结果,始终没有一个地方有解释Q,K,V是从哪来的?一个layer的输入不就是一个tensor吗,为什么会有Q, ...

  4. 【Attention九层塔】注意力机制的九重理解

    本文作者:电光幻影炼金术 研究生话题Top1,上海交大计算机第一名,高中物理竞赛一等奖,段子手,上海交大计算机国奖,港中文博士在读 https://zhuanlan.zhihu.com/p/36236 ...

  5. Attention!当推荐系统遇见注意力机制

    NewBeeNLP出品 作者@上杉翔二 悠闲会 · 信息检索 当注意力机制都已经变成很tasteless的手法的时候,使用或者魔改注意力机制一定要专注讲好自己的故事:即『为什么要用Attention, ...

  6. Attention is all you need注意力机制代码解析

    在这篇文章中,我以逐行实施的形式介绍了本文的"注释"版本. 我已经重新排序并从原始论文中删除了一些部分,并在全文中添加了评论. 本文档本身是一个有效的笔记本,应完全可用. 总共有4 ...

  7. Attention九层塔:注意力机制的九重理解

    Attention现在已经火爆了整个AI领域,不管是机器视觉还是自然语言处理,都离不开Attention.transformer或者BERT.下面我效仿EM九层塔,提出Attention九层塔.希望能 ...

  8. 基于注意力机制的 中 英机器翻译

    数据处理模块 数据介绍 语料介绍一下: data文件夹有如下文件: cn.txt:中文语料,里面的句子都已经分好了词. en.txt: 英语对齐语料,里面的单词也分词完毕. cn.text.txt: ...

  9. transformer注意力机制的理解(Q,K,V,dk)

    Attention公式: 上面这个注意力公式可以理解为是算 V 的加权后的表示 权重就是V前面的所有部分, 其中 softmax 可以使得权重概率分布和为1. 其中  算的就是注意力的原始分数(其实也 ...

最新文章

  1. java cms 垃圾回收_Java 9 或将放弃 CMS(并发标记清除垃圾收集器)
  2. 调用方法[manageapp]时发生异常_探讨通过Feign配合Hystrix进行调用时异常的处理
  3. VTK:可编程源用法实战
  4. Effective Java之for-each循环优先于for循环(四十六)
  5. Maze(BFS处理)
  6. linux epoll 开发指南-【ffrpc源码解析】
  7. 解决:RabbitMQ 连接报错:amqp.AmqpConnectException: java.net.ConnectException: Connection refused: connect
  8. 7-2 银行排队问题之单窗口“夹塞”版 (30 分)
  9. weblogic启动服务报错
  10. 2021年中国助行靴市场趋势报告、技术动态创新及2027年市场预测
  11. android 初始化变量,变量初始化 - Android Studio
  12. finebi跳转到本地html文件,组件跳转- FineReport帮助文档|报表开发|报表使用|学习教程...
  13. IOS11降级到IOS10的操作方法(刷机有风险,操作需谨慎)
  14. 伺服步进控制程序西门子200PLC和昆仑通泰MCGS触摸屏控制伺服步进电机程序例子题】
  15. 华为P50/P50Pro怎么解锁huawei P50pro屏幕锁开机锁激活设备锁了应该如何强制解除鸿蒙系统刷机解锁方法流程步骤不开机跳过锁屏移除锁定进系统方法经验
  16. maple 求特征值
  17. 在MATLAB环境下使用深度学习网络DeepLabV3+进行语义分割(云图分割)
  18. AirTag被不法分子滥用为恶意追踪工具?苹果:即将更新解决
  19. 树莓派离线语音唤醒snowboy
  20. 英文歌曲:Yesterday Once More(昨日重现)

热门文章

  1. 展讯系统 Dialer 强力定制
  2. 计算机科学与技术专业有哪些课程,计算机科学与技术专业课程有哪些
  3. 英文外链怎么做效果好?
  4. 计算机在储存波形,安泰示波器维修分享--泰克数字示波器的存储功能详解
  5. 以核心技术提升打破认知偏见:破解第三代哈弗H6的技术密码
  6. 数组,es5,字符串,Math和Date
  7. XAMPP下载安装、control.ini拒绝访问、Apache和mysql启动报错、与本地MySQL端口冲突问题
  8. k8s集群部署nginx服务并使用ceph-csi挂载存储以及测试
  9. IIS7.5精细控制web访问权限
  10. ldap服务器配置信息错误,客户域控启用了LDAP服务器签名要求导致配置域信息失败...