Attention

1、为什么要要用Attention机制?

视觉注意力机制是人类大脑的一种天生的能力。当我们看到一幅图片时,先是快速扫过图片,然后锁定需要重点关注的目标区域。比如当我们观察上述图片时,注意力很容易就集中在了人脸、文章标题和文章首句等位置。试想,如果每个局部信息都不放过,那么必然耗费很多精力,不利于人类的生存进化。同样地,在深度学习网络中引入类似的机制,可以简化模型,加速计算。另外,利用循环神经网络去处理 NLP任务时,长距离“记忆”能力一直是个大难题,而引入“注意力机制”也能有效缓解这一问题。

2、Encoder-Decoder框架

常见的深度学习模型有 CNN、RNN、LSTM、AE 等,其实都可以归为一种通用框架 - Encoder-Decoder.

  • Encoder通常是由一系列的神经网络层组成,可以将输入序列中的每个元素映射到一个高维向量空间中,然后将这些向量组合成一个固定长度的向量,作为Encoder的输出。Encoder的输出可以用于各种任务,例如情感分类、机器翻译、文本生成等。

  • Decoder也是由一系列的神经网络层组成,它将Encoder的输出向量作为输入,并生成一个序列。在机器翻译任务中,Decoder通常将Encoder的输出向量作为第一个输入,并生成目标语言的句子。在文本生成任务中,Decoder可以根据Encoder的输出向量生成一段新的文本

3、Soft Attention

  • 软注意力模型(Soft Attention Model)是一种常用的注意力机制模型,它可以在输入序列的不同位置上产生不同的注意力权重,从而使模型能够更好地关注与当前任务相关的信息。

4、Attention 机制原理

​ 引用:北京邮电大学 信息与通信工程博士

  • ​ 现在,请你把 Source 想象成是内存里的一块存储空间,它里面存储的数据按 <Key, Value> 存储。给定 Query,然后取出对应的内容。这里与一般的 hash 查询方式不同的是,每个地址都只取一部分内容,然后对所有的 Value 加权求和。

    image-20230417210530584

    公式描述:

    image-20230417210604274

    具体流程

    image-20230417211221485

    点积image-20230417211313677

    Coinse 相似性image-20230417211427674

    MLP网络image-20230417211452177

    打分机制:image-20230417211635781

    归一化:image-20230417211628325

5、Self Attention

image-20230417211839766