自注意力机制的数学推导
时间: 2023-06-20 15:05:04 浏览: 55
自注意力机制是一种用于自然语言处理任务的机制,通常用于序列到序列的模型中。其数学推导如下:
假设我们有一个输入序列 $X=(x_1,x_2,...,x_n)$,其中 $x_i$ 是序列中的第 $i$ 个元素,我们需要将其映射到一个新的表示 $Z=(z_1,z_2,...,z_n)$。自注意力机制的核心是通过计算每个元素与其他元素之间的相似度来得到一个权重向量,然后将其与对应元素的表示值相乘再求和,得到一个加权表示,即:
$$
\mathrm{Attention}(Q,K,V)=\mathrm{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V
$$
其中 $Q=(q_1,q_2,...,q_n)$、$K=(k_1,k_2,...,k_n)$、$V=(v_1,v_2,...,v_n)$ 分别表示输入序列 $X$ 的查询、键和值,$d_k$ 是键的维度,$\mathrm{softmax}$ 是一个标准化函数,用于将相似度转换为概率分布。具体地,$\mathrm{softmax}$ 函数定义为:
$$
\mathrm{softmax}(x_i)=\frac{\mathrm{exp}(x_i)}{\sum_{j=1}^n \mathrm{exp}(x_j)}
$$
对于每个查询 $q_i$,我们计算它与所有键 $k_j$ 的相似度得到一个向量 $a_i$,即:
$$
a_i=\mathrm{softmax}\left(\frac{q_iK^T}{\sqrt{d_k}}\right)
$$
然后我们将这个向量与值 $V$ 相乘并求和,得到查询 $q_i$ 的加权表示 $z_i$,即:
$$
z_i=\sum_{j=1}^n a_{i,j}v_j
$$
最终,我们将所有查询的加权表示 $Z=(z_1,z_2,...,z_n)$ 作为自注意力机制的输出。
相关推荐
![application/pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![xlsx](https://img-home.csdnimg.cn/images/20210720083732.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)