问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Transformer模型中的矩阵乘法与点积:详解Attention计算

创作时间:
作者:
@小白创作中心

Transformer模型中的矩阵乘法与点积:详解Attention计算

引用
CSDN
1.
https://blog.csdn.net/ank1983/article/details/137090019

在Transformer模型中,矩阵乘法和点积是计算attention的关键操作。本文将通过简单的语言和比喻,帮助读者理解这两个概念及其在attention计算中的应用。

矩阵乘法MatMul(Matrix multiply)

  1. 当矩阵A的列数(column)等于矩阵B的行数(row)时,A与B可以相乘。可以这样理解:一个人是站着的,另一个人是躺着的,站着的高度必须等于躺着的长度。
  2. 在计算attention时,因为Q(Query)和K(Key)是相同的矩阵,所以必须将K转置(躺下),才能与Q相乘。
  3. 矩阵C的行数等于矩阵A的行数,C的列数等于B的列数。
  4. 乘积C的第m行第n列的元素等于矩阵A的第m行的元素与矩阵B的第n列对应元素乘积之和。换句话说,C里面每个值都是乘积之和(点积)。

矩阵乘法与点积dot product的关系

点积是两个向量之间的运算。设有两个向量a = [a1, a2,…, an]和b = [b1, b2,…, bn],它们的点积定义为:
a·b=a1b1+a2b2+……+anbn。

通过对比可以发现:

  • 矩阵C的第一个元素,其实就是A的第一行和B的第一列做点积。
  • 如果矩阵A只有一行,而B只有一列,那么矩阵乘法就等同于向量点积。
  • 如果矩阵A不止一行,而B也不止一行,那么矩阵乘法就等同于多个向量点积。

因此,标题中的"dot-product attention"实际上就是通过矩阵乘法来实现的。

点积的作用

点积可以计算两个向量的相似值或距离。在Transformer模型中,attention机制就利用这一点来计算query和key之间的相似度,从而确定应该关注哪些信息。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号