Transformers架构的两个核心元素:自注意力机制和前馈神经网络。

这两种机制共同作用,使得模型能够生成自然语言。自注意力机制允许模型并行处理输入序列的不同部分,而前馈神经网络则进一步处理这些信息,以生成更深层次的语义表示。

  • 自然语言处理(NLP) :Transformers广泛应用于机器翻译、文本摘要、问答系统和语言生成等任务。
  • 文本生成 :在聊天机器人和内容创作工具中,Transformers能够生成流畅、连贯的文本。
  • 语言理解 :在情感分析和意图识别等应用中,Transformers帮助模型理解文本的深层含义。
    alt text

Transformer、BERT等模型在NLP领域取得了突破,其模型主要依赖了注意力机制(Attention Mechanism)。注意力Attention机制被应用到越来越多的地方,那么注意力Attention机制的原理和本质到底是什么?

自注意力机制

发展历史

Attention的发展主要经历了两个阶段:

一、2017年前,Attention开始被广泛应用在各类NLP任务上。各种各样的花式Attention被提出,比如用在机器翻译上的Bahdanau Attention等。这一阶段的Attention常常和RNN、CNN结合。

二、2017年之后是Transformer的时代。2017年,Transformer模型被提出,Transformer完全抛弃了RNN结构,突破了RNN无法并行化的缺点。之后BERT使用了Transformer中的Encoder部分。

基本原理

从“Attention”这个名字可以读出,Attention机制主要是对注意力的捕捉。Attention的原理与大脑处理信息有一些相似。比如看到下面这张图,短时间内大脑可能只对图片中的“锦江饭店”有印象,即注意力集中在了“锦江饭店”处。短时间内,大脑可能并没有注意到锦江饭店上面有一串电话号码,下面有几个行人,后面还有“喜运来大酒家”等信息。

text

原始图片

所以,大脑在短时间内处理信息时,主要将图片中最吸引人注意力的部分读出来了,类似下面。

text
大脑注意力只关注吸引人的部分

Attention机制

Attention的输入由三部分构成:Query、Key和Value。其中,(Key, Value)是具有相互关联的KV对,Query是输入的“问题”,Attention可以将Query转化为与Query最相关的向量表示。

Attention的计算主要分3步,如下图所示。
alt text

Attention 3步计算过程

Attention 三步计算过程

第一步:Query和Key进行相似度计算,得到Attention Score;

第二步:对Attention Score进行Softmax归一化,得到权值矩阵;

第三步:权重矩阵与Value进行加权求和计算。

Query、Key和Value的含义是什么呢?我们以刚才大脑读图为例。Value可以理解为人眼视网膜对整张图片信息的原始捕捉,不受“注意力”所影响。我们可以将Value理解为像素级别的信息,那么假设只要一张图片呈现在人眼面前,图片中的像素都会被视网膜捕捉到。Key与Value相关联,Key是图片原始信息所对应的关键性提示信息,比如“锦江饭店”部分是将图片中的原始像素信息抽象为中文文字和牌匾的提示信息。一个中文读者看到这张图片时,读者大脑有意识地向图片获取信息,即发起了一次Query,Query中包含了读者的意图等信息。在一次读图过程中,Query与Key之间计算出Attention Score,得到最具有吸引力的部分,并只对具有吸引力的Value信息进行提取,反馈到大脑中。就像上面的例子中,经过大脑的注意力机制的筛选,一次Query后,大脑只关注“锦江饭店”的牌匾部分。

再以一个搜索引擎的检索为例。使用某个Query去搜索引擎里搜索,搜索引擎里面有好多文章,每个文章的全文可以被理解成Value文章的关键性信息是标题,可以将标题认为是Key。搜索引擎用Query和那些文章们的标题(Key)进行匹配,看看相似度(计算Attention Score)。我们想得到跟Query相关的知识,于是用这些相似度将检索的文章Value做一个加权和,那么就得到了一个新的信息,新的信息融合了相关性强的文章们,而相关性弱的文章可能被过滤掉。

尽管举了两个例子,但是理解起来还是有些抽象。

个人理解:

拿传统编程来说
输入x,y,程序z=x+y,输出的值则为Z,程序不需要理解x和y,只需要执行加法运算即可。
针对语言模型来说
输入x,x为张量,张量那就是有阶和形状特征,是一个seq。而x张量在transformer的注意力机制中则是以QKV的格式来表示的
输入x: 我们都是地球人,QKV最终格式如下

输入
分词 Q我 Q们 Q都 Q是 Q地 Q球 Q人
词键 K我 K们 K都 K是 K地 K球 K人
组词 V我 V们 V都 V是 V地 V球 V人
权重 我们 我们 地球 地球

参考文献或转载相关:

https://lulaoshi.info/deep-learning/attention/attention.html#%E5%9F%BA%E6%9C%AC%E5%8E%9F%E7%90%86