注意力机制的基本思想和实现原理(一)

最近几年注意力模型在深度学习各个领域被广泛使用,无论是做图像处理、语音识别还是自然语言处理的任务中,都需要用到注意力模型。所以在今天的内容中,我们先了解**意力机制的工作原理。

什么是注意力机制?

当我们在看一件东西的时候,不难发现我们的关注点一定是我们当前看的这件东西的某一个地方/部位,这意味着人们注意某个目标或某个场景时,人类会利用有限的注意力资源从大量信息中快速筛选出高价值信息,使用视觉注意力机制可以极大地提高视觉信息处理的效率和准确性。

注意力机制的分类

从Attention的时空角度出发,我们可以分为Spatial Attention空间注意力和Temporal Attention时间注意力;从Attention的实际应用角度来看,可以分为Soft Attention 和Hard Attention。Soft Attention是所有的数据都会注意,都会计算出相应的注意力权值,不会设置筛选条件。Hard Attention会在生成注意力权重后筛选掉一部分不符合条件的注意力,让它的注意力权值为0,即为不再注意这些不符合条件的部分。

Encoder-Decoder框架

要了解深度学习中的注意力机制,就先得学习一下Encoder-Decoder框架,因为现

在大多数注意力模型都是在Encoder-Decoder框架上作用的,下面是是文本处理领域里常用的Encoder-Decoder框架最抽象的一种表示:
注意力机制的基本思想和实现原理(一)

我们可以这样直观地理解一下:可以把Encoder-Decoder框架看作适合处理由一个句子生成另外一个句子的处理模型。对于句子对来说,有这样的关系:X是一个问句,Y是答案;X是一个句子,Y是抽取的关系三元组;X是汉语句子,Y是汉语句子的英文翻译等等。我们是目标是给定输入X,通过Encoder-Decoder框架来生成目标句子Y。X和Y可以是同一种语言也可以是不同语言。X和Y分别由各自的单词序列构成:
注意力机制的基本思想和实现原理(一)

Encoder就是对输入句子X进行编码,将输入句子通过非线性变化转化为中间语义表示C:
注意力机制的基本思想和实现原理(一)

对于解码器Decoder来说,其任务是根据中间语义表示C和前面已经生成的历史信息y1,y2….yi-1来生成i时刻要生成的单词yi:

注意力机制的基本思想和实现原理(一)

每个yi都依次这么产生,那么看起来就是整个系统根据输入句子X生成了目标句子Y。

此外,这个框架比如对于语音识别来说也是完全适用的,区别无非是Encoder部分的输入是语音流,输出是对应的文本信息;而对于“图像描述”任务来说,Encoder部分的输入是一副图片,Decoder的输出是能够描述图片语义内容的一句描述语。一般而言,文本处理和语音识别的Encoder部分通常采用RNN模型,图像处理的Encoder一般采用CNN模型

总结:本节简单描述了注意力机制的基本思想,并且先列举了注意力机制的应用模型—Encoder-Decoder框架,在下一节的内容中,我们会用一个机器翻译的例子去讲解最常见的SoftAttention模型的基本原理和思路,

关注小鲸融创,一起深度学习金融科技!
注意力机制的基本思想和实现原理(一)