Self Attention:由Dot-Product(向量点乘)说起
https://lulaoshi.info/deep-learning/attention/transformer-attention.html#self-attention-从向量点乘说起
Transformer[1]论文提出了一种Self-Attention(自注意力机制), Self-Attention的最核心的公式为:
\(\large \begin{align*} \\
& Attention(Q,K,V)=Softmax( \frac{QK^⊤}{\sqrt{d_k}} )V \\
& where, Q : Query,\ K : key,\ V : Value \\
\\
\end{align*} \\
\)
单看这个公式,其实并不能很好地理解Attention到底在做什么,
本文从Transformer所使用的Self-Attention,介绍Attention背后的原理。
Self-Attention:从向量点乘说起
我们先从:\(\large Softmax(XX ^⊤)X\)这样一个公式开始。
首先需要复习\(\large Dot\ Product\)(向量点乘)的概念。对于两个\(\large 行向量x和y\):
\(\large \begin{align*} \\
x &=[& x_0 &, & x_1 & , & \cdots &, & x_n &] \\
y &=[& y_0 &, & y_1 & , & \cdots &, & y_n &] \\
x \cdot y &= & x_0 \cdot y_0 & + & x_1 \cdot y_1 & + & \cdots & + & x_n \cdot y_n &\ \\
\end{align*} \\
\)
Self-Attention:
在这个基础上,再进一步: