Self-Attention 自注意力

让我们跳进去谈谈transformer的self-attention机制。如果您能了解本视频背后的主要思想,您就会了解变压器网络工作背后最重要的核心思想。

让我们开始吧。您已经看到了注意力如何与诸如 RNN 之类的顺序神经网络一起使用。要使用更晚的 CNN 风格的注意力,您需要计算自注意力,在其中为输入句子中的每个单词创建基于注意力的表示。让我们使用我们的运行示例,Jane、visite、l'Afrique、en、septembre,我们的目标是为每个单词计算这样的基于注意力的表示。所以我们最终会得到其中的五个,因为我们的句子有五个单词。当我们计算它们时,我们将这五个词用 A1 到 A5 表示。我知道您开始看到一堆符号 Q、K 和 V,我们将在稍后的幻灯片中解释这些符号的含义,所以现在不要担心它们。

我将要使用的运行示例是在这句话中使用 l'Afrique 一词。我们将在下一张幻灯片中逐步介绍 Transformer 网络的自注意力机制如何允许您为这个单词计算 A3,然后您也对句子中的其他单词执行相同的操作。

现在您之前学习了词嵌入。表示 l'Afrique 的一种方法是查找 l'Afrique 的词嵌入。但是,根据上下文,我们是否将 l'Afrique 或Africa视为具有历史意义的地点或度假胜地,或者是世界第二大洲。根据您对 l'Afrique 的看法,您可以选择以不同的方式表示它,这就是表示 A(3) 的作用。它将查看周围的词,试图找出我们在这句话中谈论Africa的实际情况,并为此找到最合适的表示。就实际计算而言,它与您之前看到的在 RNN 上下文中应用的注意力机制不会有太大区别,除了我们将对句子中的所有五个单词并行计算这些表示。当我们在 RNN 之上建立注意力时,这就是我们使用的等式。

使用自注意力机制,注意力方程看起来像这样。你可以看到方程有一些相似之处。这里的内部项也涉及一个 softmax,就像左边的这个项一样,你可以将指数项视为类似于注意力值。您将在下一张幻灯片中看到这些术语的确切计算方式。所以,再一次,不要担心细节。

但主要区别在于,对于每个单词,比如 l'Afrique,您都有三个值,称为查询(q)、键(k)和值(v)( query, key, and value)。这些向量是计算每个词的注意力值的关键输入。

现在,让我们逐步完成实际计算 A3 所需的步骤。在这张幻灯片上,让我们逐步完成从单词 l'Afrique 到自注意力表示 A3 所需的计算。作为参考,我还在右上方打印了上一张幻灯片中类似 softmax 的方程。首先,我们要将每个单词与称为query(q), key(k), value(v)对的三个值相关联。如果 X3 是 l'Afrique 的词嵌入,则 q3 的计算方式是作为学习矩阵,我将写成 WQ 乘以 X3,对于键值对也类似,所以 k3 是 WK 乘以 x3,v3 是 WV 乘以 x3。这些矩阵 WQ、WK 和 WV 是此学习算法的参数,它们允许您为每个单词提取这些查询、键和值向量。

那么这些查询键和值向量应该做什么呢?他们确实使用了一个类似于音乐会和数据库的松散类比,您可以在其中进行query, key, value对。如果您熟悉这些类型的数据库,这个类比可能对您有意义,但如果您不熟悉该数据库概念,请不要担心。让我给出这些查询、键和向量值的意图背后的一种直觉(请结合下图)。

  1. Q3 是一个关于 l'Afrique 的问题。 Q3 可能代表一个问题,比如那里发生了什么?Africa,l'Afrique 是一个目的地。您可能想知道在计算 A^3 时,那里发生了什么。我们要做的是计算 q^3 和 k^1 之间的内积。

  2. 然后我们计算 q^3 和 k^2 之间的内积,此操作的目标是提取所需的最多信息,以帮助我们在这里计算最有用的表示 A^3。

  3. 再次,只是为了建立直觉,如果 k^1 代表这个词是一个人,因为 Jane 是一个人,而 k^2 代表第二个词,visite,是一个动作,那么你可能会发现 q^3 与k^2 的内积值最大,这可能是直观的例子,可能表明visite 为您提供与Africa正在发生的事情最相关的上下文。也就是说,它被视为访问的目的地。

  4. 我们要做的是在这一行中取这五个值并计算它们的 Softmax这里其实有这个Softmax,在我们刚才讲的例子中,q^3 乘以k^2 对应wordvisite 可能是最大的值用蓝色表示。最后,我们将取这些 Softmax 值并将它们与 v^1 相乘,v^1 是单词 1 的值,单词 2 的值,依此类推,因此这些值对应于那里的值。

  5. 最后,我们总结一下。这个求和对应于这个求和运算符,因此将所有这些值相加得到 A3,它正好等于这里的这个值。另一种写A3的方式实际上是A(q^3,k,v) 。但有时这样写A^3会更方便。这种表示的主要优点是 l'Afrique 的词不是一些固定的词嵌入。相反,它让自注意力机制意识到 l'Afrique 是访问者、访问的目的地,从而为这个词计算更丰富、更有用的表示

现在,我一直在使用第三个单词 l'Afrique 作为运行示例,但您可以对序列中的所有五个单词使用此过程,以获得类似 Jane、visite、l'Afrique、en、septembre 的丰富表示。如果把这五个计算放在一起,文献中使用的外延是这样的,你可以把我们刚刚谈到的所有这些计算对序列中的所有单词进行总结,写成Attention(Q, K, V) where Q , K, V 矩阵具有所有这些值这只是这里方程的压缩或矢量化表示。分母的式子只是为了缩放点积,因此它不会爆炸。你真的不需要担心它。但这种注意力的另一个名称是缩放点积注意力。这就是最初的 Transformer 架构论文《Attention Is All You Need》中所代表的内容。这就是transformer网络的self-attention机制。

概括地说,与五个词中的每一个相关联,您最终会得到一个查询q、一个键k和一个值v。该查询让您可以提出有关该词的问题,例如Africa正在发生的事情。关键字查看所有其他单词,并根据与查询的相似性,帮助您找出哪些单词给出了与该问题最相关的答案。在这种情况下,visite 是在Africa发生的事情,某人正在访问Africa。

最后,该值允许表示插入访问者应如何在 A^3 内表示,在Africa的表示内。这使您可以为Africa这个词提出一个表示,表示这是Africa并且有人正在访问Africa。您只需要为每个单词提取相同的固定词嵌入而不能够根据其左侧和右侧的词进行调整相比,这是对世界的一种更细致、更丰富的表示单词。我们都必须考虑到上下文。

第五课第四周笔记2:Self-Attention 自注意力的更多相关文章

  1. 第五课第四周笔记3:Multi-Head Attention多头注意力

    Multi-Head Attention多头注意力 让我们进入并了解多头注意力机制. 符号变得有点复杂,但要记住的事情基本上只是你在上一个视频中学到的自我注意机制的四个大循环. 让我们看一下每次计算自 ...

  2. 第五课第四周笔记1:Transformer Network Intuition 变压器网络直觉

    目录 Transformer Network Intuition 变压器网络直觉 Transformer Network Intuition 变压器网络直觉 深度学习中最令人兴奋的发展之一是 Tran ...

  3. 第五课第四周笔记4:Transformer Network变压器网络

    Transformer Network变压器网络 你已经了解了 self attention,你已经了解了 multi headed attention.在这个视频中,让我们把它们放在一起来构建一个变 ...

  4. 第五课第四周实验一:Embedding_plus_Positional_encoding 嵌入向量加入位置编码

    目录 变压器预处理 包 1 - 位置编码 1.1 - 位置编码可视化 1.2 - 比较位置编码 1.2.1 - 相关性 1.2.2 - 欧几里得距离 2 - 语义嵌入 2.1 - 加载预训练嵌入 2. ...

  5. Elasticsearch7.X 入门学习第五课笔记---- - Mapping设定介绍

    原文:Elasticsearch7.X 入门学习第五课笔记---- - Mapping设定介绍 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本 ...

  6. 红帽学习笔记[RHCSA] 第五课[用户、权限相关]

    第五课 用户权限 查看文件的权限 [kane@localhost /]$ ll total 36 ----------. 1 root root 1751 Aug 22 20:58 ~ lrwxrwx ...

  7. 斯坦福 CS183 & YC 创业课系列中文笔记

    欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. 在线阅读 ApacheCN 面试求职交流群 724187166 ApacheCN 学习资源 目录 Zero to One 从0到1 ...

  8. NeHe OpenGL教程 第四十五课:顶点缓存

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  9. kali linux 渗透测试视频教程 第五课 社会工程学工具集

    第五课 社会工程学工具集 文/玄魂 教程地址:http://edu.51cto.com/course/course_id-1887.html   目录 第五课社会工程学工具集 SET SET的社会工程 ...

随机推荐

  1. noip模拟38

    \(\color{white}{\mathbb{深秋总有廖落处,雁归每是菊败时,名之以:残菊}}\) 这场比赛几乎全场都在打暴力,几乎人均切掉的 \(t1\) 没有想到双指针,\(t3\) 的暴力也没 ...

  2. jquery实现强制刷新

    $('iframe.active').attr('src', $('iframe.active').attr('src'));

  3. 硕盟SM-A44|USB3.0转RJ45千兆网口转换器(TYPE A USB3.0 TO RJ45)

    硕盟SM-A44是一款USB3.0转RJ45千兆网口转换器.,转换USB端口到以太网端口.它让你投入低成本就可以轻松拥有千兆以太网.可将网络连接到台式机,笔记本电脑等等设备.硕盟 USB千兆网卡采用嵌 ...

  4. python库--tensorflow--scope命名方式

    方法   参数 说明 .name_scope() with...: name 在其下使用Variable, 变量名(V_n)前会被加上'name/...'且相同V_n会自动添加后缀加以区分, 使用ge ...

  5. 对Java的annotation(注解)的认识

    什么是java的annotation(注解) ? 注解的定义(annootation): public @interface TestAnnotation { } 上面的这种形式,便定义了注解是如何定 ...

  6. 学习PHP中的国际化日期格式化操作

    对于国际化功能来说,日期相关的格式化操作也是一块重头戏,毕竟不同的时区,不同的国家对于日期的表示方式都会有些不同.今天我们主要来学习的就是国际化地表示日期相关的信息内容. 日期格式化 首先就是最直接的 ...

  7. 你会阅读appium官网文档吗

    高效学习appium第一步,学会查看appium官方文档.如果能把appium文档都通读一遍,对学习appium大有益处. 而能做到通读appium官方文档的人,想必不是很多,刚开始学习appium的 ...

  8. 当你创建了一个 Deployment 时,Kubernetes 内部发生了什么?

    我们通常使用 kubectl 来管理我们的 Kubernetes 集群. 当我们需要一个 Nginx 服务时,可以使用以下命令来创建: kubectl create deployment nginx ...

  9. AT5661-[AGC040C]Neither AB nor BA【模型转换】

    正题 题目链接:https://www.luogu.com.cn/problem/AT5661 题目大意 一个包含\(A,B,C\)的序列,每次可以选择相邻的两个除了\(AB\)和\(BA\)的删去. ...

  10. 最详细的搭建web自动化测试网站,别再说你没有实战项目(文未有福利)

    一步步教你搭建开源网站 环境准备: Tomcat shopping商城文件 jdk环境 Mysql环境 解压shopping.rar拷贝至tomcat/webapps 在navicat导入数据库db_ ...