Attention Machanism
注意力机制:将query、key-value映射至输出的权重生成机制
- $V_{L d_v}$:value矩阵,*信息序列矩阵
- $K_{L * d_k}$:key矩阵,大部分情况即为$V$
- $Q_{L * d_k}$:query矩阵,其他环境信息
- $L, d_k, d_v$:输入序列长度、key向量维度、value向量维度
- key、value向量为$K, V$中行向量
合理分配注意力,优化输入信息来源
在不同模型间学习对齐
- attention机制常联合Seq2Seq结构使用,通过隐状态对齐
- 如:图像至行为、翻译
Attention Model
- $c_t$:context vector,注意力机制输出上下文向量
- $e_{t,j}$:$t$时刻$i$标记向量注意力得分
- $\alpha_{t,i}$:$t$时刻$i$标记向量注意力权重
- softmax归一化注意力得分
Additive Attention
单隐层前馈网络(MLP)
- $h_{t-1}$:输出结构隐状态
- $g_j$:输入结构隐状态
- $W_a, v_a$:待训练参数
- $f_{act}$:激活函数$tanh$、$ReLU$等
Multiplicative/Dot-product Attention
- 相较于加法attention实际应用中更快、空间效率更高
(可以利用高度优化的矩阵乘法运算)
Tricks
Stochastic Hard Attention
hard attention:随机抽取标记向量作为注意力位置
- $s$:注意力位置,中间隐one-hot向量,服从$\alpha$指定的
多元伯努利分布
- $h_i$:第$i$上下文向量
参数训练
Deterministic Soft Attention
soft attention:从标记向量估计上下文向量期望
- 考虑到所有上下文向量,所有标记向量加权求和上下文向量
- 模型说明
- $f_{Att}$计算所有标记向量注意力得分
- $\alpha$可视为个标记向量权重
Local Attention
local attention:从所有标记向量中选取部分计算soft attention
- 可以视为hard、soft attention结合
- hard attention选取标记向量子区间,避免噪声干扰
- soft attention加权求和,方便训练
子区间选取
- 为目标$t$选取对齐位置$p_t$,得到子区间$[p_t-D, p_t+D]$
($D$为经验选取)
- 可以使用高斯分布给注意力权重加权,强化$p_t$附近标记向量
(根据经验可以设置$\sigma = \frac D 2$)
Self Attention
Self Attention/Intra-Attention:关联同一序列内不同位置、
以学习序列表示的attenion机制
类似卷积、循环结构
- 将不定长的序列映射为等长的另一序列
- 从序列中提取高层特征
特点
- 类似卷积核,多个self attention可以完全并行
- 无需循环网络多期传递信息,输入序列同期被处理
- 可使用local attention机制限制计算复杂度
Multi-Head Attention
Multi-Head Attention:从相同输入、输出序列学习多个
attention机制
- $Q, K, V$:元信息矩阵,据此训练多组query、key-value,
一般就是原始输入序列矩阵