注意力机制(Attention Mechanism)浅谈1. 注意力机制的由来,解决了什么问题?早期在解决机器翻译这一类序列到序列(Sequence to Sequence)的问题时,通常采用的做法是利用一个编码器(Encoder)和一个解码器(Decoder)构建端到端的神经网络模型,但是基于编码解码的神经网络存在两个问题,拿机器翻译举例:问题1:如果翻译的句子很长很复杂,比如直接一篇文章输进去,模型的计算量很大,并且模型的准确率下降严重。问题2:在翻译时,可能在不同的语境下,同一个词具有不同的含义,但是网络对这些词向量并没有区分度,没有考虑词与词之间的相关性,导致翻译效果比较差。同样在计算机视觉领域,如果输入的图像尺寸很大,做图像分类或者识别时,模型的性能就会下降。针对这样的问题,注意力机制被提出。2. 什么是注意力机制?注意力机制早在上世纪九十年代就有研究,到2014年Volodymyr的《Recurrent Models of Visual Attention》一文中将其应用在视觉领域,后来伴随着2017年Ashish Vaswani的《Attention is all you need》中Transformer结构的提出,注意力机制在NLP,CV相关问题的网络设计上被广泛应用。 “注意力机制”实际上就是想将人的感知方式、注意力的行为应用在机器上,让机器学会去感知数据中的重要和不重要的部分。打个比方:当我们观察下面这张图片时,大部分人第一眼应该注意到的是小猫的面部以及吐出的舌头,然后我们才会把我们的注意力转移到图片的其他部分。所谓的"注意力机制"也就是当机器在做一些任务,比如要识别下面这张图片是一个什么动物时,我们让机器也存在这样的一个注意力侧重,最重要该关注的地方就是图片中动物的面部特征,包括耳朵,眼睛,鼻子,嘴巴,而不用太关注背景的一些信息,核心的目的就在于希望机器能在很多的信息中注意到对当前任务更关键的信息,而对于其他的非关键信息就不需要太多的注意力侧重。同样的如果我们在机器翻译中,我们要让机器注意到每个词向量之间的相关性,有侧重地进行翻译,模拟人类理解的过程。