Attention && Self-Attention

自注意力机制

自注意力机制重点在于三个矩阵 Q Q Q K K K V V V 三大矩阵。

  1. 其中 Q Q Q K K K 计算两者的相似度或相关性得到自注意力矩阵,最常见的方式为点积、Cosine相识性、MLP网络

  2. 对自注意力矩阵继续数值转换,可以使用归一化概率分布、也可以使用 $ Softmax 内 在 机 制 突 出 重 要 元 素 的 权 重 内在机制突出重要元素的权重 a_i$

  3. 根据$ a_i 即 即 Value_i 对 应 的 权 重 系 数 , 加 权 求 和 得 到 对应的权重系数,加权求和得到 Attention$数值
    A t t e n t i o n ( Q u e r y , S o u r c e ) = ∑ i = 1 L X a i ⋅ V a l u e i Attention(Query, Source)=\sum_{i=1}^{L_X} a_i \cdot Value_i Attention(Query,Source)=i=1LXaiValuei

自注意力机制

自注意力机制注意力机制的变体,其减少了对外部信息的用来,更加关注于内部特点。

  • 优点:
    • 参数少,相比于CNN、RNN
    • 速度快,并行处理
    • 效果好,记忆能力强
    • CNN是基于局部编码、RNN会出现梯度消失等问题

自注意力机制核心

权重计算函数

眼尖的同学肯定发现这个attention机制比较核心的地方就是如何对Query和key计算注意力权重。下面简单总结几个常用的方法:

1、多层感知机方法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H8UTw9ZI-1620617165957)(https://www.zhihu.com/equation?tex=a%28q%2Ck%29+%3D+w_2%5ETtanh%28W_1%5Bq%3Bk%5D%29%5C%5C++)]

主要是先将query和key进行拼接,然后接一个激活函数为tanh的全连接层,然后再与一个网络定义的权重矩阵做乘积。

这种方法据说对于大规模的数据特别有效。

2、Bilinear方法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dA6UaJDC-1620617165961)(https://www.zhihu.com/equation?tex=a%28q%2Ck%29%3Dq%5ETWk%5C%5C)]

通过一个权重矩阵直接建立q和k的关系映射,比较直接,且计算速度较快。

3、Dot Product

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O3J7eFeA-1620617165962)(https://www.zhihu.com/equation?tex=a%28q%2Ck%29%3Dq%5ETk%5C%5C)]

这个方法更直接,连权重矩阵都省了,直接建立q和k的关系映射,优点是计算速度更快了,且不需要参数,降低了模型的复杂度。但是需要q和k的维度要相同。

4、scaled-dot Product

上面的点积方法有一个问题,就是随着向量维度的增加,最后得到的权重也会增加,为了提升计算效率,防止数据上溢,对其进行scaling。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-byuGhfe4-1620617165964)(https://www.zhihu.com/equation?tex=a%28q%2Ck%29%3D%5Cfrac%7Bq%5ETk%7D%7B%5Csqrt%7B%7Ck%7C%7D%7D%5C%5C)]

我个人通常会使用2和3,4。因为硬件机器性能的限制,1的方法计算比较复杂,训练成本比较高。

总结

本文是在阅读了知乎几篇前人总结的基础上,提出的。

  • 感悟如下:
    • 英文能力是一个很重要的能力,这是和另一个世界交流的一种方式。很多知乎大牛都是翻译其他人的文章来发表的。
    • 阅读一篇论文或文章的同时,需要注意文章的布局、排榜、文章思路等
    • 比如Transformer中加入了 position embedding这样模块可以加深词与词之间的关联,这一思想可以运用到其他网络。
    • 多多交流与输出

参考

图解-自注意机制

Attention机制简单总结

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值