chatGPT的灵魂:Attention注意力机制·第四课笔记整理 | 豆包MarsCode AI刷题

102 阅读4分钟

chatGPT的灵魂:Attention注意力机制

 Attention 注意力机制进行建模,它可谓是当前 NLP 神经网络的灵魂机制。

注意力机制的思想

一个智能体(人或 AI 模型)从接收到的大量信息(文本、图像、音频)中,剔除不重要、不相关的信息,重点关注与自身密切相关的信息。其核心在于收缩关注的信息范围,实现信息的压缩。

注意力机制的建模

### 建立权重模式

让模型更加关注到掘金两个字,实际上可以认为,给掘金两个字对应的 token embedding 赋予更大的权重

在神经网络模型中,所有的操作均为矩阵操作,所有的特征均为向量形式。设ei​表示第 i个 token 的 embedding 表示,在例子中,它是一个 7 维的向量,wi​是第 i个 token 对应的权重值,它是一个标量值。

可以对所有的 token embedding 做一个加权:

h=∑i​ei​ wi​

这里,h是一个加权后的结果,它也是一个 7 维的向量。它的本质含义,是从各个 token 不同的 embedding 中,按重要程度(权重值wi​)做加和,权重值高的ei​,对后续操作影响大,权重值低的ei​,对后续操作影响小。这就产生了一种更加注意权重高的 ei​的效果。

### softmax函数

其中的数值有正有负,前两个 token 对应的权重标量值较大,说明对后续操作的影响大。若直接进行加权,这不符合人们的一般认知。一般来说,权重占比以概率形式表示,概率值应当大于 0,小于 1,且所有分量的加和等于 1。

 softmax 算法的一些特性:

1、softmax 可以将一维向量,输出形成概率分布的形式;

2、softmax 利用指数函数,会更加着重值更高的元素,使要关注的元素更加突出;

3、相应地,由于指数函数特性,它也可以尽力压低不需关注的元素的权重。

以公式形式表示,计算模型的所有 embedding 加权后的权重:

h=∑i​ei​ αi​

Softmax 函数在神经网络模型中十分常用,除了应用在注意力机制计算外,softmax 还可以完美契合交叉熵损失函数

### 自注意力机制 Self-Attention

计算权重,不同的模型、不同的 NLP 任务都有不同的形式。这项技术经过多年的发展,最终趋向于自注意力机制(Self-Attention) ,这也是 ChatGPT 所采用的形式。

w是一个权重向量,其长度(维度)与 token 的个数相同,其中的每一项是标量值。我们知道,神经网络模型中都是以向量、矩阵等构成的张量作为计算基础的。因此,想要计算得到一个标量值,最简单的形式就是向量点积,我们需要想办法找到两个向量。

假设针对第 i个 token,有两个向量 qi​ 和 ki​,两者具有相同的维度,其点积可以得到一个标量值:wi​=qi​ki​。

依然以前述句子为例。在补全句子时,掘金对要空格处填写的字符,影响最大。而“掘金对要填写什么字符,影响最大”这一认知,依然是我们阅读这个句子本身得到的。换句话说,wi​权重的信息来源,依然是原句子本身(Self) ,这就是自注意力命名的原因。

## 注意力机制的好处

寻找两者之间的关联关系,注意力机制非常擅长。技术上讲,这叫注意力机制擅长计算长文本依赖。

而在过去,神经网络里主要使用循环神经网络(RNN)模型结构来处理。RNN 的网络结构可以使用如下公式来解释:ei​ = h(ei−1​,WRNN​)。

深度学习中模型的计算量超级大,为了让 ChatGPT 模型能够快速输出结果,就需要采用并行计算的方式。

## 总结

  • 注意力机制的本质是从大量信息中剔除杂质、无关信息,保留感兴趣的信息。
  • 注意力机制在 NLP 领域的应用主要是 自注意力Self-Attention 形式,它是神经网络具备充分拟合能力的灵魂。
  • 在第 1 节中,我们提到了,Transformer 是构成 ChatGPT 这座房子的砖块和钢筋,而自注意力机制则是构成 Transformer 的核心要素。下一节,我们就来介绍 Transformer 结构和原理。