首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

人工智能的革命,Transformer注意力计算原理解析

图解 transformer——注意力计算原理

文章结合清晰的图表和李沐老师的优化代码,为您提供对 Transformer 运作原理的全面理解。请关注收藏后观看。

本文提供了:

- 对 Transformer 架构的深入解析

- 编码器和解码器的详细说明

- 自注意力机制的工作原理

探索 Transformer 的核心:注意力机制

深入了解 Transformer 的注意力模块,揭晓其强大的能力。通过透彻的计算原理分析,了解它如何有效捕捉文本中的相关性,从而实现高效的语言处理任务。

深入探讨技术背后的机制,了解其工作原理,更重要的是,为何如此。本系列文章将引领您踏上技术探索之旅,超越表面,揭开其内在运作秘密。

Transformer:革新自然语言处理

Transformer 模型引领着自然语言处理的变革,超过了 RNN 的性能。其独特的架构依赖于自注意力机制,允许它捕捉文本中的远程依赖关系,从而提高准确性。Transformer 在训练和推理期间使用高效的平行化技术,使其成为大规模数据集和复杂任务的理想选择。

理解 Transformer 架构的逐层运作机制。本文深入解析 Transformer,从数据维度和矩阵变换的角度,揭示其端到端的运作原理。通过图解方式展示 Transformer 的内部工作机制,让您清晰掌握其处理数据、变换矩阵的过程。

深度解析多头注意力机制,揭秘 transformer 核心架构。多头注意力让模型能同时关注输入序列的不同子空间,提升特征提取能力。它在 transformer 中担任枢纽角色,将不同位置的信息进行加权整合,极大增强了模型对长序列处理和捕获语义关系的能力。

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

在英语-西班牙语翻译中,"The ball is blue" 被翻译为 "La bola es azul",准确率为 100%。这一示例说明了机器翻译在跨语言沟通中的有效性和准确性。

源序列通过嵌入层和位置编码层得到每个单词的嵌入。嵌入随后被馈送到编码器,其中注意力模块赋予关键信息权重。

Attention 模块的核心在于三个矩阵:Query、Key、Value。它们通过嵌入序列,再经过三个线性层获得。每个矩阵的行与源序列的单词一一对应。这些矩阵用于计算注意力得分,从而实现模型对输入序列的关注。

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

理解 Attention 机制:

通过追踪源序列中单个词的路径,在 Transformer 中观察 Attention 机制的工作原理。这揭示了每个词与其他词的动态交互方式,提供了对其在 Attention 模块中行为的清晰洞察。

关注 Attention 模块对每个词的操作,以及每个向量如何映射回原始输入词。忽略矩阵形状、计算细节和注意力头数量等与词语去向无关的细节。

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

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

每一行文字都通过一系列可训练操作(嵌入、位置编码等)从源词生成。这些操作中的权重通过模型输出进行学习,不是预先确定的。

Transformer 通过训练中的注意力机制确定最佳权重组合,赋予不同输入特征适当的重要性,从而产生最佳输出。

四、如何得到注意力分数

Attention模块包含多个步骤:

* 线性层:提取特征向量

* 注意力得分:衡量特征向量之间的相关性

Attention模块:

提取特征向量和计算注意力得分,衡量特征向量之间的相关性。

Attention模块的第一步是Query矩阵与Key矩阵转置的点积运算,计算每个单词与所有其他单词的相关性。

因子矩阵是 Query 和 Key 转置进行点积形成的。它包含每个词向量之间的矩阵乘法结果,为后续评分和检索提供中间信息。

因子矩阵呈现 Q 向量与 K 向量之间的点积关系。第 4 行中的每一列表示 Q4 向量与对应 K 向量之间的点积,而第 2 列则表示每个 Q 向量与 K2 向量之间的点积。

因子矩阵与 V 矩阵矩阵相乘,生成注意力分数。Q4 矩阵与所有对应的 K 和 V 相乘,得到输出矩阵的第 4 行。

注意力得分为词语分配的“编码值”,由因子矩阵加权而来。因子矩阵的权值是单词Query和Key向量的点积。

注意力得分:衡量单词重要性

注意力得分表示单词在文本中的重要性,由以下步骤计算:

* 查询向量与键向量的点积产生注意力权重。

* 权重与值向量的加权和得到编码值。

* 编码值是单词的注意力得分,反映其在语境中的意义。

五、Query、Key、Value的作用

在注意力机制中,Query 向量代表当前计算的词,Key 向量和 Value 向量表示正在比较的相关词。通过计算 Query 与 Key 的相似度,算法确定 Value 中包含多少与 Query 相关的信息。

探索文本相似性和语法分析模型的强大功能,发现关系密切的单词和短语。我们的模型分析每个句子中每个单词的注意力分数,构建一个全面、交互式的数据视图。通过交互式界面,您可以深入了解单词对之间的关系,揭示隐藏的见解。

注意力的计算涉及除法和 Softmax 运算,但这些运算不会改变词嵌入的位置或参与词之间的相互作用。它们只是改变嵌入中的数值,使其更适合下游任务。

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

Attention Score 利用点乘和求和,揭示特定单词与其上下文之间的关系。它允许 Transformer 模型通过矩阵乘法,精准地捕捉单词之间的相关性。通过计算每个单词与其上下文中所有其他单词的点积,Transformer 可以分配权重,以突出重要单词对之间的联系,从而理解文本中的语义含义。

深入了解向量运算:

Query、Key、Value行实为具有嵌入维度的向量。矩阵乘法将这些向量相乘,计算相关性分值。

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

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

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

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

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

点积适用于计算注意力分数。一致性较高的词向量会导致更高的注意力分数。Transformer 旨在提高相关词对之间的注意力分数,同时降低无关词对的注意力分数。

在语言理解中,为了获取词语之间的关联,模型需要学习识别单词的相关程度。以“黑猫喝了牛奶”为例,“牛奶”与“喝”高度相关,“黑”与“牛奶”相关性较低。理想情况下,模型应产生以下输出:

* “牛奶”和“喝”:高相关性

* “牛奶”和“猫”:中等相关性

* “牛奶”和“黑”:无关

词向量是衡量单词相似性的数学表征。相似单词的词向量具有较高的相似性分数,而不同单词的词向量具有较低的相似性分数。例如,"milk" 和 "drank" 的相似性分数很高,表明它们在语义上相似。相比之下,"milk" 和 "cat" 的相似性分数较低,而 "milk" 和 "black" 的相似性分数很低,表明它们在语义上不同。

Transformer 利用自注意力机制,动态地调整权重,以识别最有利于预测的输入特征组合,从而得到最佳结果。

Transformer 通过学习词嵌入和线性层权重生成词向量。这使它能够学习语言的各种特征,包括词义、语法和语义。

换句话说,它将以这样的方式学习这些嵌入和权重:

关联词语具有相似词向量,高关注分数,提升用户注意力。不关联词语词向量不一致,低关注分数,降低用户注意力。

文本嵌入分析显示:

"milk" 与 "drank" 的嵌入高度相似,体现出强关联(高分)。

"milk" 与 "cat" 的嵌入存在差异,表现出中等关联(中分)。

"milk" 与 "black" 的嵌入显著不同,表明低度关联(低分)。

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

八、总结

通过点积计算 query 和 key 间的相关性,将其作为影响因子,对所有 value 向量进行加权求和。此加权和的输出即为注意力分数。

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

通过引入线性层,Attention 模块可获得更多参数,使其具备学习调整词向量的能力,为精准语义理解提供支持。

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

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

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

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

注意力机制优化了编码器-解码器模型,通过计算目标序列元素对源序列元素的注意力权重,增强了模型对长序列的处理能力。

在编码器自注意力机制中,我们评估源序列中每个单词与其他单词的相关性。此过程发生在编码器堆栈中的所有编码器中。

Decoder Self Attention 在 Encoder Self Attention 的基础上,具有独特的 ню 差异:

* 输入不同:Decoder 输入为 Encoder 输出,而 Encoder 输入为原始序列。

* 因果关系约束:Decoder 注意力必须仅关注之前的时间步,以避免信息泄露。

* 输出概率分布:Decoder 输出的概率分布用于生成目标序列的下一个元素。

加入解码器自注意力机制,量化目标序列中单词之间的相关性,深度挖掘文本语义,提升翻译准确性和流畅性,带来极致语言转化体验。

注意力机制中的 "Encoder-Decoder" 结构运用 "Query-Key-Value" 方式关联目标句与源句。Query 来自目标句,而 Key/Value 来自源句。通过计算相关性,模型确定目标句中每个词与源句中每个词之间的联系,为机器翻译和自然语言理解等任务提供有效的信息。

-对此,您有什么看法见解?-

-欢迎在评论区留言探讨和分享。-

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OOwYT6CHUyQR5F379Sg1BYIA0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券