Attention机制笔记

Attention机制是Transformer模型中的一个重要组成部件,而Transformer的重要性就不言而喻了。本文主要对Attention机制做一个简单的记录,加深自己对一些基础知识的掌握。

Attention机制本质上是权重分配,在计算每个token的时候,模型可以根据注意力机制确定该token在整个序列中的重要性(也即Attention输出的权重系数),应用该技术在特定场景下可明显提升模型性能。

1.Attention整体结构

图1 Attention

Attention的整体结构如图1所示。
输入X_Q(M\times d_{model})、X_K(N\times d_{model})、X_V(N\times d_{model})
经过
线性变换矩阵W^Q (d_{model}\times d_k)、W^K(d_{model}\times d_k)、W^V (d_{model}\times d_v)
得到
Q(M\times d_k)、K(N\times d_k)、V(N\times d_v)

最后将得到的Q、K、V输入到如下公式即可得到Attention的输出。

Attention(Q,K,V) = softmax(\frac{QK^T}{\sqrt{d_k}})V

Q、K的维度是一致的

K、V的shape是一致的,一个key对应一个value

2.Attention变体

Attention的变体有很多,下面主要介绍两种常用的变体。

2.1.Self-Attention

Self-Attention与一般的Attention结构是一样的,主要的区别就在于输入,Self-Attention的三个Q、K、V输入是相同的,也即Q=K=V

2.2.Muti-Head Attention

图2 Muti-Head Attention

Muti-Head Attention从结构上来看就是通过h个不同的线性变换将输入X_Q、X_K、X_V投影到h个不同的Q、K、V组合,最后将h个不同的Attention结果拼接起来,最后经过一个Liner层得到Muti-Head Attention的输出。

其中,W_i^Q (d_{model}\times d_k)、W_i^K(d_{model}\times d_k)、W_i^V (d_{model}\times d_v)W^O(d_v\times d_{model})

参考资料

Transformer 模型详解 (推荐)
【NLP】Transformer模型原理详解
【经典精读】Transformer模型深度解读

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容