15_Attention

109 阅读1分钟

原理

背景:

结构:

  • 注意decode的时候,除了encoder的编码C,还有前一时刻的输出y
  • 基于attention的模型,一般都是encoder和decoder结构
  • attention主要是关注输出的每一个step会focus在输入seq中的哪一个step

论文:attention is all you need

变种:

  1. 针对相关性计算公式可以变化,一般是相似距离
  2. 根据decoder不同的输出计算相关性,有si-1,也有si的
  3. 使用不同,有哪加权后的c更新h,也有拿c和ht-1作为下一个时刻的输入
  4. 还有计算相似性时encoder的h的范围长度

通用表示

  • 其中K和V是一样的,都是encoder部分所有h组成的矩阵
  • Q是decoder的h,
  • QK表示加权后的系数,然后乘以V得到加权后的向量C

seq2seq+attention

  1. attention基本都是用在seq2seq结构上
  2. 一个encoder网络,一般是一个lstm,得到每一个step的输出;然后decoder网络的输入就是encoder的每一个step输出加上attention机制。

普通的seq2seq:

attention的seq2seq:

Self-Attentionn

背景: 替换传统的RNN+Attention结构,原结构计算耗时。self-attetion利用矩阵计算,理论上RNN能做的事情(处理序列),self-attention都可以替代掉,且速度更快。

每一个单词都会编码成q,k,v三个向量,然后乘以3个矩阵变成Q,K,V,3个矩阵是网络学的参数矩阵

QKV矩阵形式的计算,直接计算每个向量和所有向量的attention

MultiHead

Transformer

Bert