图解Transformer:什么是注意力计算?

二、进入注意力模块的矩阵的每一行,都是原序列中的一个词

一个理解Attention的方法是:从源序列中的单个词出发,观察其在。通过关注 Attention module 内部的情况,我们可以清楚地看到每个词是与其他词是如何互动的。

因此,需要特别关注的是 Attention module 对每个词进行的操作,以及每个向量如何映射到原始输入词,而不需要担心诸如矩阵形状、具体计算、多少个注意力头等其他细节,因为这些细节与每个词的去向没有直接关系。

为了简化解释和可视化,让我们忽略嵌入维度,将一个“行”作为一个整体进行理解。

从公式中可以看到,Attention module 的第一步是在 Query 矩阵和 Key。

本文为图解 Transformer 的第四篇文章。在前三篇文章中,我们学习了 Transformer 详细的架构与工作原理,以及多头注意力的运行机制。最后一篇文章,我们将更深入到注意力模块的内部,探讨为何注意力机制有效,以及注意力机制详细的计算原理。

以下为本系列前几篇文章的摘要。在整个系列中,我希望读者不仅能了解这些东西是如何运行的,还要进一步理解它们为何这样运行。

1. 图解 Transformer——功能概览:阐述如何使用 Transformer,为什么 Transformer 优于 RNN,以及 Transformer 的架构,和其在训练和推理过程中的运行。

2. 图解 Transformer——逐层介绍:阐述 Transformer 如何运行,从数据维度变化或矩阵变换的角度,端到端地阐释了 Transformer 内部的运作机制。

3. 图解 Transformer——多头注意力:阐述多头注意力机制(Multi-head Attentions),说明注意力机制在整个 Transformer 中的工作原理。

一、输入序列怎样传入注意力模块?

注意力模块(Attention module)存在于每个 Encoder 及 Decoder 中。放大编码器的注意力:

举个例子,假设我们正在处理一个英语到西班牙语的翻译问题,其中一个样本的源序列是“The ball is blue”,目标序列是“La bola es azul”。

源序列首先通过 Embedding 和 Position Encoding 层,为序列中的每个单词生成嵌入。随后嵌入被传递到编码器,到达 Attention module.

Attention module 中,嵌入的序列通过三个线性层(Linear layers),产生三个独立的矩阵:Query、Key、Value。这三个矩阵被用来计算注意力得分。这些矩阵的每一“行”对应于源序列中的一个词。

二、进入注意力模块的矩阵的每一行,都是原序列中的一个词

一个理解Attention的方法是:从源序列中的单个词出发,观察其在 Transformer 中的路径。通过关注 Attention module 内部的情况,我们可以清楚地看到每个词是与其他词是如何互动的。

因此,需要特别关注的是 Attention module 对每个词进行的操作,以及每个向量如何映射到原始输入词,而不需要担心诸如矩阵形状、具体计算、多少个注意力头等其他细节,因为这些细节与每个词的去向没有直接关系。

为了简化解释和可视化,让我们忽略嵌入维度,将一个“行”作为一个整体进行理解。

三、每一行,都会经过一系列可学习的变换操作

每个这样的“行”都是通过一系列的诸如嵌入、位置编码和线性变换等转换,从其相应的源词中产生。而所有转换都是可训练的操作。这意味着在这些操作中,使用的权重不是预先确定的,而是通过模型输出进行学习的。

关键问题是,Transformer 如何确定哪一组权重会给它带来最佳效果?记住这一点,稍后会回到这个问题上。

四、如何得到注意力分数

Attention module 中执行多个步骤,在这里,我们只关注线性层和“注意力”得分(Attention score)


从公式中可以看到,Attention module 的第一步是在 Query 矩阵和 Key 矩阵的转置之间进行矩阵的点积运算。看看每个单词会发生什么变化。

Query 与 Key 的转置进行点积,产生一个中间矩阵,即所谓“因子矩阵”。因子矩阵的每个单元都是两个词向量之间的矩阵乘法。

如下所示,因子矩阵第 4 行的每一列都对应于 Q4 向量与每个 K 向量之间的点积;因子矩阵的第 2 列对应与每个 Q 向量与 K2 向量之间的点积。

因子矩阵再和 V 矩阵之间进行矩阵相乘,产生注意力分数(Attention score)。可以看到,输出矩阵中第 4 行对应的是 Q4 矩阵与所有其他对应的 K 和 V 相乘:

这就产生了由注意力模块输出的注意力分数向量Attention score vector (Z)。

可以将注意力得分理解成一个词的“编码值”。这个编码值是由“因子矩阵”对 Value 矩阵中的词加权而来。而“因子矩阵”中对应的权值则是该特定单词的 Query 向量与 Key 向量的点积。再啰嗦一遍:

1. 一个词的注意力得分可以理解为该词的“编码值”,它是注意力机制最终为每个词赋予的表示向量。

2. 这个“编码值”是由“值矩阵(Value矩阵)”中每个词的值向量加权求和得到的。

3. 加权的权重就是“因子矩阵”中对应的注意力权重。

4. “因子矩阵”中的注意力权重是通过该词的查询向量(Query)与所有词的键向量(Key)做点积计算得到的。

五、Query、Key、Value的作用

对某一个查询向量 Query,可以理解为正在计算注意力分数的词。而 Key 向量和 Value 向量是我们正在观察的词,即该词与查询词的相关程度。

例如,对于“The ball is blue”这个句子,单词 blue 这一行包含 blue 与其他每个单词的注意力分数。在这里,blue 是 Query word,其他的词是 Key/Value。

注意力的计算还包含其他操作,如除法和 Softmax 计算,但本文可以忽略它们。它们只是改变了矩阵中的数值,但并不影响矩阵中每个词行的位置。它们也不涉及任何词间的相互作用。

六、点积:衡量向量之间的相似度

Attention score 是通过做点乘,然后把它们加起来,捕捉某个特定的词和句子中其他词之间的关系。但是,矩阵乘法如何帮助 Transformer 确定两个词之间的相关性?

为了理解这一点,请记住,Query, Key, Value 行实际上是具有嵌入维度的向量。让我们放大看看这些向量之间的矩阵乘法是如何计算的:

当我们在两个向量之间做点积时,我们将一对数字相乘,然后相加:

  • 如果这两个成对的数字(如上面的’a’和’d’)都是正数或都是负数,那么积就会是正数。乘积会增加最后的总和。

  • 如果一个数字是正数,另一个是负数,那么乘积将是负数。乘积将减少最后的总和。

  • 如果乘积是正数,两个数字越大,它们对最后的总和贡献越大。

这意味着,如果两个向量中相应数字的符号是一致的,那么最终的和就会更大

七、Transformer 如何学习单词之间的相关性

上述点积的概念也适用于 Attention score 的计算。如果两个词的向量更加一致,Attention score 就会更高。我们希望 Transformer 的操作是,对于句子中的两个词,若相互关联,二者的 Attention score 就高。而对于两个互不相关的词,我们则希望其得分较低。

例如,对于“The black cat drank the milk”这个句子,“milk”这个词与“drank”非常相关,与“cat”的相关性可能稍差,而与“black”无关。我们希望“milk”和“drank”产生一个高的注意力分数,“milk”和“cat”产生一个稍低的分数,而“milk”和“black”则产生一个可以忽略的分数。这就是我们希望模型学习产生的输出。

要做到这一点,“milk”和“drank”的词向量必须是一致的。“milk”和“cat”的向量会有一些分歧。而对于 “milk”和“black”来说,它们会有很大的不同。

让我们回到前述的问题:Transformer 是如何找出哪一组权重会给它带来最佳结果的?

词向量是根据词嵌入和线性层的权重生成的。因此,Transformer 可以学习这些嵌入向量、线性层权重等来产生上述要求的词向量。

换句话说,它将以这样的方式学习这些嵌入和权重:如果一个句子中的两个词是相互关联的,那么它们的词向量将是一致的。从而产生一个更高的关注分数;对于那些彼此不相关的词,词向量将不会被对齐,并会产生较低的关注分数。

因此,“milk”和“drank”的嵌入将非常一致,并产生较高的注意分数。对于“milk”和“cat”,它们会有一些分歧,产生一个稍低的分数,而对于“milk”和“black”,它们会有很大的不同,产生一个非常低的分数。

这就是注意力模块的原理。

八、总结

Query 和 Key 之间的点积计算出每对词之间的相关性。然后,这种相关性被用作一个“因子”来计算所有 Value 向量的加权和。该加权和的输出为注意力分数。

Transformer 通过对嵌入向量的学习,使彼此相关的词更加一致。

这就是引入三个线性层的原因之一:为 Attention module 提供更多的参数,使其能够通过学习调整词向量。

九、回顾:Transformer 中的几种 Attention module

Transformer 中共有三处使用到了注意力机制:

1. Encoder 中的自注意力机制:源序列与自身的注意力计算;

2. Decoder 中的自注意力机制:目标序列与自身的注意力计算;

3. Encoder-Decoder 中的注意力机制:目标序列对原序列的注意力计算。

在 Encoder Self Attention 中,我们计算源序列中每个单词与源序列中其他单词的相关性。这发生在编码器堆栈中的所有 Encoder 中。

Encoder Self Attention 中看到的大部分内容也适用于 Decoder Self Attention,只是存在一些微小但重要的区别。

在 Decoder Self Attention 中,我们计算目标序列中每个单词与目标序列中其他单词的相关性。

在 Encoder-Decoder Attention 中,Query 来自目标句,而 Key/Value 来自源句。这样,它就能计算出目标句中每个词与源句中每个词的相关性。

最后的最后,希望这 4 篇译文能让你感受到 Transformer 设计的优雅,并深刻理解其中的原理,在此,也非常感谢原创作者 Ketan Doshi 的创作与分享精神。

原文链接:https://towardsdatascience.com/Transformers-explained-visually-not-just-how-but-why-they-work-so-well-d840bd61a9d3

本文来自微信公众号:Afunby的 AI Lab(ID:AI_Lab_of_Afunby),作者:Afunby

声明: 该内容为作者独立观点,不代表新零售资讯观点或立场,文章为网友投稿上传,版权归原作者所有,未经允许不得转载。 新零售资讯站仅提供信息存储服务,如发现文章、图片等侵权行为,侵权责任由作者本人承担。 如对本稿件有异议或投诉,请联系:wuchangxu@youzan.com
Like (0)
Previous 2024年4月16日 14:56
Next 2024年4月16日

相关推荐

  • 水温80度:AI行业真假繁荣的临界点

    我们从来没拥有过这么成功的AI主导的产品。

    (这种分析统计并不那么准,但大致数量级是差不多的)

    这两个产品碰巧可以用来比较有两个原因:

    一个是它们在本质上是一种东西,只不过一个更通用,一个更垂直。

    蓝海的海峡

    未来成功的AI产品是什么样,大致形态已经比较清楚了,从智能音箱和Copilot这两个成功的AI产品上已经能看到足够的产品特征。

    未来科技 2024年6月5日
  • ChatGPT、Perplexity、Claude同时“罢工”,全网打工人都慌了

    美西时间午夜12点开始,陆续有用户发现自己的ChatGPT要么响应超时、要么没有对话框或提示流量过载,忽然无法正常工作了。

    因为发现AI用久了,导致现在“离了ChatGPT,大脑根本无法运转”。”

    等等,又不是只有一个聊天机器人,难道地球离了ChatGPT就不转了。

    大模型连崩原因猜想,谷歌躺赢流量激增6成

    GPT归位,人们的工作终于又恢复了秩序。

    未来科技 2024年6月5日
  • ChatGPT宕机8小时,谷歌Gemini搜索量激增60%

    ChatGPT一天宕机两次

    谷歌Gemini搜索量激增近60%

    ChatGPT在全球拥有约1.8亿活跃用户,已成为部分人群工作流程的关键部分。

    过去24小时内提交的关于OpenAI宕机的问题报告

    图片来源:Downdetector

    ChatGPT系统崩溃后,有网友在社交媒体X上发帖警告道:“ChatGPT最近发生的2.5小时全球中断,为我们所有依赖AI工具来支持业务的人敲响了警钟。

    未来科技 2024年6月5日
  • ChatGPT、Perplexity、Claude同时大崩溃,AI集体罢工让全网都慌了

    接着OpenAI也在官网更新了恢复服务公告,表示“我们经历了一次重大故障,影响了所有ChatGPT用户的所有计划。Generator调查显示,在ChatGPT首次故障后的四小时内,谷歌AI聊天机器人Gemini搜索量激增60%,达到327058次。

    而且研究团队表示,“Gemini”搜索量的增长与“ChatGPT故障”关键词的搜索趋势高度相关,显示出用户把Gemini视为ChatGPT的直接替代选项。

    未来科技 2024年6月5日
  • 深度对话苹果iPad团队:玻璃的传承与演变

    iPad最为原始的外观专利

    没错,这就是iPad最初被设想的样子:全面屏,圆角矩形,纤薄,就像一片掌心里的玻璃。

    2010年发布的初代iPad

    好在乔布斯的遗志,并未被iPad团队遗忘。

    初代iPad宣传片画面

    乔布斯赞同这一想法,于是快速将资源投入平板电脑项目,意欲打造一款与众不同的「上网本」,这就是iPad早年的产品定义。

    iPad进化的底色

    苹果发布会留下过很多「名场面」,初代iPad发布会的末尾就是一例。

    未来科技 2024年6月5日
  • 底层逻辑未通,影视业的AI革命正在褪色…

    GPT、Sora均为革命性产品,引发了舆论风暴,但它在上个月发布的“多模态语音对谈”Sky语音,却由于声音太像电影明星斯嘉丽·约翰逊,被正主强烈警告,被迫下架。

    华尔街日报也在唱衰,认为“AI工具创新步伐正在放缓,实用性有限,运行成本过高”:

    首先,互联网上已经没有更多额外的数据供人工智能模型收集、训练。

    03、

    如果说训练“数字人”、使用AI配音本质上瞄向的仍是影视行业固有的发展方向,那么还有另外一群人试图从根本上颠覆影视行业的生产逻辑和产品形态。

    但分歧点正在于此,电影公司希望通过使用AI技术来降低成本,但又不希望自己的内容被AI公司所窃取。

    未来科技 2024年6月5日
  • KAN会引起大模型的范式转变吗?

    “先变后加”代替“先加后变”的设计,使得KAN的每一个连接都相当于一个“小型网络”, 能实现更强的表达能力。

    KAN的主要贡献在于,在当前深度学习的背景下重新审视K氏表示定理,将上述创新网络泛化到任意宽度和深度,并以科学发现为目标进行了一系列实验,展示了其作为“AI+科学”基础模型的潜在作用。

    KAN与MLP的对照表:

    KAN使神经元之间的非线性转变更加细粒度和多样化。

    未来科技 2024年6月5日
  • 这个国家,也开始发芯片补贴了

    //mp.weixin.qq.com/s/tIHSNsqF6HRVe2mabgfp6Q
    [4]中国安防协会:欧盟批准430亿欧元芯片补贴计划:2030年产量占全球份额翻番.2023.4.19.https。//mp.weixin.qq.com/s/VnEjzKhmZbuBUFclzGFloA
    [6]潮电穿戴:印度半导体投资大跃进,一锤砸下1090亿,政府补贴一半.2024.3.5https。

    未来科技 2024年6月5日
  • 大模型的电力经济学:中国AI需要多少电力?

    这些报告研究对象(数字中心、智能数据中心、加密货币等)、研究市场(全球、中国与美国等)、研究周期(多数截至2030年)各不相同,但基本逻辑大同小异:先根据芯片等硬件的算力与功率,计算出数据中心的用电量,再根据算力增长的预期、芯片能效提升的预期,以及数据中心能效(PUE)提升的预期,来推测未来一段时间内智能数据中心的用电量增长情况。

    未来科技 2024年6月5日
  • 你正和20万人一起接受AI面试

    原本客户还担心候选人能否接受AI面试这件事,但在2020年以后,候选人进行AI面试的过程已经是完全自动化的,包括面试过程中AI面试官回答候选人的问题,AI面试官对候选人提问以及基于候选人的回答对候选人进行至多三个轮次的深度追问。

    以近屿智能与客户合作的校验周期至少3年来看,方小雷认为AI应用不太可能一下子爆发,包括近屿智能在内的中国AI应用企业或许要迎来一个把SaaS做起来的好机会。

    未来科技 2024年6月4日