Self Attention 自注意力机制

self attention是提出Transformer的论文《Attention is all you need》中提出的一种新的注意力机制,这篇博文仅聚焦于self attention,不谈transformer的其他机制。Self attention直观上与传统Seq2Seq attention机制的区别在于,它的query和massage两个序列是相等的。大家可能都以为self attention是attention的改进版,但其实self attention的设计思想来自RNN和CNN,希望这篇博文能对你有所启发。

广义注意力机制

在谈论self attention之前我们首先认识一下以KQV模型来解释的Attention机制。

假定输入为Q(Query), Memory中以键值对(K,V)形式存储上下文。那么注意力机制其实是Query到一系列键值对(Key, Value)上的映射函数。 <math xmlns="http://www.w3.org/1998/Math/MathML"> A t t e n t i o n V a l u e = Q K T V Attention \ Value = QK^TV </math>Attention Value=QKTV Attention本质上是为序列中每个元素都分配一个权重系数,这也可以理解为软寻址。如果序列中每一个元素都以(K,V)形式存储,那么attention则通过计算Q和K的相似度来完成寻址。Q和K计算出来的相似度反映了取出来的V值的重要程度,即权重,然后加权求和就得到了attention值。

Self Attention

Self Attention机制在KQV模型中的特殊点在于Q=K=V,这也是为什么取名self attention,因为其是文本和文本自己求相似度再和文本本身相乘计算得来。 <math xmlns="http://www.w3.org/1998/Math/MathML"> A t t e n t i o n ( Q , K , V ) = s o f t m a x ( Q K T d k ) V Attention(Q,K,V)=softmax(\frac{QK^T}{\sqrt d_k})V </math>Attention(Q,K,V)=softmax(d kQKT)V

Self Attention机制的优越之处

抖音算法面试题,Self Attention和Seq2Seq Attention相比,优越在哪里。

RNN本身对于长距离的依赖关系有一定的捕捉能力,但由于序列模型是通过门控单元使得信息保持流动,并且选择性地传递信息。但这种方式在文本长度越来越长的条件下,捕捉依赖关系的能力越来越低,因为每一次递归都伴随着信息的损耗,所以有了Attention机制来增强对我们所关注的那部分依赖关系的捕捉 。除此之外,序列模型也不能对层次结构的信息进行有效的表达

Attention(包括self attention在内)本身的优点(相较于RNN而言):

  • 对长期依赖关系有着更强的捕捉能力
  • 可以并行计算

CNN在NLP领域也有比较广泛的应用。CNN模型可以被看作n-gram的detector,n-gram的n对应CNN卷积核的大小。CNN基于的假设是局部信息存在相互依赖关系,而卷积核可以把这些依赖关系以类似于n-gram的形式提取出来。另外,CNN具备Hierachicial Receptive Filed,使得任意两个位置之间的长度距离是对数级别。 Self-Attention的优点(相较于CNN而言):

  • 元素与元素之间的距离从CNN的logarithmic path length进一步缩短到constant path length
  • 由CNN fixed size perceptive变成了variable-sized的 perceptive,具体的长度等于文本长度,这也是self-attention相对于普通attention的优点。 图片中的文字讲的是self-attention和卷积的区别,不能看作是优点。从图中能看出self-attention和卷积的关联之处

如果普通attention机制在一个窗口下计算attention score,正如我这篇博文介绍的attention机制,那么这种attention机制的感受野就只有窗口,而且随着窗口移动还需要计算多次。

所以self-attention相较于Seq2Seq attention还有另一个优点:

  • 一步矩阵计算得到了文本序列中任意两个元素的相似度,而且是以整个文本作为观察范围的。

再类比于CNN的multi-kernel,实现self-attention的时候也可以有多份的self-attention score,这产生了multi-head self attention。

Self-Attention归纳如下

Self-attention的优点归纳为以下:

Transformer里面一共有三种self-attetnion: 三种Self-attention的区别:

参考文献

相关推荐
亚马逊云开发者1 小时前
全景解读亚马逊云科技的 GenBI 解决方案:三大路径助力企业智能决策升级
sql·llm
堆栈future13 小时前
manus终于开放啦
llm·aigc·agent
堆栈future13 小时前
在Mac上10分钟玩转LoRA微调模型
llm·openai·agent
堆栈future13 小时前
学习【北京大学】DeepSeek内部研讨系列: AI Agent与Agentic AI的原理和应用并做分享
llm·agent·deepseek
堆栈future13 小时前
揭秘 Google A2A 协议:赋能智能体协作的未来
llm·agent·mcp
强哥之神14 小时前
英伟达发布 Llama Nemotron Nano 4B:专为边缘 AI 和科研任务优化的高效开源推理模型
人工智能·深度学习·语言模型·架构·llm·transformer·边缘计算
聚客AI18 小时前
Embedding进化论:从Word2Vec到OpenAI三代模型技术跃迁
人工智能·llm·掘金·日新计划
一 铭1 天前
AI领域新趋势:从提示(Prompt)工程到上下文(Context)工程
人工智能·语言模型·大模型·llm·prompt
AI大模型1 天前
LangGraph官方文档笔记(七)——Agent的输入输出
langchain·llm·agent
knqiufan1 天前
深度解析影响 RAG 召回率的四大支柱——模型、数据、索引与检索
llm·milvus·向量数据库·rag