0
点赞
收藏
分享

微信扫一扫

自注意力(self-attention)和多头注意力(multi-head attention)


文章目录

  • ​​自注意力​​
  • ​​多头注意力​​


之前我们认识了

一般的注意力模型。本文将介绍自注意力和多头注意力,为后续介绍Transformer做铺垫。

自注意力

如果注意力模型中注意力是完全基于特征向量计算的,那么称这种注意力为自注意力:

自注意力(self-attention)和多头注意力(multi-head attention)_机器学习
图片改自:[1]

例如,我们可以使用权重矩阵自注意力(self-attention)和多头注意力(multi-head attention)_人工智能_02自注意力(self-attention)和多头注意力(multi-head attention)_深度学习_03和对特征矩阵进行线性变换,得到

键(Key)矩阵

值(Value)矩阵

查询(Query)矩阵

的每一列自注意力(self-attention)和多头注意力(multi-head attention)_机器学习_04都用作注意力模型的查询。当使用查询向量计算注意力时,生成的上下文向量自注意力(self-attention)和多头注意力(multi-head attention)_机器学习_05将汇总特征向量中对查询自注意力(self-attention)和多头注意力(multi-head attention)_机器学习_04来说重要的的信息。

首先,对查询自注意力(self-attention)和多头注意力(multi-head attention)_深度学习_07计算键向量自注意力(self-attention)和多头注意力(multi-head attention)_权重_08的注意力得分:

自注意力(self-attention)和多头注意力(multi-head attention)_机器学习_09

查询自注意力(self-attention)和多头注意力(multi-head attention)_机器学习_04表示对信息的请求。注意得分自注意力(self-attention)和多头注意力(multi-head attention)_线性变换_11表示根据查询自注意力(self-attention)和多头注意力(multi-head attention)_机器学习_04,键向量自注意力(self-attention)和多头注意力(multi-head attention)_权重_13中包含的信息有多重要。计算每个值向量的得分,得到关于查询自注意力(self-attention)和多头注意力(multi-head attention)_机器学习_04的注意力得分向量:

自注意力(self-attention)和多头注意力(multi-head attention)_线性变换_15

然后,使用对齐函数自注意力(self-attention)和多头注意力(multi-head attention)_机器学习_16进行对齐:
自注意力(self-attention)和多头注意力(multi-head attention)_线性变换_17

得到注意力权重向量:自注意力(self-attention)和多头注意力(multi-head attention)_权重_18

最后计算上下文向量:
自注意力(self-attention)和多头注意力(multi-head attention)_权重_19

总结以上步骤,自注意力计算表达式为:

自注意力(self-attention)和多头注意力(multi-head attention)_人工智能_20
由于自注意力(self-attention)和多头注意力(multi-head attention)_权重_21,因此可以说上下文向量自注意力(self-attention)和多头注意力(multi-head attention)_机器学习_05包含所有特征向量中(包括自注意力(self-attention)和多头注意力(multi-head attention)_机器学习_23)对特定特征向量自注意力(self-attention)和多头注意力(multi-head attention)_机器学习_23来说重要的的信息。例如,对于语言,这意味着自注意力可以提取单词特征之间的关系(动词与名词;代词与名词等等),如果自注意力(self-attention)和多头注意力(multi-head attention)_机器学习_23是一个词的特征向量,那么自注意力可以计算得到其他词对于自注意力(self-attention)和多头注意力(multi-head attention)_机器学习_23来说重要的信息。对于图像,自注意力则可以得到各个图像区域特征之间的关系。

计算自注意力(self-attention)和多头注意力(multi-head attention)_深度学习_27中所有查询向量的上下文向量,得到自注意力层的输出:
自注意力(self-attention)和多头注意力(multi-head attention)_人工智能_28

多头注意力

自注意力(self-attention)和多头注意力(multi-head attention)_线性变换_29

多头注意力通过利用同一查询的多个不同版本并行实现多个注意力模块来工作。其思想是使用不同的权重矩阵对查询自注意力(self-attention)和多头注意力(multi-head attention)_机器学习_30进行线性变换得到多个查询。每个新形成的查询本质上都需要不同类型的相关信息,从而允许注意模型在上下文向量计算中引入更多信息。

多头注意力的自注意力(self-attention)和多头注意力(multi-head attention)_线性变换_31个头部都有自己的多个查询向量、键矩阵和值矩阵:自注意力(self-attention)和多头注意力(multi-head attention)_机器学习_32自注意力(self-attention)和多头注意力(multi-head attention)_人工智能_33自注意力(self-attention)和多头注意力(multi-head attention)_线性变换_34

查询自注意力(self-attention)和多头注意力(multi-head attention)_机器学习_35由原始查询自注意力(self-attention)和多头注意力(multi-head attention)_机器学习_30经过线性变换得到,而自注意力(self-attention)和多头注意力(multi-head attention)_线性变换_37自注意力(self-attention)和多头注意力(multi-head attention)_人工智能_33则是自注意力(self-attention)和多头注意力(multi-head attention)_权重_39经过线性变换得到。每个注意力头都有自己的可学习权重矩阵自注意力(self-attention)和多头注意力(multi-head attention)_权重_40。第自注意力(self-attention)和多头注意力(multi-head attention)_机器学习_41个头的查询、键和值的计算如下:

自注意力(self-attention)和多头注意力(multi-head attention)_权重_42

自注意力(self-attention)和多头注意力(multi-head attention)_人工智能_43

自注意力(self-attention)和多头注意力(multi-head attention)_深度学习_44

每个头都创建了自己对查询自注意力(self-attention)和多头注意力(multi-head attention)_机器学习_30和输入矩阵自注意力(self-attention)和多头注意力(multi-head attention)_权重_39的表示,从而允许模型学习更多的信息。例如,在训练语言模型时,一个注意力头可以学习关注某些动词(例如行走、驾驶、购买)与名词(例如,学生、汽车、苹果)的关系,而另一个注意力头部则学习关注代词(例如,他、她、it)与名词的关系。

每个头还将创建自己的注意力得分向量自注意力(self-attention)和多头注意力(multi-head attention)_权重_47,以及相应的注意力权重向量自注意力(self-attention)和多头注意力(multi-head attention)_深度学习_48

然后,每个头都会产生自己的上下文向量自注意力(self-attention)和多头注意力(multi-head attention)_深度学习_49,如下所示:

自注意力(self-attention)和多头注意力(multi-head attention)_人工智能_50

我们的目标仍然是创建一个上下文向量作为注意力模型的输出。因此,要将各个注意力头产生的上下文向量被连接成一个向量。然后,使用权重矩阵自注意力(self-attention)和多头注意力(multi-head attention)_人工智能_51对其进行线性变换:
自注意力(self-attention)和多头注意力(multi-head attention)_线性变换_52

这保证最终的上下文向量自注意力(self-attention)和多头注意力(multi-head attention)_权重_53符合目标维度

参考:

[1] A General Survey on Attention Mechanisms in Deep Learning​​ https://arxiv.org/pdf/2203.14263v1.pdf​​

自注意力(self-attention)和多头注意力(multi-head attention)_深度学习_54


举报

相关推荐

0 条评论