一、Attention
Attention 的核心逻辑是“从关注全部到关注重点”,将有限的注意力集中在重点信息上,从而节省资源,快速获得最有效的信息。
Attention 机制可以更加好的解决序列长距离依赖问题,并且具有并行计算能力。
Attention 并不需要在 Encoder-Decoder 框架下使用,是可以脱离 Encoder-Decoder 框架的。
- 下面的图片则是脱离 Encoder-Decoder 框架后的原理图解:

- Attention原理的3步分解:

通过 Query(查询对象) 信息从 Values(被查询对象) 中筛选出重要信息,即:计算 Query 和 Values 中每个信息的相关程度。
Attention 通常可以表示为将 Query(Q) 和 key-value pairs(把 Values 拆分成了键值对的形式)映射到输出上,其中 query、每个 key、每个 value 都是向量,输出是 V(被查询对象)中所有 values 的加权,其中权重是由 Query 和每个 key 计算出来的,计算方法分为三步:
第一步:Query与每一个Key计算相似性得到相似性评分s
第二步:将s评分进行softmax转换成[0,1]之间的概率分布
第三步:将[a1,a2,a3…an]作为权值矩阵对Value进行加权求和得到最后的Attention值
公式如下:

具体步骤如下:

二、Self-Attention
2.1 Attention 和 Self-Attention 的区别
1. Attention:
传统的 Attention 机制发生在 Target的元素 和 Source中的所有元素 之间。在一般任务的 Encoder-Decoder 框架中,输入 Source 和输出 Target 内容是不一样的,比如对于英 - 中机器翻译来说,Source是英文句子,Target是对应的翻译出的中文句子。
2. Self-Attention
Self-Attention 指的不是 Target 和 Sour

本文深入探讨了Attention和Self-Attention的区别,介绍了Self-Attention的工作原理,包括Multi-head Self-Attention,强调了其在解决序列依赖和并行计算的优势。此外,还讨论了Positional Encoding的重要性以及Self-Attention与RNN和CNN的对比,揭示了Self-Attention在大规模数据训练中的优势,并提到了Masked Self-Attention在解决训练与测试不一致问题中的应用。
最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



