Attention 注意力机制

1,168 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 4 天,点击查看活动详情

Attention注意力机制的概念

  • 注意力机制的核心思想是:从大量信息中筛选出少量重要信息,使聚焦到这些重要信息上,同时忽略不重要的信息
  • 注意力模型的任务就是:从大量信息V中筛选出相对另一个信息Q来说的重要信息简单的说就是计算Q跟V中的每个信息的相关程度。
  • 注意力机制能更好的解决序列长距离依赖问题,并且具有并行计算的能力
  • 根据Q、K、V不同,有不同类型的注意力机制

Attention计算流程

  • 第一步:计算V的权重,即计算Q和V的相似度f(Q,Ki)f(Q,K_i)

  • 第二步:对上一步得到的相似度进行softmaxsoftmax操作,进行归一化,得到权重aia_i

  • 第三步:针对上一步得到的权重,对V中所有的values进行加权求和,最后得到Attention向量

  • 通过注意力机制计算后得到的词向量,就是一个考虑过周围词的词向量

image.png

Self-Attention 自注意力机制

  • 自注意力机制中,Q、K、V同源
  • 对于Self-Attention,三个输入Q、K、V来自句子X的词向量的线性转换,即对于词向量 x,给定三个可学习的矩阵参数 WqW_q,WkW_k,WvW_v,x 分别右乘上述矩阵得到 Q、K、V。

Masked-Head Self-Attention 掩码自注意力机制

  • 除添加了Mask模块,其他内容和Self-Attention一样
  • 在生成任务中,通过前面的词预测后面的词时,不应该看到后面的信息,Mask模块就是用于解决这个问题
  • 为了不让模型看到未来的信息,Mask模块的任务就是将后面的词用0覆盖

Multi-Head Slef-Attention 多头自注意力机制

  • Multi-Head(多头)相当于把原始信息放到了多个子空间中,让attention可以看到多个不同空间的信息,从而让模型学习到更加丰富的特征

Cross-Attention 交叉注意力机制

  • 交叉注意力机制中,K、V同源,Q与它们不同源