组会 | Attention 中有意思的部分

目录


⚠️ 本博客只记录了 Attention 中有意思的部分

1 词向量

为了方便计算机处理,我们需要将每个单词表示为一个向量。比如,单词 "orange" 可能被表示为:

V e c o r a n g e = [ 0.12 , 0.42 , − 0.57 , . . . , 0.64 ] \mathrm{Vec}_{\mathrm{orange}}=[0.12,0.42,-0.57,...,0.64] Vecorange=[0.12,0.42,−0.57,...,0.64]

而单词 "banana" 可能被表示为:

V e c b a n a n a = [ 0.14 , 0.41 , − 0.59 , . . . , 0.69 ] \mathrm{Vec}_{\mathrm{banana}}=[0.14,0.41,-0.59,...,0.69] Vecbanana=[0.14,0.41,−0.59,...,0.69]

由于 "orange" 和 "banana" 都是水果,即在语义上相似,因此其向量在向量空间中的距离较近。

2 通过自注意力机制调整词向量

一个单词在不同语境中可能表达不同的意思,比如单词 "apple":

  • 在 "an apple and an orange" 中表示的是一种水果
  • 在 "an apple phone" 中表示的是一种手机品牌

如果我们用同一词向量去表示 "apple",那么就忽略了语义信息。

个人理解:我们通常用 Word2Vec 把单词逐个转换为词向量,而该过程并没有关注上下文语境。不管是作为水果的 "apple",还是作为手机品牌的 "apple",都会被表示为同一词向量。

而自注意力机制将会关注上下文语境,试图为当前单词寻找一种更好的编码方式。

假设经过 Word2Vec:

  • "orange" 的词向量为 (0, 3)
  • "phone" 的词向量为 (4, 0)
  • "apple" 的词向量为 (2, 2)

针对 "an apple and an orange":

  • "apple" 和 "orange" 的余弦相似度为 0.71
  • "apple" 和 "apple" 的余弦相似度为 1

计算相似度的方法可以是点积,也可以是余弦相似度。

通过自注意力机制调整 "apple" 的词向量:

e 0.71 e 0.71 + e 1 ∗ ( 0 , 3 ) + e 1 e 0.71 + e 1 ∗ ( 2 , 2 ) = ( 1.14 , 2.43 ) \frac{e^{0.71}}{e^{0.71}+e^{1}}*(0,3)+\frac{e^{1}}{e^{0.71}+e^{1}}*(2,2)=(1.14,2.43) e0.71+e1e0.71∗(0,3)+e0.71+e1e1∗(2,2)=(1.14,2.43)

因此调整后的词向量为 (1.14, 2,43),它表示的是一种水果。

说明:这里使用的是一种不严谨的自注意力机制,按理来说它应该关注句子中的每一个单词,这里为了计算方便就只关注了橘子。

针对 "an apple phone":

  • "apple" 和 "phone" 的余弦相似度为 0.71
  • "apple" 和 "apple" 的余弦相似度为 1

通过自注意力机制调整 "apple" 的词向量:

e 0.71 e 0.71 + e 1 ∗ ( 4 , 0 ) + e 1 e 0.71 + e 1 ∗ ( 2 , 2 ) = ( 2.86 , 1.14 ) \frac{e^{0.71}}{e^{0.71}+e^{1}}*(4,0)+\frac{e^{1}}{e^{0.71}+e^{1}}*(2,2)=(2.86,1.14) e0.71+e1e0.71∗(4,0)+e0.71+e1e1∗(2,2)=(2.86,1.14)

因此调整后的词向量为 (2.86, 1.14),它表示的是一种手机品牌。

3 缩放点积注意力

Transformer 使用的注意力如下:

A t t e n t i o n ( Q , K , V ) = s o f t m a x ( Q K T d k ) V \mathrm{Attention}(\mathrm{Q},\mathrm{K},\mathrm{V})= \mathrm{softmax}\left ( \frac{\mathrm{Q}\mathrm{K}^T}{\sqrt{d_\mathrm{k}}} \right ) \mathrm{V} Attention(Q,K,V)=softmax(dk QKT)V

加入 1 / d k 1/\sqrt{d_\mathrm{k}} 1/dk 的原因:

  1. 如果维度 d k d_\mathrm{k} dk 较大,那么 Q K T \mathrm{Q}\mathrm{K}^T QKT 的方差也会变大;
  2. 进而导致在 Q K T \mathrm{Q}\mathrm{K}^T QKT 的每个向量中,元素之间的差值变大;
  3. 元素之间的差值较大,可能导致在 s o f t m a x ( Q K T ) \mathrm{softmax}\left ( \mathrm{Q}\mathrm{K}^T \right ) softmax(QKT) 的每个向量中,只有一个元素接近于 1,而其余元素均接近于 0;
  4. 若 s o f t m a x \mathrm{softmax} softmax 后只有一个元素为非 0 值,则反向传播中的梯度值就会为 0,导致模型参数无法更新。

4 Transformer 可学习参数

Transformer 中的 Q、K、V 为:

Q = X W Q K = X W K V = X W V \begin{alignat}{2} \mathrm{Q}=&\mathrm{X}\mathrm{W^Q} \nonumber \\ \mathrm{K}=&\mathrm{X}\mathrm{W^K} \nonumber \\ \mathrm{V}=&\mathrm{X}\mathrm{W^V} \nonumber \\ \end{alignat}{} Q=K=V=XWQXWKXWV

采用可学习参数,是为了转换查询和键所处的向量空间,从而方便区分查询和键,如下图所示:

俺也不知道具体原因是什么 😇

相关推荐
贾全18 分钟前
第十章:HIL-SERL 真实机器人训练实战
人工智能·深度学习·算法·机器学习·机器人
我是小哪吒2.01 小时前
书籍推荐-《对抗机器学习:攻击面、防御机制与人工智能中的学习理论》
人工智能·深度学习·学习·机器学习·ai·语言模型·大模型
慕婉03071 小时前
深度学习前置知识全面解析:从机器学习到深度学习的进阶之路
人工智能·深度学习·机器学习
埃菲尔铁塔_CV算法3 小时前
基于 TOF 图像高频信息恢复 RGB 图像的原理、应用与实现
人工智能·深度学习·数码相机·算法·目标检测·计算机视觉
中杯可乐多加冰5 小时前
【AI落地应用实战】AIGC赋能职场PPT汇报:从效率工具到辅助优化
人工智能·深度学习·神经网络·aigc·powerpoint·ai赋能
烟锁池塘柳05 小时前
【大模型】解码策略:Greedy Search、Beam Search、Top-k/Top-p、Temperature Sampling等
人工智能·深度学习·机器学习
zzc9216 小时前
时频图数据集更正程序,去除坐标轴白边及调整对应的标签值
人工智能·深度学习·数据集·标签·时频图·更正·白边
Blossom.1187 小时前
机器学习在智能供应链中的应用:需求预测与物流优化
人工智能·深度学习·神经网络·机器学习·计算机视觉·机器人·语音识别
Gyoku Mint7 小时前
深度学习×第4卷:Pytorch实战——她第一次用张量去拟合你的轨迹
人工智能·pytorch·python·深度学习·神经网络·算法·聚类
m0_7513363910 小时前
突破性进展:超短等离子体脉冲实现单电子量子干涉,为飞行量子比特奠定基础
人工智能·深度学习·量子计算·材料科学·光子器件·光子学·无线电电子