本系列文章致力于用最简单的语言讲解Transformer架构,帮助朋友们理解它的强大力量,本文是第四篇:注意力机制, 它是Transformer的核心组件。
大家对注意力机制多少都有所耳闻,毕竟在自然语言处理(NLP)和大型语言模型(LLM)领域,2017年,《Attention Is All You Need》这篇论文是里程碑式的存在;几乎所有的LLM都是基于注意力机制构建的,甚至最新的多模态或基于视觉的模型也在某种程度上都运用了它;今天,我们将深入探讨注意力机制。
01 什么是注意力
当人类的视觉机制察觉到一个物体时,通常不会从头到尾地扫视整个场景;一般会根据个人的需求集中关注特定的部分。
比如下面这张图,我们第一眼应该是看到一只动物,然后,眼睛会先注意到动物的脸,然后得出初步结论,这应该是一只狼;就像右边注意力图所示,颜色更深的部分表示一般是我们人类最先看见(注意)的。
注意力最早应用在机器视觉领域(CV,Computer Vision),后来才应用到NLP和LLM领域。
多头(2头)自注意力可视化:
如下动画所示,注意力在Transformer中,被应用于机器翻译:
02 Transformer的注意力层
在Transformer架构中,有两大的组件,分别是编码器(Encoder)和解码器(Decoder), 编码器主要是将输入序列映射到潜在语义空间(注意力向量,也叫上下文向量,但其实上下文向量是注意力机制内部对输入向量的叫法,本文中编码器输出向量都只叫作注意力向量,以示区分),而解码器则是将潜在语义空间(注意力向量)映射到输出序列。