大语言模型基础(二)-- Attention
前言:此部分文章并非系统性的教学文章,网络上已经很多非常优秀的教学课程,顶尖且免费。比如,哔哩哔哩上李沐大神的《动手学深度学习 v2》,Andrej Karpathy 在 YouTube 上教程,以及 Standford CS224N 课程。 这里主要记录作者的一些理解,有意思的知识点,或者豁然开朗的乐趣,希望你也能喜欢!
自注意力机制( Self-Attention Mechanism)是 Transformer( 大语言模型基础(一) — Transformer)的核心贡献。也是其区别于其他神经网络结构,比如 CNN 、 RNN 的关键所在,开启了智能涌现的序幕。
随着 Transformer 不断发展,特别是 OpenAI 在 ChatGPT 上现象级的成功。 Decoder-only 的 Transformer 模型结构不仅适用于文字 NLP,同时也在声音和图像领域得到了广泛的应用。基本做到了深度学习模型结构的大统一,支持多模态的模型比比皆是。
所有的科学发现,科技发明极少有横空出世的,连牛顿都是 “站在巨人的肩膀上”(当然,牛顿讽刺胡克本意请选择性过滤)。
自注意力机制( Self-Attention Mechanism)同样如此。望文生义,去掉 self 后的注意力机制(Attention Mechanism)自然是它的前生,自注意力机制由注意力机制发展而来。而注意力机制一直可以追溯到 1964 年的 Nadaraya‐Waston 核回归。
自注意力机制涉及很多概念,也不像传统的机器学习方法一般会有一定的理论依据和推到过程。因此有必要补充一部分背景知识,便于计算机工程出身的同学(自己)理解。
背景
关键字:Mercer 定理;半正定矩阵;核函数;注意力函数;Softmax;
关键词定义
- Mercer 定理:Mercer 定理是泛函分析中的一个重要定理,它为核函数的正定性提供了一种等价的表述。简单来说,如果一个函数可以作为核函数,那么这个函数对应的积分算子必须是正定的。这意味着对于任意的函数 f,都有:
其中,K (x, y) 是核函数,f (x) 和 f (y) 是任意函数。这个定理为核方法在高维空间中的应用提供了理论基础。
- 半正定矩阵:在线性代数中,一个 n×n 的实对称矩阵 M 被称为半正定矩阵,如果对于所有的非零实向量 z,都有:
这意味着矩阵 M 的所有特征值都是非负的。半正定矩阵在统计学、机器学习等领域中有着广泛的应用,特别是在优化问题和协方差矩阵中。
-
核函数:核函数是一种特殊的函数,它能够计算两个样本之间的相似度。在机器学习中,核函数通常用于支持向量机(SVM)和核方法中,以便在高维空间中处理非线性问题。核函数的一个关键性质是它满足 Mercer 定理,即对应的积分算子是正定的。
-
注意力函数:注意力函数是近年来在自然语言处理和计算机视觉等领域中广泛应用的一种机制。它可以帮助模型关注于输入数据中最重要的部分,从而提高模型的性能。注意力函数通常通过计算输入数据和一组查询(query)之间的相似度来得到权重,然后将这些权重用于加权平均输入数据,得到最终的输出。
-
Softmax:Softmax 是一种常用的激活函数,通常用于多分类问题中的输出层。它将一个任意实数的向量压缩为一个概率分布向量,其中每个元素都在 (0, 1) 之间,并且所有元素的和为 1。Softmax 函数的定义如下:
其中,𝑥𝑖 是向量 x 的第 i 个元素。Softmax 函数可以将模型的输出转换为概率分布,便于计算交叉熵损失函数。
注意力提示
注意力是一个心理学概念,与现下流行的抖音等短视频行业所谓的 “注意力经济” 中的注意力属于同一个概念。同时也是一个生物学概念,其他生物也有类似的行为,比如公牛对红色的极度反应。进一步更是脑科学的概念,归根到底对于 “注意力” 的反应不是受大脑神经元的控制。
上述提及的公牛对红色的特殊反应,其实人类对红色也是特别偏爱。动手学习深度学习 2.0中引用的红色咖啡杯也是类似的例子,如下。

把 “红色” 这类引发注意力的线索称为 “非自主性提示”,那么另一类注意力提示自然就叫 “自主性提示”。
如果应对非自主性提示是本能的话,那么对自主性提示的反应就是后天习得的结果。
动手学习深度学习 2.0对自主性提示的举例不太形象。本文以刷朋友圈为例,可能是一个更贴切的场景。
朋友圈中,鲜艳的图片会非自主的吸引你的注意力。而那些转载的文章,特别是那些宣发单位信息的报告,多半提不起兴趣。但是如果这些提不起兴趣信息旁边的头像是你的领导,崇拜的人,或者暗恋的对象呢?可能你会自主的点击进入,或者看完整条信息。这就是自主性提示,让人把注意力集中于此,并且这些是后天习得的。
既然神经网络一定程度是人类大脑拟生而来,那么这种人工的神经网络是否也同样具备这种针对注意力提示的反应机制,即注意力机制?
Query / Key / Value
注意力的概念有点抽象,如同 20 年前的电子商务。需要进一步分解,直到能够落地为止。我们可以将电子商务可以分解为商户、商品、会员、购物车、交易,以及后续的推荐、广告等。那么对于注意力来说,对应的是 Query 、Key、Value,以及相关算法。
仍然以刷朋友圈为例:
Query 对应自主性提示,可能是 “无聊,想了解大家都在干什么?”。
Key 是非自主性提示,朋友圈中的一段文字,一张图片或者一个有标题的链接。
Value 就是文字、图片和链接要表达的具体内容。
显然 Query(自主性提示) 和 Key(非自主性提示)将注意力引导至 Value 的权重和能力是不同的。
虽然 Key 直接和 Value 相关,但是对于人类而言,作为意图的 Query 的更为重要。在刷朋友圈例子中,领导、崇拜的人和暗恋对象与其他头像的区别是吸引注意力的关键。
而无论是在微信还是抖音刷短视频,此时自主性提示往往是缺位的(一般漫无目的),美女图片和 “标题党” 便成为了骗取 “注意力” 的法宝。
如此看来将注意力提示进一步分解为,Query 、 Key 和 Value 也算说得过去。
那么如何通过算法将注意力机制落地呢?
(未完待续)