【注意力机制】加性注意力(Additive Attention)&缩放点积注意力(Scaled Dot-product Attention)

加性注意力

这种注意力方法是第一篇文章被提出来的,也被叫做Bahdanauz注意力。主要计算方法是将h和s先用两个参数矩阵W^q (q*d)和W^k (k*d)分别映射到d维,然后把他们相加(element-wise),经过一个tanh激活函数后,再与另一个参数矩阵W(也是d维)进行点积,最终得到注意力权重α(标量),随后需要用softmax进行归一化。

李宏毅老师的讲解:

王树森老师的讲解,这里是把两个参数矩阵W^qW^k先拼接到了一起,然后对拼接好的输入向量进行点积,因为点积计算也是加性的,所以被叫做加性注意力。

这种注意力的计算方法现在比较不常用

缩放点积注意力

这是Transformer文章提出的注意力计算方法,也被叫做Vaswani注意力。

主要计算方法是将h和s先用两个参数矩阵W^q (q*d)和W^k (k*d)分别映射到d维,然后直接把他们点积,然后再softmax,得到注意力权重α。

注意的是这里需要进行一个缩放,作者认为,对于较大的 d 值,点积的数量级会变大,从而将 softmax 函数推向梯度极小的区域,不利于训练。因此需要除以\sqrt{d_k}

李宏毅老师的讲解:

交互注意力机制是一种在两个向量之间进行关注度计算的机制,常见的有Dot-Product AttentionAdditive Attention和Multiplicative Attention等。它们的区别如下: 1. Dot-Product Attention:这种注意力机制是通过计算两个向量之间的点积来得到注意力权重的。具体地,设两个向量为 $a$ 和 $b$,则点积得分为 $score(a, b) = a^Tb$,然后通过对得分进行softmax归一化,得到注意力权重。Dot-Product Attention的优点是计算简单,速度快,但其缺点是可能存在数值稳定性问题。 2. Additive Attention:这种注意力机制是通过将两个向量拼接成一个新的向量,然后通过一个全连接神经网络来计算得分。具体地,将两个向量拼接成 $[a;b]$,然后通过线性变换和激活函数得到得分 $score(a, b) = v^Ttanh(W[a;b]+b)$,其中 $W$ 和 $b$ 是线性变换的参数,$v$ 是用来计算得分的向量。Additive Attention的优点是能够处理不同维度的向量,但其缺点是计算复杂度高。 3. Multiplicative Attention:这种注意力机制是通过对两个向量进行逐元素乘法,得到一个新的向量,然后通过一个全连接神经网络来计算得分。具体地,设两个向量为 $a$ 和 $b$,则逐元素乘法得到 $c = a \odot b$,然后通过线性变换和激活函数得到得分 $score(a, b) = v^Ttanh(Wc+b)$,其中 $W$ 和 $b$ 是线性变换的参数,$v$ 是用来计算得分的向量。Multiplicative Attention的优点是计算复杂度低,但其缺点是可能存在信息损失的问题。 需要注意的是,不同的注意力机制适用于不同的场景和任务,具体选择哪种机制取决于具体需求和数据特点。同时,也可以结合不同机制的优点,进行多机制融合,提高注意力机制的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值