transformer发展
注意力机制的关键组成部分
transformer由序列对齐变成self attention
self attention
Self-attention,也称为自注意力机制,是一种用于处理序列数据的注意力机制。它最初是在自然语言处理领域中引入的,特别是在机器翻译任务中,被提出作为Transformer模型的核心组件。
自注意力机制的基本思想:
在传统的注意力机制中,注意力权重是通过计算查询(query)和键(key)之间的关联来获得的。而自注意力机制引入了一种机制,允许每个位置(或词)都能够关注到序列中的其他位置,而不仅仅是与它相邻的位置。
在自注意力机制中,有三个关键的元素:查询(Q)、键(K)、值(V)。
- 查询(Q): 用于计算与序列中其他位置的关联程度。
- 键(K): 用于表示序列中的位置,它与查询一起被用来计算关联程度。
- 值(V): 序列中的位置的表示,用于计算加权和。
在自注意力机制中,每个位置的查询、键、值都是通过线性变换(通常是独立的全连接层)得到的。关联程度通过查询与键的点积得到,然后经过一些归一化处理,最终用于加权求和,得到最终的表示。
自注意力机制的计算过程:
给定一组输入序列 ({x_1, x_2, …, x_n}),对于每个位置 (i),计算自注意力表示 (y_i) 的过程如下:
-
计算查询
qi=Wq⋅xi q_i = W_q \cdot x_i qi=Wq⋅xiki=Wk⋅xi k_i = W_k \cdot x_i ki=Wk⋅xi
vi=Wv⋅xi v_i = W_v \cdot x_i vi=Wv⋅xi
-
计算注意力分数(unnormalized):
scoreij=qi⋅kj \text{score}_{ij} = q_i \cdot k_j scoreij=